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
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
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.
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.
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
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.
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.
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.
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
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.
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.
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.
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).
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.
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.
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.
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.
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.
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ó
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.
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.
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.
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.
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.
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.
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.
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ó.
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ó.
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.
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
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.
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.
Pas 3. Inseriu Arduino a l'ordinador mitjançant USB
És probable que Windows no reconegui el dispositiu.
Pas 4. Premeu
Guanya + R i escriviu devmgmt.msc.
Aquesta ordre obrirà el Gestor de dispositius.
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.
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.
Pas 7. Feu clic a Navega i obriu la carpeta que heu extret anteriorment
Hi trobareu la carpeta de controladors.
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
Pas 1. Obriu Arduino IDE fent doble clic al fitxer arduino.exe de la carpeta IDE
Se us rebrà un projecte en blanc.
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. }
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
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); }}
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 (); }}