image2.jpg

Cómo hacer un botón virtual con Arduino

Aprenderá a crear un botón en pantalla en Processing que afecte a un LED físico en su Arduino. Este es un gran boceto para comenzar con las interacciones entre las computadoras y el mundo real, y entre un Arduino y Processing.

Necesitas:

  • Un Arduino Uno

  • Un LED

La configuración es simple para esta introducción a Arduino y Processing, requiriendo solo un solo LED.

image0.jpg

Inserte la pata larga del LED en el pin 13 y la pata corta en GND. Si no tiene un LED, simplemente puede monitorear el LED integrado marcado como L.

image1.jpg

Cómo configurar el código Arduino

Una vez ensamblado su circuito, necesita el software adecuado para usarlo. En el menú Arduino, elija Archivo → Ejemplos → 04.Comunicación → PhysicalPixel para encontrar el boceto.

Este boceto contiene tanto el código Arduino como el código de procesamiento relevante para que el boceto funcione (también tiene una variación en Max 5). El código debajo del código Arduino está comentado para evitar interferir con el código Arduino.

En versiones anteriores de Arduino, los archivos de boceto terminaban con .pde , que es el sufijo de procesamiento. Esto causó confusión, por lo que ahora el sufijo Arduino es .ino . Los diferentes sufijos hacen posible tener el boceto de Arduino y el boceto de procesamiento en el mismo lugar.

/ *
 Pixel físico
 Un ejemplo de uso de la placa Arduino para recibir datos del
 ordenador. En este caso, las placas Arduino encienden un LED cuando
 recibe el carácter 'H' y apaga el LED cuando
 recibe el carácter 'L'.
 Los datos se pueden enviar desde el monitor serie Arduino u otro
 programa como Processing (ver código a continuación), Flash (a través de un serial-net
 proxy), PD o Max / MSP.
 El circuito:
 * LED conectado desde el pin digital 13 a tierra
 creado 2006
 por David A. Mellis
 modificado el 30 de agosto de 2011
 por Tom Igoe y Scott Fitzgerald
 Este código de ejemplo es de dominio público.
 http://www.arduino.cc/en/Tutorial/PhysicalPixel
 * /
const int ledPin = 13; // el pin al que está conectado el LED
 int entranteByte; // una variable para leer los datos seriales entrantes en
configuración vacía () {
 // inicializar la comunicación en serie:
 Serial.begin (9600);
 // inicializa el pin LED como salida:
 pinMode (ledPin, SALIDA);
}
bucle vacío () {
 // mira si hay datos seriales entrantes:
 if (Serial.available ()> 0) {
 // lee el byte más antiguo en el búfer serial:
 entranteByte = Serial.read ();
 // si es una H mayúscula (ASCII 72), enciende el LED:
 if (entranteByte == 'H' ) {
  digitalWrite (ledPin, ALTO);
 }
 // si es una L (ASCII 76) apague el LED:
 if (entranteByte == 'L' ) {
  digitalWrite (ledPin, BAJO);
 }
 }
}

Ahora siga los pasos para cargar su boceto.

LEER  Cómo instalar Arduino para Mac OS X

Con el Arduino configurado para recibir un mensaje de Processing, necesita configurar el boceto de Processing para enviar un mensaje de señal a través del mismo puerto serie a su Arduino.

Cómo configurar el código de procesamiento

Este código está disponible dentro de marcadores de comentarios de varias líneas ( / * * / ) en la parte inferior del boceto de Arduino PhysicalPixel. Copie el código dentro de los marcadores de comentarios, péguelo en un nuevo boceto de procesamiento y guárdelo con un nombre apropiado, como PhysicalPixel.

 // mouseover serial
 // Demuestra cómo enviar datos a la placa de E / S Arduino, para
 // enciende una luz si el mouse está sobre un cuadrado y apágalo
 // si el mouse no lo es.
 // creado 2003-4
 // basado en ejemplos de Casey Reas y Hernando Barragán
 // modificado el 30 de agosto de 2011
 // por Tom Igoe
 // Este código de ejemplo es de dominio público.
 procesamiento de importación.serie . *;
 flotador boxX;
 flotador boxY;
 int boxSize = 20;
 booleano mouseOverBox = falso ;
 Puerto serial;
 configuración vacía () {
 tamaño (200, 200);
 boxX = ancho /2.0;
 boxY = altura /2.0;
 rectMode (RADIUS);
 // Lista todos los puertos serie disponibles en el panel de salida.
 // Deberá elegir el puerto en el que se encuentra la placa Arduino
 // conectado a desde esta lista. El primer puerto de la lista es
 // puerto # 0 y el tercer puerto de la lista es el puerto # 2.
 println (Serial. lista ());
 // Abra el puerto al que está conectada la placa Arduino (en este caso # 0)
 // Asegúrate de abrir el puerto a la misma velocidad que usa Arduino (9600bps)
 puerto = nuevo Serial ( este , Serial. list () [0], 9600);
 }
 vacío dibujar ()
 {
 fondo (0);
 // Prueba si el cursor está sobre el cuadro
 if ( mouseX > boxX-boxSize && mouseX <boxX + boxSize &&
  mouseY > boxY-boxSize && mouseY <boxY + boxSize) {
 mouseOverBox = verdadero ;
 // dibuja una línea alrededor de la caja y cambia su color:
 carrera (255);
 llenar (153);
 // envía una 'H' para indicar que el mouse está sobre el cuadrado:
 port.write ( 'H' );
 }
 demás {
 // devuelve la caja a su estado inactivo:
 accidente cerebrovascular (153);
 llenar (153);
 // envía una 'L' para apagar el LED:
 port.write ( 'L' );
 mouseOverBox = falso ;
 }
 // Dibuja la caja
 rect (boxX, boxY, boxSize, boxSize);
 }

Haga clic en el botón Ejecutar para ejecutar el boceto de procesamiento y aparecerá un subprograma. El subprograma muestra un fondo negro con un cuadrado gris en el medio, que representa su botón virtual. Si mueve el mouse sobre el cuadrado gris (o píxel), puede ver que sus bordes se vuelven blancos.

LEER  Placas Arduino que no son Arduino Uno

Si luego mira su Arduino, verá que cada vez que su mouse se desplaza sobre el cuadrado gris, el LED en su tablero se ilumina, brindándole una representación física de su píxel.

image2.jpg

Si su LED no se enciende, vuelva a verificar su cableado:

  • Asegúrese de que está utilizando el número de pin correcto.

  • Asegúrese de que las patas del LED estén colocadas correctamente.

  • Compruebe que su código Arduino se cargó correctamente y que su código de procesamiento no tiene errores. Tenga en cuenta que no puede cargar mientras el boceto de procesamiento se está comunicando con su Arduino, por lo que debe detener el boceto antes de cargar.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *