Vuoi imparare a costruire il tuo robot? Esistono molti tipi diversi di robot che puoi realizzare da solo. La maggior parte delle persone vuole vedere un robot eseguire i semplici compiti di spostarsi dal punto A al punto B. Puoi realizzare un robot completamente con componenti analogici o acquistare uno starter kit da zero! Costruire il tuo robot è un ottimo modo per imparare sia l'elettronica che la programmazione del computer.
Passi
Parte 1 di 6: assemblaggio del robot
Passaggio 1. Raccogli i componenti
Per costruire un robot di base, avrai bisogno di diversi semplici componenti. Puoi trovare la maggior parte, se non tutti, di questi componenti nel tuo negozio di hobby di elettronica locale o in diversi rivenditori online. Alcuni kit di base possono includere anche tutti questi componenti. Questo robot non richiede alcuna saldatura:
- Arduino Uno (o altro microcontrollore)
- 2 servi a rotazione continua
- 2 ruote che si adattano ai servi
- 1 rullo girevole
- 1 piccola breadboard senza saldatura (cerca una breadboard con due linee positive e negative su ciascun lato)
- 1 sensore di distanza (con cavo connettore a quattro pin)
- 1 mini interruttore a pulsante
- 1 resistore da 10kΩ
- 1 cavo USB da A a B
- 1 set di intestazioni staccabili
- 1 portabatteria da 6 x AA con jack di alimentazione da 9 V CC
- 1 confezione di cavi per ponticelli o cavo di collegamento calibro 22
- Nastro biadesivo resistente o colla a caldo
Passaggio 2. Capovolgere la batteria in modo che la parte posteriore piatta sia rivolta verso l'alto
Costruirai il corpo del robot usando la batteria come base.
Passaggio 3. Allineare i due servi all'estremità del pacco batteria
Questa dovrebbe essere l'estremità da cui esce il cavo del pacco batteria. I servi dovrebbero toccare il fondo ei meccanismi di rotazione di ciascuno dovrebbero essere rivolti verso i lati del pacco batteria. I servi devono essere allineati correttamente in modo che le ruote vadano dritte. I cavi per i servi dovrebbero uscire dal retro del pacco batteria.
Passaggio 4. Fissare i servi con nastro adesivo o colla
Assicurarsi che siano saldamente fissati al pacco batteria. La parte posteriore dei servi deve essere allineata a filo con la parte posteriore del pacco batteria.
I servi dovrebbero ora occupare la metà posteriore del pacco batteria
Passaggio 5. Fissare la breadboard perpendicolarmente allo spazio aperto sul pacco batteria
Dovrebbe sporgere leggermente dalla parte anteriore del pacco batteria e estendersi oltre ogni lato. Assicurarsi che sia fissato saldamente prima di procedere. La riga "A" dovrebbe essere la più vicina ai servi.
Passaggio 6. Collegare il microcontrollore Arduino alle parti superiori dei servi
Se hai collegato correttamente i servi, dovrebbe esserci uno spazio piatto creato dal loro contatto. Attacca la scheda Arduino su questo spazio piatto in modo che i connettori USB e di alimentazione di Arduino siano rivolti verso il retro (lontano dalla breadboard). La parte anteriore di Arduino dovrebbe sovrapporsi appena alla breadboard.
Passaggio 7. Metti le ruote sui servi
Premere con decisione le ruote sul meccanismo di rotazione del servo. Ciò potrebbe richiedere una quantità significativa di forza, poiché le ruote sono progettate per adattarsi il più strettamente possibile per la migliore trazione.
Passaggio 8. Attaccare la ruota alla parte inferiore della breadboard
Se capovolgi il telaio, dovresti vedere un po' di breadboard che si estende oltre il pacco batteria. Attacca la ruota a questo pezzo esteso, usando le bretelle se necessario. La ruota funge da ruota anteriore, consentendo al robot di girare facilmente in qualsiasi direzione.
Se hai acquistato un kit, il caster potrebbe essere dotato di alcuni riser che puoi utilizzare per assicurarti che il caster raggiunga il suolo. io
Parte 2 di 6: cablaggio del robot
Passaggio 1. Interrompere due intestazioni a 3 pin
Utilizzerai questi per collegare i servi alla breadboard. Spingere i perni verso il basso attraverso l'intestazione in modo che escano alla stessa distanza su entrambi i lati.
Passaggio 2. Inserire le due intestazioni nei pin 1-3 e 6-8 sulla riga E della breadboard
Assicurati che siano ben inseriti.
Passaggio 3. Collegare i cavi del servo ai connettori, con il cavo nero sul lato sinistro (pin 1 e 6)
Questo collegherà i servi alla breadboard. Assicurati che il servo sinistro sia collegato all'intestazione sinistra e il servo destro all'intestazione destra.
Passaggio 4. Collegare i fili dei ponticelli rossi dai pin C2 e C7 ai pin della guida rossi (positivi)
Assicurati di utilizzare la guida rossa sul retro della breadboard (più vicino al resto del telaio).
Passaggio 5. Collegare i cavi dei ponticelli neri dai pin B1 e B6 ai pin della guida blu (massa)
Assicurati di utilizzare la guida blu sul retro della breadboard. Non inserirli nei pin della guida rossa.
Passaggio 6. Collegare i cavi dei ponticelli bianchi dai pin 12 e 13 di Arduino ad A3 e A8
Ciò consentirà all'Arduino di controllare i servi e girare le ruote.
Passaggio 7. Collegare il sensore alla parte anteriore della breadboard
Non viene collegato ai binari di alimentazione esterni sulla breadboard, ma invece alla prima fila di pin con lettere (J). Assicurati di posizionarlo esattamente al centro, con un numero uguale di pin disponibili su ciascun lato.
Passaggio 8. Collegare un ponticello nero dal pin I14 al primo pin della guida blu disponibile a sinistra del sensore
Questo metterà a terra il sensore.
Passaggio 9. Collegare un ponticello rosso dal pin I17 al primo pin della guida rossa disponibile a destra del sensore
Questo alimenterà il sensore.
Passaggio 10. Collegare i cavi dei ponticelli bianchi dal pin I15 al pin 9 su Arduino e da I16 al pin 8
Questo alimenterà le informazioni dal sensore al microcontrollore.
Parte 3 di 6: cablaggio dell'alimentazione
Passaggio 1. Capovolgi il robot su un lato in modo da poter vedere le batterie nella confezione
Orientarlo in modo che il cavo del pacco batteria fuoriesca a sinistra in basso.
Passaggio 2. Collegare un filo rosso alla seconda molla da sinistra in basso
Assicurarsi che il pacco batteria sia orientato correttamente.
Passaggio 3. Collegare un filo nero all'ultima molla in basso a destra
Questi due cavi aiuteranno a fornire la tensione corretta all'Arduino.
Passaggio 4. Collegare i fili rosso e nero ai pin rosso e blu all'estrema destra sul retro della breadboard
Il cavo nero deve essere collegato al pin del binario blu al pin 30. Il cavo rosso deve essere collegato al pin del binario rosso al pin 30.
Passaggio 5. Collegare un filo nero dal pin GND su Arduino alla guida blu posteriore
Collegalo al pin 28 sulla guida blu.
Passaggio 6. Collegare un filo nero dalla guida blu posteriore alla guida blu anteriore al pin 29 per ciascuno
Non collegare i binari rossi, poiché probabilmente danneggerai Arduino.
Passaggio 7. Collegare un filo rosso dalla guida rossa anteriore al pin 30 al pin 5V sull'Arduino
Ciò fornirà energia all'Arduino.
Passaggio 8. Inserire l'interruttore a pulsante nello spazio tra le file sui pin 24-26
Questo interruttore ti consentirà di spegnere il robot senza dover scollegare l'alimentazione.
Passaggio 9. Collegare un filo rosso da H24 alla guida rossa nel successivo pin disponibile a destra del sensore
Questo alimenterà il pulsante.
Passaggio 10. Utilizzare il resistore per collegare H26 alla guida blu
Collegalo al pin direttamente accanto al filo nero che hai collegato pochi passaggi fa.
Passaggio 11. Collegare un filo bianco da G26 al pin 2 su Arduino
Ciò consentirà ad Arduino di registrare il pulsante.
Parte 4 di 6: installazione del software Arduino
Passaggio 1. Scarica ed estrai l'IDE di Arduino
Questo è l'ambiente di sviluppo Arduino e ti permette di programmare istruzioni che puoi poi caricare sul tuo microcontrollore Arduino. Puoi scaricarlo gratuitamente da arduino.cc/en/main/software. Decomprimi il file scaricato facendo doppio clic su di esso e sposta la cartella all'interno in una posizione di facile accesso. In realtà non installerai il programma. Invece, lo eseguirai semplicemente dalla cartella estratta facendo doppio clic su arduino.exe.
Passaggio 2. Collega la batteria ad Arduino
Collega il jack della batteria al connettore dell'Arduino per alimentarlo.
Passaggio 3. Collega Arduino al computer tramite USB
Windows probabilmente non riconoscerà il dispositivo.
Passaggio 4. Premere
Win+R e digita devmgmt.msc.
Questo avvierà Gestione dispositivi.
Passaggio 5. Fare clic con il pulsante destro del mouse su "Dispositivo sconosciuto" nella sezione "Altri dispositivi" e selezionare "Aggiorna software driver
" Se non vedi questa opzione, fai clic su "Proprietà", seleziona la scheda "Driver", quindi fai clic su "Aggiorna driver".
Passaggio 6. Selezionare "Cerca il software del driver nel mio computer
" Ciò ti consentirà di selezionare il driver fornito con l'IDE Arduino.
Passaggio 7. Fare clic su "Sfoglia", quindi accedere alla cartella che è stata estratta in precedenza
All'interno troverai una cartella "driver".
Passaggio 8. Selezionare la cartella "driver" e fare clic su "OK
" Conferma di voler procedere se vieni avvisato di software sconosciuto.
Parte 5 di 6: Programmazione del robot
Passaggio 1. Avvia l'IDE di Arduino facendo doppio clic sul file arduino.exe nella cartella IDE
Sarai accolto con un progetto vuoto.
Passaggio 2. Incolla il seguente codice per far andare dritto il tuo robot
Il codice seguente farà avanzare continuamente il tuo Arduino.
#include // questo aggiunge la libreria "Servo" al programma // quanto segue crea due oggetti servo Servo leftMotor; Servo destroMotore; void setup() { leftMotor.attach(12); // se hai accidentalmente cambiato i numeri dei pin dei tuoi servi, puoi scambiare i numeri qui rightMotor.attach(13); } void loop() { leftMotor.write(180); // con rotazione continua, 180 dice al servo di muoversi alla massima velocità "avanti". motore destro. scrivere (0); // se entrambi sono a 180, il robot andrà in cerchio perché i servi sono invertiti. "0", gli dice di muoversi "indietro" alla massima velocità. }
Passaggio 3. Crea e carica il programma
Fare clic sul pulsante freccia destra nell'angolo in alto a sinistra per creare e caricare il programma sull'Arduino connesso.
Potresti voler sollevare il robot dalla superficie, poiché continuerà ad andare avanti una volta caricato il programma
Passaggio 4. Aggiungi la funzionalità kill switch
Aggiungi il seguente codice alla sezione "void loop()" del tuo codice per abilitare il kill switch, sopra le funzioni "write()".
if(digitalRead(2) == HIGH) // questo si registra quando viene premuto il pulsante sul pin 2 di Arduino { while(1) { leftMotor.write(90); // "90" è la posizione neutra per i servi, che dice loro di smettere di girare a destraMotor.write(90); } }
Passaggio 5. Carica e prova il tuo codice
Con l'aggiunta del codice kill switch, puoi caricare e testare il robot. Dovrebbe continuare ad avanzare finché non si preme l'interruttore, a quel punto smetterà di muoversi. Il codice completo dovrebbe essere simile a questo:
#include // quanto segue crea due oggetti servo Servo leftMotor; Servo destroMotore; void setup() { leftMotor.attach(12); rightMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) { while(1) { leftMotor.write(90); rightMotor.write(90); } } motore sinistro.write(180); rightMotor.write(0); }
Parte 6 di 6: Esempio
Passaggio 1. Segui un esempio
Il codice seguente utilizzerà il sensore collegato al robot per farlo girare a sinistra ogni volta che incontra un ostacolo. Vedere i commenti nel codice per i dettagli su cosa fa ogni parte. Il codice sotto è l'intero programma.
#include Servo motore sinistro; Servo destroMotore; const int serialPeriod = 250; // questo limita l'output alla console a una volta ogni 1/4 di secondo unsigned long timeSerialDelay = 0; const int loopPeriod = 20; // imposta la frequenza con cui il sensore richiede una lettura a 20 ms, che è una frequenza di 50 Hz unsigned long timeLoopDelay = 0; // questo assegna le funzioni TRIG ed ECHO ai pin su Arduino. Apporta le modifiche ai numeri qui se ti sei connesso in modo diverso const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasuoni2Distanza; int ultrasonic2Durata; // definisce i due possibili stati del robot: marcia avanti o svolta a sinistra #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = guida in avanti (DEFAULT), 1 = gira a sinistra void setup() { Serial.begin(9600); // queste configurazioni dei pin del sensore pinMode(ultrasonic2TrigPin, OUTPUT); pinMode(ultrasonic2EchoPin, INPUT); // questo assegna i motori ai pin Arduino leftMotor.attach(12); rightMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) // rileva il kill switch { while(1) { leftMotor.write(90); rightMotor.write(90); } } debugOutput(); // questo stampa i messaggi di debug sulla console seriale if(millis() - timeLoopDelay >= loopPeriod) { readUltrasonicSensors(); // questo indica al sensore di leggere e memorizzare le distanze misurate stateMachine(); timeLoopDelay = millis(); } } void stateMachine() { if(state == DRIVE_FORWARD) // se nessun ostacolo rilevato { if(ultrasonic2Distance > 6 || ultrasonic2Distance < 0) // se non c'è niente davanti al robot. ultrasonicDistance sarà negativo per alcuni ultrasuoni se non ci sono ostacoli { // guidare in avanti rightMotor.write(180); leftMotor.write(0); } else // se c'è un oggetto davanti a noi { state = TURN_LEFT; } } else if(state == TURN_LEFT) // se viene rilevato un ostacolo, gira a sinistra { unsigned long timeToTurnLeft = 500; // ci vogliono circa 0,5 secondi per girare di 90 gradi. Potrebbe essere necessario modificarlo se le tue ruote sono di dimensioni diverse rispetto all'esempio unsigned long turnStartTime = millis(); // salva il tempo in cui abbiamo iniziato a girare while((millis()-turnStartTime) < timeToTurnLeft) // rimani in questo ciclo finché timeToTurnLeft non è trascorso { // gira a sinistra, ricorda che quando entrambi sono impostati su "180" girerà. rightMotor.write(180); leftMotor.write(180); } stato = DRIVE_FORWARD; } } void readUltrasonicSensors() { // questo è per gli ultrasuoni 2. Potrebbe essere necessario modificare questi comandi se si utilizza un sensore diverso. digitalWrite(ultrasonic2TrigPin, HIGH); ritardoMicrosecondi(10); // mantiene alto il pin di attivazione per almeno 10 microsecondi digitalWrite(ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn(ultrasonic2EchoPin, HIGH); ultrasuoni2Distanza = (ultrasonico2Durata/2)/29; } // quanto segue è per il debug degli errori nella console. void debugOutput() { if((millis() - timeSerialDelay) > serialPeriod) { Serial.print("ultrasonic2Distance: "); Serial.print(ultrasonic2Distance); Serial.print("cm"); Serial.println(); timeSerialDelay = millis(); } }