martes, 4 de diciembre de 2018

Control motor arduino con shield L293

Para controlar motores en arduino utilizamos shields basados en puente H.
En nuestro caso utilizamos el shield L293. Para lo cual instalamos su librería shield adafruit motor.
Una vez metida la librería cargamos el código siguiente:
#include <AFMotor.h> // Usamos una librería
AF_DCMotor Motor1(1); // OBJETO!!!
void setup()
   {        Motor1.run(RELEASE);     }
void loop()
   {   Motor1.run(FORWARD);
       delay (2000);
       Motor1.setSpeed(180);
       Motor1.run(BACKWARD);
       delay (2000);
   }

El vídeo del funcionamiento:


Observa CRFPTIC

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

Introducir audio en processing

Para introduccir audio en processing lo primero que tenemos que hacer es cargar la librería minim.dff
Una vez cargada la librería empezamos a programar:
  1.  Introducimos librería.
  2. Introducimos el audio que queremos en una carpeta llamada data.
  3. Creamos objeto m para introducir la canción en él
  4. Introducimos reproductor mediante audio player
  5. Instancio objeto m
  6. Cargamos en m la canción en mp3 y lo reproducimos en el objeto p reproductor
El código quedaría  así:

La carpeta con el proyecto lo puedes descargar desde este enlace .
Si quieres solamente el programa recuerda crear la carpeta data donde metemos el audio y cambiar el nombre del audio en el  código de processing.

Programa mejorado representando ondas. Con loop para que se reproduzca de manera continua y con teclas paramos, adelantamos ...

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.