Tag: arduino
A explorar: Arduino & Node.js

Algo a explorar, usar o arduino com uma interface numa pagina web..
+infos: LINK
Tags : arduino, Javascript, Node.js
SparkFun RGB and Gesture Sensor e o Processing
Aqui está uma ligação simples entre o sensor da SparkFun RGB and Gesture Sensor APDS-9960 e o Processing. É necessário instalar o exemplo que está na página da Sparkfun. Fui testado no processing 2.1 e com uma board arduino uno. Fui também utilizado o exemplo do Arduino que está na página da Sparkfun.
//no arduino
#include <Wire.h>
#include <SparkFun_APDS9960.h>
#define APDS9960_INT 2
SparkFun_APDS9960 apds = SparkFun_APDS9960();
int isr_flag = 0;
void setup() {
Serial.begin(9600);
Serial.println();
Serial.println(F("--------------------------------"));
Serial.println(F("SparkFun APDS-9960 - GestureTest"));
Serial.println(F("--------------------------------"));
attachInterrupt(0, interruptRoutine, FALLING);
if ( apds.init() ) {
Serial.println(F("APDS-9960 initialization complete"));
} else {
Serial.println(F("Something went wrong during APDS-9960 init!"));
}
if ( apds.enableGestureSensor(true) ) {
Serial.println(F("Gesture sensor is now running"));
} else {
Serial.println(F("Something went wrong during gesture sensor init!"));
}
}
void loop() {
if ( isr_flag == 1 ) {
handleGesture();
isr_flag = 0;
}
}
void interruptRoutine() {
isr_flag = 1;
}
void handleGesture() {
if ( apds.isGestureAvailable() ) {
switch ( apds.readGesture() ) {
case DIR_UP:
Serial.write("U"); //up
Serial.write("\n");
break;
case DIR_DOWN:
Serial.write("D"); // down
Serial.write("\n");
break;
case DIR_LEFT:
Serial.write("L"); //left
Serial.write("\n");
break;
case DIR_RIGHT:
Serial.write("R"); //right
Serial.write("\n");
break;
case DIR_NEAR:
Serial.write("N"); //near
Serial.write("\n");
break;
case DIR_FAR:
Serial.write("F"); //far
Serial.write("\n");
break;
default:
Serial.write("NULL"); //null
Serial.write("\n");
}
}
}
//no processing
import processing.serial.*;
Serial porta;
int valor = 0;
int aX=200, aY=200;
int veloci=20;
void setup() {
size(400, 400);
porta = new Serial(this, "COM12", 9600);
}
void draw() {
background(255,255,255);
while (porta.available () > 0) {
valor = porta.read();
if (valor=='R') {
println("right");
aX=aX+veloci;
}
if (valor=='L') {
println("left");
aX=aX-veloci;
}
if (valor=='U') {
println("up");
aY=aY-veloci;
}
if (valor=='D') {
println("down");
aY=aY+veloci;
}
}
ellipse(aX, aY, 50, 50);
}
+infos(sparkfun): LINK
Send a string from arduino to processing
i would like to send a string with 2 letters and 1 to 3 random numbers from arduino to processing. The work is to send random values from a led RGB conected to an arduino, so in that in a stage in processing i can have a similar image with the same color from the led RGB
//in arduino
int colorRED, colorGREEN, colorBLUE;
int ledRedPin = 9;
int ledGreenPin = 10;
int ledBluePin = 11;
void setup()
{
Serial.begin(9600);
pinMode(ledRedPin, OUTPUT);
pinMode(ledGreenPin, OUTPUT);
pinMode(ledBluePin, OUTPUT);
}
void loop()
{
Serial.flush();
colorRED = random(0, 255);
colorGREEN = random(0, 255);
colorBLUE = random(0, 255);
analogWrite(ledRedPin, colorRED);
analogWrite(ledGreenPin, colorGREEN);
analogWrite(ledBluePin, colorBLUE);
delay(200);
Serial.print("rd");
Serial.print(colorRED);
Serial.print("\n");
delay(200);
Serial.print("gr");
Serial.print(colorGREEN);
Serial.print("\n");
delay(200);
Serial.print("bl");
Serial.print(colorBLUE);
Serial.print("\n");
delay(200);
}
//in processing
import processing.serial.*;
Serial porta;
String sinal_letra;
String sinal_tipo;
int valor_cor, valor_cor1, valor_cor2, valor_cor3;
int totalc;
void setup() {
size(400, 400);
porta = new Serial(this, "COM50", 9600);
porta.clear();
}
void draw() {
desenha_led();
}
void desenha_led() {
//a desenhar um led
background(valor_cor1, valor_cor2, valor_cor3);
}
void serialEvent(Serial porta) {
sinal_letra = porta.readStringUntil('\n');
if (sinal_letra != null) {
sinal_letra = trim(sinal_letra);
totalc = sinal_letra.length();
sinal_tipo = sinal_letra.substring(0, 2);
valor_cor = parseInt(sinal_letra.substring(2, totalc));
println(sinal_tipo+"-"+valor_cor);
if (sinal_tipo.equals("rd")) {
porta.clear();
valor_cor1=valor_cor;
}
if (sinal_tipo.equals("gr")) {
porta.clear();
valor_cor2=valor_cor;
}
if (sinal_tipo.equals("bl")) {
porta.clear();
valor_cor3=valor_cor;
}
}
}
Tags : arduino, led RGB, Processing, PWM, serial
