[Processing & Arduino] Heart Beat Sensor (Arduino) animiert Uhrzeiger (Processing)

.Ap0_o'

Lieutenant
Registriert
Juni 2007
Beiträge
637
Hallo Leute,

(vielleicht gehört das Thema auch eher ins Arduino-Forum, aber ich versuchs mal bei euch)

habe folgendes Problem:
Ich möchte, dass ein Input-Signal vom Arduino bzw. von einem angeschlossenen Heart Beat Sensor in meinem Processing-Sketch ein Event triggert.
Hier mal der Processing-Code:

Code:
PImage second;
PImage minute;
PImage background;
float rot=0;
 
void setup() {
 size(1000, 1000);
 second = loadImage("second hand.png");
 minute = loadImage("minute hand.png");
  background = loadImage("background.png");
}
void draw() {
  background(background);
  translate(width/2, height/2);
 rotate(rot);
  image(second, -second.width/2, -second.height/2);
}
void mouseClicked() { //event is triggered by clicking
  rot+=PI/30;  //second hand is rotated by 6 degrees
}

Auf den entsprechenden MouseClick funktioniert das schonmal wunderbar, aber wie baue ich nun das Signal des Arduinos ein?

Der HeartBeatSensor bietet einen Arduino-Sketch.
Der sieht so aus:

Code:
int pulsePin = 0;                 // Pulse Sensor purple wire connected to analog pin 0
int blinkPin = 13;                // pin to blink led at each beat
int fadePin = 5;                  // pin to do fancy classy fading blink at each beat
int fadeRate = 0;                 // used to fade LED on with PWM on fadePin
 
volatile int BPM;                   // used to hold the pulse rate
volatile int Signal;                // holds the incoming raw data
volatile int IBI = 600;             // holds the time between beats, the Inter-Beat Interval
volatile boolean Pulse = false;     // true when pulse wave is high, false when it's low
volatile boolean QS = false;        // becomes true when Arduoino finds a beat.
 
void setup(){
  pinMode(blinkPin,OUTPUT);         // pin that will blink to your heartbeat!
  pinMode(fadePin,OUTPUT);          // pin that will fade to your heartbeat!
  Serial.begin(115200);             // we agree to talk fast!
  interruptSetup();                 // sets up to read Pulse Sensor signal every 2mS 
   // UN-COMMENT THE NEXT LINE IF YOU ARE POWERING The Pulse Sensor AT LOW VOLTAGE, 
   // AND APPLY THAT VOLTAGE TO THE A-REF PIN
   //analogReference(EXTERNAL);   
}
 
void loop(){
  sendDataToProcessing('S', Signal);     // send Processing the raw Pulse Sensor data
  if (QS == true){                       // Quantified Self flag is true when arduino finds a heartbeat
        fadeRate = 255;                  // Set 'fadeRate' Variable to 255 to fade LED with pulse
        sendDataToProcessing('B',BPM);   // send heart rate with a 'B' prefix
        sendDataToProcessing('Q',IBI);   // send time between beats with a 'Q' prefix
        QS = false;                      // reset the Quantified Self flag for next time    
     }
  ledFadeToBeat();
  delay(20);                             //  take a break
}
 
void ledFadeToBeat(){
    fadeRate -= 15;                         //  set LED fade value
    fadeRate = constrain(fadeRate,0,255);   //  keep LED fade value from going into negative numbers!
    analogWrite(fadePin,fadeRate);          //  fade LED
  }
 
void sendDataToProcessing(char symbol, int data ){
    Serial.print(symbol);                // symbol prefix tells Processing what type of data is coming
    Serial.println(data);                // the data to send culminating in a carriage return
}

Im Prinzip könnte man auch die "SensorSimpleRead" Library von Arduino nehmen, bloß weiß ich da auch nicht, wie man die implementiert :(

Jemand eine Idee?

Gruß,
Apo
 
Hi,

also um einen Überblick über dein Vorhaben zu bekommen und dir damit helfen zu können, wäre es gut wenn du dein System etwas ausführlicher beschreibst. (Datenblätter, Bauteile, etc.)

Irgendwie fehlt mir außerdem beim Sensor-Beispiel ein bisschen was an Code.

Grüße,
süchtla
 
Zurück
Oben