Programar Arduinos no es algo muy difícil, pues las herramientas que ya existen (la mayoría de codigo abierto y gratuitas), permiten generar código y compilarlo para por ejemplo, hacer que un LED se prenda o se apague, o bien, se pueda leer la temperatura de un componente dedicado a estas tareas, etcétera. Sin embargo, Oliver Châtelain (ochâtelain), se le ocurrió que para muchas funciones no debería ser necesario el tener que compilar el código de Sketch (el lenguaje en el que se programan los Arduino). Oliver se dio cuenta que una serie de funciones simples para el microcontrolador, podían realizarse de la línea de comandos, y así llegó a ArduPirate, la herramienta de línea de comandos de Arduino.

El ArduPirate es un sketch compilado en un arduino aque permite que ciertos pines, se puedan prender o apagar, o definir un valor para la parte PWM del Arduino. Tal vez leer o escribir bytes I2C. Es básicamente una versión reducida de una especie de sistema operativo mínimo, que permite hacer modificaciones simples a los circuitos y periféricos.

Oliver demuestra su ArduPirate tomando un reloj de tiempo real, el DS1307, conectándolo a un bus I2C y escribiendo los valores para definir el tiempo. He aquí los comandos de ArduPirate 0.1:

  • h – mostrar esta ayuda
  • p – mostrar el puerto actual y sus direcciones
  • / – Poner un puerto en HIGH
  • \ – Poner un puerto en LOW
  • ^ – Poner un puerto en LOW-HIGH-LOW
  • < – Poner un puerto como INPUT
  • > – Poner un puerto como OUTPUT
  • g – Poner un valor analógivo (PWM)
  • i – escanear la dirección del dispositivo I2C
  • # – Poner el dispositivo I2C en activo
  • r # – Leer n bytes de I2C del dispositivo activo
  • w # # # – Escribir bytes I2C al dispositivo activo
  • x – Salvar configuración actual al eeprom
  • y – cargar última configuración del eeprom
  • z – colocar todos puertos de entrada y en LOW

Por ejemplo, el comando \a2 coloca un nuevo valor en el pin A2 (LOW); /a3 colocal un nuevo valor en el pin A3 (HIGH).

ArduPirate usa BusPirate un sistema mucho más completo e incluso, utiliza una pequeña porción de su código.

Referencias:

HackADay
Instructables