3.4.3. Explicació breu codi

En aquest apartat explicaré breument el codi del robot ja que el codi sencer està a l’Annex IILa 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