Com fer un robot a casa (amb imatges)

Taula de continguts:

Com fer un robot a casa (amb imatges)
Com fer un robot a casa (amb imatges)

Vídeo: Com fer un robot a casa (amb imatges)

Vídeo: Com fer un robot a casa (amb imatges)
Vídeo: Minecraft -Com fer un mapa d'aventures- ep 2 2024, Maig
Anonim

Voleu aprendre a fer el vostre propi robot? Hi ha molts tipus diferents de robots que podeu construir vosaltres mateixos. La majoria de la gent vol veure com un robot fa la feina fàcil de passar del punt A al B. Podeu construir un robot completament a partir de components analògics o comprar un kit d’inici. Fer el vostre propi robot és una manera fantàstica d’aprendre electrònica i programació d’ordinadors.

Pas

Primera part de 5: Muntatge del robot

1123333 1
1123333 1

Pas 1. Muntar els components

Per construir un robot bàsic, necessitareu uns quants components simples. Podeu trobar la majoria o tots aquests components a la vostra botiga local d’aficionats a l’electrònica o a alguns minoristes en línia. Alguns kits inclouen tots aquests components. Aquest robot no requereix cap soldadura:

  • Arduino Uno (o un altre microcontrolador)
  • 2 servos de 360 graus
  • 2 rodes a joc servo
  • 1 roda lliure
  • 1 tauler de prova (tauler de proves o tauler de projectes) que no s'hagi soldat (busqueu un tauler de prova que tingui dues files positives i negatives a cada costat)
  • 1 sensor de proximitat (amb cable de connector de quatre pins)
  • 1 polsador
  • 1 resistència de 10kΩ
  • 1 cable USB A a B.
  • 1 conjunt de capçaleres trencables
  • 1 porta bateries 6 x AA amb endoll de corrent de 9V DC
  • 1 paquet de 22 cables de pont o cable senzill
  • Aïllament d'anada i tornada (doble cinta) o pistola de cola
1123333 2
1123333 2

Pas 2. Gireu el compartiment de la bateria de manera que la part posterior plana quedi cap amunt

Construireu el cos del robot utilitzant el compartiment de la bateria com a base.

1123333 3
1123333 3

Pas 3. Organitzeu dos servos orientats a la mateixa direcció al final del compartiment de la bateria

Aquest extrem és el final on surt el cable de la bateria. Els servos haurien de tocar la part inferior i el mecanisme de rotació de cada servo hauria d’estar mirant cap als costats del compartiment de la bateria. És important que aquests servos estiguin disposats correctament de manera que les rodes siguin rectes. Els cables del servo han de sortir de la part posterior del compartiment de la bateria.

1123333 4
1123333 4

Pas 4. Enganxeu els servos amb el vostre aïllant o cola

Assegureu-vos que el servo estigui ben fixat al compartiment de la bateria. La part posterior del servo ha d’estar alineada amb la part posterior del compartiment de la bateria.

Ara, els servos haurien d’ocupar la meitat de l’espai situat a la part posterior del compartiment de la bateria

1123333 5
1123333 5

Pas 5. Adheriu la placa de prova perpendicular a l'espai restant del compartiment de la bateria

Aquesta placa de prova penjarà lleugerament a la part frontal del compartiment de la bateria i s’estendrà cap als dos costats. Assegureu-vos que el tauler de prova estigui ajustat abans de continuar. La fila "A" hauria d'estar més a prop del servo.

1123333 6
1123333 6

Pas 6. Connecteu el microcontrolador Arduino a la part superior del servo

Si connecteu el servo correctament, hi hauria d’haver una part plana dels dos servos que es toquin. Feu adherir la placa Arduino a aquest punt pla de manera que els connectors d'alimentació USB i Arduino estiguin mirant cap avall (lluny de la placa de prova). La part frontal de l'Arduino se superposarà amb la placa de prova.

1123333 7
1123333 7

Pas 7. Instal·leu les rodes als servos

Premeu fermament les rodes sobre el servomecanisme giratori. Això pot requerir una força considerable, ja que les rodes estan dissenyades per tenir forats que coincideixin exactament amb la forma de la punta del servo.

1123333 8
1123333 8

Pas 8. Instal·leu la roda lliure a la part inferior del tauler de prova

Si gireu el robot cap per avall, veureu una petita placa de prova penjada del compartiment de la bateria. Col·loqueu la roda lliure a aquesta part penjant. Utilitzeu una falca si cal. La roda lliure serveix de roda davantera que permet al robot girar amb facilitat en qualsevol direcció.

Si heu comprat un kit, és possible que la roda lliure tingui algunes falques que pugueu utilitzar per assegurar-vos que la roda pugui tocar el terra lliurement

Part 2 de 5: Cablatge del robot

1123333 9
1123333 9

Pas 1. Tallar dues capçaleres de 3 pins

L’utilitzarà per connectar el servo al tauler de prova. Premeu els passadors cap avall per les capçaleres, de manera que surten a una distància igual a banda i banda.

1123333 10
1123333 10

Pas 2. Introduïu les dues capçaleres als passadors 1-3 i 6-8 de la fila E al tauler de prova

Assegureu-vos que s’insereixen fermament o fermament.

1123333 11
1123333 11

Pas 3. Connecteu els servocables amb la capçalera, amb el cable negre al costat esquerre (pins 1 i 6)

Això connectarà el servo amb la placa de prova. Assegureu-vos que el servo esquerre està connectat a la capçalera esquerra i que el servo dret està connectat a la capçalera dreta.

1123333 12
1123333 12

Pas 4. Connecteu el cable de pont vermell dels passadors C2 i C7 al pas del carril vermell (positiu)

Assegureu-vos que utilitzeu el carril vermell a la part posterior del tauler de prova (més a prop de la resta del cos del robot).

1123333 13
1123333 13

Pas 5. Connecteu el cable de pont negre dels passadors B1 i B6 al passador blau del rail (terra)

Assegureu-vos que utilitzeu el carril blau a la part posterior del tauler de prova. No fixeu el cable al passador del carril vermell.

1123333 14
1123333 14

Pas 6. Connecteu els cables blancs dels ponts 12 i 13 de l'Arduino a A3 i A8

Això permetrà a l’Arduino controlar el servo i girar la roda.

1123333 15
1123333 15

Pas 7. Connecteu el sensor a la part frontal de la placa de prova

El sensor no està muntat al carril d’alimentació extern del tauler de prova, sinó a les dues primeres files de pins amb lletres (J). Assegureu-vos de col·locar-lo al centre amb el mateix nombre de pins buits a cada costat.

1123333 16
1123333 16

Pas 8. Connecteu el cable de pont negre del pin I14 al primer pin blau del carril a l'esquerra del sensor

Això farà que el sensor es posi a terra.

1123333 17
1123333 17

Pas 9. Connecteu el cable de pont vermell del pin I17 al primer pin de carril vermell a la dreta del sensor

Això proporcionarà energia al sensor.

1123333 18
1123333 18

Pas 10. Connecteu els cables de pont blanc del pin I15 al pin 9 d'Arduino i d'I16 al pin 8

Això proporcionarà informació des del sensor fins al microcontrolador.

Part 3 de 5: Instal·lació del cable d'alimentació

1123333 19
1123333 19

Pas 1. Gireu el robot perquè pugueu veure el compartiment de la bateria a l'interior

Col·loqueu el compartiment de la bateria de manera que el cable surti per la part inferior esquerra.

1123333 20
1123333 20

Pas 2. Connecteu el cable vermell amb la segona molla de l'esquerra a la part inferior

Assegureu-vos que el compartiment de la bateria estigui correctament alineat o orientat a la direcció correcta.

1123333 21
1123333 21

Pas 3. Connecteu el cable negre amb l'última molla a la part inferior dreta

Aquests dos cables ajudaran a proporcionar el voltatge adequat a l’Arduino.

1123333 22
1123333 22

Pas 4. Connecteu els cables vermells i negres als passadors vermells i blaus que es troben a la part dreta de la part posterior de la placa de prova

El fil negre hauria d’anar al pin blau del rail 30 del pin. El fil vermell hauria d’anar al pin roig del rail 30.

1123333 23
1123333 23

Pas 5. Connecteu el cable negre del pin GND a l'Arduino a la part posterior del rail blau

Connecteu el cable al pin 28 del rail blau.

1123333 24
1123333 24

Pas 6. Connecteu el cable negre des de la part posterior del rail blau a la part frontal del rail blau al passador 29 per a tots dos carrils

No connecteu el carril vermell, ja que podeu danyar l'Arduino.

1123333 25
1123333 25

Pas 7. Connecteu el cable vermell de la part frontal del carril vermell al pin 30 al pin de 5 V a Arduino

Això proporcionarà energia a l’Arduino.

1123333 26
1123333 26

Pas 8. Introduïu el polsador a l'espai entre els pins 24-26

Aquest interruptor us permetrà apagar el robot sense haver d’apagar l’alimentació.

1123333 27
1123333 27

Pas 9. Connecteu el cable vermell de H24 al carril vermell del següent pin buit a la dreta del sensor

Això proporcionarà alimentació al botó.

1123333 28
1123333 28

Pas 10. Utilitzeu una resistència per connectar H26 al carril blau

Connecteu-lo al passador que hi ha al costat del fil negre que acabeu de connectar en els passos anteriors.

1123333 29
1123333 29

Pas 11. Connecteu el cable blanc del G26 al pin 2 d'Arduino

Això permetrà a Arduino detectar botons de pressió.

Part 4 de 5: Instal·lació del programari Arduino

1123333 30
1123333 30

Pas 1. Descarregueu i extreieu Arduino IDE

Aquí es desenvolupa Arduino i us permet programar instruccions que podeu carregar al microcontrolador Arduino. Podeu descarregar-lo gratuïtament des de arduino.cc/en/main/software. Descomprimiu el fitxer descarregat fent doble clic al fitxer i traslladant la carpeta que conté a una ubicació de fàcil accés. En realitat no instal·laràs el programa, sinó que només l’executaràs des d’una carpeta que s’ha extret fent doble clic a arduino.exe.

1123333 31
1123333 31

Pas 2. Connecteu el compartiment de la bateria a l'Arduino

Introduïu la presa posterior de la bateria al connector de l'Arduino per alimentar-la.

1123333 32
1123333 32

Pas 3. Inseriu Arduino a l'ordinador mitjançant USB

És probable que Windows no reconegui el dispositiu.

1123333 33
1123333 33

Pas 4. Premeu

Guanya + R i escriviu devmgmt.msc.

Aquesta ordre obrirà el Gestor de dispositius.

1123333 34
1123333 34

Pas 5. Feu clic amb el botó dret a Dispositiu desconegut a Altres dispositius i seleccioneu Actualitza el programari del controlador

Si no veieu aquesta opció, feu clic a Propietats, seleccioneu la pestanya Controlador i, a continuació, feu clic a Actualitza el controlador.

1123333 35
1123333 35

Pas 6. Seleccioneu Cerca del meu ordinador per obtenir el programari del controlador

Això us permetrà seleccionar els controladors integrats que venien amb l’IDE Arduino.

1123333 36
1123333 36

Pas 7. Feu clic a Navega i obriu la carpeta que heu extret anteriorment

Hi trobareu la carpeta de controladors.

1123333 37
1123333 37

Pas 8. Seleccioneu la carpeta de controladors i feu clic a D'acord

Confirmeu que voleu continuar si se us avisa sobre programari desconegut.

Part 5 de 5: Programació de robots

1123333 38
1123333 38

Pas 1. Obriu Arduino IDE fent doble clic al fitxer arduino.exe de la carpeta IDE

Se us rebrà un projecte en blanc.

1123333 39
1123333 39

Pas 2. Enganxeu o enganxeu el següent codi per avançar el robot

El codi següent mantindrà el vostre Arduino en marxa.

#include // això afegeix la biblioteca "Servo" al programa // l'ordre següent crea dos servobjectes Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // si accidentalment heu canviat els números de pin del vostre servo, podeu canviar els números aquí rightMotor.attach (13); } bucle buit () {leftMotor.write (180); // amb una rotació de 360 graus (rotació contínua), el número 180 indica al servo que avanci a tota velocitat. rightMotor.write (0); // si els dos valors són 180, el robot girarà en cercle perquè el servo està invertit. "0" indica al robot que es mogui "cap enrere" a tota velocitat. }

1123333 40
1123333 40

Pas 3. Creeu i pengeu el programa

Feu clic al botó de fletxa dreta a l'extrem superior esquerre per crear i penjar un programa a l'Arduino connectat.

És possible que vulgueu aixecar el robot de la superfície, ja que el robot continuarà avançant després de penjar el programa

1123333 41
1123333 41

Pas 4. Afegiu una funció d’interruptor de parada (interruptor de matar)

Afegiu el codi següent a la secció "bucle buit ()" del vostre codi per afegir una funció de commutador d'aturada a sobre de la funció "write ()".

if (digitalRead (2) == HIGH) // aquesta ordre s'executa quan es prem el botó al pin 2 Arduino {while (1) {leftMotor.write (90); // "90" és la posició neutra del servo, que indica al servo que deixi de girar rightMotor.write (90); }}

1123333 42
1123333 42

Pas 5. Pengeu i comproveu el vostre codi

Amb el codi d’interruptor de parada ja afegit, podeu penjar el codi i provar el robot. El robot hauria de continuar endavant fins que premeu el botó d’interruptor d’aturada que farà que s’aturi el robot. El codi complet serà així:

#include // l'ordre següent crea dos objectes servo Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }

Exemple

El codi següent utilitzarà sensors instal·lats al robot per fer-lo girar a l’esquerra sempre que el robot trobi un obstacle. Mireu els comentaris al codi per obtenir detalls sobre com utilitzar cada part. El codi següent és tot el programa.

#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // aquest codi proporciona que el temps de sortida de la consola sigui cada 1/4 de segon (250 ms) sense signar molt de temps SerialDelay = 0; const int loopPeriod = 20; // aquest codi estableix la freqüència de lectura del sensor a 20 ms, que és de 50 Hz sense signar molt tempsLoopDelay = 0; // aquest codi assigna les funcions TRIG i ECHO als pins de l'Arduino. Ajusteu els números aquí si els connecteu d'una manera diferent const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // aquest codi defineix dos possibles estats del robot: continuar endavant o girar a l'esquerra #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = continuar endavant (DEFAULT), 1 = girar a l'esquerra void setup () {Serial.begin (9600); // aquest sensor determina la configuració del pin pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // això assigna el motor als pins Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // aquest codi detecta un '' stop '' {mentre (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // aquest codi imprimeix missatges de depuració a la consola sèrie if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // aquest codi indica al sensor que llegeixi i emmagatzemi dades sobre la distància mesurada stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // si no es detecta cap obstacle {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // si no hi ha res davant del robot. ultrasonicDistance serà negativa per a alguns ultrasons si no hi ha obstacles {// condueix endavant rightMotor.write (180); leftMotor.write (0); } else // si hi ha un objecte davant nostre {state = TURN_LEFT; }} else if (state == TURN_LEFT) // si es detecta un obstacle, gireu a l'esquerra {unsigned long timeToTurnLeft = 500; // triga uns 0,5 segons a girar 90 graus. Pot ser que hàgiu d'ajustar aquest valor si les rodes difereixen en mida de la mida de l'exemple sense signe llarg turnStartTime = millis (); // mantingueu la condició quan el robot comença a girar mentre ((millis () - turnStartTime) <timeToTurnLeft) // mantingueu aquest cicle fins que passi TimeToTurnLeft (500) {// gireu a l'esquerra, recordeu que quan tots dos són "180", el robot girarà. rightMotor.write (180); leftMotor.write (180); } estat = DRIVE_FORWARD; }} void readUltrasonicSensors () {// això és per ultrasons 2. És possible que hàgiu de canviar aquesta ordre si utilitzeu un sensor diferent. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // estireu el pin TRIG durant almenys 10 microsegons digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration / 2) / 29; } // el següent és per a la depuració d'errors a la consola. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}

Recomanat: