Turinys:
- 1 žingsnis: dalių sąrašas
- 2 žingsnis: Elektroninių dalių prijungimas
- 3 žingsnis: „Arduino“mega kodas
- 4 žingsnis: išbandykite automatinį sukibimą
- 5 veiksmas: automatinis sugriebimas balsu
Video: Automatinis sugriebimas naudojant lazerio jutiklį ir balso komandas: 5 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Patraukti daiktus, kurie mums atrodo paprasti ir natūralūs dalykai, iš tikrųjų yra sudėtinga užduotis. Žmogus regėjimo pojūčiu nustato atstumą nuo objekto, kurį nori patraukti. Ranka automatiškai atsidaro, kai ji yra arti sugriebto objekto, tada greitai užsidaro, kad gerai sugriebtų objektą. Aš naudoju šią techniką supaprastintai šiame mini projekte, tačiau vietoj fotoaparato aš naudoju lazerio jutiklį, norėdamas įvertinti objekto atstumą nuo griebtuvo ir balso komandas valdymui.
1 žingsnis: dalių sąrašas
Šiame mažame projekte jums reikės tik kelių toliau išvardytų dalių. Kaip valdiklis naudojau „Arduino mega 2560“, bet taip pat galite naudoti UNO ar bet kurį kitą „Arduino“. Kaip atstumo jutiklį aš naudoju VL53L0X lazerinį jutiklį, kuris turi gerą tikslumą (apie kelis milimetrus) ir veikia iki 2 metrų. Šiame projekte galite naudoti bet kurio griebtuvo ir servo testavimą, tačiau maitinkite jį iš atskiro maitinimo šaltinio, pvz., 5 V maitinimo šaltinio arba „LiPo“baterijos (7,4 V arba 11,1 V) per pakopinį keitiklį, kuris sumažina įtampą iki 5V.
Šiam projektui reikalingos dalys:
- VL53L0X lazerinis ToF jutiklis x1
- Skaitmeninis servo x1
- Arduino mega 2560 x1
- Roboto metalinis griebtuvas x1
- Duonos lenta x1
- Liečiamas mygtukas x1
- „Bluetooth“HC-06
- Rezistorius 10k x1
- Maitinimas 5V/2A
Prailginta versija:
- CJMCU-219 srovės monitoriaus jutiklio modulis x1
-
WS2812 RGB LED tvarkyklių kūrimo lenta x1
2 žingsnis: Elektroninių dalių prijungimas
Pirmajame paveikslėlyje parodyta visa reikalinga jungtis. Šiose nuotraukose galite pamatyti tolesnius atskirų modulių prijungimo veiksmus. Iš pradžių mygtukas buvo prijungtas prie „Arduino“2 kaiščio, tada servo prie 3 kaiščio ir galiausiai VL53L0X lazerio atstumo jutiklis per I2C magistralę (SDA, SCL).
Elektroninių modulių jungtys yra šios:
VL53L0X lazerinis jutiklis -> Arduino Mega 2560
- SDA - SDA
- SCL - SCL
- VCC - 5V
- GND - GND
Servo -> Arduino Mega 2560
Signalas (oranžinė viela) - 3
Servo -> 5V/2A maitinimo šaltinis
- GND (ruda viela) - GND
- VCC (raudona viela) - 5V
Mygtukas -> Arduino Mega 2560
- 1 kaištis - 3,3 arba 5V
- 2 - 2 kaištis (ir per 10 000 rezistorių į žemę)
„Bluetooth“(HC -06) -> „Arduino Mega 2560“
- TXD - TX1 (19)
- RXD - RX1 (18)
- VCC - 5V
- GND - GND
3 žingsnis: „Arduino“mega kodas
Aš paruošiau tokį „Arduino“programų pavyzdį, kurį galima rasti „GitHub“:
- VL53L0X_gripper_control
- „Voice_VL53L0X_gripper_control“
Pirmoji programa pavadinimu „VL53L0X_gripper_control“atlieka užduotį automatiškai sugriebti objektą, kurį aptiko lazerinis jutiklis VL53L0X. Prieš sudarydami ir įkeldami pavyzdinę programą, įsitikinkite, kad pasirinkote „Arduino Mega 2560“kaip tikslinę platformą, kaip parodyta aukščiau („Arduino IDE“-> Įrankiai -> Lenta -> „Arduino Mega“arba „Mega 2560“). „Arduino“programa tikrina pagrindinę kilpą - „void loop ()“, ar atėjo naujas lazerio jutiklio rodmuo (funkcija readRangeContinuousMillimeters ()). Jei atstumas, nuskaitytas iš jutiklio „distance_mm“, yra didesnis už vertę „THRESHOLD_CLOSING_DISTANCE_FAR“arba mažesnis nei „THRESHOLD_CLOSING_DISTANCE_NEAR“, tada servo sistema užsidaro. Kitais atvejais jis pradeda atsidaryti. Kitoje programos dalyje, funkcijoje „digitalRead (gripperOpenButtonPin)“, mygtuko būsena yra nuolat kontroliuojama ir, jei jis bus paspaustas, griebtuvas atsidarys, nepaisant to, kad jis yra uždarytas dėl objekto artumo. (atstumas_ mm yra mažesnis nei THRESHOLD_CLOSING_DISTANCE_NEAR).
Antroji programa „Voice_VL53L0X_gripper_control“leidžia valdyti griebtuvą naudojant balso komandas. Balso komandos apdorojamos „BT Voice Control for Arduino“programoje iš „Google Play“ir toliau siunčiamos „Bluetooth“ryšiu į „Arduino“. „Arduino“programa tikrina pagrindinę kilpą - „void loop ()“, ar nauja komanda (simbolis) buvo išsiųsta iš „Android“programos per „Bluetooth“. Jei iš „Bluetooth“serijos įeina koks nors simbolis, programa skaito serijos duomenis, kol pasibaigs balso instrukcija „#“. Tada jis pradeda vykdyti funkciją „void processInput ()“ir, priklausomai nuo balso komandos, iškviečiama tam tikra valdymo funkcija.
4 žingsnis: išbandykite automatinį sukibimą
Vaizdo įraše iš „1 veiksmo“rodomi roboto griebtuvo bandymai, pagrįsti programa iš ankstesnio skyriaus „Arduino Mega Code“. Šiame vaizdo įraše parodyta, kaip jis automatiškai atsidaro, kai objektas yra arti jo, ir tada sugriebia šį objektą, jei jis yra ranka pasiekiamoje vietoje. Čia naudojamo lazerio atstumo jutiklio grįžtamasis ryšys yra aiškiai matomas tolesnėje vaizdo įrašo dalyje, kai stumiu buteliuką į priekį ir atgal, dėl ko greitai reaguojama ir keičiamas griebtuvo valdymas.
5 veiksmas: automatinis sugriebimas balsu
Kitame šio projekto kūrimo žingsnyje aš pridėjau prie jo valdymą balsu. Balso komandos dėka galiu valdyti griebtuvo uždarymą, atidarymą ir greitį. Valdymas balsu šiuo atveju yra labai naudingas atidarant griebtuvą, laikantį objektą. Jis pakeičia mygtuką ir leidžia lengvai valdyti griebtuvą, sumontuotą ant mobiliojo roboto.
Jei jums patinka šis projektas, nepamirškite balsuoti ir komentaruose parašyti, ką norėtumėte matyti kitame įraše, kaip tolesnį šio projekto tobulinimą:) Peržiūrėkite kitus mano projektus, susijusius su robotika, tiesiog apsilankykite:
- youtube
- mano svetainė
Rekomenduojamas:
Automatinis aušinimo ventiliatorius naudojant „Servo“ir DHT11 temperatūros ir drėgmės jutiklį su „Arduino“: 8 žingsniai
Automatinis aušinimo ventiliatorius naudojant „Servo“ir DHT11 temperatūros ir drėgmės jutiklį su „Arduino“: šioje pamokoje sužinosime, kaip pradėti & pasukite ventiliatorių, kai temperatūra pakyla virš tam tikro lygio
Automatinis temperatūros matavimas ir balso pranešimas: 5 žingsniai (su nuotraukomis)
Automatinis temperatūros matavimas ir balso pranešimas: pastaruoju metu visas pasaulis kovoja su virusu Covid19. Pirmiausia tikrinant, ar nėra paveiktų žmonių (ar įtariama, kad tai buvo padaryta), matuojama kūno temperatūra. Taigi šis projektas sukurtas pagal modelį, kuris gali automatiškai išmatuoti kūno temperatūrą ir informuoti
„Visuino“- perimetro apsauga naudojant lazerio detektorių naudojant „Arduino“: 7 žingsniai
„Visuino“- perimetro apsauga naudojant lazerio detektorių naudojant „Arduino“: Šioje pamokoje mes naudosime foto rezistorių modulį, lazerio modulį, LED, garsinį signalą, „Arduino Uno“ir „Visuino“, kad nustatytume, kada buvo nutrauktas lazerio spindulys. Žiūrėkite demonstracinį vaizdo įrašą. Pastaba: fotorezistoriai yra vieni populiariausių apšvietimo lygių
Įrenginių valdymas naudojant balso komandą naudojant „NodeMCU“: 7 žingsniai (su paveikslėliais)
Įrenginių valdymas naudojant balso komandą naudojant „NodeMCU“: Aš tiesiog noriu visiems pasisveikinti, tai pirmas kartas, kai rašau pamokomą projektą. Anglų kalba nėra mano gimtoji kalba, todėl stengsiuosi kuo trumpiau ir aiškiau. Įrenginių valdymas balso komandomis nėra keistas dalykas
„Arduino“vandens lygio nustatymo metodai naudojant ultragarso jutiklį ir „Funduino“vandens jutiklį: 4 žingsniai
Vandens lygio nustatymo „Arduino“metodai naudojant ultragarso jutiklį ir „Funduino“vandens jutiklį: Šiame projekte parodysiu, kaip sukurti nebrangų vandens detektorių dviem būdais: 1. Ultragarsinis jutiklis (HC-SR04) .2. Funduino vandens jutiklis