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

  1. Platforma Arduino
  2. Cablu USB
  3. Programul Arduino pentru platforma Arduino
  4. Processing pentru procesarea si afisarea datelor de pe Arduino
  5. 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);
 float inByte = float(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

Postări populare de pe acest blog

Lectia #5: Ardumoto

Lectia #2: Analiza Codului - Part 2

Lectia #1: Blinking Led