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