Hi,
i have just started using Arduino with a TEENSY3.6 and and now trying to test various analog/digital target circuits for proof of concept in an epilepsy research project.
The first parameter is breathing and I am using a piezo film (commonly used in sleep studies) to reflect respiration.
The piezo film flexes on each inhale then returns to non-flexed on exhale thus outputting a potential difference generated between the 2 piezo surfaces.
I am running through the Arduino Examples for Dig I/O, analog inputs etc. and now I have a piezo film hooked up to Analog 0 and can see the digitised numbers when I run the first part of Arduino code for Graph which simply grabs a sample and transmits at 9600 baud and then ctrl-shift-M allows me to see these numbers.
However, my problems start in trying to graph this data. I have installed ‘PROCESSING’ and then cut and pasted the sample code from the Arduino Graph code window example over to the PROCESSING code window but I get all sorts of errors. I also just tried to ‘uncomment’ this processing code and run it in Arduino IDE but problems also..?
My comments inserted after '9998' and '9999' below point to the working code and not so.
I would be most grateful for any insights.?
My coding has always been assembly language with different micros so not much C so this could be my problem?
//----------------------------------ARDUINO Graph example--------------------------------------
/*
Graph
A simple example of communication from the Arduino board to the computer: The
value of analog input 0 is sent out the serial port. We call this "serial"
communication because the connection appears to both the Arduino and the
computer as a serial port, even though it may actually use a USB cable. Bytes
are sent one after another (serially) from the Arduino to the computer.
You can use the Arduino Serial Monitor to view the sent data, or it can be
read by Processing, PD, Max/MSP, or any other program capable of reading data
from a serial port. The Processing code below graphs the data received so you
can see the value of the analog input changing over time.
The circuit:
- any analog input sensor attached to analog in pin 0
created 2006
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe and Scott Fitzgerald
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/Graph
*/
void setup() {
// initialize the serial communication:
Serial.begin(9600);
}
void loop() {
// send the value of analog input 0:
Serial.println(analogRead(A0));
// wait a bit for the analog-to-digital converter to stabilize after the last
// reading:
delay(2);
}
/* Processing code for this example
// Graphing sketch
// This program takes ASCII-encoded strings from the serial port at 9600 baud
// and graphs them. It expects values in the range 0 to 1023, followed by a
// newline, or newline and carriage return
// created 20 Apr 2005
// updated 24 Nov 2015
// by Tom Igoe
// This example code is in the public domain.
// 9998 The code above works fine and digitised values are displayed in the Arduino window as a realtime column
// 9999 This code below throws up errors whether I enable it in the Arduino IDE code window OR the PROCESSING IDE code window
import processing.serial.*;
Serial myPort; // The serial port
int xPos = 1; // horizontal position of the graph
float inByte = 0;
void setup () {
// set the window size:
size(400, 300);
// List all the available serial ports
// if using Processing 2.1 or later, use Serial.printArray()
println(Serial.list());
// I know that the first port in the serial list on my Mac is always my
// Arduino, so I open Serial.list()[0].
// Open whatever port is the one you're using.
myPort = new Serial(this, Serial.list()[0], 9600);
// don't generate a serialEvent() unless you get a newline character:
myPort.bufferUntil('\n');
// set initial background:
background(0);
}
void draw () {
// draw the line:
stroke(127, 34, 255);
line(xPos, height, xPos, height - inByte);
// at the edge of the screen, go back to the beginning:
if (xPos >= width) {
xPos = 0;
background(0);
} else {
// increment the horizontal position:
xPos++;
}
}
void serialEvent (Serial myPort) {
// get the ASCII string:
String inString = myPort.readStringUntil('\n');
if (inString != null) {
// trim off any whitespace:
inString = trim(inString);
// convert to an int and map to the screen height:
inByte = float(inString);
println(inByte);
inByte = map(inByte, 0, 1023, 0, height);
}
}
*/
i have just started using Arduino with a TEENSY3.6 and and now trying to test various analog/digital target circuits for proof of concept in an epilepsy research project.
The first parameter is breathing and I am using a piezo film (commonly used in sleep studies) to reflect respiration.
The piezo film flexes on each inhale then returns to non-flexed on exhale thus outputting a potential difference generated between the 2 piezo surfaces.
I am running through the Arduino Examples for Dig I/O, analog inputs etc. and now I have a piezo film hooked up to Analog 0 and can see the digitised numbers when I run the first part of Arduino code for Graph which simply grabs a sample and transmits at 9600 baud and then ctrl-shift-M allows me to see these numbers.
However, my problems start in trying to graph this data. I have installed ‘PROCESSING’ and then cut and pasted the sample code from the Arduino Graph code window example over to the PROCESSING code window but I get all sorts of errors. I also just tried to ‘uncomment’ this processing code and run it in Arduino IDE but problems also..?
My comments inserted after '9998' and '9999' below point to the working code and not so.
I would be most grateful for any insights.?
My coding has always been assembly language with different micros so not much C so this could be my problem?
//----------------------------------ARDUINO Graph example--------------------------------------
/*
Graph
A simple example of communication from the Arduino board to the computer: The
value of analog input 0 is sent out the serial port. We call this "serial"
communication because the connection appears to both the Arduino and the
computer as a serial port, even though it may actually use a USB cable. Bytes
are sent one after another (serially) from the Arduino to the computer.
You can use the Arduino Serial Monitor to view the sent data, or it can be
read by Processing, PD, Max/MSP, or any other program capable of reading data
from a serial port. The Processing code below graphs the data received so you
can see the value of the analog input changing over time.
The circuit:
- any analog input sensor attached to analog in pin 0
created 2006
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe and Scott Fitzgerald
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/Graph
*/
void setup() {
// initialize the serial communication:
Serial.begin(9600);
}
void loop() {
// send the value of analog input 0:
Serial.println(analogRead(A0));
// wait a bit for the analog-to-digital converter to stabilize after the last
// reading:
delay(2);
}
/* Processing code for this example
// Graphing sketch
// This program takes ASCII-encoded strings from the serial port at 9600 baud
// and graphs them. It expects values in the range 0 to 1023, followed by a
// newline, or newline and carriage return
// created 20 Apr 2005
// updated 24 Nov 2015
// by Tom Igoe
// This example code is in the public domain.
// 9998 The code above works fine and digitised values are displayed in the Arduino window as a realtime column
// 9999 This code below throws up errors whether I enable it in the Arduino IDE code window OR the PROCESSING IDE code window
import processing.serial.*;
Serial myPort; // The serial port
int xPos = 1; // horizontal position of the graph
float inByte = 0;
void setup () {
// set the window size:
size(400, 300);
// List all the available serial ports
// if using Processing 2.1 or later, use Serial.printArray()
println(Serial.list());
// I know that the first port in the serial list on my Mac is always my
// Arduino, so I open Serial.list()[0].
// Open whatever port is the one you're using.
myPort = new Serial(this, Serial.list()[0], 9600);
// don't generate a serialEvent() unless you get a newline character:
myPort.bufferUntil('\n');
// set initial background:
background(0);
}
void draw () {
// draw the line:
stroke(127, 34, 255);
line(xPos, height, xPos, height - inByte);
// at the edge of the screen, go back to the beginning:
if (xPos >= width) {
xPos = 0;
background(0);
} else {
// increment the horizontal position:
xPos++;
}
}
void serialEvent (Serial myPort) {
// get the ASCII string:
String inString = myPort.readStringUntil('\n');
if (inString != null) {
// trim off any whitespace:
inString = trim(inString);
// convert to an int and map to the screen height:
inByte = float(inString);
println(inByte);
inByte = map(inByte, 0, 1023, 0, height);
}
}
*/