In questo tutorial costruiremo un robot a sei zampe con Arduino Uno, controllato da un qualsiasi telecomando IR (ad esempio un telecomando di un vecchio TV ), il progetto è del maker DmitryDzz , semplice ma progettato in modo geniale, da un lato non è necessario disporre di parti complicate o particolari abilità per farlo e dall'altro è una vera piattaforma robotica mobile, occorre solo un minimo di manualità e qualche attrezzo.
Ringo ragnetto è un vero robot e naturalmente ha un programma. Ma questo programma è già completato e lo puoi scaricare in formato ZIP qui. Questo è un progetto opensource e puoi modificarlo come desideri, può essere un punto di partenza per imparare la programmazione.
1: Preparazione
Di quali parti abbiamo bisogno per rendere Ringo?
Portabatterie per una batteria da 9V (73x40x20 circa) Questa è il corpo portante del robot.
Batteria alcalina o ricaricabile da 9 V oppure accumulatore da 7,2 V - 8,4 V.
Tre piccoli servo motori analogici. Ho usato SG90 ma puoi prendere qualsiasi servo della stessa dimensione e tensione 5V.
Un ricevitore a infrarossi (IR). La maggior parte dei telecomandi IR funziona su 36kHz, 38kHz o 40kHz. Ad esempio, ho usato il ricevitore IR TSOP2136 (36kHz) con il telecomando IR LG di un TV in disuso. E tutto ha funzionato bene. Quindi per la maggior parte dei telecomandi IR è possibile utilizzare questi ricevitori: TSOP21xx, TSOP22xx, TSOP312xx dove "xx" è 36, 38 o 40.
Bradboard di dimensioni mini . Oppure puoi prenderne una grande. In ogni caso, la taglieremo.
Filo di acciaio per gambe. Diametro 1,5 - 2 mm (0,06 "- 0,08").
Graffette di metallo comuni diametro del filo dovrebbe essere di circa 0,9 mm. (oppure Strip line 10 PIN)
Deviatore a slitta da pannello 1 via
Telecomando TV
Cavetti jumper
E questi sono gli attrezzi di cui abbiamo bisogno per Ringo ragnetto
Pistola per colla a caldo con stick di colla.
Seghetto.
Lima piatta.
Pinza piatta.
Tronchesina.
Piccolo saldatore a stagno.
2: Imparare a comunicare con IR Remote
Vediamo come possiamo ricevere i codici dal telecomando IR. L'obiettivo è ottenere e annotare i codici segnale del telecomando che vuoi usare. Ci serviranno più tardi nello script di Ringo ragnetto. Prendi un Arduino Uno, una breadboard (le dimensioni non sono importanti in questo passaggio), i cavi di collegamento jumper e un ricevitore IR, crea un circuito che vedi in figura sotto. ATTENZIONE! Questo circuito è realizzato per il diodo ricevitore IR VS1838, il tuo può essere diverso. Controlla prima la scheda tecnica del tuo IR ricevitore per la disposizione dei piedini.
Avvia Arduino IDE e apri il progetto /ir_receiver/ir_receiver.ino che trovi nel file ZIP precedentemente scaricato.
Dai un'occhiata al codice, la prima riga di codice è #include "IRremote.h".
Ciò significa che lo sketch utilizza una libreria speciale IRremote.h che implementa la funzionalità di ricezione e invio segnali IR. Questa libreria non fa parte dell'IDE di Arduino e dobbiamo installarla. È un progetto aperto con licenza GNU la trovi qui in modo che possiamo usarlo per Ringo ragnetto. Scarica il file ZIP e installa la libreria nella cartella Libraries del tuo IDE. Non dimenticare di riavviare Arduino IDE e riaprire ir_receiver.ino.
Ora siamo pronti per caricare lo script. Collega il tuo computer e Arduino Uno tramite cavo USB. Controllare la voce di menu Strumenti → scheda in IDE Arduino. Dovrebbe essere impostato su "Arduino Uno". Quindi selezionare la voce di menu Strumenti → Porta seriale. Dovrebbe essere impostato sulla porta a cui è collegato il controller. Compilare e caricare lo schizzo (File → Upload). Quindi aprire Serial Monitor (Strumenti → Monitor seriale) e controllare la velocità di trasmissione. Impostalo su 9600. Prendi un telecomando IR e inizia a premere i pulsanti. Tutto funziona correttamente se vedi i codici nel monitor seriale. Questi codici come ho detto li useremo nello script che controlla il robot. Alcuni telecomandi utilizzano protocolli diversi di comunicazione. Quindi i codici e le sequenze possono differire a seconda del telecomando IR usato. Quando si preme un pulsante, è possibile vedere diversi codici che appaiono nella finestra Monitor seriale. Alcuni di essi si ripetono, altri sono unici. Abbiamo bisogno solo di questi codici unici. E ignoriamo i codici che si ripetono, nel mio caso con un telecomando LG il codice utile è il primo , seguono altri due codici che si ripetono anche premendo pulsanti diversi del telecomando.
Alcuni fornitori utilizzano protocolli in cui è presente un codice univoco per ciascun pulsante. Altri fornitori utilizzano protocolli con due codici univoci interlacciati per un singolo pulsante. Intendo dire che quando si preme il pulsante per la prima volta si ottiene un codice, quando lo si preme per la seconda volta si ottiene un altro codice. Quindi quando lo preme per la terza volta ottieni di nuovo il primo codice. E così via. Il nostro robot può eseguire 13 comandi:
Andare avanti
Tornare indietro.
Gira a sinistra.
Girare a destra.
Andare avanti con svolta a sinistra.
Andare avanti con svolta a destra.
Sposta indietro con la svolta a sinistra.
Torna indietro con la svolta a destra.
Stop.
Imposta la 1a velocità (la più lenta).
Imposta la 2a velocità.
Imposta la 3a velocità.
Imposta la quarta velocità (la più veloce).
Seleziona i pulsanti sul telecomando IR per questi comandi. Ho usato i pulsanti 1-9 per i primi nove comandi e i pulsanti colorati (rosso, verde, giallo e blu) per gli ultimi quattro. Ora premi ogni pulsante più volte e scrivi tutti i codici univoci sulla tabella con due colonne: pulsante e codici. Utilizzerai questi codici nello script che controlla il robot.
3: Assemblare un prototipo
Consiglio vivamente di controllare lo script del robot e tutti i componenti hardware prima di iniziare il montaggio. Dai un'occhiata all'immagine.
Potete vedere che ho usato solo una piccola area di breadboard - nel montaggio finale useremo una parte 5x14 pin. Questa è la dimensione della breadboard che monteremo sul robot. Apri lo script ir_ringoragnetto.ino nell'IDE di Arduino, vedete che ci sono due schede nella finestra dell'editor: "ir_ringoragnetto" e "ir_command_codes.h". Lo script è diviso in due parti: il codice comune e le costanti dei codici IR personali. Prima di iniziare a caricare lo script, modifica i miei codici IR con i tuoi ricavati dal tuo telecomando. Li hai salvati in una tabella nel passaggio precedente.
Vedi in figura dove devi inserire i tuoi codici in base al numero del tasto 1,2,3,4 ecc. , i 4 numeri finali 40,43,26,27 sono riferiti ai tasti colorati rosso/verde/giallo/blu :
Dopo aver modificato i codici, è possibile caricare lo script sul controller. Quando lo script inizia tutti i servi si spostano nella posizione di 90°.
Assicurati che il filo rosso (positivo) sia nel pin "Vin" e l'altro filo (negativo) sia nel pin "GND" del controller. Accendere l'interruttore di alimentazione sul supporto della batteria ed eseguire il test.
Ora testiamo il nostro prototipo. Premere il tasto "avanti" sul telecomando IR. Vedrete che tutti e tre i servo hanno iniziato il processo oscillante attorno alla posizione di 90°. Premere i pulsanti colorati e verificare che il periodo di processo oscillante cambi. Impostare la velocità bassa e premere "indietro". Vedrai che il servo centrale ha cambiato la sua fase.
5: montaggio di Arduino Uno e porta pile
Per prima cosa fissiamo il deviatore a slitta sul porta pile nella parte posteriore, con un piccolo trapano a pile crea i fori per l'alloggio, occorreranno due piccole viti per il fissaggio, quindi un foro nel lato opposto per l'uscita dei cavetti della pila.
La parte portante del robot è la scatola porta batteria su cui monteremo: Arduino uno, servo motori e una piccola breadboard. La prima cosa da fare è fissare Arduino uno, la soluzione originale nel progetto di DmitryDzz è di usare una graffetta e creare una struttura molto semplice come si può vedere dalla figura, stampa il PDF che trovi nel file ZIP. Sul foglio puoi trovare le linee in scala . Prendi un righello e controlla la lunghezza delle linee. Se la lunghezza è sbagliata, prova a correggere le impostazioni nel tuo visualizzatore di PDF o della stampa. Piegare la graffetta seguendo lo stencil. Collegare la staffa che abbiamo realizzato ai pin di I/O digitali 9 e 12. Prendere una pistola per colla a caldo e incollare la staffa sul lato inferiore del supporto della batteria. Raccomando di posizionare il porta batterie nel modo in cui il suo interruttore on / off si trova nella parte posteriore o inferiore del robot. E non preoccuparti di collegare i pin 9 e 12. Questo metodo è sicuro, non sono usati nel script.
Il risultato finale sarà questo:
Io invece ho optato per una soluzione diversa, al posto della graffetta ho utilizzato una strip line da 10 poli fissata con nastro biadesivo al porta batteria.
Passiamo alla breadboard, abbiamo già visto che bastano 5x14 pin per Ringo ragnetto.
Per ottenere questa misura occorre una breadboard comune (qualsiasi dimensione tu abbia) e tagliala a una dimensione di 5x14 pin. Sul lato inferiore della breadboard comune c'è un nastro di montaggio. Se lo togliamo, il breadboard cade a pezzi. Ma mi raccomando di togliere alcune aree di striscia metallica proprio dove stiamo andando a fare tagli. Ora prendi un seghetto o Dremel per tagliare la breadboard. Utilizza la lima piatta o Dremel con la mola per eliminare i residui del taglio.
Il risultato dovrà essere questo:
Prima di tutto monteremo tre servo motori sulla parte superiore del porta batterie. Togli gli adesivi dai lati dei nostri servi: incolliamo i servi, senza adesivi per una presa migliore. Tagliare le linguette di montaggio, non abbiamo bisogno di loro, prendono troppo spazio. Fai attenzione, sono molto fragili, usare la lima per eliminare eventuali imperfezioni dovute al taglio.
Prendi un servo e incollalo sulla parte superiore del supporto della batteria. Questo sarebbe il servo motore per le gambe centrali.
L'albero di uscita deve essere diretto verso la scheda Arduino. Prova a posizionare il servo nello stesso modo in cui vedi le mie foto. Nota che dovremmo lasciare un po 'di spazio per una piccola breadboard dietro ai servo e un po di spazio davanti per il movimento delle gambe centrali. Incollare altri due servi al supporto della batteria e ai lati del primo, ma ruotando gli alberi di uscita verso l'alto.
Ora montiamo la nostra breadboard dietro i servo motori con un po 'di colla a caldo. Controlla le foto per vedere il risultato.
Ripeti il circuito che hai fatto durante la fase di prova del prototipo. Si noti che il ricevitore IR deve essere diretto verso l'alto.
Ci sono due possibilità per collegare i servo motori alla breadboard:
a) usare una serie di 9 strip line maschio/maschio e inserire i tre connettori dei servo.
b) usare sempre una strip line, ma saldare direttamente i tre cavi di ogni servo.
Per i cavetti di collegamento a + 5V, GND, A0, Vin e GND io ho usato una strip line 90° e saldato i fili, altrimenti si può inserire direttamente i jumper piegando i connettori a 90° per evitare di toccare il servo centrale.
6: costruzione delle gambe
Ora accendi l'interruttore sul supporto della batteria, prendi il telecomando IR e controlla che Ringo ragnetto funzioni. Dopo aver inviato il comando di arresto, lo script sposta i servi in posizione zero (90 °). È una posizione sicura per montare le gambe dei servo motore. Non dimenticare di avvitare gli inserti in plastica al servo. E taglia eventualmente le parti degli inserti che possono entrare in conflitto l'una con l'altra durante lo spostamento.
Controlla le foto e i PDF per capire le dimensioni e la forma delle gambe di Ringo ragnetto. Stampali, controlla la scala come descritto prima. Uno stencil è per le zampe laterali sinistra e destra, sono assolutamente identici e non importa se si monta una gamba verso il servo sinistro o destro. L'altro stencil è per le gambe centrali di Ringo ragnetto.
Osservare attentamente le immagini sopra, segui i passaggi degli stencil e piega il filo.
Come puoi vedere dalle foto ho utilizzato del filo di rame sottile per bloccare gli inserti, prima di utilizzare la colla a caldo
Due osservazioni sulle gambe centrali.
La forma di queste gambe nello stencil è un po 'più complicata, non facile da capire. Quindi piega il filo di acciaio seguendo lo stencil e dopo quello guarda la foto vista dall'alto e correggi la forma. Se non lo fai, le gambe centrali e anteriori possono scontrarsi.
Io ho fatto queste gambe nello stencil più lunghe di quanto dovrebbero essere. È meglio tagliare del filo piuttosto che lasciare le gambe centrali sospese nell'aria.
Ora il risultato finale! Dovresti incollare a caldo queste gambe agli inserti in plastica dei servo: prima le zampe posteriori anteriori, in ultimo le gambe centrali. Sii pulito ma non preoccuparti se commetti un errore. Per correggerlo basta scaldare di nuovo la colla.
Se hai problemi di attrito con il pavimento, aggiungi una goccia di colla a caldo sulle gambe di Ringo ragnetto, come in foto.
Nel file ZIP trovi anche il PDF con le misure per fare la faccina con cartone colorato!!!
7: conclusione
Puoi cambiare il suo aspetto e modificare il suo codice. Aggiungi sensori di linea, sensore evita ostacoli o qualsiasi altro sensore compatibile con Arduino. Prova a montare una piccola webcam. Con questo abbiamo terminato questo lungo progetto robotico, ancora un grazie al Maker DmitryDzz per lo splendido lavoro.