Stap 5: Test de hartslag Sensor bestuur...
Dit is erg eenvoudig, zelfs voor beginners in de Arduino. In deze stap zullen we de HR (hartslag) sensor output met behulp van een computerprogramma, gemaakt bij de verwerking vanvisualiseren. Dit zal ons helpen te wijzigen van de code voor het tellen van de hartslag. Volg deze stappen:
- Het uploaden van de schets van de "AnalogReadSerial" naar je Arduino board. U vindt het in bestand > voorbeelden > Basics.
- Open de toepassing van de verwerking. Kopieer de code hieronder en plak deze in de verwerking venster.
- De HR sensor bestuur verbinden met de Arduino: Power pinnen aan + 5v en 0, en de output van de gegevens tot A0 van de Arduino.
- Voer het Processing-programma door te klikken op de knop 'afspelen' op de hoogste linkerzijde.
U krijgt een grafiek van de seriële waarden uit de Arduino. In de grafiek, nu van de X-as, Y-as is de seriële waarde. Maximale waarde van de Y-as is 1023 (bij de bovenkant van de grafiek), en minimale is 0 (onderaan). Wanneer geen vinger wordt geplaatst krijg je vrij willekeurige waarden, maar brengen u bent vinger zonder te verplaatsen zal maken een schone "Heart Beat" op de grafiek, zoals weergegeven in de afbeelding hierboven.
Als je alleen visualiseren van je hartslag wilde, kunt u hier stoppen. Echter voor verder te gaan, u moet uitzoeken van een bepaalde 'drempel' waarde, dat als gekruist, de Arduino zal herkennen als een beat. Verschillende HR sensoren wellicht verschillende drempelwaarden.
Voor mij, heb ik de waarde ingesteld op 200.
Zie deze video voor een demonstratie van het visualiseren van de hartslag...
Hier is de code voor het verwerken van programma...
import processing.serial.*;
Serial myPort; // The serial port int xPos = 1; // horizontal position of the graph
//Variables to draw a continuous line. int lastxPos=1; int lastheight=0;
void setup () { // set the window size: size(600, 400);
// List all the available serial ports println(Serial.list()); // Check the listed serial ports in your machine // and use the correct index number in Serial.list()[].
myPort = new Serial(this, Serial.list()[6], 9600); //
// A serialEvent() is generated when a newline character is received : myPort.bufferUntil('\n'); background(0); // set inital background: } void draw () { // everything happens in the serialEvent() }
void serialEvent (Serial myPort) { // get the ASCII string: String inString = myPort.readStringUntil('\n'); if (inString != null) { inString = trim(inString); // trim off whitespaces. float inByte = float(inString); // convert to a number. inByte = map(inByte, 0, 1023, 0, height); //map to the screen height.
//Drawing a line from Last inByte to the new one. stroke(255,255,255); //stroke color strokeWeight(1); //stroke wider line(lastxPos, lastheight, xPos, height - inByte); lastxPos= xPos; lastheight= int(height-inByte);
// at the edge of the window, go back to the beginning: if (xPos >= width) { xPos = 0; lastxPos= 0; background(0,123,255); //Clear the screen. } else { // increment the horizontal position: xPos++; } } }