Lectia #3: Grafice
De data aceasta vom invata sa folosim Serialul platformei Arduino trimitand informatii venite de pe senzori pe calculator si afisandu-le ca un grafic pe monitor.
Serialul poate fi caracterizat ca fiind o conexiune prin care se fac transferuri de date codificate in cifrele 1 si 0.
Lucruri necesare
Serialul poate fi caracterizat ca fiind o conexiune prin care se fac transferuri de date codificate in cifrele 1 si 0.
Lucruri necesare
- Platforma Arduino
- Cablu USB
- Programul Arduino pentru platforma Arduino
- Processing pentru procesarea si afisarea datelor de pe Arduino
- Potentiometru/Senzor lumina/sunet etc conectat la un pin analog in, in cazul nostru A0;
Acum platforma Arduino trebuie programata in asa fel incat sa poata sa trimita prin Serial datele de la senzori.
Daca a-ti invatat pana acum destul de bine C++, ar trebui sa stiti deja sa faceti acest lucru, dar ca eu oricum va voi prezenta un exemplu de-al meu.
Programarea pentru platforma Arduino
int pin = A0;
val = 0;
void setup()
{
Serial.begin(9600);
pinMode(pin,INPUT):
}
void loop()
{
val = analogRead(pin);
Serial.println(val);
delay(33);
}
Acest cod va trimita datele primite de la senzorul conectat la pin-ul A0 prin Serial.
Functia de trimitere a datelor prin Serial se numeste Serial.print(valoare), iar sufiixul de la print, ,,-ln" creeaza un noua linie in Serial monitor.
Programare pentru Processing
import processing.serial.*;
Serial myPort;
int xPos = 1;
void setup () {
size(500, 500);
println(Serial.list());
myPort = new Serial(this, Serial.list()[0], 9600);
myPort.bufferUntil('\n');
background(0);
}
void draw () {
}
void serialEvent (Serial myPort) {
String inString = myPort.readStringUntil('\n');
if (inString != null) {
inString = trim(inString);
inByte = map(inByte, 0, 1023, 0, height);:
stroke(127,34,255);
line(xPos, height, xPos, height - inByte);
if (xPos >= width) {
xPos = 0;
background(0);
}
else {:
xPos++;
}
}
}

Comentarii
Trimiteți un comentariu