3.4.3. Explicació breu codi
En aquest apartat explicaré breument el codi del robot ja que el codi sencer està a l’Annex II. La programació de qualsevol projecte d’Arduino es separa en quatre blocs:
- Llibreries: són col·leccions de funcions que s’inclouen d'una manera molt senzilla i explícita en el codi i que proporcionen una certa funcionalitat específica.
En el meu cas, només he necessitat la llibreria Servo.h per a poder controlar fàcilment tots els servomotors.
- Variables: En aquest bloc he declarat tots els components electrònics i el pin on estan connectats respectivament.
Primer de tot, vaig declarar tres variables per controlar el servo del raspall central, el servo del raspall lateral dret i el servo pel raspall lateral esquerre.
A continuació, vaig definir els pins IN1, IN2 i ENA que serveixen per controlar el sentit i la velocitat de gir del motor A.
Vaig fer el mateix amb els pins IN3 i IN4 que controlen el sentit de gir del motor B.
Pel que fa als sensors ultrasònics, vaig crear quatre variables per a cadascun. “Trig” i “Echo” són els pins Trigger i Echo del sensor. Les variables “temps” i “distancia” són necessàries pel càlcul de la distància del sensor ultrasònic fins a l’obstacle més proper.
Per acabar, vaig crear una variable anomenada “vel” per controlar la velocitat dels motors de les rodes i dues variables pels LEDs.
- Void setup: Tal com indica la paraula setup, en aquest bloc es defineix la configuració dels elements prèviament declarats, segons si són d’entrada (si reben dades) o de sortida (si envien dades), utilitzant la funció pinMode (número de pin, INPUT / OUTPUT).
El setup només s’executa una vegada a l’iniciar-se el programa.
- Void loop: En aquest bloc s’executa repetidament el codi principal. Aquí es posen totes les funcions que ha de realitzar la placa, que les llegeix de dalt a baix.
Un cop arriba al final, el void loop torna a iniciar-se.
En el meu codi, dins del void loop es troben quatre funcions i tres ordres, per fer girar en sentit horari o antihorari els servos.
Les tres primeres funcions són per fer el càlcul de la distància en centímetres del sensor ultrasònic mig, dret i esquerre fins a l’obstacle més proper. Les distàncies es calculen a partir de la fórmula que s’observa en la imatge de la dreta, explicada en la teoria dels sensors ultrasònics.
A continuació, hi ha una funció anomenada “Automatic” en la qual es troben una sèrie de condicions que duen a terme el moviment automàtic del robot, és a dir, segons si la distància d’un sensor és més gran o més petita que la d’un altre, el robot es mourà cap endavant, cap a la dreta, cap a l’esquerra, cap enrere o s’aturarà.
He utilitzat funcions perquè ajuda a tenir organitzat el codi, redueix la probabilitat d’errors a l’hora de modificar el codi, fan que la mida del sketch sigui menor i, sobretot, perquè facilita la lectura del codi.
Comentaris
Publica un comentari a l'entrada