6 agosto, 2013
Programar Arduino desde la linea de comandos, fácil y rápido
Esta vez os voy a contar como programar un Arduino sin todas las molestias que nos causa el tener que usar el entorno gráfico del IDE oficial. Bueno, para mi es una molestia el tener que cargar un entorno gráfico, y un entorno de programación que no aporta nada a una simple linea de comandos de toda la vida. Además si tienes que programar por SSH, a través de una linea lenta, es todavía peor.
Vamos allá.
La herramienta que vamos a usar se llama INO, se trata de unos scripts que nos permitirán inicializar un proyecto, compilarlo, subirlo al Arduino y mostrar una consola serial si la necesitamos.
En el sitio web del proyecto podéis encontrar la información más detallada. En mi caso la instalación bajo Ubuntu es bastante sencilla:
apt-get install git python-setuptools python-configobj python-jinja2 python-serial picocom git clone git://github.com/amperka/ino.git cd ino make install
Con la primera linea instalamos los prerrequisitos de INO y el programa picocom, que es el que usará para conectar de forma serial con Arduino para mostrar la consola. Con la segunda nos bajamos la última versión disponible en el repositorio. Con las dos siguientes lo compilamos e instalamos.
Es posible que necesitéis instalar el paquete build-essential si no tenéis instaladas las herramientas de desarrollo.
Una vez que lo tenemos todo ejecutamos el script:
jose@titanio:~$ ino -h usage: ino [-h] {build,clean,init,list-models,preproc,serial,upload} ... Ino is a command-line toolkit for working with Arduino hardware. It is intended to replace Arduino IDE UI for those who prefer to work in terminal or want to integrate Arduino development in a 3rd party IDE. Ino can build sketches, libraries, upload firmwares, establish serial-communication. For this it is split in a bunch of subcommands, like git or mercurial do. The full list is provided below. You may run any of them with --help to get further help. E.g.: ino build --help positional arguments: {build,clean,init,list-models,preproc,serial,upload} build Build firmware from the current directory project clean Remove intermediate compilation files completely init Setup a new project in the current directory list-models List supported Arduino board models preproc Transform a sketch file into valid C++ source serial Open a serial monitor upload Upload built firmware to the device optional arguments: -h, --help show this help message and exit
Para crear un proyecto, creamos una carpeta vacía con mkdir proyecto1, y dentro de ella ejecutamos ino init para crear la estructura básica del proyecto, modificamos el fichero sketch.ino de la carpeta src, añadimos las librerías que consideremos oportunas a la carpeta lib y compilamos con ino build. Si todo ha ido bien podremos subir el programa con ino upload y ver la consola con ino serial.
Fácil ¿verdad?
Actualización 25/04/2014: Si al instalar todos los paquetes, compilar e instalar ino os da un mensaje relacionado con el paquete glob2, lo podéis instalar fácilmente con easy_install glob2.
3 comentarios
Ademas es compatible con arquitecturas ARM, lo que permite que podamos programar para arduino desde la raspberry pi, por ssh, conectando la placa al usb de la pi. Puede ser un buen arquetipo usar la raspberry pi para guardar datos que provengan de sensores de arduino, y poder reprogramar sin armar mucha fiesta y sin necesidad de tener un reactor nuclear funcionando todo el dia recolectando datos. Hecho esto ya tenemos instalado el tema, y el comando platformio disponible desde el interprete de comandos.