Sommario:

Servo Robot controllato da Arduino (SERB): 7 passaggi (con immagini)
Servo Robot controllato da Arduino (SERB): 7 passaggi (con immagini)

Video: Servo Robot controllato da Arduino (SERB): 7 passaggi (con immagini)

Video: Servo Robot controllato da Arduino (SERB): 7 passaggi (con immagini)
Video: Arduino lezione 14 servo 2024, Dicembre
Anonim
Servo robot controllato da Arduino (SERB)
Servo robot controllato da Arduino (SERB)
Servo robot controllato da Arduino (SERB)
Servo robot controllato da Arduino (SERB)
Servo robot controllato da Arduino (SERB)
Servo robot controllato da Arduino (SERB)
Servo robot controllato da Arduino (SERB)
Servo robot controllato da Arduino (SERB)

Quale modo migliore per iniziare a sperimentare con i microcontrollori open source (Arduino) se non costruendo il tuo robot open source (CC (SA -BY))? Cosa fare con il tuo SERB?

  • (qui) - Come connettere il tuo SERB a Internet e guidarlo tramite una videochiamata Skype.
  • (qui) - Come controllare il tuo SERB usando gli accelerometri di un nunchuck Wii
  • (qui) - Come aggiungere baffi di rilevamento ostacoli al tuo robot
  • (qui) - Come realizzare 30 kit (Open Manufacturing)

Caratteristiche:

  • Completamente programmabile utilizzando un microcontrollore Arduino Duemilanove (o un altro microcontrollore a tua scelta).
  • Non c'è bisogno di saldare.
  • Scelta delle opzioni di taglio per i pezzi in acrilico. (sega circolare, accesso a un laser cutter, acquisto di pezzi pretagliati)
  • Facilmente espandibile e modificabile con fori per bulloni extra e breadboard inclusa.
  • Ruota posteriore con doppio cuscinetto a sfere.
  • Operativo in 1-2 ore. (dal kit)
  • Design open source (creane quanti ne vuoi)

(Shameless Plug) Nel Regno Unito e ti piacciono le cose Arduino? dai un'occhiata al nostro negozio web appena aperto oomlout.co.uk Un breve video di un servo robot controllato da Arduino completato - (SERB) che esegue il programma di test incluso (passaggio 6) Nota: i file sorgente sono disponibili su un Instructable parallelo (file sorgente per) - Come realizzare un servo robot controllato da Arduino - (SERB)

Passaggio 1: parti e strumenti

Parti e strumenti
Parti e strumenti

Tutti i bulloni possono essere trovati presso il tuo Home Depot locale. Le altre parti possono essere trovate online (ho incluso un collegamento alla mia fonte preferita per ciascuna). Elenco delle parti: un pacchetto contenente tutti gli articoli hardware può essere acquistato presso il negozio di oomlout.com (qui) ($ 120) Dadi e bulloni:

  • Bullone da 3 mm x 15 mm (x20)
  • Bullone da 3 mm x 10 mm (x12)
  • Dado 3mm (x34)
  • Rondella 3mm (x12)
  • Bullone da 8 mm x 25 mm (x2)
  • Dado da 8 mm (x2)
  • Skate Bearings (x2) (VXB) (questi sono cuscinetti da skate standard in modo che possano essere recuperati da un paio di pattini a rotelle o da uno skateboard)

Pneumatici

  • O-ring grande (4,5" ID 3/16" Bead Dash #349) (x2) (McMaster-Carr prodotto #9452K407)
  • O-ring piccolo (3/4" ID 3/16" Bead Dash #314) (x1) (McMaster-Carr prodotto #9452K387)

Elettronica

  • Arduino Duemilanove (x1) (Capannone Maker)
  • Servo a rotazione continua (x2) (parallasse)
  • Breadboard 400 contatti (x1) (tutti i componenti elettronici))
  • Scatola batteria quadrupla AA (x1) (tutta l'elettronica)
  • Clip per batteria da 9 V (x1) (tutta l'elettronica)
  • Spina da 2,1 mm (x1) (tutta l'elettronica)
  • Intestazione a 3 pin (x2) (tutta l'elettronica)
  • Cavo USB A-B - Stile stampante (x1) (tutti i componenti elettronici) (non incluso nel kit)

Batterie:

  • Batteria AA (x4) (non inclusa nel kit)
  • Batteria 9v (x1) (non inclusa nel kit)

Filo: (tutti i fili sono solidi da 22 AWG, compro il mio tramite McMaster-Carr)

  • 15 cm Viola (x2)
  • 15 cm Nero (x1)
  • 5 cm Nero (x2)
  • 5 cm Rosso (x2)

Utensili

  • Cacciavite (x1) (Philips)
  • Pinze ad ago (x1)

Passaggio 2: tagliare i pezzi

Pezzi di taglio
Pezzi di taglio
Pezzi di taglio
Pezzi di taglio
Pezzi di taglio
Pezzi di taglio
Pezzi di taglio
Pezzi di taglio

Scegli quali passaggi seguire in base all'opzione di taglio che hai scelto. Opzione 1 (Acquisto di parti pretagliate)

Acquista un telaio pretagliato dal negozio di oomlout.com (qui) ($ 60 inclusa la spedizione negli Stati Uniti e in Canada)

Opzione 2 (produzione digitale (es. Ponoko) / Accesso a un laser cutter)

  • Scarica il layout del taglio laser ("03 SERB Ponoko Cutting Layout P2.eps" o "03-(SERB)-Ponoko Cutting Layout (P2).cdr")
  • Taglia i file usando Ponoko o con la tua taglierina laser (usando 3 mm,.118" acrilico (a volte venduto come.125")

Opzione 3 (sega circolare e trapano)

  • Scarica e stampa il modello PDF (scegli il file corrispondente al tuo formato carta) 03-(SERB)-Schema ScrollSaw (lettera).pdf 03-(SERB)-Schema ScrollSaw (A4).pdf (è importante non ridimensionare il disegno durante la stampa)
  • Misura il righello sulla stampa rispetto a un righello di cui ti fidi, se non corrispondono il motivo è stato ridimensionato e devi controllare le impostazioni della stampante prima di ristampare. Se corrispondono, in poi.
  • Incolla il motivo sul foglio acrilico (3 mm, 0,118" (a volte venduto come 0,125").
  • Praticare dei fori.
  • Ritagliare i pezzi con una sega a traforo

Passaggio 3: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Congratulazioni per essere arrivato così lontano Il 90% del processo è completo, basta scaricare le istruzioni di montaggio in questo passaggio (04-(SERB)-Guida all'assemblaggio.pdf) e dopo un piccolo assemblaggio in stile lego/mechano sarai pronto per il cablaggio. Per intrattenervi lungo il percorso ecco un time-lapse della mia assemblea:

Passaggio 4: cablaggio

Cablaggio
Cablaggio
Cablaggio
Cablaggio

Con tutti i pezzi grandi insieme è il momento di aggiungere le piccole vene elettriche che consentiranno di controllare il nostro robot. Per farlo scaricare e stampare lo schema elettrico (05-(SERB)-Wiring Diagram.pdf). Una prima occhiata può sembrare piuttosto scoraggiante, tuttavia se si effettua ogni connessione in sequenza e si impiega il proprio tempo, si ottiene molto rapidamente. Il cablaggio è abbastanza semplice e nessun danno può venire al circuito finché non si aggiungono le batterie. Quindi collega tutto ricontrollalo, quindi aggiungi alimentazione.

Passaggio 5: test e risoluzione dei problemi

Test e risoluzione dei problemi
Test e risoluzione dei problemi

Se hai ordinato un kit, il tuo Arduino è stato precaricato con un programma di test. Basta inserire 4 batterie AA e collegare la batteria da 9 V ad Arduino. E se tutto è stato fatto correttamente, il tuo robot inizierà a muoversi (ruoterà in una direzione casuale per un tempo compreso tra 0,1 e 1 secondo prima di andare avanti per un tempo casuale tra 1 e 2 secondi, quindi si fermerà per 2 secondi prima di ricominciare). Se non hai acquistato un kit è necessario un passaggio aggiuntivo. Scarica il file zip allegato (07-(SERB)- SERB-Test Arduino Program.zip). Quindi decomprimilo nella directory dello sketch di Arduino (impostazione predefinita "My Documents\Arduino\") e scaricalo sulla tua scheda arduino. (se non conosci Arduino, fai un passo avanti dove ci sono collegamenti a ottimi tutorial per iniziare) Problemi comuni: il mio SERB si muove lentamente quando dovrebbe essere fermato. Questo è il risultato del fatto che i tuoi servi non sono stati calibrati correttamente, per calibrare i tuoi servi aspetta che il tuo programma abbia i servi fermati, quindi con un piccolo cacciavite gira il potenziometro all'interno del servo (la piccola apertura nell'involucro del servo appena sopra dove sono i fili). Ruotalo a sinistra oa destra fino a quando il servo non è veramente fermo. Le cose non stanno funzionando correttamente. Inviaci un'e-mail con i tuoi sintomi e cercheremo di aiutarti, mentre aspetti una risposta ricontrolla tutti i tuoi cavi con lo schema elettrico del passaggio 4. Se riscontri problemi, aggiungi un commento a questo Instructable o invia un'e-mail a [email protected] e faremo del nostro meglio per aiutarti a far funzionare il tuo SERB

Passaggio 6: programmazione

Programmazione
Programmazione

Il robot fisico è finito, è ora di iniziare a dargli un cervello. Prima di entrare nei dettagli della programmazione di un servo robot controllato da Arduino - (SERB) - alcuni link ad alcune eccellenti risorse di programmazione Arduino su Internet. Arduino Starter Guide - Una guida per aiutarti a iniziare con Arduino, dal download dell'ambiente di programmazione alla scrittura del tuo primo programma. Riferimento alla programmazione Arduino - Una guida completa e di facile consultazione al linguaggio di programmazione Arduino. - Come funziona la libreria Arduino Servo (come controlliamo i nostri servi). Va bene, con l'apprendimento fuori mano, iniziamo a programmare. Ci sono tre modi per iniziare a programmare il tuo servo robot controllato Arduino - (SERB). Opzione 1: (Modifica SERB_Test.pde) A volte durante la programmazione la cosa più semplice da fare è prendere un programma funzionante e iniziare ad aggiungere il tuo codice ad esso. Per fare ciò, scarica il programma zippato SERB_Test (07-(SERB)- SERB-Test Arduino Program.zip). Procedi a decomprimerlo nella cartella dello schizzo Arduino (impostazione predefinita "My Documents\Arduino\"). Infine apri l'ambiente di programmazione Arduino e scaricalo sul tuo Arduino. Il codice è ben commentato. (o copia e incolla il codice dall'appendice su questo passaggio in un nuovo Arduino Sketch) Opzione 2: (Aggiunta di routine SERB al tuo programma) Aggiungi alcune semplici routine al tuo programma preesistente (come goForward (), setSpeed(int) ecc.). Per fare questo scaricare le routine nel file di testo (07-(SERB)- Simple Routines Text.txt). 1. Copia e incolla la parte del preambolo all'inizio del tuo programma.2. Copia e incolla la porzione di routine nel corpo del tuo programma.3. Aggiungi una chiamata a serbSetup(); alla tua routine setup(). Opzione 3: (Creare il tuo programma da zero)Non è troppo difficile. Tutto ciò che serve è familiarizzare con la libreria servo di Arduino. Quindi il servo destro è collegato al pin 9 e il servo sinistro al pin 10. nota: qui verranno aggiunti programmi aggiuntivi man mano che vengono sviluppati; o se sviluppi qualcosa e vorresti che fosse presente mandami un messaggio privato e può essere aggiunto. Appendice: (SERB_Test.pde Code)

/* * Arduino Controlled Servo Robot (SERB) - Programma di test * Per maggiori dettagli visita: https://www.oomlout.com/serb * * Comportamento: un semplice programma di test che fa sì che il SERB * giri casualmente a sinistra oa destra per un * periodo di tempo casuale compreso tra 0,1 e 1 secondo. * Il SERB avanzerà quindi per un * periodo di tempo casuale compreso tra 1 e 2 secondi. Infine * facendo una pausa di 2 secondi prima di ricominciare. * * Cablaggio: segnale servo destro - pin 9 * Segnale servo sinistro - pin 10 * * Licenza: quest'opera è distribuita con licenza Creative Commons * Attribution-Share Alike 3.0 Unported License. Per * visualizzare una copia di questa licenza, visitare * https://creativecommons.org/licenses/by-sa/3.0/ * o inviare una lettera a Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * STATI UNITI D'AMERICA. * */ //----------------- ---------------// AVVIO DEL SERVO ROBOT CONTROLLATO DA ARDUINO (SERB) PREAMBOLO#include #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo sinistroServo; Servo destroServo; velocità int = 100; //imposta la velocità del robot (entrambi i servi) //una percentuale tra 0 e 100// FINE DEL SERVO ROBOT CONTROLLATO DA ARDUINO (SERB) PREAMBOLO//---------------- --------------------------------------------------- --------/* * imposta i pin negli stati appropriati e collega i servi. Quindi fa una pausa * per 1 secondo prima che il programma venga avviato*/ void setup() { serbSetup(); //imposta lo stato di tutti i //pin necessari e aggiunge i servi al tuo sketch randomSeed(analogRead(0)); //imposta il seme del numero casuale con //qualcosa di lievemente casuale ritardo(1000);}/* * ruota il robot a sinistra oa destra (casualmente) per un periodo compreso tra * 0,1 e 1 secondo. Prima di andare avanti per un periodo di tempo casuale * compreso tra 1 e 4 secondi. Prima di mettere in pausa per due secondi e poi ricominciare * di nuovo.*/void loop() { turnRandom(100, 1000); //Ruota casualmente a sinistra oa destra per un //periodo di tempo casuale compreso tra 0,1 secondo //e un secondo goForwardRandom(1000, 2000); //Va avanti per un periodo di tempo casuale //tra //1 e 2 secondi goStop(); //Arresta il ritardo del robot (2000); //si ferma per 2 secondi (mentre è fermo)}/* * ruota il robot in modo casuale a sinistra oa destra per un periodo di tempo casuale compreso tra * minTime (millisecondi) e maxTime (millisecondi) */void turnRandom(int minTime, int maxTime){ int scelta = casuale(2); //Numero casuale da decidere //tra sinistra (1) e destra (0) int turnTime = random(minTime, maxTime); //Numero casuale per la pausa //time if(choice == 1){ goLeft();} //Se numero casuale = 1 allora gira //sinistra else {goRight();} //Se numero casuale = 0 allora turn //right delay(turnTime); //ritardo per tempo casuale }/* * va avanti per un periodo di tempo casuale tra minTime (millisecondi) * e maxTime (millisecondi) */void goForwardRandom(int minTime, int maxTime){ int forwardTime = random(minTime, maxTime); //determina un tempo casuale per //andare avanti goForward(); //imposta il ritardo in avanti SERB (forwardTime); //ritardi per un periodo di tempo casuale}//---------------------------------------- --------------------------------//AVVIO DI ROUTINE SERVO ROBOT CONTROLLATO DA ARDUINO (SERB)/* * imposta il tuo arduino per indirizzare il tuo SERB usando le routine incluse*/void serbSetup(){ setSpeed(speed); pinMode(LEFTSERVOPIN, OUTPUT); //imposta il pin del segnale del servo sinistro //in output pinMode(RIGHTSERVOPIN, OUTPUT); //imposta il pin del segnale del servo destro //in uscita leftServo.attach(LEFTSERVOPIN); //attacca il servo sinistro rightServo.attach(RIGHTSERVOPIN); //attacca il servo destro goStop();}/* * imposta la velocità del robot tra 0-(stop) e 100-(full speed) * NOTA: la velocità non cambierà la velocità attuale devi cambiare la velocità * quindi chiamane una dei metodi go prima che avvengano le modifiche.*/ void setSpeed(int newSpeed){ if(newSpeed >= 100) {newSpeed = 100;} //if speed è maggiore di 100 //make it 100 if(newSpeed <= 0) {newSpeed = 0;} //se la velocità è minore di 0 make //it 0 speed = newSpeed * 0.9; //ridimensiona la velocità in modo che sia //tra 0 e 90}/* * invia il robot in avanti */void goForward(){ leftServo.write(90 + speed); rightServo.write(90 - velocità);}/* * manda il robot indietro */void goBackward(){ leftServo.write(90 - velocità); rightServo.write(90 + velocità);} /* * invia il robot a destra */void goRight(){ leftServo.write(90 + velocità); rightServo.write(90 + velocità);}/* * invia il robot a sinistra */void goLeft(){ leftServo.write(90 - velocità); rightServo.write(90 - speed);}/* * ferma il robot */void goStop(){ leftServo.write(90); rightServo.write(90);} //FINE DELLE ROUTINE SERVOROBOT CONTROLLATE DA ARDUINO (SERB)//------------- -------------------

Passaggio 7: finito, altri che hanno finito e il futuro

Finito, altri che hanno finito e il futuro
Finito, altri che hanno finito e il futuro
Finito, altri che hanno finito e il futuro
Finito, altri che hanno finito e il futuro
Finito, altri che hanno finito e il futuro
Finito, altri che hanno finito e il futuro
Finito, altri che hanno finito e il futuro
Finito, altri che hanno finito e il futuro

Congratulazioni per essere arrivato fin qui e spero che ti stia divertendo con il tuo servo robot controllato Arduino - (SERB). SERB di Michael Beck -Michael ha trovato i piani per il SERB su Thingiverse.com e l'ha ritagliato dall'acrilico giallo e rosso. Penso che sia fantastico. Mike's SERB - Mike (del club di robot ROBOMO di St. Louis Area) ha fatto tagliare al laser un telaio SERB da un amico e ha usato il suo know-how robotico per farlo funzionare. Penso che sia fantastico fatto in blu. (controlla il suo sito Web per i dettagli su questo e sugli altri suoi robot (qui) Questa sezione conterrà dettagli sugli sviluppi futuri e sugli allegati (saranno presenti qui prima che siano adeguatamente documentati). Ma vorrei anche mostrare le immagini di SERB di altre persone. Quindi se hai finito mandami un messaggio privato con una foto e qualche parola (che sia una descrizione o un link al tuo sito web) e lo aggiungerò qui. (Shameless Plug) Se ti è piaciuto questo istruttivo controlla oomlout.com per altri divertenti progetti open source.

Primo Premio al SANYO eneloop Battery Powered Contest

Consigliato: