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.
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)
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-----------
*/
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