You are on page 1of 4

Controlando tarjeta Arduino

directamente desde Processing


by marlonj | May 9, 2012 | Cacharreos | 3 comments

Algunas veces necesitamos controlar la tarjeta Arduino desde algn programa externo
lo cual requiere que se desarrollen programas para las dos plataformas y un esquema
de comunicacin entre las dos para realizar el intercambio de datos lo cual puede ser
difcil de acuerdo al grado de complejidad de la aplicacin, otra opcin es utilizar un
programa multi propsito que expone las funcionalidades bsicas de lectura y escritura
de las tarjetas Arduino y que puede ser controlada desde una aplicacin gracias
a libreras que permiten enviar ordenes y recibir datos de la tarjeta logrando que solo se
necesite programar la aplicacin y no la tarjeta. Esto es lo que precisamente hace
Firmata una serie de protocolos y aplicaciones que simplifican la comunicacin con la
tarjeta desde varios lenguajes de programacin (http://firmata.org/wiki/Main_Page)
Pros :

Simplifica la programacin de las aplicaciones al estar todo el cdigo de control


desde la aplicacin y no dentro de la tarjeta donde solo se instala el programa
Firmata
Una vez programada la tarjeta esta puede ser usada en diferentes aplicaciones sin
necesidad de re programar la tarjeta.
Gran cantidad de libreras que implementan el protocolo Firmata que permite
controlar la tarjeta desde diferentes ambientes de programacin como
Processing, Python, C++, ActionScript, PureData, Perl, C#
(http://firmata.org/wiki/Download)
Viene incluida en el ambiente oficial de desarrollo de Arduino

Contras :

Solo permite el acceso restringido a algunas de las funcionalidades de Arduino


como :

Cambiar los modos de los pines (pinMode)


Activar o desactivar lo pines digitales (digitalWrite)
Leer el estado de los pines digitales (digitalRead)
Leer el estado de los pines anlogos (analogRead)
Usar PWM
No permite el acceso a libreras de Arduino con el Firmata Standard
Se debe modificar el Firmata y las librera de acceso para adicionar el acceso
a libreras de Arduino
No hay soporte para interrupciones
El intercambio de datos puede causar demoras en la respuesta de la aplicacin o
de la tarjeta
o
o
o
o
o

Como se puede observar, aunque Firmata simplifica el desarrollo de aplicaciones con


interfaces de hardware basadas en Arduino la funcionalidad es restringida y debe ser
usada en aplicaciones sencillas que no dependan mucho del tiempo y manipulen
hardware muy sencillo pero siempre esta la puerta abierta a desarrollos mas complejos
gracias a que todo es software libre.
Ahora veremos como controlar la Tarjeta Arduino desde Processing
Pulse el botn para continuar leyendo
Configurar la Tarjeta Arduino :

Descargar el ambiente de desarrollo de Arduino para nuestro sistema operativo


http://arduino.cc/en/Main/Software
Descomprimir y ejecutar el Arduino
Conectar nuestra tarjeta Arduino al puerto USB
(recuerde instalar los drivers, necesita reiniciar la aplicacion)
Abrir el ejemplo StandarFirmata
(File -> Examples -> Firmata -> StandardFirmata)
Compilar el ejemplo y descargarlo a la tarjeta
Ya tenemos nuestra tarjeta lista para ser controlada desde una aplicacin externa

Instalar Libreria de Arduino para Processing

Descargar el Processing para nuestro sistema operativo


http://processing.org/download/
Descomprimir
Descargar la libreria de Arduino para Processing
http://www.arduino.cc/playground/Interfacing/Processing
Enlace Directo :
http://arduino.cc/playground/uploads/Interfacing/processing-arduino.zip
Descomprimir y copiar el directorio de librerias, por ejemplo en Processing
1.5.1
processing-1.5.1/modes/java/libraries
Si esta en Linux o MacOSX
Cambiar el nombre del archivo arduino/library/Arduino,jar a arduino,jar
Ejecutar el Processing
Abrir el ejemplo de control de salidas de Arduino
(File -> Examples -> Contributed Libraries -> arduino -> arduino_output )

Ejecutar el Sketch
Verifique en la lista de puertos si aparece el puerto donde esta conectada la
Arduino
Cambie el indice del arreglo por el indice del puerto donde esta la Arduino
ejemplo : Arduino.list()[1]
Ahora puede encender el LED conectado al pin 13 de la Arduino pulsando el
primer botn en la pantalla

Programar el Blink desde Processing :

Crear un nuevo sketch


Importar la libreria Serial
Importar la libreria Arduino
Crear el objeto Arduino, use el nombre del puerto donde esta conectada la
Arduino
Exriba el codigo para encender y apagar el led en el pin 13
Como se puede observar el codigo queda algo parecido al de la Arduino

view plaincopy to clipboardprint?


1. import processing.serial.*;
2. import cc.arduino.*;
3.
4. int pinLed = 13;
5. Arduino arduino;
6.
7. void setup() {
8. size(640,480);
9.
10. arduino = new Arduino(this, Arduino.list()[0], 57600);
11. arduino.pinMode(pinLed,Arduino.OUTPUT);
12. }
13.
14. void draw() {
15. arduino.digitalWrite(pinLed,Arduino.HIGH);
16. delay(1000);
17. arduino.digitalWrite(pinLed,Arduino.LOW);

18. delay(1000);
19. }
Explore ejemplos mas complejos en los ejemplos de la libreria, para leer el estado de los
pines analogos y digitales, el uso de PWM.
Enlaces :

Pagina Oficial de Firmata


http://firmata.org
Pagina Oficial de la Libreria de Arduino para Processing
http://www.arduino.cc/playground/Interfacing/Processing
Pagina Oficial Processing
http://www.processing.org
Pagina Oficial de Arduino
http://www,arduino.cc