Pixel fisico

En este ejemplo se utiliza la placa Arduino o Genuino para recibir datos desde el ordenador. La placa enciende un LED cuando se recibe el carácter "H", y apaga el LED cuando se recibe el carácter "L".
Los datos pueden ser enviados desde el monitor serie del software Arduino (IDE), o con otro programa, como Procesing (véase el código de abajo), Flash (a través de un proxy serie-net), PD, o Max / MSP.

Hardware requerido

1 Placa Arduino o Genuino
1 LED (opcional)
1 Resistencia de 220 ohmios (opcional)

Software necesario

Circuito y Esquema

Muchas placas Arduino y Genuino tienen un LED incorporado conectado al pin 13; si la placa no tiene LED incorporado, conecte un LED externo al pin 13. El terminal largo, o ánodo, va al pin 13 a través de una resistencia de 220. El terminal corto, o cátodo, va a GND.



Código

/*
   Pixel fisico

Un ejemplo del uso de la placa Arduino para recibir datos desde el ordenador. En este caso, 

la placa Arduino enciende un LED cuando recibe el carácter "H", y se apaga el LED cuando 
se recibe el carácter "L".

Los datos pueden ser enviados desde el monitor serie Arduino, u otro programa 
como Procesing (ver código de abajo), Flash (a través de una red proxi serie ), PD, o Max / MSP.

Circuito: 
* LED conectado al pin digital 13 y a tierra 
creado en 2006 por David A. Mellis 
modificado el 30 de Agosto de 2011 
por Tom Igoe y Scott Fitzgerald 

Este código es de dominio público.

 http://www.arduino.cc/en/Tutorial/PhysicalPixel * /

const int ledPin = 13; // el pin al que esta conectado el LED 
int incomingByte;      // una variable para leer los datos serie entrantes

void setup() {
  // inicializa la comunicacion serie
  Serial.begin(9600);
  // configura el pin del LED como una salida
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // mira si hay datos en la entrada serie
  if (Serial.available() > 0) {
    // lee el byte mas antiguo del buffer serie
    incomingByte = Serial.read();
    // si es una H mayuscula (ASCII 72), enciende el LED:
    if (incomingByte == 'H') {
      digitalWrite(ledPin, HIGH);
    }
    // si es una L mayuscula (ASCII 76) apaga el LED:
    if (incomingByte == 'L') {
      digitalWrite(ledPin, LOW);
    }
  }
}

/* Codigo de Processing para este ejemplo

 // mouseover serial

 //
Demuestra cómo enviar datos de E / S a la placa Arduino, con el fin de
 // Encender una luz cuando el ratón está sobre un cuadrado y apagarlo 
// Si el ratón no lo esta.

 // creado el 2003-4
 // basado en ejemplos de Casey Reas yHernando Barragan
 // modificado el 30 Agosto de 2011
 // porTom Igoe
 // Este ejemplo es de dominio publico

 import processing.serial.*;

 float boxX;
 float boxY;
 int boxSize = 20;
 boolean mouseOverBox = false;

 Serial port;

 void setup() {
 size(200, 200);
 boxX = width/2.0;
 boxY = height/2.0;
 rectMode(RADIUS);

 // Lista todos los puertos serie disponibles en el panel de salida.
 // 
Usted tendrá que elegir el puerto al que la placa Arduino esta 
// conectado de esta lista. El primer puerto de la lista es 
// el puerto # 0 y el tercer puerto en la lista es el puerto # 2. 
// Si se utiliza Procesing 2.1 o posterior, utilice Serial.print Array () println (Serial.list ()); 
// Abrir el puerto al que la placa Arduino se conecta (en este caso # 0) 
// Asegúrese de abrir el puerto a la misma velocidad que  está utilizando Arduino(9600)
 port = new Serial(this, Serial.list()[0], 9600);

 }

 void draw()
 {
 background(0);

 // Comprueba si el cursor esta sobre el cuadrado
 if (mouseX > boxX-boxSize && mouseX < boxX+boxSize &&
 mouseY > boxY-boxSize && mouseY < boxY+boxSize) {
 mouseOverBox = true;
 // traza una línea alrededor del cuadrado y cambia su color:
 stroke(255);
 fill(153);
 // envia una 'H' para informar que el raton esta sobre el cuadrado
 port.write('H');
 }
 else {
 // devolverel cuadrado a su estado inactivo:
 stroke(153);
 fill(153);
 // envia una 'L' para apagar el LED 
 port.write('L');
 mouseOverBox = false;
 }

 // Dibuja el cuadrado
 rect(boxX, boxY, boxSize, boxSize);
 }


 */


/*
Parche para que Max/MSP version 5 funcione con este ejemplo

----------begin_max5_patcher----------
1672.3oc2ZszaaiCD9ryuBBebQVCQRYao8xhf1cQCPVfBzh8RRQ.sDsM2HSZ
HQmlzh9eu7gjsjsEk7y0oWjiHoHm4aluYHGlueUmtiDuPy5B9Cv8fNc99Uc5
XZR2Pm726zcF4knDRlYXciDylQ4xtWa6SReQZZ+iSeMiEQR.ej8BM4A9C7OO
kkAlSjQSAYTdbFfvA27o2c6sfO.Doqd6NfXgDHmRUCKkolg4hT06BfbQJGH3
5Qd2e8d.QJIQSow5tzebZ7BFW.FIHow8.2JAQpVIIYByxo9KIMkSjL9D0BRT
sbGHZJIkDoZOSMuQT.8YZ5qpgGI3locF4IpQRzq2nDF+odZMIJkRjpEF44M3
A9nWAum7LKFbSOv+PSRXYOvmIhYiYpg.8A2LOUOxPyH+TjPJA+MS9sIzTRRr
QP9rXF31IBZAHpVHkHrfaPRHLuUCzoj9GSoQRqIB52y6Z.tu8o4EX+fddfuj
+MrXiwPL5+9cXwrOVvkbxLpomazHbQO7EyX7DpzXYgkFdF6algCQpkX4XUlo
hA6oa7GWck9w0Gnmy6RXQOoQeCfWwlzsdnHLTq8n9PCHLv7Cxa6PAN3RCKjh
ISRVZ+sSl704Tqt0kocE9R8J+P+RJOZ4ysp6gN0vppBbOTEN8qp0YCq5bq47
PUwfA5e766z7NbGMuncw7VgNRSyQhbnPMGrDsGaFSvKM5NcWoIVdZn44.eOi
9DTRUT.7jDQzSTiF4UzXLc7tLGh4T9pwaFQkGUGIiOOkpBSJUwGsBd40krHQ
9XEvwq2V6eLIhV6GuzP7uzzXBmzsXPSRYwBtVLp7s5lKVv6UN2VW7xRtYDbx
7s7wRgHYDI8YVFaTBshkP49R3rYpH3RlUhTQmK5jMadJyF3cYaTNQMGSyhRE
IIUlJaOOukdhoOyhnekEKmZlqU3UkLrk7bpPrpztKBVUR1uorLddk6xIOqNt
lBOroRrNVFJGLrDxudpET4kzkstNp2lzuUHVMgk5TDZx9GWumnoQTbhXsEtF
tzCcM+z0QKXsngCUtTOEIN0SX2iHTTIIz968.Kf.uhfzUCUuAd3UKd.OKt.N
HTynxTQyjpQD9jlwEXeKQxfHCBahUge6RprSa2V4m3aYOMyaP6gah2Yf1zbD
jVwZVGFZHHxINFxpjr5CiTS9JiZn6e6nTlXQZTAFj6QCppQwzL0AxVtoi6WE
QXsANkEGWMEuwNvhmKTnat7A9RqLq6pXuEwY6xM5xRraoTiurj51J1vKLzFs
CvM7HI14Mpje6YRxHOSieTsJpvJORjxT1nERK6s7YTN7sr6rylNwf5zMiHI4
meZ4rTYt2PpVettZERbjJ6PjfqN2loPSrUcusH01CegsGEE5467rnCdqT1ES
QxtCvFq.cvGz+BaAHXKzRSfP+2Jf.KCvj5ZLJRAhwi+SWHvPyN3vXiaPn6JR
3eoA.0TkFhTvpsDMIrL20nAkCI4EoYfSHAuiPBdmJRyd.IynYYjIzMvjOTKf
3DLvnvRLDLpWeEOYXMfAZqfQ0.qsnlUdmA33t8CNJ7MZEb.u7fiZHLYzDkJp
R7CqEVLGN75U+1JXxFUY.xEEBcRCqhOEkz2bENEWnh4pbh0wY25EefbD6EmW
UA6Ip8wFLyuFXx+Wrp8m6iff1B86W7bqJO9+mx8er4E3.abCLrYdA16sBuHx
vKT6BlpIGQIhL55W7oicf3ayv3ixQCm4aQuY1HZUPQWY+cASx2WZ3f1fICuz
vj5R5ZbM1y8gXYN4dIXaYGq4NhQvS5MmcDADy+S.j8CQ78vk7Q7gtPDX3kFh
3NGaAsYBUAO.8N1U4WKycxbQdrWxJdXd10gNIO+hkUMmm.CZwknu7JbNUYUq
0sOsTsI1QudDtjw0t+xZ85wWZd80tMCiiMADNX4UzrcSeK23su87IANqmA7j
tiRzoXi2YRh67ldAk79gPmTe3YKuoY0qdEDV3X8xylCJMTN45JIakB7uY8XW
uVr3PO8wWwEoTW8lsfraX7ZqzZDDXCRqNkztHsGCYpIDDAOqxDpMVUMKcOrp
942acPvx2NPocMC1wQZ8glRn3myTykVaEUNLoEeJjVaAevA4EAZnsNgkeyO+
3rEZB7f0DTazDcQTNmdt8aACGi1QOWnMmd+.6YjMHH19OB5gKsMF877x8wsJ
hN97JSnSfLUXGUoj6ujWXd6Pk1SAC+Pkogm.tZ.1lX1qL.pe6PE11DPeMMZ2
.P0K+3peBt3NskC
-----------end_max5_patcher-----------


 */

No hay comentarios:

Publicar un comentario