Inhoudsopgave:

Automatisch grijpen met behulp van een lasersensor en spraakopdrachten: 5 stappen (met afbeeldingen)
Automatisch grijpen met behulp van een lasersensor en spraakopdrachten: 5 stappen (met afbeeldingen)

Video: Automatisch grijpen met behulp van een lasersensor en spraakopdrachten: 5 stappen (met afbeeldingen)

Video: Automatisch grijpen met behulp van een lasersensor en spraakopdrachten: 5 stappen (met afbeeldingen)
Video: HOE WERKEN RIJHULPSYSTEMEN 2024, Juli-
Anonim
Image
Image
De lijst met onderdelen
De lijst met onderdelen

Het grijpen van objecten die ons eenvoudig en natuurlijk lijken om te doen, is in feite een complexe taak. De mens gebruikt het gezichtsvermogen om de afstand te bepalen tot het object dat hij wil grijpen. De hand opent automatisch wanneer deze zich dicht bij het vast te pakken object bevindt en sluit vervolgens snel om het object goed vast te pakken. Ik heb deze techniek op een vereenvoudigde manier gebruikt in dit miniproject, maar in plaats van de camera heb ik een lasersensor gebruikt om de afstand van het object tot de grijper in te schatten en spraakopdrachten voor de besturing.

Stap 1: De lijst met onderdelen

De lijst met onderdelen
De lijst met onderdelen

In dit kleine project heb je maar een paar van de onderstaande onderdelen nodig. Als controller heb ik Arduino mega 2560 gebruikt, maar je kunt ook UNO of een andere Arduino gebruiken. Als afstandssensor heb ik een VL53L0X lasersensor gebruikt die een goede nauwkeurigheid heeft (ongeveer een paar millimeter) en een bereik tot 2 meter heeft. In dit project kun je elke grijper en servo gebruiken, maar je moet deze van een aparte stroombron voorzien, bijvoorbeeld: een 5V-voeding of een LiPo-batterij (7,4V of 11,1V) via een step-down-converter die de spanning verlaagt naar 5V.

Onderdelen nodig in dit project:

  • VL53L0X Laser ToF-sensor x1
  • Digitale servo x1
  • Arduino mega 2560 x1
  • Robot metalen grijper x1
  • Broodplank x1
  • Tactiele drukknop x1"
  • Bluetooth HC-06
  • Weerstand 10k x1
  • Voeding 5V/2A

Uitgebreide versie:

  1. CJMCU-219 Huidige monitorsensormodule x1
  2. WS2812 RGB LED Driver Development Board x1

Stap 2: Aansluiting van elektronische onderdelen

Aansluiting van elektronische onderdelen
Aansluiting van elektronische onderdelen
Aansluiting van elektronische onderdelen
Aansluiting van elektronische onderdelen
Aansluiting van elektronische onderdelen
Aansluiting van elektronische onderdelen

De eerste afbeelding toont alle benodigde aansluitingen. Op de volgende foto's ziet u de volgende stappen voor het aansluiten van afzonderlijke modules. In het begin werd de drukknop aangesloten op pin 2 van Arduino, vervolgens servo op pin 3 en tenslotte de VL53L0X laserafstandssensor via I2C-bus (SDA, SCL).

De aansluitingen van elektronische modules zijn de volgende:

VL53L0X Lasersensor -> Arduino Mega 2560

  • SDA - SDA
  • SCL - SCL
  • VCC - 5V
  • GND - GND

Servo -> Arduino Mega 2560

Signaal (oranje draad) - 3

Servo -> 5V/2A voeding

  • GND (bruine draad) - GND
  • VCC (rode draad) - 5V

Drukknop -> Arduino Mega 2560

  • Pin 1 - 3.3 of 5V
  • Pin 2 - 2 (en via de 10k weerstand naar aarde)

Bluetooth (HC-06) -> Arduino Mega 2560

  • TXD - TX1 (19)
  • RXD-RX1 (18)
  • VCC - 5V
  • GND - GND

Stap 3: Arduino Mega-code

Arduino Mega-code
Arduino Mega-code

Ik heb de volgende voorbeeld Arduino-programma's voorbereid die beschikbaar zijn op mijn GitHub:

  • VL53L0X_gripper_control
  • Voice_VL53L0X_gripper_control

Het eerste programma met de naam "VL53L0X_gripper_control" volbrengt de taak van het automatisch grijpen van een object dat is gedetecteerd door de VL53L0X-lasersensor. Voordat u het voorbeeldprogramma compileert en uploadt, moet u ervoor zorgen dat u "Arduino Mega 2560" als doelplatform hebt gekozen, zoals hierboven weergegeven (Arduino IDE -> Tools -> Board -> Arduino Mega of Mega 2560). Het Arduino-programma controleert in de hoofdlus - "void loop()" of de nieuwe uitlezing van de lasersensor is binnengekomen (functie readRangeContinuousMillimeters()). Als de afstand die wordt afgelezen van de sensor "distance_mm" groter is dan de waarde "THRESHOLD_CLOSING_DISTANCE_FAR" of kleiner dan "THRESHOLD_CLOSING_DISTANCE_NEAR", begint de servo te sluiten. In andere gevallen begint het te openen. In het volgende deel van het programma, in de functie "digitalRead(gripperOpenButtonPin)", wordt de toestand van de drukknop constant gecontroleerd en als deze wordt ingedrukt, zal de grijper openen ondanks dat deze gesloten is vanwege de nabijheid van het object (afstand_mm is minder dan THRESHOLD_CLOSING_DISTANCE_NEAR).

Met het tweede programma "Voice_VL53L0X_gripper_control" kunt u de grijper bedienen met spraakopdrachten. De spraakopdrachten worden verwerkt door de BT Voice Control for Arduino-app van Google Play en verder via bluetooth naar Arduino gestuurd. Het Arduino-programma controleert in de hoofdlus - "void loop()" of het nieuwe commando (teken) via Bluetooth vanuit de Android-app is verzonden. Als er een inkomend teken van Bluetooth-serieel is, leest het programma de seriële gegevens totdat het het einde van de gesproken instructie "#" tegenkomt. Daarna start het de uitvoering van de functie "void processInput()" en afhankelijk van het spraakcommando wordt een specifieke besturingsfunctie aangeroepen.

Stap 4: Automatisch grijpen testen

Automatisch grijpen testen
Automatisch grijpen testen
Automatisch grijpen testen
Automatisch grijpen testen

De video van "Step 1" toont tests van robotgrijper op basis van programma uit de vorige sectie "Arduino Mega Code". Deze video laat zien hoe het automatisch opent wanneer het object er dichtbij is en vervolgens dit object grijpt als het binnen het bereik van de grijper is. De feedback van de laserafstandssensor die hier wordt gebruikt, is duidelijk zichtbaar in het verdere deel van de video wanneer ik de fles naar voren en naar achteren beweeg, wat een snelle reactie en verandering van grijperbediening veroorzaakt.

Stap 5: Spraakgestuurd automatisch grijpen

Image
Image
Epilog-uitdaging 9
Epilog-uitdaging 9

In de volgende stap in de ontwikkeling van dit project heb ik er spraakbesturing aan toegevoegd. Dankzij het spraakcommando kan ik het sluiten, openen en de snelheid van de grijper regelen. Spraakbesturing is in dit geval erg handig bij het openen van de grijper die het object vasthoudt. Het vervangt de knop en maakt eenvoudige bediening van de grijper op de mobiele robot mogelijk.

Als je dit project leuk vindt, vergeet dan niet te stemmen en in de reactie te schrijven wat je in de volgende post zou willen zien als een verdere verbetering van dit project:)Bekijk mijn andere projecten met betrekking tot robotica, ga gewoon naar:

  • facebook
  • youtube
  • mijn website

Aanbevolen: