Para todos los que no estén familiarizados con lo que es Arduino, intentaré resumirlo: Arduino es un proyecto de hardware y software libre, parecido a Pinguino, pero con un microcontrolador Atmega168. El proyecto ha sido un éxito y está bastante avanzado, con multitud de documentación y ejemplos, especialmente útiles para principiantes y enfocados a la enseñanza. De hecho, las librerías de C que utilizan facilitan mucho el uso, ocultando los aspectos más oscuros de programar un Atmega a pelo. Hay varios modelos, un Arduino Diecimila, anda por los 24 €, ya montado.
Para programar Arduino existe un IDE gratuito para Windows, Linux y Mac, pero yo soy fan de los Makefiles en linux, y de usar mi editor, manías… Además, con algo de entrenamiento, entiendes mejor lo que estás haciendo y la localización de los errores si los hubiera. Arduino tiene un Makefile incorporado en arduino_home/hardware/cores/arduino.
El Makefile incluye en los comentarios unas instrucciones maravillosas que lo dejan listo para usarse. Al principio hay que cambiar algunos parámetros para nuestro programa en particular:
TARGET = $(notdir $(CURDIR))
INSTALL_DIR = /opt/arduino
PORT = /dev/ttyUSB0
UPLOAD_RATE = 19200
AVRDUDE_PROGRAMMER = stk500v1
MCU = atmega168
F_CPU = 16000000
Básicamente, aquí el target sería el nombre del directorio (así funciona el IDE, qué casualidad, mismo nombre en directorio y .hex, pero puedes llamarlo como quieras, programa, por ejemplo), dónde hemos instalado arduino, el puerto que usaremos para subir el programa, baud rate y características de la placa: procesador atmega168 (arduinos viejos atmega8), 16MHz.
Si se quiere añadir una librería, habrá que meter su código fuente en SRC (si es .c) o en SRCXX (si es .cpp) y de la misma forma poner los directorios en que se encuentran las cabeceras (.h) en CINCS o CXXINCS. Para mi gusto, el otro día me dí cuenta de que falta una importantísima: hay que añadir Print.cpp a SRCXX para que funcione el puerto serie, dado que la clase de manejo del puerto de serie, HardwareSerial, hereda directamente de la clase Print.
Y se escribe en un terminal:
make para obtener el programa.hex
make upload para subir programa.hex al arduino.
Por cierto que echando un vistazo a arduino_home/hardware/cores/arduino se puede entender bastante sobre como funcionan algunas cosas, crearte tus propias librerías o sencillamente ir avanzando en el uso de Arduino.
VN:F [1.9.3_1094]
Rating: 0.0/5 (0 votes cast)