El programa s’ha pogut realitzar gràcies a una llibreria ja existent (CDS5500) que facilita molt el control dels motors, en aquesta llibreria consten diverses funcions, entre les quals s’inclouen una per assignar una ID a un motor, o una altra per assignar posició i velocitat a un motor amb una ID determinada.
A part s’ha creat una llibreria pròpia amb funcions amb les seqüències de moviment per fer el programa principal més curt i senzill.
La llibreria i el programa principal que es mostren a continuació han estat fruit de diversos intents per arribar a aquest resultat, a més s’han utilitzat programes auxiliars per canviar les ID dels motor, la configuració del Bluetooth, avaluar els valors que pren la LDR, entre d’altres.
Hi ha diversos programes d’Arduino que han contribuït a la conformació final, tant del programa com del robot en si. Per fer aquest programes s’ha fet servir la llibreria CDS5500 de manera externa, per tant perquè el programa compili és necessari copiar la carpeta de la llibreria a: la carpeta on s’hagi instal·lat Arduino, Arduino, libraries.
- caminar i caminar_2: van ser els primers intents de fer que el robot caminés, al programa principal, com sempre s’inclou la llibreria CDS5500 i es crea un objecte d’aquesta classe. Hi ha creat un vector de divuit posicions per guardar la última posició del robot, després hi ha tot un seguit de constants per posar-li nom a les ID dels motors i per posar-li nom a les posicions del vector.
Després hi ha una funció, que motor a motor, va canviant la posició d’aquests i canvia el valor de la posició del vector corresponent. En el loop es crida a la funció per comprovar el funcionament
Cap dels dos programes no era eficient, tampoc fàcil d’escriure els moviments o comprovar si hi havia algun error en els valors, per això es va crear la llibreria explicada a l’apartat 3.3.1 del document, tot i que amb alguns canvis. El que varia de versió en versió és la llibreria, el programa principal només serveix per provar les funcions de la llibreria.
- caminar_3: es crea la llibreria a diferencia de la versió final l’ordre en que s’executen els moviments dels motors es diferent, encara no hi ha el delay calculat a partir del temps d’espera. Hi ha la funció Caminar_endavant, que tampoc és com la de la versió final i també està la funció Clap, aquesta si és com la de la versió final.
- caminar_4: en aquest programa es modifica l’ordre en que s’executen els moviments dels motors se li afegeix un delay tot i que encara no és el calculat. Se li afegeixen les funcions Ready, que posa el robot amb les cames totalment estirades, i la funció Sit_down, finalment no s’ha utilitzat al programa però el que pretenia era intercalant-lo amb el Ready i que donés la sensació que el robot s’aixequés i s’assentés.
- caminar_5 : en aquest programa respecte l’anterior s’afegeixen més línies a la funció de caminar i es calcula el temps que triga cada motor a fer el seu moviment, però l’equació està equivocada.
- caminar_6: es varia la funció de Caminar_endavant per millorar el moviment, i es crea a partir de zer la funció Caminar_endavant_2 per intentar aconseguir un moviment més fluid, en cap dels dos casos s’aconsegueixen resultats satisfactoris. S’afegeix la funció de Walk_ready.
- caminar_7: aquí ja es corregeix l’error en l’equació que calcula el temps, es torna a modificar al funció de Caminar_endavant, es modifica la de Caminar_endavant_2 i es crea la de Caminar_endevant_3, tot amb l’objectiu de millorar el moviment de caminar, els resultats tampoc van ser satisfactoris.
A part dels diversos intents de crear el programa definitiu, hi ha altres programes necessaris
- canviar_ID: és un programa simple que el que fa primer és incloure la llibreria i a continuació crear un objecte de la classe CDS5500 i posar el begin a 1000000 bauds. En el loop hi ha sues funcions la primera per escriure una posició aleatòria per comprovar la ID que té el motor. Després hi ha una funció, SetID, que el que fa es canviar la ID d’un motor, el primer paràmetre és la ID que tenia el motor i el segon és la ID que es vol que tingui el motor.
Per utilitzar el programa primer es comenta la segona funció i es comprova la ID que té el motor, a continuació es comenta la primera funció i mitjançant la segona es canvia la ID del motor. Per últim es torna a comentar la segona funció i es comprova que el canvi s’ha realitzat correctament.
- buetooth_canviar: aquest programa s’ha copiat directament de la pàgina web d’on es va treure la informació per controlar el Bluetooth i crear l’aplicació per al mòbil (http://elprofegarcia.com). Serveix per poder canviar diferents paràmetres del Bluetooth, com el nom, el pin o la velocitat de comunicació.
- buetooth_led: aquest programa també s’ha copiat directament de la pàgina web d’on es va treure la informació per controlar el Bluetooth i crear l’aplicació per al mòbil (http://elprofegarcia.com). Serveix per verificar que el bluetooth s’ha configurat correctament i que la comunicació es realitza satisfactòriament. Per poder fer-lo servir s’ha de descarregar l’aplicació Arduino Bluetooth Terminal, que es pot trobar a Google Play.
- led_rgb: és un programa per provar els LED RGB, es declaren els tres pins on està connectada cada pota del LED com a OUTPUT, i es crea una funció que automàticament et canviï els tres LED de color només introduint-li tres paràmetres.
- prova_ldr: és un programa que imprimeix per pantalla els valors que pren el LDR, és útil per saber com es comporta el LDR amb diferents intensitats de llum i per tant per poder saber qui valor és el més idoni per introduir en el programa, que és consideri amb els llums apagats, però no massa obscuritat perquè sinó no es podria arribar a aquest valor.