Arduino

6
Manejando tarjeta arduino con processing para el control de sistemas móviles Controlando tarjeta Arduino directamente desde Processing ¿Qué es Processing? E un lenguaje de programación de código abierto para los que quieran crear imágenes, animaciones e interacciones. Inicialmente desarrollado como software para crear bocetos de trabajo y enseñar los principios de la programación en un contexto visual, Processing ha evolucionado hacia una herramienta de producción profesional. Hoy hay decenas de miles de estudiantes, artistas, diseñadores, investigadores y aficionados que usan Processing para aprender, hacer prototipos y realizar proyectos. Características del lenguaje: Gratuito y de código abierto. Generación de programas interactivos con salida en formatos 2D, 3D y PDF. Integración con OpenGL para usar aceleración 3D. Compatible con GNU/Linux, Max OS X y Windows. Los proyectos se pueden ejecutar como applets de JAVA en la red. Más de 100 librerías que extienden el potencial del programa con sonido, vídeo, visión por computador y más… Bien documentado y con varios libros disponibles. 4.- La interface de Processing:

Transcript of Arduino

Page 1: Arduino

Manejando tarjeta arduino con processing para el control de sistemas móviles

Controlando tarjeta Arduino directamente desde Processing

¿Qué es Processing?

E un lenguaje de programación de código abierto para los que quieran crear imágenes, animaciones e interacciones. Inicialmente desarrollado como software para crear bocetos de trabajo y enseñar los principios de la programación en un contexto visual, Processing ha evolucionado hacia una herramienta de producción profesional. Hoy hay decenas de miles de estudiantes, artistas, diseñadores, investigadores y aficionados que usan Processing para aprender, hacer prototipos y realizar proyectos.

Características del lenguaje:

Gratuito y de código abierto. Generación de programas interactivos con salida en formatos 2D, 3D y PDF. Integración con OpenGL para usar aceleración 3D. Compatible con GNU/Linux, Max OS X y Windows. Los proyectos se pueden ejecutar como applets de JAVA en la red. Más de 100 librerías que extienden el potencial del programa con sonido, vídeo,

visión por computador y más… Bien documentado y con varios libros disponibles.

4.- La interface de Processing:La Interface de Processing es sencilla. Esto permite que se familiarice muy rápidamente con ella. Si se comparamos con la complejidad de otras interfaces como las de Flash.Solo existen 6 opciones en el menú: run, stop, new, open, save, export.Hay tres que no es necesario explicar, pero si saber que cuando creamos un proyecto nuevo creamos un Sketch, y el Sketch folder es la carpeta donde éste se guarda. Solo constara de un archivo .pde el cual contendrá el código y en la cual se le pueden añadir archivos de imagen, video etc..RUN: Sirve para ejecutar el código. lo que en programación se conoce como compilación. Processing) es un lenguaje compiladoSTOP: Para el programa.NEW: Crea un Sketch nuevoOPEN: Abre un Sketch existenteSAVE: Guarda el Sketch con el que se está trabajando.

Page 2: Arduino

EXPORT: Sirve para preparar el sketch para ser ejecutado a través de un navegador, ya sea en la web o simplemente fuera del entorno Processing.Conociendo estos botones tenemos suficiente para empesar a trabajar con Processing.

Controlando tarjeta Arduino directamente desde Processing

Algunas veces necesitamos controlar la tarjeta Arduino desde algún programa externo lo cual requiere que se desarrollen programas para las dos plataformas y un esquema de comunicación entre las dos para realizar el intercambio de datos lo cual puede ser difícil de acuerdo al grado de complejidad de la aplicación, otra opción es utilizar un programa multi propósito que expone las funcionalidades básicas de lectura y escritura de las tarjetas Arduino y que puede ser controlada desde una aplicación gracias a librerías que permiten enviar ordenes y recibir datos de la tarjeta logrando que solo se necesite programar la aplicación y no la tarjeta. Esto es lo que precisamente hace Firmata una serie de protocolos y aplicaciones que simplifican la comunicación con la tarjeta desde varios lenguajes de programación (http://firmata.org/wiki/Main_Page)

Pros :

Simplifica la programación de las aplicaciones al estar todo el código de control desde la aplicación 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 librerías que implementan el protocolo Firmata que permite controlar la tarjeta desde diferentes ambientes de programación 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 :

o Cambiar los modos de los pines (pinMode)o Activar o desactivar lo pines digitales (digitalWrite)o Leer el estado de los pines digitales (digitalRead)o Leer el estado de los pines análogos (analogRead)o Usar PWM

No permite el acceso a librerías de Arduino con el Firmata Standard Se debe modificar el Firmata y las librería de acceso para adicionar el acceso a

librerías de Arduino No hay soporte para interrupciones El intercambio de datos puede causar demoras en la respuesta de la aplicación o de

la tarjeta

Page 3: Arduino

Aun cuando 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 está la puerta abierta a desarrollos más complejos gracias a que todo es software libre.

Configurar la Tarjeta Arduino :

Descargar el ambiente de desarrollo de Arduino para nuestro sistema operativohttp://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 aplicación externa

Instalar Libreria de Arduino para Processing

Descargar el Processing para nuestro sistema operativohttp://processing.org/download/

Descomprimir Descargar la libreria de Arduino para Processing

http://www.arduino.cc/playground/Interfacing/ProcessingEnlace Directo :http://arduino.cc/playground/uploads/Interfacing/processing-arduino.zip

Descomprimir y copiar el directorio de librerias, por ejemplo en Processing 1.5.1processing-1.5.1/modes/java/libraries

Si esta en Linux o MacOSXCambiar 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

botón en la pantalla

Programar el Blink desde Processing :

Crear un nuevo sketch Importar la libreria Serial

Page 4: Arduino

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 plain copy to clipboard print ?

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 Firmatahttp://firmata.org

Pagina Oficial de la Libreria de Arduino para Processinghttp://www.arduino.cc/playground/Interfacing/Processing

Pagina Oficial Processinghttp://www.processing.org

Pagina Oficial de Arduinohttp://www,arduino.cc