Tutorial programació Arduino
- jomvi00
- 16 abr 2016
- 4 Min. de lectura
Com es programa
Quines opcions tenim per programar Arduino?
Partim primer del supòsit que tenim una computadora amfitriona (amb Windows, Linux o MacOS) connectada a un Arduino a través d'un cable, tal com es mostra en la següent figura:
A partir d'aquesta configuració, hi ha dos llocs on un programa pot ser executat:
Directament a Arduino.
En la computadora amfitriona (el pc).
En l'opció 1, la computadora amfitriona serveix només per desenvolupar el programa i compilar-lo per acabar produint un arxiu executable que es descarrega posteriorment a l’Arduino a través de la connexió USB. Aquest arxiu no ha de sobrepassar l'espai de la memòria flash del microcontrolador (32 Kbytes en el cas de l’Arduino Uno). S'utilitza un llenguatge propi (basat en llenguatge de programació C++), juntament amb l'entorn de desenvolupament integrat (IDE) Arduino. Un avantatge és que, una vegada carregat el programa a la placa, és possible retirar el pc per complet. Atès que la connexió USB serveix també com a font d'alimentació, llavors és necessari proporcionar a Arduino una font alternativa.
En l'opció 2, s'instal·laria dins l’Arduino un firmware que permet que un programa que s’executa en la computadora amfitriona controli les accions de l’Arduino a través de l'intercanvi de dades via la connexió USB. Aquesta té el desavantatge fonamental que mai podem retirar la computadora amfitriona; no obstant això, té dos avantatges significatius:
Com que els nostres programes corren en la computadora amfitriona i no directament en el Arduino, no estem restringits a haver d'usar C++. Podem usar qualsevol llenguatge de programació en la qual existeixi una interfície amb Firmata: Processing, Pascal, Perl, C#, PHP, Java, Javascript, Clojure, Ruby i pel seu lloc Python, per esmentar alguns.
El codi dels nostres programes no estaria limitat a la grandària de la memòria flash del microcontrolador, sinó a la grandària de la memòria de la computadora amfitriona (Kilobytes vs. GigaBytes).
En aquest cas, optarem per la primera opció, ja que la grandària i complexitat dels nostres programes no requereix de molta complexitat de software.
Fonts consultades:
Evans, B. W. 2007. Arduino Notebook: A Beginner’s Reference. Enllaç:
https://dl.dropboxusercontent.com/u/27471020/Arduino/Manual_Programacion_Arduino.pdf
Maneres de programar Arduino
El llenguatge de programació d’Arduino està basat en C++ i encara que la referència per al llenguatge de programació d’Arduino està en http://arduino.cc/en/reference/homepage, també és possible usar comandes estàndard de C++.
La programació per defecte que ofereix la plataforma és de tipus textual, amb el seu IDE.

En canvi, la programació gràfica amb diagrames de flux, de blocs o qualsevol altra tècnica de representació s’acostuma a utilitzar per introduir els conceptes de programació i d’algorísmia d’una manera simplificada. Hi ha diverses opcions que permeten programar aplicacions utilitzant llenguatges visuals de blocs. N’hi ha de dos tipus:
Els entorns de monitorització esclaus són entorns que permeten l'intercanvi d'Informació amb la Targeta Arduino oferint un Instrument Gràfic que facilita la interacció. Prèviament cal tenir carregat en Arduino un “firmware” que sigui el que posi en manera transparent l'accés a les I/S. La seva utilització és, fonamentalment, de caràcter didàctic i faciliten i potencien l'aprenentatge de la Programació Gràfica mitjançant Algorismes implementats a força de blocs Funcionals que formen part de llibreries. L'ús de la targeta Arduino és sempre On-line amb el computador
Els entorns de monitorització autònoms són entorns que permeten la generació de codi per a la targeta Arduino fent ús d'un Entorn Gràfic que permet la implementació dels algorismes de control, i l’ús de les E/S d’Arduino. L'ús de la targeta Arduino es fa de manera Off-line.
Per tant, una opció és programar el microcontrolador des del pc i una altra és programar en el microcontrolador un firmware capaç de connectar-se a algun dels programes abans esmentats.

Per exemple, és el cas de Scratch, LabView o Matlab, primer cal carregar un firmware o sketch predeterminat des del mateix IDE d’Arduino perquè funcionin en els mateixos.
Això ens permet executar funcions en temps real i així poder observar els canvis de manera directa, sense haver d'anar carregant una vegada i una altra els nostres programes. Encara així solen estar molt limitats perquè ens impossibiliten l'opció de carregar llibreries externes, ja que el firmware en la placa està dissenyat solament per respondre a les funcions bàsiques que ofereixen aquests programes, que són el maneig d'I/O digitals, analògics, maneig de servomotors i poc més. La gran i enorme desavantatge d'això és que si volem usar la placa de manera independent, com passaria si volem establir una connexió remota o que un robot vagi movent-se independentment, llavors aquest mètode no ens serveix, ja que quan ho desendollem de l'USB a l'ordinador, el programa carregat serà l'implementat per respondre amb aquests programes i no el que hàgim dissenyat nosaltres.
En canvi uns altres com el propi IDE, Ardubloq, Bitbloq, Codebénder sí que ens permeten carregar programes complets que funcionaran amb alimentació externa, sense necessitat de connectar a l'ordinador. Dins d'aquesta categoria cal ressaltar que Bitbloq i Codebénder no són programes, sinó que són pàgines web des de les quals es permet l'accés als ports de comunicació de l'ordinador i instal·len el codi creat des del navegador. Per tant, cal estar connectat a internet.
Ardubloq i Bitbloq tenen una interfície de programació per blocs molt intuïtiva per a joves. Bitbloq bastant més adaptada que Ardubloq, però li falta desenvolupament, ja que solament et permet crear 2 tipus de dada, que són el sencer i el string.
També existeix la possibilitat de programar-lo des de web amb CodeBender, que emula les funcionalitats de l’IDE però de forma on line. És un entorn de programació en el núvol. És a dir, els nostres projectes estaran guardats en el núvol, i disposarem de totes les llibreries que altres usuaris hagin publicat. Per usar-ho, haurem d'accedir a aquest enllaç https://codebender.cc/
Fonts consultades:
Ruiz Gutiérrez (2014).
Referència per al programador
A la web oficial d’Arduino, pots trobar un resum amb les instruccions més importants del llenguatge de programació; una referència per al programador del llenguatge Arduino, amb les diferents instruccions i sentències disponibles en el llenguatge, organitzats per categories i amb exemples de cada cas.
https://www.arduino.cc/en/Reference/HomePage
També és recomanable la següent referència ràpida, un full amb les funcions principals, operadors i tipus de dades:
Smith, G.; Liffiton, M. Acordeon Arduino, CC (by, sa). Traducció Antonio Maldonado. Enllaç:
Comentários