Tot muntat. Llavors programem
Ara que ja hem construït el robot només ens falta programar-lo.
Per programar el robot farem servir l'eina de programació per blocs ArduinoBlocks.
L'objectiu és crear un programa que rebi les ordres del moviment que ha d'executar el robot. Aquestes ordres la rebrà via bluetooth mitjançant l'app que programarem amb AppInventor al Repte 1 de la Missió 6.
Així doncs per crear el programa per la placa Arduino seguirem els següents passos:
http://www.arduinoblocks.com/ Eina de programació per blocs
El programa abConnector que executem al nostre ordinador és l'encarregat de connectar el programa que dissenyem a l'ArduinoBlocks amb la placa Arduino que tenim connectada amb el cable USB al nostre ordinador.
1.- Sempre amb el mateix usuari i el mateix chromebook heu de seguir les instruccions del pdf.
1.- Executeu el programa abConnector del vostre ordinador i deixeu la finestra oberta (No tanqueu aquesta finestra, la podeu minimitzar però sense tancar-la)
2.- Amb l'explorador Chrome aneu a la pàgina web Arduinoblocks.com
3.- Inicieu sessió. En cas de no tenir un compte us heu de donar d'alta i validar el correu electrònic que us enviaran (Mireu al Correu Brossa).
Seguiu el següent enllaç. Aquí és on haureu de crear el vostre projecte:
http://www.arduinoblocks.com/web/project/studentcode?pcode=sB8Mf3xY
4.- Connectar la placa Arduino a l'ordinador amb el cable USB
A aquest pas connectarem a la placa Arduino o Keyestudio a l'ordinador amb el cable USB i l'enllaçarem al port assignat per l'ordinador amb l'Arduinoblocks
5.- A la part superior de la dreta de la pàgina web del projecte de l'Arduinoblocks desplegueu la llista de ports.
6.- Agafeu la placa Arduino o Keyestudio i amb el cable USB la connecteu al vostre ordinador.
Cliqueu al botó de refresc i torneu a desplegar la llista de ports.
7.- A la llista d'abans ha aparegut un nou port. És aquest port el que heu de triar.
Si treballeu amb el sistema operatiu Windows la llista de port serà del tipus COM1, COM3, COM4, ...
8.- Ara ja està connectada la placa i l'explorador on estem programant. Per comprovar-ho només cal que cliquem al botó taronja de pujar.
Un cop es pugi el programa a la placa ens apareixerà un missatge informant que la pujada s'ha realitzat correctament.
Abans de començar a programar repassem una mica com és un programa d'Arduinoblocks:
Estructura general dels programes ArduinoBlocks
Els programes d'Arduino Uno i totes les seves variants sempre tenen dos blocs de codi: Inicialitzar i Bucle
Bloc Inicialitzar
Al bloc d'Inicialitzar és on posarem totes les inicialitzacions que necessitem (l'estat inicial del programa).
Aquest bloc s'executa sempre, i només una vegada, al començament.
Per sort per nosaltres, si fem servir els Sensors i Actuadors d'ArdunoBlocs, aquestes inicialitzacions ja es fan de forma automàtica. Per exemple: si tenim un LED connectat al pin digital 4 amb ArduinoBlocks no cal que li diguem que el pin digital 4 és una sortida.
Així doncs, aquí posarem les inicialitzacions de variables, el tipus de pantalla LCD I2C que fem servir i coses d'aquest tipus.
Bloc Bucle
Aquí és on posarem els blocs del nostre programa (El que volem que faci el nostre robot, projecte STEAM, ...)
Tot el que posem aquí dins s'executarà de forma seqüencial bloc a bloc i quan arribi a l'últim tornarà a començar un altre cop pel primer. Això ho farà per sempre
10.- Com l'objectiu del nostre programa és que el robot segueixi les ordres rebudes per bluetooth el primer que hem de fer és inicialitzar el bluetooth. Una antena buetooth es pot cconfigurada a 4800, 9600 o 57600 bauds (bits per segon). A la part del darrera de la placa ha de dir la velocitat. Si no indica res posarem 9600 bauds.
Per fer això hem d'arrossegar un bloc Iniciar de la paleta Bluetooth dins el bloc Inicialitzar de color verd i modificar si s'escau la els bauds.
11.- També cal inicialitzar el driver de motors L298N per això hem d'arrossegar de la paleta Motors el bloc L298N Iniciar sota del bloc de la inicialització del Bluetooth.
12.- I configurarem els pins on hem connectat els cables del nostre vehicle:
EN-A =18 (D13), IN1 =19 (D12), IN2 =23 (D11), IN3 = 5 (D10), IN4 = 13 (D9) i EN-B = 14 (D7).
13.- Les connexions bluetooth sempre fan servir la mateixa estructura. El primer que ens hem de preguntar és si rebem dades. Per això arrosseguem un bloc Si de la paleta Lògica dins del bloc Bucle de color verd
14.- I ara connectem dins la condició Si el bloc Dades rebudes? de la paleta Bluetooth.
15.- Si rebem dades el que farem serà guardar aquestes dades dins una variable del tipus Text. Per fer això arrosseguem un bloc varText de la paleta Variables dins la condició Si.
16.- A aquesta variable li assignem el text rebut pel bluetooth. Atenció hem de desmarcar del bloc Rebre text l'opció de fins salt de línia
17.- Ara ja tenim la instrucció que executarà el robot dins la variable varText. Per això ens hem de preguntar quina serà l'ordre a executar. Si fem memòria les ordres eren:
"U" --> Moviment endavant
"D" --> Moviment enrere.
"L" --> Girar a l'esquerra.
"R" --> Girar a la dreta.
"C" --> Aturar el robot.
Per fer-ho hem de configurar un bloc de condició Si. Arrosseguem un altre bloc de condició Si sota el bloc Establir varText.
18.- Cliquem al requadre de color blau que hi ha a la cantonada esquerra del bloc de condició Si. al fer-lo es desplega un requadre on hem d'arrossegar quatre blocs sinó si sota del si tal com es mostra a la imatge
19.- Per interrogar-nos quin moviment ha de fer el robot ho farem comparant els texts. Per fer-ho arrosseguem un bloc igual de la paleta Text i el connectem a la primera condició si
20.- Per assegurar-nos que el programa funciona si rep més d'una lletra a la vegada hem de modificar la igual per comença amb
21.- I omplim els dos forats. Al primer forat posem la varText on hem emmagatzemat el valor de l'ordre rebuda pel bluetooth i al segon posem un text la lletra del moviment en qüestió. En el nostre cas la lletra U
22.- La lletra U equival al moviment del robot capa endavant. Això vol dir que tots dos motors han de girar cap endavant.
Així que de la paleta Motors arrosseguem dos blocs L298N Moure dins el fer.
Els posem un a sota de l'altre.
Triem a un bloc el motor A i a l'altre el motor B.
Li diem que volem fer el moviment de tots dos motor cap endavant.
I per últim triem la màxima Velocitat que equival a 255 a tots dos motors.
23.- Ja tenim el primer moviment programat. Ara podem duplicar els blocs que ens interessi clicant a sobre amb el botó de la dreta del ratolí. Dupliquem i modifiquem els blocs per tal de deixar un programa com el de la imatge.
24.- Ja tenim tot el programa enllestit. Només falta enviar-li el programa a la placa Arduino.
Per enviar el programa hem de clicar sobre el botó Pujar que hi ha pintat de color taronja a la part superior dreta de la pantalla
Si el programa es puja sense errors ens apareixerà un missatge per pantalla informant-nos
Felicitats!! Ja heu programat el vostre robot. Ara només us queda connectar-vos amb la vostra app.
1.- Creeu una subpàgina dins la pàgina "Vehicle".
La subpàgina s'ha de dir: "5a MISSIÓ: Programem"
2.- A questa subpàgina és on haureu de documentar tot el procés que heu seguit per poder instal·lar el programa d'ArduinoBlocks al vostre vehicle.
3.- Totes les explicacions i fotografies, vídeos, presentacions que poseu al vostre lloc web us faran guanyar insígnies extres.
Creeu un projecte nou del tipus ESP32 STEAMakers
El programa resultant serà molt semblant però fent servir els blocs de la placa ESP32 ESTAM Makers