- Component necessari:
- Muntatge del robot netejador de pisos:
- Cablejat i connexions:
- Explicació de la programació:
Els netejadors automàtics de sòls no són cap novetat, però tots comparteixen un problema comú. Tots són massa cars pel que fan. Avui fabricarem un robot de neteja automàtica de la llar que només costa una petita fracció dels que hi ha al mercat. Aquest robot pot detectar els obstacles i objectes que hi ha al davant i pot continuar movent-se, evitant els obstacles, fins que es netegi tota l'habitació. Té un petit raspall unit per netejar el terra.
Consulteu també el nostre robot de neteja intel·ligent amb Arduino
Component necessari:
- Arduino UNO R3.
- Sensor d'ultrasons.
- Escut del controlador del motor Arduino.
- Xassís de robot de tracció a les rodes.
- Ordinador per programar l'Arduino.
- Bateria per als motors.
- Un banc d'energia per alimentar l'Arduino
- Un raspall de sabates.
- Un coixinet exfoliant Scotch Brite.
Nota: en lloc d’utilitzar piles, també podeu fer servir un cable llarg de quatre fils com ho vam fer nosaltres. Tot i que aquesta no és una solució molt elegant ni pràctica, però podeu fer-la si no teniu previst utilitzar-la al món real cada dia. Assegureu-vos que la longitud del cable sigui suficient.
Abans d’entrar en detalls, primer debatem sobre Ultrasons.
Sensor d'ultrasons HC-SR04:
El sensor d'ultrasons s'utilitza per mesurar la distància amb alta precisió i lectures estables. Pot mesurar la distància de 2cm a 400cm o d’1 polzada a 13 peus. Emet una ona d’ultrasò a la freqüència de 40 KHz a l’aire i, si l’objecte s’interposarà, tornarà al sensor. Utilitzant el temps que triga a copejar l’objecte i torna, podeu calcular la distància.

El sensor d'ultrasons utilitza una tècnica anomenada "ECHO". "ECHO" és simplement una ona sonora reflectida. Tindreu un ECHO quan el so es reflecteixi després d’arribar a un carreró sense sortida.
El mòdul HCSR04 genera una vibració sonora en un rang ultrasònic quan fem el pin "Trigger" alt durant uns 10us que enviarà una ràfega sonora de 8 cicles a la velocitat del so i després de colpejar l'objecte, el rebrà el pin Echo. Depenent del temps que torni la vibració del so per tornar, proporciona una sortida de pols adequada. Si l’objecte està lluny, es necessita més temps per escoltar ECHO i l’amplada de pols de sortida serà gran. I si l’obstacle és a prop, l’ECO s’escoltarà més ràpidament i l’amplada del pols de sortida serà menor.
Podem calcular la distància de l’objecte en funció del temps que triga l’ona ultrasònica a tornar al sensor. Com que es coneix el temps i la velocitat del so, podem calcular la distància mitjançant les següents fórmules.
Distància = (Temps x Velocitat del so a l’aire (343 m / s)) / 2.
El valor es divideix per dos, ja que l’ona viatja cap endavant i cap enrere cobrint la mateixa distància. Per tant, el temps per arribar a l'obstacle és només la meitat del temps total que es triga
Llavors, la distància en centímetres = 17150 * T
Anteriorment hem fet molts projectes útils mitjançant aquest sensor ultrasònic i Arduino, comproveu-los a continuació:
- Mesura de distància basada en Arduino mitjançant sensor d'ultrasons
- Alarma de porta mitjançant Arduino i sensor d'ultrasons
- Monitorització basada en IOT amb Arduino
Muntatge del robot netejador de pisos:
Munteu l'Arduino al xassís. Assegureu-vos de no fer cap curtcircuit en cas que el xassís sigui de metall. És una bona idea aconseguir una caixa per l'Arduino i el blindatge del controlador del motor. Assegureu els motors amb les rodes i el xassís mitjançant cargols. El vostre xassís hauria de tenir opcions per fer-ho des de fàbrica, però si no ho feu, podeu improvisar una solució diferent. L’epoxy no és una mala idea. Munteu el raspall de sabates a la part frontal del xassís. Per a això, hem utilitzat una combinació d'epoxi M-Seal i cargols perforats, tot i que podeu utilitzar qualsevol altra solució que us sigui més fàcil. Munteu el fregall Scotch Brite darrere del raspall. Hem utilitzat un eix que travessa el xassís que el manté en joc, tot i que també és improvisable. Es pot utilitzar un eix carregat de molla per acompanyar-lo. Munteu les bateries (o els cables a la part posterior del xassís).L’epoxy o el suport de la bateria són bones maneres de fer-ho. La cola calenta tampoc no està malament.



Cablejat i connexions:
El circuit d’aquest robot de neteja automàtica de la llar és molt senzill. Connecteu el sensor d'ultrasons a l'Arduino com s'esmenta a continuació i col·loqueu el blindatge del controlador del motor a l'Arduino com qualsevol altre blindatge.

El pin Trig d'Ultrasons està connectat al 12 pin de l'Arduino, el pin Echo està connectat al 13 pin, el pin de tensió al pin de 5 V i el pin de terra al pin de terra. El pin Echo i el pin Trig permeten a Arduino comunicar-se amb el sensor. L’alimentació es subministra al sensor a través dels pins de tensió i terra, i els pins Trig i Echo li permeten enviar i rebre dades amb l’Arduino. Obteniu més informació sobre la interfície del sensor ultrasònic amb Arduino aquí.
El blindatge del motor ha de tenir com a mínim 2 sortides i ha d’estar connectat als vostres 2 motors. Normalment, aquestes sortides tenen l'etiqueta "M1" i "M2" o "Motor 1" i "Motor 2". Connecteu les bateries i el banc d’alimentació fins a la pantalla del motor i Arduino respectivament. No els connecteu creuadament. El blindatge del motor ha de tenir un canal d’entrada. Si feu servir cables, connecteu-los a adaptadors de CA.
Explicació de la programació:
Obriu l'IDE Arduino. Enganxeu el codi Arduino complet, donat al final d'aquest tutorial, a l'IDE. Connecteu el vostre Arduino a l'ordinador. Seleccioneu el port a Eines / Port. Feu clic al botó de càrrega.
Proveu el robot. Si resulta massa poc o massa, experimenta amb els retards fins que quedi perfecte.
Abans d’entrar al codi, hem d’instal·lar la Biblioteca d’Adafruit Motor Shield per accionar els motors de corrent continu. Com que fem servir el blindatge del controlador del motor L293D, hem de descarregar la biblioteca AFmotor des d’aquí. A continuació, afegiu-lo a la carpeta de la biblioteca Arduino IDE. Assegureu-vos de canviar el nom a AFMotor . Obteniu més informació sobre com instal·lar aquesta biblioteca.
El codi és fàcil i es pot entendre fàcilment, però aquí n'hem explicat algunes parts:
A sota del codi es configura el robot. Primer hem inclòs la Biblioteca Adafruit per conduir els motors amb blindatge del controlador del motor. Després d’això, vam definir el pin Trig i el pin Echo. També posa en marxa els motors. Estableix el pin Trig a la sortida i el pin Echo a l'entrada.
#include #define trigPin 12 #define echoPin 13 AF_DCMotor motor1 (1, MOTOR12_64KHZ); AF_DCMotor motor2 (2, MOTOR12_8KHZ); void setup () {pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); }
A continuació, el codi indica a Arduino que faci un bucle a les ordres següents. Després, utilitza el sensor per transmetre i rebre sons per ultrasons. Calcula la distància que es troba de l'objecte un cop les ones ultrasòniques reboten, després de notar que l'objecte es troba dins de la distància establerta, li diu a l'Arduino que giri els motors en conseqüència.
bucle buit () {llarga durada, distància; digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); durada = pulseIn (echoPin, HIGH); distància = (durada / 2) / 29,1; if (distància <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (BACKWARD); motor2.run (BACKWARD); endarreriment (2000); // CANVIAR AIX ACC SEGONS LA FORMA DEL ROBOT.
Això fa que el robot giri girant un motor i mantenint l’altre estancat.
El codi següent fa que el robot giri els dos motors en la mateixa direcció per fer-lo avançar fins que detecti un objecte al límit esmentat.
else {motor1.setSpeed (160); // CANVIEU AIXORD SEGONS EL MOLT RÀPID QUE DEuria anar el vostre robot. motor2.setSpeed (160); // CANVIEU AIX S AL MATEIX VALOR QUE VOSTRE POSA. motor1.run (FORWARD); motor2.run (AVANT); }
