Come costruire un robot in casa (con immagini)

Sommario:

Come costruire un robot in casa (con immagini)
Come costruire un robot in casa (con immagini)

Video: Come costruire un robot in casa (con immagini)

Video: Come costruire un robot in casa (con immagini)
Video: COME METTERE UNA IMMAGINE SU MINECRAFT TUTORIAL ITA 2021 FUNZIONANTE!! 2024, Novembre
Anonim

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

1123333 1
1123333 1

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
1123333 2
1123333 2

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.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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).

1123333 13
1123333 13

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.

1123333 14
1123333 14

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.

1123333 15
1123333 15

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.

1123333 16
1123333 16

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.

1123333 17
1123333 17

Passaggio 9. Collegare il ponticello rosso dal pin I17 al primo pin della guida rossa a destra del sensore

Ciò fornirà alimentazione al sensore.

1123333 18
1123333 18

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

1123333 19
1123333 19

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.

1123333 20
1123333 20

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.

1123333 21
1123333 21

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.

1123333 22
1123333 22

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.

1123333 23
1123333 23

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.

1123333 24
1123333 24

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.

1123333 25
1123333 25

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.

1123333 26
1123333 26

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.

1123333 27
1123333 27

Passaggio 9. Collegare il filo rosso da H24 alla guida rossa sul successivo pin vuoto a destra del sensore

Ciò fornirà alimentazione al pulsante.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Passaggio 2. Collega il vano batteria ad Arduino

Inserisci la presa posteriore della batteria nel connettore sull'Arduino per alimentarlo.

1123333 32
1123333 32

Passaggio 3. Inserisci Arduino nel tuo computer tramite USB

È probabile che Windows non riconosca il dispositivo.

1123333 33
1123333 33

Passaggio 4. Premere

Win+R e digita devmgmt.msc.

Questo comando aprirà Gestione dispositivi.

1123333 34
1123333 34

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.

1123333 35
1123333 35

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.

1123333 36
1123333 36

Passaggio 7. Fare clic su Sfoglia, quindi aprire la cartella estratta in precedenza

Al suo interno troverai la cartella dei driver.

1123333 37
1123333 37

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

1123333 38
1123333 38

Passo 1. Apri Arduino IDE facendo doppio clic sul file arduino.exe nella cartella IDE

Sarai accolto con un progetto vuoto.

1123333 39
1123333 39

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à. }

1123333 40
1123333 40

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

1123333 41
1123333 41

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); } }

1123333 42
1123333 42

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(); } }

Consigliato: