Mostrando entradas con la etiqueta arduino. Mostrar todas las entradas
Mostrando entradas con la etiqueta arduino. Mostrar todas las entradas

sábado, 17 de noviembre de 2018

Comunicación arduino-processing mediante puerto serie II

En este caso vamos a imprimir en la pantalla el número  que estamos pulsando en el mando de televisión.
Para ello hemos montado en nuestra placa de arduino un receptor de infrarrojos.



Lo primero es conocer los códigos de los botones de mi mando de TV, en mi caso sansumg. Para lo que tenemos que cargar el siguiente programa en la placa de arduino e ir apuntando los resultados que salen en el monitor.

Una vez que tenemos los código de cada botón leídos y apuntados debemos hacer que nuestra placa nos envíen por puerto serie el número del botón pulsado para ello cargaremos el siguiente programa en nuestra placa de arduino:

En este programa mediante un switch evaluamos el código entrante en el receptor  de infrarrojos y comparamos con los valores tomados. Una vez comparados los códigos enviaremos por el puerto serie el valor del botón pulsado mediante la instrucción Serial.write(número  botón);

Ahora lo que nos tocará será mediante processing leer el código que estamos mandando por el puerto serie. Tenemos que tener cuidado con el puerto que tenemos definido. El programa que os dejo esta preparado para el puerto COM4 de mi ordenador, pero dependiendo donde se conecte la placa de arduino puede cambiar. Debemos revisar el puerto y poner el nombre que corresponda donde pone myport = new Serial(this,"COM4",9600); cambiando COM4 por lo que nombre del puerto donde está conectada la placa de arduino.

El programa que creamos será:

De esta manera representará en pantalla el número del botón pulsado.
En el siguiente vídeo os muestro el funcionamiento:



En el centro de la pantalla se ve la pantalla que nos pone tecla y según pulsamos nos aparecerá el botón correspondiente. No cambia rápido al haber introducido un delay de un segundo para que se vea bien el número pulsado.




viernes, 16 de noviembre de 2018

Comunicación arduino-processing mediante puerto serie

Vamos a realizar una práctica que consistirá en mostrar en la pantalla del ordenador mediante processing el código que lee nuestra placa de arduino del botón pulsado de un mando a distancia mediante un receptor de infrarrojos.

Para lo cual conectaremos nuestro receptor de infrarrojos a la placa de arduino y cargaremos en la placa el siguiente programa:
En este programa cargamos la librería del receptor de infrarrojos, en setup() abrimos comunicación serie a 9600 y en el programa (loop) lo que hacemos es que cada vez que exista información en el receptor de infrarrojos la transmita por el puerto serie.

Abrimos processing y cargamos el siguiente programa. 
En este programa cargamos la librería serie para controlar el puerto, creamos una pantalla de 800 por 600.
Durante el programa draw() lo que hacemos es si hay información accesible entrando por el puerto que la represente en la pantalla. En este programa tenemos que tener cuidado con el código cuando creamos la comunicación mediante el puerto serie en el programa creado en processing. Tenemos que poner el puerto en el que está conectada la placa arduino, algo que nos avisa la propia ide de arduino. En mi ejemplo es el puerto COM4, pero puede cambiar por lo que debemos poner el puerto correcto en la linea siguiente:

myPort = new Serial(this, "COM4", 9600);

Un vídeo del funcionamiento lo tenéis a continuación:


jueves, 15 de noviembre de 2018

Programar arduino como si fuera un objeto de processing

En arduino instalamos un software que tenemos ejemplos firmata dentro de los ejemplos de arduino es un software genérico que me permite enviar y recibir imputs en mi placa dentro de un protocolo estandarizado el "protocolo firmata". Cargamos el código a la placa.

Abrimos processing e instalamos dentro de processing la librería arduino, de esta manera para trabajar con arduino, trabajaremos como si fuera un objeto propio de processing.
De esta manera trabajaremos como si la placa fuera un objeto de arduino y este objeto se programa exactamente igual que la placa.
El código que utilizaremos en processing será el siguiente:

En el siguiente vídeo se puede ver el funcionamiento del diodo en el pin 13, programado desde processing de manera que pulsando la z se enciende y la x se apaga.

martes, 30 de octubre de 2018

Arduino-Processing conexión por puerto serie

Mediante el puerto serie podemos comunicar nuestro arduino con processing. En este caso vamos a controlar el encendido de tres LEDs mediante un programa realizado en processing comunicándonos con la placa de arduino mediante el puerto serie.

PRIMERO PROGRAMA EN ARDUINO

Lo primero que tenemos que hacer es cargar el siguiente programa a nuestro arduino:

Analicemos el programa

Lo primero es definir los pines en los que vamos a conectar los LEDs que serán el 2,4 y 7. En el setup configuramos el puerto serie para la comunicación a una velocidad de 9600bps. Configuramos los pines de los leds de salida y los ponemos en LOW para que no se enciendan.

En el loop lo primero que hacemos es comprobar si hay información de entrada en el puerto serie. Si existe información comprobaremos si es una "H" enviada por processing o una "L". Si es una "H" encenderemos los leds de manera consecutiva durante un segundo. 
Si es una "L" apagamos todos los LEDs



SEGUNDO EJECUTAR PROGRAMA PROCESSING

Una vez cargado el programa en la placa, ejecutamos el programa de processing.

Analicemos el programa

En el setup() abrimos comunicación mediante puerto serie y le indicamos el puerto en el que está conectado.
En void draw() creamos la ventana con los botones que dirigirán el funcionamiento de los diodos. 

Consiguiendo cuando ejecutemos una ventana donde nos aparecerán dos botones, uno para el encendido de los leds y otro para el apagado


En la función mousePressed() cuando pulsemos el botón ON enviamos por el puerto serie H para que nos lo lea nuestro programa de arduino encendiendo los tres diodos.
Si pulsamos el botón de OFF enviaremos una L en el puerto serie y nuestro programa de arduino cuando detecte la L apagará el dispositivo si estuviera encendido.


FUNCIONAMIENTO DEL CIRCUITO

En el siguiente vídeo podéis ver el vídeo del funcionamiento.

miércoles, 24 de octubre de 2018

Arduino: conectividad infrarrojos.

Infrarrojos es un sistema de comunicación que permite activar y controlar dispositivos de forma remota e inalambrica dispositivos en el hogar.

Para utilizarlo debemos utilizar una librería llamada IR Remote, que da acceso a cualquier mando de control remoto.
El componente que utilizamos es muy económico. Estamos comunicando un led que emite luz infrarroja con un receptor. El emisor led infrarrojo, funciona exactamente igual que un led, pero emitiendo luz que no podemos ver.
Podemos crear un sistema reversible.
La señal alcanza largas distancias mediante señales pulsadas.
Tenemos que tener cuidado cuando trabajemos con esto, ya que hay luz infrarroja en luz solar y fluorescentes y puede afectar a nuestra señal del mando.

LED QUE SE ENCIENDE CON CUALQUIER TECLA DEL MANDO

En el siguiente ejemplo mostramos un led que se enciende y apaga cuando recibe señal de un mando de televisión.
El código del programa.

Imagen del montaje.

En el vídeo vemos el funcionamiento.


Descarga el programa en el siguiente enlace:


DOS LEDs QUE SE ENCIENDEN CON TECLAS DIFERENTES

Aprovechando el código anterior, en este caso lo que he realizado es identificar en código de dos teclas. De  esta manera controlaremos el funcionamiento de dos diodos con dos teclas diferentes.
El código lo podéis ver en la siguiente imagen.

Os dejo un foto del montaje.


lunes, 22 de octubre de 2018

Arduino: comunicación puerto serie

El puerto serie permite la comunicación entre el PC y el arduino o diferentes dispositivos entre si.
Por ejemplo el arduino mega que tiene 4 puertos serie podría conectarse a diferentes dispositivos.
La comunicación serie es muy importante ya que gran parte de los protocolos de comunicación son serie y además muchos dispositivos de comunicación inalambrica, por ejemplo bluetooth utilizan este protocolo.
En el caso del ejemplo comunicaré mi arduino con el PC, comprobando datos que introduzco y luego mostrando los datos procesados.
Todas las placas Arduino tienen al menos un puerto serie disponible en los pines digitales 0 (RX) y 1 (TX) compartido con el USB. Por lo tanto no es posible usar estos pines como entradas/salidas digitales.
La velocidad de comunicación de la placa con el ordenador por el puerto serie suele ser 9600 bits por segundo.
Las velocidades pueden se entre 300 y 115200 bits por segundo.
Lo que haremos con exactitud es enviar datos desde el teclado del ordenador y el arduino los utiliza para sacar una cadena de caracteres formada por las dos cadenas introducidas desde el pc y leídas por mi placa de arduino.
Analizando el código vemos que creamos tres variables, un contador y dos variables de cadenas de caracteres.
En el momento que introduzcamos datos desde el teclado, introducimos todos los caracteres insertados hasta el salto de linea (enter) dentro de las variables data 1 y data 2.


Posteriormente mediante 
Serial.print(data1+data2);
realizamos la unión de las dos cadenas de caracteres y las mostramos en el monitor.