Sommario:

ICBob - un robot bipede ispirato a Bob: 10 passaggi (con immagini)
ICBob - un robot bipede ispirato a Bob: 10 passaggi (con immagini)

Video: ICBob - un robot bipede ispirato a Bob: 10 passaggi (con immagini)

Video: ICBob - un robot bipede ispirato a Bob: 10 passaggi (con immagini)
Video: SHEP AI: Genetic Algorithm Biped robot teaches itself to walk using microbial GA 2024, Luglio
Anonim
Image
Image
ICBob - un robot bipede ispirato a Bob
ICBob - un robot bipede ispirato a Bob

Siamo il Teen Imagineering Club della Biblioteca pubblica di Bridgeville Delaware. Realizziamo progetti interessanti mentre apprendiamo l'elettronica, la codifica dei computer, il design 3D e la stampa 3D.

Questo progetto è il nostro adattamento di BoB the BiPed, un robot basato su Arduino. Abbiamo ridisegnato il corpo per sfruttare la nostra fonte di alimentazione Arduino preferita, la power bank del telefono Powerbot. Questa economica fonte di alimentazione da 5 volt ricaricabile è ottima per alimentare i nostri progetti Arduino e si ricarica con qualsiasi caricatore da parete USB. Abbiamo anche adattato i piedi a 3 dita del robot bipede Arduped solo perché hanno un aspetto FANTASTICO. Ti mostreremo dove trovare le parti di cui hai bisogno, come assemblare il robot e ti forniremo anche un semplice codice Arduino per farlo camminare. Ci siamo divertiti molto a realizzare i nostri undici robot ICBob. Continua a leggere se vuoi imparare a crearne uno per te.

Passaggio 1: parti e strumenti necessari

Parti e strumenti di cui avrai bisogno
Parti e strumenti di cui avrai bisogno
Parti e strumenti di cui avrai bisogno
Parti e strumenti di cui avrai bisogno

ICBob è progettato per il seguente set di parti. Sebbene le sostituzioni siano possibili, potrebbe essere necessario modificare il corpo per farle funzionare. Il nostro fornitore preferito è Yourduino.com ma per alcuni articoli dovrai andare su Amazon o Ebay.

Aggiornamento della disponibilità del prodotto: Yourduino non porta più il Micro Magician e dice che è stato interrotto da Dagu. Il sito Web Dagu li ha ancora disponibili https://www.dagurobot.com/goods.php?id=137 e se non sono disponibili il controller S4A EDU è un sostituto e funziona a 5 volt.

Parti

  • 1x- MICRO controller Magician
  • 4x- SG 90 servo
  • 1x- HC-SR04 Sensore a ultrasuoni
  • 1x- Powerbot Powerbot 2600mAh (il Powerbot 3000mAh ha un diametro maggiore e non si adatta)
  • 1x- Femmina da MICRO USB a DIP 5-pin bacheca
  • Estremità femmina cavo piatto da 1x-20 cm 40 pin
  • 1x-10k resistore
  • 4x- 2-56 x 3/8 viti autofilettanti (colla a caldo alternativa)

Stampe 3D - I file stl sono disponibili su Thingiverse: 1313344

  • 1x-corpo
  • 1x- shell
  • 2x-ginocchio
  • 1x- piede sinistro
  • 1x-piede destro

Utensili

  • computer con Arduino IDE
  • Arduino aggiunge alla libreria VarSpeedServo
  • MICRO Magician Driver (necessario per alcuni sistemi operativi)
  • Stampante 3D (o far realizzare le parti)
  • Strumenti per la pulizia delle parti 3D
  • Kit di saldatura (solo per i pin sull'adattatore USB)
  • Pistola per colla a caldo
  • Cacciavite Philips piccolo
  • caricatore USB

Questo Instructable presuppone che tu abbia una conoscenza di base dell'uso di Arduino. Se sei nuovo di Arduino puoi saperne di più su

Per il MICRO Magician scegli Board - Arduino Pro o Pro Mini (3,3 V, 8 MHz) con ATmega328

Avrai bisogno della libreria VarSpeedServo di Korman per utilizzare i nostri schizzi. Puoi scoprire di più sulla sua libreria qui, ma usa il nostro download di seguito che è compatibile con il nuovo IDE. Scarica il file VarSpeedServo.zip di seguito e decomprimilo nella cartella arduino/libraries.

Potrebbe essere necessario installare il driver MICRO Magician CP210x se il sistema non riconosce il controller. Questo sito può aiutare con l'installazione del driver

Passaggio 2: iniziamo a costruire - Assemblare le gambe

Iniziamo a costruire - Assemblare le gambe
Iniziamo a costruire - Assemblare le gambe
Iniziamo a costruire - Assemblare le gambe
Iniziamo a costruire - Assemblare le gambe
Iniziamo a costruire - Assemblare le gambe
Iniziamo a costruire - Assemblare le gambe

Per questo passaggio avrai bisogno di 2 - ginocchia stampate in 3D e 4 servo pacchetti.

Inizia pulendo le ginocchia. I 2 fori della squadretta del servo devono adattarsi alle squadrette del servo su un lato. Li abbiamo puliti con una punta da trapano della dimensione della lettera L (.290). L'unico foro del perno deve adattarsi al perno sul piede. Li abbiamo puliti con una punta da trapano n. 2 (.220).

Montare le 4 squadrette del servo nelle ginocchia. Fissare il clacson utilizzando una delle viti più grandi fornite con la confezione del servo. Inserire la vite dal lato del ginocchio e serrare in uno dei piccoli fori sulla squadretta del servo. Per l'unica vite dovrai stringere con il cacciavite ad angolo ma è fattibile. Se lo desideri, puoi ritagliare i punti delle viti che sporgono con una pinza a taglio laterale.

I 4 servomandrini devono essere centrati prima di essere fissati alle ginocchia. Puoi farlo manualmente spostando delicatamente il mandrino durante la sua rotazione per trovare il punto a metà. Un modo migliore è collegare un servo al pin 12. Scarica il file icbob_servo_center.zip qui sotto. Decomprimi nella directory di Arduino. Quindi esegui questo schizzo Arduino per ogni servo.

Inizia assemblando i servi dell'anca (superiore) alle ginocchia. Senza muovere il perno, collegare il servo dell'anca parallelamente al ginocchio con i fili rivolti verso l'altra squadretta del servo (anteriore). Fissare con una piccola vite dal pacchetto servo. Ripetere per l'altro ginocchio.

Ora per i servi alla caviglia. RICORDA che avrai le caviglie destra e sinistra in modo che le gambe siano immagini speculari l'una dell'altra. Dovrai allargare leggermente il ginocchio per assemblare il servo della caviglia, quindi orienta il servo come nella foto prima di comprimerlo. Ricorda di non ruotare il mandrino. Fissare con una piccola vite. Ripeti con l'altro ginocchio in modo da finire con una gamba destra e una sinistra.

Passaggio 3: costruzione - Attacca le gambe al corpo

Costruzione - Attacca le gambe al corpo
Costruzione - Attacca le gambe al corpo
Costruzione - Attacca le gambe al corpo
Costruzione - Attacca le gambe al corpo
Costruzione - Attacca le gambe al corpo
Costruzione - Attacca le gambe al corpo

Avrai bisogno dei 2 gruppi di gambe e della base stampata in 3D per questo passaggio. Avrai anche bisogno di (4) viti autofilettanti 2-56x3/8 o colla a caldo.

Il gruppo gambe si attacca alla base tramite i servi dell'anca. Per prima cosa instradare i 2 cavi del servo verso l'alto attraverso la parte inferiore della base. Attenzione alle destre e sinistre. Come mostra il disegno, il cavo della caviglia finisce nell'intaglio a mezzaluna, ma devi inserire il cavo della caviglia prima che il servo sia collegato. Devi inclinare il servo in modo che il cavo dell'anca (dove entra nel servo) passi per primo attraverso il foro rettangolare (in avanti). È aderente ma la parte posteriore dovrebbe semplicemente scivolare dentro. Ora capovolgi la base e fissa il servo con 2 viti o in alternativa la colla a caldo dovrebbe funzionare. Ripeti il processo per l'altra gamba.

Passaggio 4: costruzione - Attaccare i piedi

Costruzione - Attacca i piedi
Costruzione - Attacca i piedi
Costruzione - Attacca i piedi
Costruzione - Attacca i piedi

Per questo passaggio avrai bisogno di un piede sinistro e di un piede destro da aggiungere al tuo assemblaggio. Sono incollati a caldo, quindi accendi la pistola per colla.

Assicurati di pulire bene le fessure nei piedi. Testare delicatamente l'adattamento del servo al piede dopo la pulizia. Assicurati che il foro di articolazione nel ginocchio si inserisca nel perno di articolazione sul piede. È meglio usare un cacciavite sottile tra il servo e il piede per sollevare il piede se è stretto. Dopo aver ottenuto una buona prova, posizionare una goccia di colla a caldo sul piede, quindi premere il servo sul piede. Evita di far entrare la colla vicino all'area del perno. Ripeti per l'altro lato in modo che il tuo robot possa stare in piedi da solo.

Passaggio 5: cablaggio - servi e alimentazione

Cablaggio - Servi e alimentazione
Cablaggio - Servi e alimentazione
Cablaggio - Servi e alimentazione
Cablaggio - Servi e alimentazione
Cablaggio - Servi e alimentazione
Cablaggio - Servi e alimentazione

In questo passaggio avrai bisogno del controller MICRO Magician, della scheda adattatore micro USB con pin di intestazione, del cavo piatto e del tuo robot in piedi. In questo passaggio dovrai saldare e incollare a caldo, quindi tieni pronti quegli strumenti.

Il power bank Powerbot viene fornito con un cavo corto da USB a micro USB. Per caricare la batteria, la micro USB è collegata allo slot di ricarica sulla batteria e l'USB va al caricatore a muro. Utilizzerai questo cavo per alimentare l'ICBob. L'uscita della batteria avviene tramite USB, quindi ci colleghiamo tramite la scheda dell'adattatore micro USB per alimentare il bot.

Per prima cosa assemblate l'adattatore. Fare riferimento alla foto per i passaggi successivi. Utilizzerai solo i 2 pin esterni (gnd e V+) per alimentare il bot. Fai scorrere con cautela i 2 perni esterni nell'intestazione in modo che il lato corto sporga di circa 3/16 pollici. Con le pinze piega i 2 perni lunghi di 60 gradi circa. Piegare prima di saldare poiché le schede sono fragili. Inserire l'intestazione come mostrato e saldare tutti i pin sul retro per maggiore resistenza. Agganciare tutti i perni inutilizzati il più corti possibile sia davanti che dietro. Prima di incollare l'adattatore alla canna, collega il cavo micro USB in modo da avere abbastanza spazio. Metti una grossa goccia di colla a caldo sul retro dell'adattatore, quindi posizionalo nella posizione mostrata sulla canna. Tenere finché non si indurisce.

Quindi collegare i 4 connettori del servo al controller. Ci piace il MICRO Magician perché ha i connettori a 3 pin integrati per un facile cablaggio del servo. Il filo di colore più scuro (marrone?) va verso il bordo della scheda. Gli sketch Arduino inclusi utilizzano i seguenti pin.

  • Anca destra (RH) - pin 9
  • Caviglia Destra (RA) - perno 10
  • Anca sinistra (LH) - pin 11
  • Caviglia Sinistra (LA) - perno 12

Per il collegamento dell'alimentazione alla scheda staccare una coppia di fili dal flat cable. Utilizzerai più di questo cavo piatto per il cablaggio del sonar. Collega un'estremità della coppia all'adattatore micro USB. Il pin più vicino alla parte anteriore del bot è ground e l'altro V+. L'altra estremità si collega al controller vicino all'interruttore. Il filo V+ si collega al pin etichettato 'Battery IN' nella documentazione. Collegare il filo di terra al pin 'gnd' appena sopra il pin 'Battery IN'.

IMPORTANTE! - C'è un ponticello 'V+ select' appena sopra il set di pin D1. Questo ponticello deve essere sul set di pin INSIDE o i servi non funzioneranno.

Infine, pulisci lo slot del controller sulla base in modo che il controller si adatti perfettamente. Puoi collegare la batteria e accendere il controller per assicurarti che si accenda.

Passaggio 6: Programmazione - Codice di calibrazione domestica

Qualche parola sulle nostre scelte di programmazione

Quando abbiamo costruito il prototipo per questo progetto, abbiamo utilizzato il tutorial Come insegnare al tuo BoB Biped a spostare il tutorial su Let's Make Robots. Il software Bob Poser era fantastico e ci siamo divertiti a giocarci. Il problema era che le oltre 600 righe di codice nello schizzo di navigazione erano ben al di sopra del livello di conoscenza degli adolescenti. Per rendere questo progetto più un'esperienza di apprendimento per loro, abbiamo deciso di raccogliere alcune idee dal codice Poser e poi ricominciare con una pagina vuota. I ragazzi stavano già utilizzando la libreria VarSpeedServo mentre imparavano a conoscere i servi nei nostri laboratori Arduino. Abbiamo deciso di vedere se VarSpeedServo poteva gestire i tempi e le funzioni di velocità per i servi in modo da poterci concentrare solo sulle posizioni. Il codice risultante funziona alla grande e lo sketch walk_avoid_turn completo ha meno di 100 righe di codice. Gli unici nuovi concetti di cui i ragazzi dovevano imparare erano gli array bidimensionali e come accedere a quei dati con il codice. Divertiti!

Calibrazione domestica

Hai centrato i servomandrini quando li hai assemblati. Ora vedrai quanto ti sei avvicinato e ottimizzerai le loro posizioni iniziali. Assicurati di aver installato la libreria VarSpeedServo del passaggio 1. Scarica il file icbob_home_calibration.zip di seguito e decomprimilo nella directory di Arduino. Apri lo schizzo nell'IDE di Arduino. Accendi il MICRO Magician con la batteria. Collega il computer alla scheda e carica il codice. È probabile che le posizioni iniziali dei servi non siano perfette. Trova la seguente sezione nel codice. Continua a regolare e caricare fino a quando non lo fai bene.

//…………………………………………………….

// Inizia con i 4 membri dell'array hm impostati a 90 gradi. quindi regola // queste impostazioni in modo che le ginocchia siano dritte in avanti ei piedi siano piatti int hm[4] = {90, 90, 90, 90}; //array per mantenere la posizione iniziale per ciascun servo RH, RA, LH, LA //………………………………………………………….

Se uno qualsiasi dei tuoi numeri è inferiore a 50 o superiore a 130, devi tornare indietro e smontare le gambe e avvicinare i mandrini al centro.

Una volta che hai una buona posizione iniziale, scrivi i numeri. Avrai bisogno di questi numeri per il resto degli schizzi.

Passaggio 7: Programmazione - Sposta il codice del generatore

Programmazione - Sposta codice generatore
Programmazione - Sposta codice generatore

Ora per far muovere il tuo bot. Scarica il file icbob_move_generator.zip di seguito e decomprimilo nella directory di Arduino. Apri lo schizzo nell'IDE di Arduino. Trova la seguente sezione di codice. Metti le posizioni iniziali che hai registrato per il tuo bot nello schizzo.

//imposta i membri per l'array hm sulle posizioni iniziali del tuo robot

//possono essere trovati usando lo sketch icbob_home_calibration const int hm[4] = {95, 95, 85, 90}; //array per mantenere la posizione iniziale per ogni servo RH, RA, LH, LA

La seguente sezione di codice è dove vengono immesse le sequenze di mosse. Ogni riga ha le posizioni per i 4 servi (RH, RA, LH, LA) rispetto alla posizione iniziale.

//dati dell'array mv. Ogni riga è un 'frame' o posizione impostata per i 4 servi

//Più linee creano un gruppo di movimenti che possono essere ripetuti per //creare camminare, girare, ballare o altri movimenti const int mvct = 6; //Rendi questo numero uguale al numero di righe nell'array const int mv[mvct][4] = { {0, -40, 0, -20}, //Questi numeri precaricati dovrebbero dare una marcia in avanti {30, -40, 30, -20}, {30, 0, 30, 0}, {0, 20, 0, 40}, {-30, 20, -30, 40}, {-30, 0, -30, 0}, };

Questo è il codice che trasforma i dati dell'array mv in servo slowmoves

void loop() //il loop si ripete per sempre

{ // Sposta la sequenza for(int x=0; x<mvct; x++) { //scorri il numero di RH.slowmove (hm[0] + mv[x][0], svsp); //righe 'frame' nell'array RA.slowmove (hm[1] + mv[x][1], svsp); LH.slowmove (hm[2] + mv[x][2], svsp); LA.slowmove (hm[3] + mv[x][3], svsp); ritardo (framedelay); } }

Carica sul bot. Il bot andrà alla posizione iniziale per 2 secondi, quindi inizierà un ciclo di camminata in avanti. Funziona meglio se il tavolo non è troppo scivoloso.

Quando ti stanchi di vederlo camminare, puoi provare le tue mosse. Usa "salva con nome" per rinominare lo schizzo. Poi gioca con i numeri e vedi cosa puoi fare. Mantieni i numeri tra +50 e -50 o potresti mettere a dura prova i servi. Ricorda che se aggiungi o sottrai linee devi modificare il valore mvct per riflettere la modifica. Divertiti!

Passaggio 8: cablaggio - Sensore sonar HC-SR04 (occhi)

Cablaggio - Sensore sonar HC-SR04 (occhi)
Cablaggio - Sensore sonar HC-SR04 (occhi)
Cablaggio - Sensore sonar HC-SR04 (occhi)
Cablaggio - Sensore sonar HC-SR04 (occhi)

Per questo passaggio avrai bisogno della stampa 3D icbob_shell, del sensore a ultrasuoni HC-SR04, del cavo piatto femmina e di un resistore da 10k ohm. Questo dovrebbe completare le parti sulla nostra lista. Sì!

Per prima cosa pulisci i fori del sensore nel guscio per una vestibilità mediamente aderente. Non esercitare troppa pressione sul sensore durante il test di montaggio. Rimuovere dal guscio per il cablaggio.

Quindi tirare fuori 4 fili dal cavo piatto. Collegare i 4 fili ai pin del sensore HC-SR04.

Il MICRO Magician funziona internamente a 3,3 volt e i pin possono ricevere solo un segnale a 3,3 volt. Il problema è che l'HC-SR04 funziona a 5 volt. Può utilizzare un ingresso da 3,3 volt come segnale "trigger", ma quando invia un segnale "eco" è a 5 volt e danneggerà l'ingresso del controller se collegato direttamente. Dobbiamo mettere un resistore di limitazione della corrente da 10k ohm sul filo "eco" per proteggere l'ingresso.

AGGIORNAMENTO: Sebbene non abbiamo avuto problemi con solo il resistore da 10K in linea, è stato sottolineato nei commenti che la migliore pratica indica che qui dovrebbe essere usato un circuito divisore di tensione. Oltre al resistore da 10K, è necessario posizionare un resistore da 15K tra 'echo' e 'ground'.

Tagliare i cavi della resistenza a 0,5 pollici. La resistenza va nel filo "eco" del cavo piatto. Mettiamo una goccia di super colla sulla connessione per aiutarla a rimanere ferma.

Lo schizzo utilizza il pin 13 per il trigger e il pin 3 per l'eco. Usa il gruppo pin 13 sul controller per 'gnd', 'vcc', 'trig' in questo ordine lavorando dal bordo verso il centro. Dovrai incrociare alcuni fili qui per farlo bene. Il filo "eco" con il resistore si inserisce nella presa pin 3 femmina.

Se vuoi controllare il sensore prima di passare al passaggio successivo, puoi utilizzare il primo schizzo su questa pagina https://arduino-info.wikispaces.com/UltraSonicDistance per testarlo. Avrai bisogno della batteria collegata. Puoi vedere la lettura della distanza sul monitor seriale. Assicurati di impostare "trigger_pin" su 13 e "echo_pin" su 3 nello schizzo.

Il modo migliore per installare il sensore nel guscio è con i perni rivolti verso l'alto e i fili piegati e instradati tra gli "occhi" del sensore e il guscio.

Passaggio 9: Programmazione - Codice Walk_Evoid_Turn

Mettere tutto insieme. Tutte le parti sono assemblate. Siamo pronti a caricare il codice completo, inserire la shell e guardarla fare il suo lavoro.

Conosci la routine. Scarica il file icbob_walk_avoid_turn.zip di seguito e decomprimilo nella directory di Arduino. Apri lo schizzo nell'IDE di Arduino. Trova la seguente sezione di codice. Metti le posizioni iniziali che hai registrato per il tuo bot nello schizzo.

//imposta i membri per l'array hm sulle posizioni iniziali del tuo robot

//possono essere trovati usando lo sketch icbob_home_calibration const int hm[4] = {95, 95, 85, 90}; //array per mantenere la posizione iniziale per ogni servo RH, RA, LH, LA

Questo schizzo aggiunge un secondo array di mosse e un secondo set di codice di movimento lento per la mossa 'turn'.

//inoltra i dati dell'array

const int fwdmvct = 6; //Rendi questo numero uguale al numero di righe nell'array const int fwdmv[fwdmvct][4] = { {0, -40, 0, -20}, //cammina avanti e sposta i frame {30, -40, 30, -20}, {30, 0, 30, 0}, {0, 20, 0, 40}, {-30, 20, -30, 40}, {-30, 0, -30, 0}, }; //trasforma i dati dell'array const int trnmvct = 5; //Rendi questo numero uguale al numero di righe nell'array const int trnmv[trnmvct][4] = { {-40, 0, -20, 0}, //turn move frame {-40, 30, -20, 30}, {0, 30, 0, 30}, {30, 0, 30, 0}, {0, 0, 0, 0}, };

Abbiamo aggiunto il codice di rilevamento degli ostacoli del sonar e un'istruzione "if" "else" per decidere se stiamo andando dritto o girando.

Assemblaggio finale e avviamento

Lascia la batteria scollegata e carica lo schizzo. Scollegare il cavo di programmazione. Assicurarsi che l'interruttore di alimentazione sul controller sia in posizione abbassata "on". Fai scorrere con cautela il guscio sulla base con il cavo di alimentazione USB che si attacca attraverso il foro superiore. Metti la batteria. Collegalo. Il tuo ICBob dovrebbe iniziare a muoversi e girare per evitare ostacoli più vicini di 7 pollici.

Passaggio 10: conclusione

Ci auguriamo che tu ti diverta a costruire il tuo ICBob quanto noi a costruire il nostro. Fateci sapere se avete domande o commenti. Se ne costruisci uno, faccelo sapere qui o su Thingiverse.

Consigliato: