Cuprins:

Prindere automată folosind un senzor laser și comenzi vocale: 5 pași (cu imagini)
Prindere automată folosind un senzor laser și comenzi vocale: 5 pași (cu imagini)

Video: Prindere automată folosind un senzor laser și comenzi vocale: 5 pași (cu imagini)

Video: Prindere automată folosind un senzor laser și comenzi vocale: 5 pași (cu imagini)
Video: TUTORIAL: cum accesezi meniul ascuns / secret la VW Passat B7 (2010 - 2015) 2024, Decembrie
Anonim
Image
Image
Lista pieselor
Lista pieselor

Înțelegerea obiectelor care ni se par simple și naturale este de fapt o sarcină complexă. Omul folosește simțul vederii pentru a determina distanța față de obiectul pe care vrea să-l apuce. Mâna se deschide automat când se află în imediata apropiere a obiectului care se prinde și apoi se închide rapid pentru a prinde bine obiectul. Am folosit această tehnică într-un mod simplificat în acest mini proiect, dar în locul camerei am folosit un senzor laser pentru a estima distanța obiectului de la priză și comenzile vocale pentru control.

Pasul 1: Lista pieselor

Lista pieselor
Lista pieselor

În acest mic proiect veți avea nevoie doar de câteva dintre părțile enumerate mai jos. Ca controller am folosit Arduino mega 2560 dar puteți folosi și UNO sau orice alt Arduino. Ca senzor de distanță, am folosit un senzor laser VL53L0X care are o precizie bună (aproximativ câțiva milimetri) și poate ajunge până la 2 metri. În acest proiect, puteți utiliza pentru testarea oricărui gripper și servo, dar ar trebui să-l alimentați de la o sursă de alimentare separată, de exemplu: o sursă de alimentare de 5V sau o baterie LiPo (7,4V sau 11,1V) printr-un convertor redus care reduce tensiunea la 5V.

Piese necesare în acest proiect:

  • VL53L0X Laser ToF Senzor x1
  • Servo digital x1
  • Arduino mega 2560 x1
  • Robot metal gripper x1
  • Pânză x1
  • Buton tactil x1
  • Bluetooth HC-06
  • Rezistor 10k x1
  • Alimentare 5V / 2A

Versiunea extinsa:

  1. CJMCU-219 Modul senzor monitor curent x1
  2. WS2812 RGB LED Driver Development Board x1

Pasul 2: Conexiunea pieselor electronice

Conexiunea pieselor electronice
Conexiunea pieselor electronice
Conexiunea pieselor electronice
Conexiunea pieselor electronice
Conexiunea pieselor electronice
Conexiunea pieselor electronice

Prima figură arată toate conexiunile necesare. Pe următoarele fotografii puteți vedea următorii pași de conectare a modulelor individuale. La început, butonul a fost conectat la pinul 2 al Arduino, apoi servo la pinul 3 și, în final, senzorul de distanță laser VL53L0X prin magistrala I2C (SDA, SCL).

Conexiunile modulelor electronice sunt următoarele:

Senzor laser VL53L0X -> Arduino Mega 2560

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

Servo -> Arduino Mega 2560

Semnal (fir portocaliu) - 3

Servo -> Alimentare 5V / 2A

  • GND (sârmă maro) - GND
  • VCC (fir roșu) - 5V

Buton -> Arduino Mega 2560

  • Pinul 1 - 3,3 sau 5V
  • Pinul 2 - 2 (și prin rezistorul de 10k la masă)

Bluetooth (HC-06) -> Arduino Mega 2560

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

Pasul 3: Arduino Mega Code

Arduino Mega Code
Arduino Mega Code

Am pregătit următoarele exemple de programe Arduino disponibile la GitHub:

  • VL53L0X_gripper_control
  • Voice_VL53L0X_gripper_control

Primul program numit "VL53L0X_gripper_control" îndeplinește sarcina de prindere automată a unui obiect care a fost detectat de senzorul laser VL53L0X. Înainte de a compila și încărca programul eșantion, asigurați-vă că ați ales „Arduino Mega 2560” ca platformă țintă așa cum se arată mai sus (Arduino IDE -> Instrumente -> Placă -> Arduino Mega sau Mega 2560). Programul Arduino verifică în bucla principală - „void loop ()” dacă a venit noua citire de la senzorul laser (funcția readRangeContinuousMillimeters ()). Dacă distanța citită de la senzor „distance_mm” este mai mare decât valoarea „THRESHOLD_CLOSING_DISTANCE_FAR” sau mai mică decât „THRESHOLD_CLOSING_DISTANCE_NEAR”, atunci servo-ul începe să se închidă. În alte cazuri, începe să se deschidă. În următoarea parte a programului, în funcția „DigitalRead (gripperOpenButtonPin)”, starea butonului este controlată constant și, dacă este apăsat, gripper-ul se va deschide în ciuda faptului că este închis datorită proximității obiectului (distance_mm este mai mic decât THRESHOLD_CLOSING_DISTANCE_NEAR).

Al doilea program „Voice_VL53L0X_gripper_control” vă permite să controlați gripperul utilizând comenzi vocale. Comenzile vocale sunt procesate de aplicația BT Voice Control pentru Arduino de pe Google Play și trimise ulterior prin Bluetooth către Arduino. Programul Arduino verifică în bucla principală - „void loop ()” dacă noua comandă (caracter) a fost trimisă din aplicația Android prin Bluetooth. Dacă există vreun caracter de intrare din seria Bluetooth, programul citește datele seriale până când întâlnește sfârșitul instrucțiunii vocale „#”. Apoi începe executarea funcției "void processInput ()" și în funcție de comanda vocală se numește o funcție de control specifică.

Pasul 4: Testarea prinderii automate

Testarea prinderii automate
Testarea prinderii automate
Testarea prinderii automate
Testarea prinderii automate

Videoclipul din „Pasul 1” prezintă teste ale robotului de prindere pe baza programului din secțiunea anterioară „Arduino Mega Code”. Acest videoclip arată cum se deschide automat atunci când obiectul este aproape de el și apoi apucă acest obiect dacă este la îndemâna dispozitivului de prindere. Feedback-ul de la senzorul de distanță laser utilizat aici este clar vizibil în partea ulterioară a videoclipului atunci când mișc sticla înainte și înapoi ceea ce provoacă o reacție rapidă și schimbarea controlului gripperului.

Pasul 5: prindere automată activată prin voce

Image
Image
Epilog Challenge 9
Epilog Challenge 9

În următorul pas al dezvoltării acestui proiect, i-am adăugat control vocal. Datorită comenzii vocale, pot controla închiderea, deschiderea și viteza prizei. Controlul vocal în acest caz este foarte util atunci când deschideți mânerul care ține obiectul. Acesta înlocuiește butonul și permite controlul ușor al dispozitivului de prindere plasat pe robotul mobil.

Dacă vă place acest proiect, nu uitați să votați și să scrieți în comentariu ce ați dori să vedeți în următoarea postare ca o îmbunătățire suplimentară a acestui proiect:) Verificați celelalte proiecte legate de robotică, vizitați doar:

  • youtube
  • site-ul meu

Recomandat: