Sommario:

Presa automatica utilizzando un sensore laser e comandi vocali: 5 passaggi (con immagini)
Presa automatica utilizzando un sensore laser e comandi vocali: 5 passaggi (con immagini)

Video: Presa automatica utilizzando un sensore laser e comandi vocali: 5 passaggi (con immagini)

Video: Presa automatica utilizzando un sensore laser e comandi vocali: 5 passaggi (con immagini)
Video: UNA GIOSTRA SI STACCA A ROMA! 2024, Luglio
Anonim
Image
Image
L'elenco delle parti
L'elenco delle parti

Afferrare oggetti che ci sembrano cosa semplice e naturale da fare è in realtà un compito complesso. L'uomo usa il senso della vista per determinare la distanza dall'oggetto che vuole afferrare. La mano si apre automaticamente quando si trova nelle immediate vicinanze dell'oggetto da afferrare e poi si chiude rapidamente per afferrare bene l'oggetto. Ho utilizzato questa tecnica in modo semplificato in questo mini progetto, ma al posto della fotocamera ho utilizzato un sensore laser per stimare la distanza dell'oggetto dalla pinza e dei comandi vocali per il controllo.

Passaggio 1: l'elenco delle parti

L'elenco delle parti
L'elenco delle parti

In questo piccolo progetto avrai bisogno solo di alcune delle parti elencate di seguito. Come controller ho usato Arduino mega 2560 ma puoi anche usare UNO o qualsiasi altro Arduino. Come sensore di distanza ho utilizzato un sensore laser VL53L0X che ha una buona precisione (circa qualche millimetro) e una portata fino a 2 metri. In questo progetto puoi usare per testare qualsiasi pinza e servo ma dovresti alimentarlo da una fonte di alimentazione separata, ad esempio: un alimentatore 5V o una batteria LiPo (7,4V o 11,1V) attraverso un convertitore step-down che riduce la tensione a 5V.

Parti necessarie in questo progetto:

  • VL53L0X Sensore ToF laser x1
  • Servo digitale x1
  • Arduino mega 2560 x1
  • Pinza robot in metallo x1
  • Tagliere x1
  • Pulsante tattile x1
  • Bluetooth HC-06
  • Resistenza 10k x1
  • Alimentazione 5V/2A

Versione estesa:

  1. Modulo sensore monitoraggio corrente CJMCU-219 x1
  2. Scheda di sviluppo driver LED RGB WS2812 x1

Passaggio 2: collegamento delle parti elettroniche

Collegamento di parti elettroniche
Collegamento di parti elettroniche
Collegamento di parti elettroniche
Collegamento di parti elettroniche
Collegamento di parti elettroniche
Collegamento di parti elettroniche

La prima figura mostra tutte le connessioni necessarie. Nelle foto seguenti è possibile vedere i prossimi passaggi di collegamento dei singoli moduli. All'inizio, il pulsante era collegato al pin 2 di Arduino, quindi il servo al pin 3 e infine il sensore di distanza laser VL53L0X tramite bus I2C (SDA, SCL).

Le connessioni dei moduli elettronici sono le seguenti:

Sensore laser VL53L0X -> Arduino Mega 2560

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

Servo -> Arduino Mega 2560

Segnale (filo arancione) - 3

Servo -> Alimentazione 5V/2A

  • GND (filo marrone) - GND
  • VCC (filo rosso) - 5V

Pulsante -> Arduino Mega 2560

  • Pin 1 - 3.3 o 5V
  • Pin 2 - 2 (e attraverso il resistore da 10k a terra)

Bluetooth (HC-06) -> Arduino Mega 2560

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

Passaggio 3: codice mega Arduino

Arduino Mega Code
Arduino Mega Code

Ho preparato i seguenti programmi Arduino di esempio disponibili sul mio GitHub:

  • VL53L0X_gripper_control
  • Voice_VL53L0X_gripper_control

Il primo programma denominato "VL53L0X_gripper_control" svolge il compito di presa automatica di un oggetto che è stato rilevato dal sensore laser VL53L0X. Prima di compilare e caricare il programma di esempio, assicurati di aver scelto "Arduino Mega 2560" come piattaforma di destinazione come mostrato sopra (Arduino IDE -> Strumenti -> Scheda -> Arduino Mega o Mega 2560). Il programma Arduino controlla nel ciclo principale - "void loop()" se è arrivata la nuova lettura dal sensore laser (funzione readRangeContinuousMillimeters()). Se la distanza letta dal sensore "distanza_mm" è maggiore del valore "THRESHOLD_CLOSING_DISTANCE_FAR" o minore di "THRESHOLD_CLOSING_DISTANCE_NEAR" allora il servo inizia a chiudersi. In altri casi, inizia ad aprirsi. Nella parte successiva del programma, nella funzione "digitalRead(gripperOpenButtonPin)", lo stato del pulsante viene costantemente controllato e se viene premuto la pinza si aprirà nonostante sia chiusa per la vicinanza dell'oggetto (distanza_mm è inferiore a THRESHOLD_CLOSING_DISTANCE_NEAR).

Il secondo programma "Voice_VL53L0X_gripper_control" permette di controllare la pinza tramite comandi vocali. I comandi vocali vengono elaborati dall'app BT Voice Control per Arduino da Google Play e ulteriormente inviati tramite bluetooth ad Arduino. Il programma Arduino controlla nel ciclo principale - "void loop()" se il nuovo comando (carattere) è stato inviato dall'app Android tramite bluetooth. Se c'è un carattere in arrivo dalla seriale bluetooth, il programma legge i dati seriali fino a quando non incontra la fine dell'istruzione vocale "#". Quindi avvia l'esecuzione della funzione "void processInput() " e in base al comando vocale viene chiamata una specifica funzione di controllo.

Passaggio 4: test della presa automatica

Prova della presa automatica
Prova della presa automatica
Prova della presa automatica
Prova della presa automatica

Il video di "Step 1" mostra i test della pinza robot basata sul programma della sezione precedente "Arduino Mega Code". Questo video mostra come si apre automaticamente quando l'oggetto è vicino e poi afferra questo oggetto se è a portata di mano della pinza. Il feedback dal sensore di distanza laser utilizzato qui è chiaramente visibile nella parte successiva del video quando sposto la bottiglia avanti e indietro, cosa che provoca una reazione rapida e un cambio di controllo della pinza.

Passaggio 5: presa automatica ad attivazione vocale

Image
Image
Sfida Epilogo 9
Sfida Epilogo 9

Nella fase successiva dello sviluppo di questo progetto, ho aggiunto il controllo vocale. Grazie al comando vocale posso controllare la chiusura, l'apertura e la velocità della pinza. Il controllo vocale in questo caso è molto utile quando si apre la pinza che tiene l'oggetto. Sostituisce il pulsante e permette un facile controllo della pinza posta sul robot mobile.

Se ti piace questo progetto non dimenticare di votare e scrivere nel commento cosa vorresti vedere nel prossimo post come ulteriore miglioramento di questo progetto:) Dai un'occhiata ai miei altri progetti relativi alla robotica, visita:

  • Youtube
  • il mio sito web

Consigliato: