Vuoi imparare a creare il tuo robot? Esistono molti tipi diversi di robot che puoi costruire da solo. La maggior parte delle persone vuole vedere un robot fare il facile lavoro di spostarsi dal punto A al punto B. Puoi costruire un robot completamente con componenti analogici o acquistare uno starter kit. Creare il tuo robot è un ottimo modo per imparare l'elettronica e la programmazione del computer.
Fare un passo
Parte 1 di 5: assemblaggio del robot
Passaggio 1. Assemblare i componenti
Per costruire un robot di base, avrai bisogno di pochi semplici componenti. Puoi trovare la maggior parte o tutti questi componenti nel tuo negozio di hobby di elettronica locale o presso alcuni rivenditori online. Alcuni kit includono tutti questi componenti. Questo robot non richiede alcuna saldatura:
- Arduino Uno (o altro microcontrollore)
- 2 servi 360 gradi
- 2 ruote abbinate al servo
- 1 ruota libera
- 1 scheda di test (breadboard o scheda di progetto) che non è stata saldata (cercare una scheda di test con due righe positive e negative su ciascun lato)
- 1 sensore di prossimità (con cavo connettore a quattro pin)
- 1 interruttore a pulsante
- 1 resistenza 10kΩ
- 1 cavo USB da A a B
- 1 set di intestazioni fragili
- 1 Portabatterie 6 x AA con presa di corrente da 9 V CC
- 1 confezione da 22. cavi jumper o cavo singolo
- Isolamento avanti e indietro (doppio nastro) o pistola per colla
Passaggio 2. Ruotare il vano batteria in modo che la parte posteriore piatta sia rivolta verso l'alto
Costruirai il corpo del robot usando il vano batteria come base.
Passaggio 3. Disporre due servi rivolti nella stessa direzione all'estremità dell'alloggiamento della batteria
Questa estremità è l'estremità in cui il cavo esce dalla batteria. I servi dovrebbero toccare il fondo e il meccanismo di rotazione di ogni servo dovrebbe essere rivolto verso l'esterno dai lati del vano batteria. È importante che questi servi siano disposti correttamente in modo che le ruote siano dritte. I cavi del servo devono uscire dal retro del vano batterie.
Passaggio 4. Incolla i servi con l'isolamento o la colla
Assicurati che il servo sia saldamente fissato al vano batteria. La parte posteriore del servo deve essere allineata con la parte posteriore del vano batteria.
Ora, i servi dovrebbero occupare metà dello spazio nella parte posteriore dell'alloggiamento della batteria
Passaggio 5. Fissare la scheda di prova perpendicolarmente allo spazio rimanente nel vano batterie
Questa scheda di prova penderà leggermente sopra la parte anteriore del vano batteria e si estenderà su entrambi i lati. Assicurarsi che la scheda di prova sia ben stretta prima di procedere. La riga "A" dovrebbe essere la più vicina al servo.
Passaggio 6. Collegare il microcontrollore Arduino alla parte superiore del servo
Se attacchi correttamente il servo, dovrebbe esserci una parte piatta dei due servi che si toccano. Fai aderire la scheda Arduino a questo punto piatto in modo che i connettori di alimentazione USB e Arduino siano rivolti verso il basso (lontano dalla scheda di test). La parte anteriore di Arduino si sovrapporrà alla scheda di test.
Passaggio 7. Installare le ruote sui servi
Premere con decisione le ruote sul servomeccanismo rotante. Ciò potrebbe richiedere una forza considerevole poiché le ruote sono progettate per avere fori che corrispondono esattamente alla forma della punta del servo.
Passaggio 8. Installare la ruota libera nella parte inferiore della scheda di prova
Se capovolgi il robot, vedrai una piccola scheda di test appesa al vano batterie. Attacca la ruota libera a questa parte sospesa. Usa un cuneo se necessario. La ruota libera funge da ruota anteriore che consente al robot di girare con facilità in qualsiasi direzione.
Se hai acquistato un kit, la ruota libera potrebbe avere dei cunei che puoi utilizzare per assicurarti che la ruota sia libera di toccare il suolo
Parte 2 di 5: cablaggio del robot
Passaggio 1. Tagliare due intestazioni a 3 pin
Lo userai per collegare il servo alla scheda di test. Spingi i perni verso il basso attraverso le intestazioni, in modo che escano alla stessa distanza su entrambi i lati.
Passaggio 2. Inserire le due intestazioni nei pin 1-3 e 6-8 nella riga E sulla scheda di test
Assicurati che siano inseriti saldamente o saldamente.
Passaggio 3. Collegare i fili del servo con l'intestazione, con il filo nero sul lato sinistro (pin 1 e 6)
Questo collegherà il servo con la scheda di test. Assicurati che il servo sinistro sia collegato all'intestazione sinistra e il servo destro sia collegato all'intestazione destra.
Passaggio 4. Collegare il ponticello rosso dai pin C2 e C7 al pin della guida rossa (positivo)
Assicurati di utilizzare il binario rosso sul retro della scheda di test (più vicino al resto del corpo del robot).
Passaggio 5. Collegare il ponticello nero dai pin B1 e B6 al pin della guida blu (terra)
Assicurati di utilizzare la guida blu sul retro della scheda di prova. Non collegare il cavo al perno 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 il servo e girare la ruota.
Passaggio 7. Collegare il sensore alla parte anteriore della scheda di test
Il sensore non è montato sulla barra di alimentazione esterna sulla scheda di test, ma sulle prime due file di pin con la lettera (J). Assicurati di posizionarlo proprio al centro con un numero uguale di spilli vuoti su ciascun lato.
Passaggio 8. Collegare il ponticello nero dal pin I14 al primo pin della guida blu a sinistra del sensore
Questo metterà a terra il sensore.
Passaggio 9. Collegare il ponticello rosso dal pin I17 al primo pin della guida rossa a destra del sensore
Ciò fornirà alimentazione al sensore.
Passaggio 10. Collegare i cavi dei ponticelli bianchi dal pin I15 al pin 9 su Arduino e da I16 al pin 8
Ciò fornirà informazioni dal sensore al microcontrollore.
Parte 3 di 5: installazione del cavo di alimentazione
Passaggio 1. Capovolgi il robot in modo da poter vedere il vano batteria all'interno
Disporre il vano batterie in modo che il cavo esca dalla parte inferiore sinistra.
Passaggio 2. Collegare il filo rosso con la seconda molla da sinistra in basso
Assicurarsi che il vano batteria sia correttamente allineato o rivolto nella direzione corretta.
Passaggio 3. Collegare il filo nero con l'ultima molla in basso a destra
Questi due fili aiuteranno a fornire la giusta tensione ad Arduino.
Passaggio 4. Collegare i fili rosso e nero ai pin rosso e blu che si trovano sul lato destro sul retro della scheda di test
Il filo nero dovrebbe andare al pin della guida blu sul pin 30. Il filo rosso dovrebbe andare al pin della guida rossa sul pin 30.
Passaggio 5. Collegare il filo nero dal pin GND sull'Arduino al retro della guida blu
Collegare il filo al pin 28 sulla guida blu.
Passaggio 6. Collegare il filo nero dalla parte posteriore della guida blu alla parte anteriore della guida blu sul pin 29 per entrambe le guide
Non collegare la guida rossa poiché potresti danneggiare l'Arduino.
Passaggio 7. Collegare il filo rosso dalla parte anteriore della guida rossa sul pin 30 al pin 5V su Arduino
Ciò fornirà energia all'Arduino.
Passaggio 8. Inserire l'interruttore a pulsante nello spazio tra i pin 24-26
Questo interruttore ti consentirà di spegnere il robot senza dover spegnere l'alimentazione.
Passaggio 9. Collegare il filo rosso da H24 alla guida rossa sul successivo pin vuoto a destra del sensore
Ciò fornirà alimentazione al pulsante.
Passaggio 10. Utilizzare un resistore per collegare H26 alla guida blu
Collegalo al pin direttamente accanto al filo nero che hai appena collegato nei passaggi precedenti.
Passaggio 11. Collegare il filo bianco da G26 al pin 2 su Arduino
Ciò consentirà ad Arduino di rilevare i pulsanti.
Parte 4 di 5: installazione del software Arduino
Passaggio 1. Scarica ed estrai Arduino IDE
Qui è dove viene sviluppato 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 sul file e spostando la cartella che contiene in una posizione di facile accesso. In realtà non installerai il programma, ma lo eseguirai semplicemente da una cartella che è stata estratta facendo doppio clic su arduino.exe.
Passaggio 2. Collega il vano batteria ad Arduino
Inserisci la presa posteriore della batteria nel connettore sull'Arduino per alimentarlo.
Passaggio 3. Inserisci Arduino nel tuo computer tramite USB
È probabile che Windows non riconosca il dispositivo.
Passaggio 4. Premere
Win+R e digita devmgmt.msc.
Questo comando aprirà Gestione dispositivi.
Passaggio 5. Fare clic con il pulsante destro del mouse su Dispositivo sconosciuto in 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 Sfoglia il mio computer per il software del driver
Ciò ti consentirà di selezionare i driver integrati forniti con l'IDE Arduino.
Passaggio 7. Fare clic su Sfoglia, quindi aprire la cartella estratta in precedenza
Al suo interno troverai la cartella dei driver.
Passaggio 8. Selezionare la cartella dei driver e fare clic su OK
Conferma di voler continuare se vieni avvisato di software sconosciuto.
Parte 5 di 5: Programmazione dei robot
Passo 1. Apri Arduino IDE facendo doppio clic sul file arduino.exe nella cartella IDE
Sarai accolto con un progetto vuoto.
Passaggio 2. Incolla o incolla il seguente codice per far avanzare il tuo robot
Il codice seguente manterrà il tuo Arduino in funzione.
#include // aggiunge la libreria “Servo” al programma // il seguente comando crea due oggetti servo Servo leftMotor; Servo destroMotore; void setup() { leftMotor.attach(12); // se hai scambiato accidentalmente i numeri dei pin per il tuo servo, puoi scambiare i numeri qui rightMotor.attach(13); } void loop() { leftMotor.write(180); // con una rotazione di 360 gradi (rotazione continua), il numero 180 indica al servo di muoversi "in avanti" alla massima velocità. rightMotor.write(0); // se entrambi i valori sono 180, il robot ruoterà in cerchio perché il servo è invertito. "0" dice al robot di muoversi "indietro" alla massima velocità. }
Passaggio 3. Creare e caricare il programma
Fare clic sul pulsante freccia destra nell'angolo in alto a sinistra per creare e caricare un programma sull'Arduino connesso.
Potresti voler sollevare il robot dalla superficie poiché il robot continuerà a camminare in avanti dopo il caricamento del programma
Passaggio 4. Aggiungere una funzione di interruttore di arresto (kill switch)
Aggiungi il seguente codice alla sezione "void loop()" del tuo codice per aggiungere una funzione di interruttore di arresto sopra la funzione "write()".
if(digitalRead(2) == HIGH) // questo comando viene eseguito quando viene premuto il pulsante sul pin 2 Arduino { while(1) { leftMotor.write(90); // "90" è la posizione neutra per il servo, che dice al servo di smettere di girare a destraMotor.write(90); } }
Passaggio 5. Carica e controlla il tuo codice
Con il codice dell'interruttore di arresto già aggiunto, puoi caricare il codice e testare il robot. Il robot dovrebbe continuare ad avanzare fino a quando non si preme il pulsante dell'interruttore di arresto che causerà l'arresto del robot. Il codice completo sarà simile a questo:
#include // il seguente comando crea due oggetti Servo leftMotor servo; 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); }
Esempio
Il codice seguente utilizzerà i sensori installati sul robot per farlo girare a sinistra ogni volta che il robot incontra un ostacolo. Guarda i commenti nel codice per i dettagli su come utilizzare ciascuna parte. Il codice sotto è l'intero programma.
#include Servo motore sinistro; Servo destroMotore; const int serialPeriod = 250; // questo codice fornisce al tempo di ritardo dell'output della console di essere ogni 1/4 di secondo (250 ms) unsigned long timeSerialDelay = 0; const int loopPeriod = 20; // questo codice imposta la frequenza di lettura del sensore a 20 ms, ovvero 50 Hz unsigned long timeLoopDelay = 0; // questo codice assegna le funzioni TRIG ed ECHO ai pin su Arduino. Regola i numeri qui se li colleghi in modo diverso const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasuoni2Distanza; int ultrasonic2Durata; // questo codice definisce due possibili stati del robot: continua avanti o gira a sinistra #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = continua in avanti (DEFAULT), 1 = gira a sinistra void setup() { Serial.begin(9600); // questo sensore determina la configurazione dei pin pinMode(ultrasonic2TrigPin, OUTPUT); pinMode(ultrasonic2EchoPin, INPUT); // questo assegna il motore ai pin Arduino leftMotor.attach(12); rightMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) // questo codice rileva uno ''stop'' { while(1) { leftMotor.write(90); rightMotor.write(90); } } debugOutput(); // questo codice stampa i messaggi di debug sulla console seriale if(millis() - timeLoopDelay >= loopPeriod) { readUltrasonicSensors(); // questo codice indica al sensore di leggere e memorizzare i dati sulla distanza misurata stateMachine(); timeLoopDelay = millis(); } } void stateMachine() { if(state == DRIVE_FORWARD) // se non viene rilevato alcun ostacolo { if(ultrasonic2Distance > 6 || ultrasonic2Distance < 0) // se nulla è 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; // impiega circa 0,5 secondi per girare di 90 gradi. Potrebbe essere necessario modificare questo valore se le dimensioni delle ruote differiscono da quelle dell'esempio unsigned long turnStartTime = millis(); // mantieni la condizione quando il robot inizia a girare while((millis()-turnStartTime) < timeToTurnLeft) // mantieni questo ciclo fino a quando timeToTurnLeft (500) è passato { // gira a sinistra, ricorda che quando entrambi sono "180", il robot girerà. rightMotor.write(180); leftMotor.write(180); } stato = DRIVE_FORWARD; } } void readUltrasonicSensors() { // questo è per gli ultrasuoni 2. Potrebbe essere necessario modificare questo comando se si utilizza un sensore diverso. digitalWrite(ultrasonic2TrigPin, HIGH); ritardoMicrosecondi(10); // tira in alto il pin TRIG 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(); } }