PowerPoint Presentation · Processing (2) Leggo la seriale con Processing e grafico una linea alta...
Transcript of PowerPoint Presentation · Processing (2) Leggo la seriale con Processing e grafico una linea alta...
What’s Arduino?
[wikipedia]Benché gli schemi hardware e il sorgente software siano resi disponibili con licenze copyleft, il nome Arduino e il logo sono marchi registrati e possono essere usati solo dietro permesso. Il documento che esprime la politica d'uso del nome "Arduino" mette l'accento su come il progetto sia aperto a incorporare lavori altrui nel prodotto ufficiale.
Quale conseguenza di queste convenzioni sulla protezione del nome, un gruppo di utilizzatori ha effettuato un "fork" (nel senso esteso del termine) dell'Arduino Diecimila, distribuendo una scheda equivalente chiamata "Freeduino"; il nome volutamente non è registrato ed è quindi liberamente utilizzabile.
void setup() { pinMode(A4,INPUT); pinMode(8,OUTPUT); delay(5000);//occupando la seriale sempre meglio Serial.begin(9600); }
LATO ARDUINO (1)
Vin – pin 8 Vc – pinA4 GND
void loop() { digitalWrite(8,HIGH); // CARICA for(int i=0;i<1000;i++) //quanti campioni? { int sensorValue = analogRead(A4); delay(100); //campionamento ogni 1/10 s Serial.println(sensorValue); } digitalWrite(8,LOW); // SCARICA for(int i=0;i<1000;i++) { int sensorValue = analogRead(A4); delay(100); Serial.println(sensorValue,DEC); }
LATO ARDUINO (2)
Vin – pin 8 Vc – pinA4 GND
Guardiamo il monitor seriale !
Processing (1)
Leggo la seriale con Processing e creo un rettangolo proporzionale al dato sulla seriale
rect(40, 0, 45, val/10);
Processing (2)
Leggo la seriale con Processing e grafico una linea alta proporzionale al dato sulla seriale
La carica del condensatore!void serialEvent (Serial myPort) { // get the ASCII string:
String inString = myPort.readStringUntil('\n');
if (inString != null) {
… // convert to an int and map to the screen height:
float inByte = float(inString);
inByte = map(inByte, 0, 1023, 0, height);
// draw the line:
stroke(127,34,255);
line(xPos, height, xPos, height - inByte/2);
... poi … sviluppi e variazioni
… con processing… saveStream() … saveBytes() … saveStrings()
Potremmo...
… salvare i dati su seriale ...… graficare con gnuplot ….… far il fit con gnuplot …… simulare con foglio di calcolo … e confrontare...… usare octave, e fare la simulazione numerica...
… bash + gnuplot ;)bash$ exec 3<> /dev/ttyXXX ; sleep 1bash$ while [ 1 ]; do cat /dev/ttyACM0 | tee -a dati.txt ; donebash$ exec 3<> /dev/ttyXXX ; sleep 1ctrl-c (abbastanza dati!!!!)gnuplot> plot “dati.txt”
… e poi...
● Acquisizione dati / interpretazione fisiche● Controllo processo fisico● Robotica educativa● Fishino, Beic e Water-Hack● … misure ambientali...
Con il Physical computing da zero alle gare di robotica.
Physical Computing... progettare esperimneti con piccoli strumenti opensource open
hardware
Con il Physical computing da zero alle gare di robotica.
Si impara la fisica attraverso problemi reali, si capisce cosa significa misurare, sensibilità
Con il Physical computing da zero alle gare di robotica.
Si imparano i concetti fisici di spazio, tempo, velocità, si fa informatica
Con il Physical computing da zero alle gare di robotica.
Si impara la fisica attraverso problemi reali, si capisce cosa significa misurare, sensibilità
Il progetto
Nato dal gruppo di potenziamento di fisica, offerto a tutti gli studenti interessati
principalmente 3-4-5 liceo scientifico
Unable to handle kernel NULL pointer dereference at virtual address 00000000 printing eip:c0233fa7*pde = 3e9f3067Oops: 0002 [#1]Modules linked in: usb arduino processing gnuplot rcgraphCPU: 0EIP: 0060:[] Not tainted VLIEFLAGS: 00010246 (2.6.9-22.EL)EIP is at sysrq_handle_crash+0x0/0x8eax: 00000063 ebx: c0370db4 ecx: 00000000 edx: 00000000esi: 00000063 edi: 00000000 ebp: 00000000 esp: f7191f60ds: 007b es: 007b ss: 0068Process bash (pid: 2857, threadinfo=f7191000 task=f7b677f0)Stack: c02342d8 c032dc4e c032f105 00000003 00000002 f7b6adc0 00000002 f7191fac c01a8a13 c0362740 c0168205 f7191fac b7de7000 f7b6adc0 fffffff7 b7de7000 f7191000 c01682cf f7191fac 00000000 00000000 00000000 00000001 00000002Call Trace: [] __handle_sysrq+0x58/0xc6 [] write_sysrq_trigger+0x23/0x29 [] vfs_write+0xb6/0xe2 [] sys_write+0x3c/0x62 [] syscall_call+0x7/0xbCode: 4c 11 42 c0 05 00 00 00 c7 05 50 11 42 c0 2f cc 31 c0 c7 05 54 11 42 c0 00 00 00 00 c7 05 58 11 42 c0 00 00 00 00 e9 e5 0b f0 ff 05 00 00 00 00 00 c3 e9 e1 59 f3 ff e9 1e bc f3 ff 85 d2 89
Grazie per l’attenzione
… sorridi, domani sarà peggio … (filosofia di Murphy)