Sommario:
- Passaggio 1: parti
- Fase 2: PROTOTIPAZIONE
- Fase 3: GUANTO
- Passaggio 4: SCATOLA DEL TRASMETTITORE
- Passaggio 5: SCATOLA DI CONTROLLO DEL BRACCIO
- Passaggio 6: ASSEGNAZIONE PIN
- Passaggio 7: COMUNICAZIONE
- Passaggio 8: SCHIZZI e altro…
- Passaggio 9: CHE ALTRO?
- Fase 10: *** ABBIAMO VINTO!!! ***
Video: Agita la tua mano per controllare il braccio robotico OWI Nessun vincolo: 10 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
L'IDEA:
Ci sono almeno altri 4 progetti su Instructables.com (al 13 maggio 2015) sulla modifica o il controllo del braccio robotico OWI. Non sorprende, dal momento che è un kit robotico così grande ed economico con cui giocare. Questo progetto è simile nello spirito (cioè, controlla il braccio robotico con Arduino), ma diverso nell'approccio. [video]
L'idea è quella di essere in grado di controllare il braccio robotico in modalità wireless utilizzando i gesti. Inoltre, ho cercato di ridurre al minimo le modifiche al braccio robotico, in modo che potesse essere ancora utilizzato con il controller originale.
Sembra semplice.
Quello che è finito per essere è un progetto in tre parti:
- Un guanto dotato di sensori sufficienti per controllare un LED e 5 motori
- Un dispositivo trasmettitore basato su Arduino Nano per accettare comandi di controllo dal guanto e inviarlo in modalità wireless al dispositivo controller Arm
- Un ricevitore wireless basato su Arduino Uno e un dispositivo di controllo del motore collegato al braccio robotico OWI
CARATTERISTICHE
- Supporto per tutti i 5 gradi di libertà (DOF) e il LED
- Big Red Button - per fermare immediatamente i motori sul braccio prevenendo danni
- Design modulare portatile
Per gli utenti mobili: il "video promozionale" di questo progetto è su YouTube qui.
Passaggio 1: parti
GUANTO:
Avrai bisogno di quanto segue per costruire un controller per guanti:
- Guanto con cuciture elasticizzate Isotoner Smartouch Tech (o simile) - su Amazon.com
- Sensore Spectra Symboflex 2.2" - su Amazon.com
- GY-521 6DOF MPU6050 Giroscopio a 3 assi + Modulo accelerometro - su Fasttech.com
- INTESTAZIONE SCATOLA 2X5 DIRITTA - su Phoenixent.com
- PRESA-PRESA IDC 2X5 - su Phoenixent.com
- CAVO A NASTRO PIATTO 10 Conduttori Passo.050" - su Phoenixent.com
- 2 LED da 5 mm - verde e giallo
- 2 x piccoli pulsanti
- Resistenze, fili, ago, filo nero, pistola per colla, pistola per saldatura, saldatura, ecc.
SCATOLA DI TRASMISSIONE A FASCIA:
- Scheda Arduino compatibile Nano v3.0 ATmega328P-20AU - su Fasttech.com
- Ricetrasmettitore wireless nRF24L01+ 2,4 GHz compatibile con Arduino - su Amazon.com
- Braccialetto Gymboss - su Amazon.com
- Custodia portabatteria da 9 V con interruttore ON/OFF con cavo a filo - su Amazon.com
- INTESTAZIONE SCATOLA 2X5 DIRITTA - su Phoenixent.com
- batteria 9v
- Condensatore 47uF (50v)
- Resistenze, fili, pistola per colla, pistola per saldatura, saldatura, ecc.
SCATOLA DI CONTROLLO DEL BRACCIO ROBOTIZZATO OWI:
- Scheda di sviluppo Uno R3 Rev3 compatibile con Arduino - su Fasttech.com
- Prototype Shield KIT fai da te per Arduino (o simili) - su Amazon.com
- Ricetrasmettitore wireless nRF24L01+ 2,4 GHz compatibile con Arduino - su Amazon.com
- 3 x L293D driver per motore a circuito integrato a 16 pin a circuito integrato - su Fasttech.com
- 1 x SN74HC595 74HC595 Registro a scorrimento a 8 bit con registri di uscita a 3 stati DIP16 - su Amazon.com
- Condensatore 47uF (50v)
- Scatola per Arduino - su Amazon.com
- Interruttore di accensione/spegnimento
- 2 pulsanti da 13 mm (uno rosso e uno verde)
- 2 x 2X7 BOX HEADER DIRITTO - come sopra su Phoenixent.com
- CAVO A NASTRO PIATTO 14 Conduttore Passo.050" - come sopra su Phoenixent.com
- Batteria 9v + connettore ad innesto
- Resistenze, fili, pistola per colla, pistola per saldatura, saldatura, ecc.
… ed ovviamente:
OWI Robotic Arm Edge - Braccio robotico - OWI-535 - su Adafruit.com
Fase 2: PROTOTIPAZIONE
Suggerisco vivamente di prototipare ciascuno dei dispositivi di controllo prima di saldare tutti i componenti insieme.
Questo progetto utilizza alcuni componenti hardware impegnativi:
nRF24L01
Mi ci è voluto un po' per far parlare i due nRF24. Apparentemente né Nano né Uno forniscono abbastanza potenza stabilizzata a 3,3 V affinché i moduli funzionino in modo coerente. Una soluzione nel mio caso era un condensatore da 47uF sui pin di alimentazione su entrambi i moduli nRF24. Ci sono anche alcune stranezze nell'uso della libreria RF24 in modalità IRQ e non IRQ, quindi consiglio di studiare gli esempi con molta attenzione.
Un paio di ottime risorse:
nRF24L01 Pagina prodotto IC ricetrasmettitore RF a bassissima potenza a 2,4 GHz
Pagina della libreria dei driver RF24
Basta cercare su Google nRF24 + arduino per produrre molti link. Vale la pena fare una ricerca
74HC595 REGISTRO CAMBI
Non a caso, dovendo controllare 5 motori, un LED, due pulsanti e un modulo Wireless, ho esaurito i pin dell'Uno in tempi relativamente brevi. Il modo ben noto per "estendere" il conteggio dei pin è utilizzare un registro a scorrimento. Poiché nRF24 stava già utilizzando l'interfaccia SPI, ho deciso di utilizzare SPI anche per la programmazione del registro a scorrimento (per la velocità e per salvare i pin) invece della funzione shiftout(). Con mia grande sorpresa ha funzionato come un incantesimo dalla prima volta. Puoi verificarlo nell'assegnazione dei pin e negli schizzi.
Breadboard e ponticelli sono tuoi amici.
Fase 3: GUANTO
OWI Robotic ARM ha 6 elementi da controllare (OWI Robotic Arm Edge Picture)
- Un LED situato sulla PINZA del dispositivo
- UNA PINZA
- UN POLSO
- Un GOMITO - è la parte del braccio robotico attaccata al POLSO
- Una SPALLA è la parte del braccio robotico attaccata alla BASE
- UNA BASE
Il guanto è progettato per controllare il LED del braccio robotico e tutti e 5 i motori (gradi di libertà).
Ho singoli sensori contrassegnati sulle immagini e una descrizione di seguito:
- La PINZA è controllata dai pulsanti situati sul dito medio e sul mignolo. La pinza viene chiusa premendo insieme l'indice e il medio. La pinza si apre premendo insieme anello e mignolo.
- Il POLSO è controllato dal resistore flessibile sul cercatore di indice. Arricciare il dito a metà fa abbassare il polso e piegarlo fino in fondo fa alzare il polso. Tenere l'indice dritto ferma il polso.
- Il GOMITO è controllato dall'accelerometro: l'inclinazione del palmo verso l'alto e verso il basso sposta rispettivamente il gomito su e giù
- La SPALLA è controllata dall'accelerometro: inclinando il palmo a destra e a sinistra (non capovolto però!) si sposta la spalla rispettivamente su e giù
- La BASE è controllata anche dall'accelerometro, simile alla spalla: inclinando il palmo a destra e a sinistra completamente capovolto (palmo rivolto verso l'alto) si sposta la base rispettivamente a destra e a sinistra
- Il LED sulla pinza si accende/spegne premendo contemporaneamente entrambi i pulsanti di controllo della pinza.
Tutte le risposte dei pulsanti sono ritardate di 1/4 di secondo per evitare il jitter.
L'assemblaggio del guanto richiede alcune saldature e molte cuciture. Fondamentalmente si tratta solo di collegare 2 pulsanti, resistenza flessibile, modulo Accel/Gyro al tessuto del guanto e instradare i cavi alla scatola dei connettori.
Due LED sulla scatola di connessione sono:
- VERDE - accensione
- GIALLO - lampeggia quando i dati vengono trasmessi alla scatola di controllo del braccio.
Passaggio 4: SCATOLA DEL TRASMETTITORE
La scatola del trasmettitore è essenzialmente Arduino Nano, modulo wireless nRF24, connettore a filo flessibile e 3 resistori: 2 resistori pull-down da 10 kOhm per i pulsanti di controllo della pinza sul guanto e un resistore a divisione di tensione da 20 kOhm per il sensore flessibile che controlla il polso.
Tutto è saldato insieme su una vero-board. Nota che nRF24 è "sospeso" su Nano. Ero preoccupato che questo potesse causare interferenze, ma funziona.
L'uso della batteria da 9 V rende la parte strap-on un po' ingombrante, ma non volevo fare confusione con le batterie LiPo. Forse più tardi.
Si prega di consultare la fase di assegnazione dei pin per le istruzioni di saldatura
Passaggio 5: SCATOLA DI CONTROLLO DEL BRACCIO
La scatola di controllo del braccio è basata su Arduino Uno. Riceve i comandi dal guanto in modalità wireless tramite il modulo nRF24 e controlla l'OWI Robotoc Arm tramite 3 chip driver L293D.
Poiché sono stati utilizzati quasi tutti i pin Uno, ci sono molti fili all'interno della scatola - si chiude a malapena!
In base alla progettazione, la scatola si avvia in modalità OFF (come se si premesse un pulsante redstop), dando all'operatore il tempo di indossare il guanto e prepararsi. Una volta pronto, l'operatore preme il pulsante verde e deve essere immediatamente stabilita la connessione tra il guanto e la scatola di controllo (come indicato dal LED giallo sul guanto e dal LED rosso sulla scatola di controllo).
CONNESSIONE A OWI
La connessione al braccio robotico avviene tramite un connettore a doppia fila a 14 pin (secondo l'immagine sopra) tramite cavo piatto a 14 fili.
- Le connessioni dei LED sono a massa comune (-) e arduino pin A0 tramite resistore da 220 Ohm
- Tutti i cavi del motore sono collegati ai pin L293D 3/6 o 11/14 (+/- rispettivamente). Ogni L293D supporta 2 motori, quindi due coppie di pin.
- Le linee di alimentazione OWI sono i pin più a sinistra (+6v) e più a destra (GND) del connettore a 7 pin sul retro della parte superiore gialla. (Puoi vedere i fili collegati nella foto sopra). Questi due sono collegati ai pin 8 (+) e 4, 5, 12, 13 (GND) su tutti e tre gli L293D.
Si prega di vedere il resto dell'assegnazione dei pin al passaggio successivo
Passaggio 6: ASSEGNAZIONE PIN
NANO:
- 3.3v - 3.3v al chip nRF24L01 (pin 2)
- 5v - 5v alla scheda accelerometro, pulsanti, sensore flessibile
- a0 - ingresso resistore flessibile
- a1 - controllo LED giallo "comms"
- a4 - SDA ad accelerometro
- a5 - SCL per accelerometro
- d02 - Chip nRF24L01 Pin di interruzione (pin 8)
- d03 - ingresso pulsante pinza aperta
- d04 - ingresso pulsante chiusura pinza
- d09 - Pin SPI CSN su chip nRF24L01 (pin 4)
- d10 - Pin CS SPI su chip nRF24L01 (pin 3)
- d11 - SPI MOSI al chip nRF24L01 (pin 6)
- d12 - SPI MISO su chip nRF24L01 (pin 7)
- d13 - SPI SCK su chip nRF24L01 (pin 5)
- Vin - 9v +
- GND - massa comune
ONU:
- 3.3v - 3.3v al chip nRF24L01 (pin 2)
- 5v - 5v ai pulsanti
- Vin - 9v +
- GND - terra comune
- a0 - LED polso +
- a1 - Pin SPI SS per Shift Register Select - al pin 12 su Shift Register
- a2 - Ingresso pulsante ROSSO
- a3 - Ingresso pulsante VERDE
- a4 - direzione base destra - pin 15 su L293D
- a5 - led di comunicazione
- d02 - nRF24L01 Ingresso IRQ (pin 8)
- d03 - abilita servo base (pwm) pin 1 o 9 su L293D
- d04 - direzione base sinistra - pin 10 sul rispettivo L293D
- d05 - abilita servo spalla (pwm) pin 1 o 9 su L293D
- d06 - abilitazione servo gomito (pwm) pin 1 o 9 su L293D
- d07 - Pin SPI CSN su chip nRF24L01 (pin 4)
- d08 - Pin CS SPI su chip nRF24L01 (pin 3)
- d09 - abilita il servo da polso (pwm) pin 1 o 9 su L293D
- d10 - abilita il servo pinza (pwm) pin 1 o 9 su L293D
- d11 - SPI MOSI su chip nRF24L01 (pin 6) e pin 14 su Shift Register
- d12 - SPI MISO su chip nRF24L01 (pin 7)
- d13 - SPI SCK su chip nRF24L01 (pin 5) e pin 11 su Shift Register
REGISTRO CAMBI E L293D:
- pin QA (15) di 74HC595 al pin 2 di L293D #1
- pin QB (1) di 74HC595 al pin 7 di L293D #1
- pin QC (2) di 74HC595 al pin 10 di L293D #1
- pin QD (3) di 74HC595 al pin 15 di L293D #1
- pin QE (4) di 74HC595 al pin 2 di L293D #2
- pin QF (5) di 74HC595 al pin 7 di L293D #2
- pin QG (6) di 74HC595 al pin 10 di L293D #2
- pin QH (7) di 74HC595 al pin 15 di L293D #2
Passaggio 7: COMUNICAZIONE
Glove invia 2 byte di dati alla scatola di controllo 10 volte al secondo o ogni volta che viene ricevuto un segnale da uno dei sensori.
2 byte sono sufficienti per 6 controlli perché dobbiamo solo inviare:
- ON/OFF per LED (1 bit) - In realtà ho usato 2 bit per essere coerente con i motori, ma uno è sufficiente
- OFF/DESTRA/SINISTRA per 5 motori: 2 bit ciascuno = 10 bit
È sufficiente un totale di 11 o 12 bit.
Codici di direzione:
- OFF: 00
- DESTRA: 01
- SINISTRA: 10
La parola di controllo ha questo aspetto (a bit):
Byte 2 ---------------- Byte 1----------------
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 LED-- M5-- M4-- M3-- M2-- M1--
- M1 - pinza
- M2 - polso
- M3 - gomito
- M4 - spalla
- M5 - base
Il byte 1 può essere comodamente inserito direttamente nel registro a scorrimento, poiché controlla la direzione destra/sinistra dei motori da 1 a 4.
Per le comunicazioni è abilitato un timeout di 2 secondi. Se si verifica il timeout, tutti i motori vengono arrestati come se fosse stato premuto un pulsante ROSSO.
Passaggio 8: SCHIZZI e altro…
GUANTO
Lo schizzo del guanto utilizza le seguenti librerie:
- DirectIO - disponibile su Github
- I2Cdev - disponibile su Github
- Wire - parte di Arduino IDE
- MPU6050 - disponibile su Github
- SPI - parte di Arduino IDE
- RF24 - disponibile su Github
e tre librerie sviluppate da me:
- AvgFilter - disponibile su Github
- DhpFilter - disponibile su Github
- TaskScheduler - disponibile su Github
Lo schizzo del guanto è disponibile qui: Schizzo del guanto v1.3
SCATOLA DI CONTROLLO DEL BRACCIO
Lo schizzo del braccio utilizza le seguenti librerie:
- DirectIO - disponibile su Github
- PinChangeInt - disponibile su Github
- SPI - parte di Arduino IDE
- RF24 - disponibile su Github
e una libreria da me sviluppata:
TaskScheduler - disponibile su Github
Lo schizzo del braccio è disponibile qui: Schizzo del braccio v1.3
Schede tecniche dell'hardware utilizzato
- 74HC595 registro a scorrimento - scheda tecnica
- L293D driver motore - scheda tecnica
- Modulo wireless nRF24 - scheda tecnica
- Modulo accelerometro/giroscopio MPU6050 - scheda tecnica
AGGIORNAMENTO 31 maggio 2015:
Una nuova versione degli schizzi della scatola di controllo del guanto e del braccio è disponibile qui: Glove and Arm Sketches v1.5
Si trovano anche su github qui.
I cambiamenti
- Aggiunti altri due byte alla struttura di comunicazione per inviare la velocità motore richiesta per i motori Polso, Gomito, Spalla e Base come valore a 5 bit (0.. 31) dal Guanto proporzionato all'angolo del gesto di controllo (vedi sotto). Arm Control Box mappa i valori [0.. 31] ai rispettivi valori PWM per ciascuno dei motori. Ciò consente un controllo graduale della velocità da parte dell'operatore e una movimentazione più precisa del braccio.
- Nuova serie di gesti:
1. LED: LED di controllo dei pulsanti - pulsante del dito medio - ON, pulsante del mignolo - OFF
2. PINZA: comandi a striscia flessibile Gripper - dito mezzo piegato - APRI, dito completamente piegato - CHIUDI
3. POLSO: il polso viene controllato inclinando il palmo dalla posizione completamente orizzontale rispettivamente SU e GI. Più inclinazione produce più velocità
4. BRACCIO: il braccio viene controllato inclinando il palmo dalla posizione completamente orizzontale SINISTRA e DESTRA. Più inclinazione produce più velocità
5. SPALLA: la spalla viene controllata ruotando il palmo a DESTRA ea SINISTRA dalla posizione del palmo rivolto verso l'alto. Il palmo viene ruotato lungo l'asse del gomito (così come agitare la mano)
6. BASE: La base è controllata allo stesso modo della spalla con il palmo rivolto verso il basso.
Passaggio 9: CHE ALTRO?
L'IMMAGINAZIONE AL LAVORO
Come al solito con tali sistemi, potrebbero essere programmati per fare molto di più.
Ad esempio, il design attuale incorpora già funzionalità aggiuntive, non possibili con il telecomando standard:
- Aumento graduale della velocità: ogni movimento del motore viene avviato ad una velocità minima predefinita, che viene aumentata gradualmente ogni 1 secondo fino al raggiungimento della velocità massima. Ciò consente un controllo più preciso di ciascuno dei motori (in particolare il polso e la pinza)
- Cancellazione del movimento più rapida: quando l'Arm Box riceve il comando di fermare un motore, inverte momentaneamente il motore per circa 50 ms, "interrompendo" il movimento e consentendo un controllo più preciso.
COS'ALTRO?
Forse si potrebbero implementare gesti di controllo più elaborati. Oppure i gesti simultanei potrebbero essere usati per controlli elaborati. Il braccio può ballare?
Se hai un'idea su come riprogrammare il guanto o hai una versione di uno schizzo che vuoi che provi, per favore fammelo sapere: [email protected]
Fase 10: *** ABBIAMO VINTO!!! ***
Questo progetto ha vinto il Primo Premio al concorso Coded Creations sponsorizzato da Microsoft.
Controlla! WOO-HOO!!!
Secondo Premio nelle Creazioni Codificate
Consigliato:
Come controllare un braccio robotico di grandi dimensioni ad alta potenza 4dof con telecomando Arduino e Ps2?: 4 passaggi
Come controllare un braccio robotico di grandi dimensioni ad alta potenza 4dof con telecomando Arduino e Ps2?: questo kit utilizza un motore ad alta potenza mg996, ha bisogno di alta corrente, abbiamo testato un sacco di potenza assorbita. Funzionerà solo l'adattatore 5v 6a. arduino board funziona anche su 6dof robot arm.end:write buy SINONING Un negozio di giocattoli fai da te
Pinza per braccio robotico: 3 passaggi (con immagini)
Pinza per braccio robotico: questa pinza robotica realizzata con stampante 3D può essere controllata con due servi economici (MG90 o SG90). Abbiamo usato lo scudo cerebrale (+Arduino) per controllare il morsetto e l'APP di controllo jjRobots per spostare tutto a distanza tramite WIFI ma puoi usare qualsiasi
Braccio robotico per ghiaccioli: 17 passaggi (con immagini)
Braccio robotico per ghiaccioli: ecco come costruire un semplice braccio robotico con una pinza usando i bastoncini per ghiaccioli, un Arduino e alcuni servi
Un semplice braccio robotico controllato sul movimento effettivo della mano: 7 passaggi (con immagini)
Un semplice braccio robotico controllato sul movimento effettivo della mano: questo è un braccio robotico DOF molto semplice per principianti. Il braccio è controllato da Arduino. È collegato a un sensore fissato sulla mano dell'operatore. Pertanto l'operatore può controllare il gomito del braccio piegando il proprio movimento del gomito. Al
Usa Cortana e un Arduino per controllare LED RGB o Ledstrips con la tua voce!: 4 passaggi (con immagini)
Usa Cortana e un Arduino per controllare LED RGB o Ledstrip con la tua voce!: In questo tutorial ti mostrerò come controllare il tuo led RGB o la striscia led con la tua voce. Questo viene fatto dall'app CoRGB che è disponibile gratuitamente nell'app store di Windows. Questa app fa parte del mio progetto CortanaRoom. Quando hai finito di scherzare