ARDUINO Colleghiamolo al PC/MAC - FUNZIONA? DUE LED PREINSTALLATI led L è connesso al pin13. PWR indica se l’alimentazione c’è, e implicitamente se la porta USB è corretta ARDUINO Composizione del codice - simile a Processing int ledPin = 13; Dichiarazione delle variabili ledPin richiama il pin13, il nome è facoltativo int ledPin = 13; Dichiarazione delle variabili void setup() { pinMode(ledPin, OUTPUT); } Settaggio parametri ledPin richiama il pin13, il nome è facoltativo dichiariamo che il pin13 sarà interpretato come output int ledPin = 13; Dichiarazione delle variabili void setup() { pinMode(ledPin, OUTPUT); } Settaggio parametri void loop() { digitalWrite(ledPin, HIGH);} Sequenza di azioni da eseguire ledPin richiama il pin13, il nome è facoltativo dichiariamo che il pin13 sarà interpretato come output scriviamo sul pin e diciamo che è acceso ARDUINO Accendere LED DICHIARIAMO UNA VARIABILE int ledPin = 13; ledPin è il nome della varibile, può essere un qualsiasi nome. 13 è il numero del pin sulla scheda Arduino che andremo a leggere o a scrivere... IN CHE MODO FUNZIONERÀ IL PIN? void setup() { pinMode(ledPin, OUTPUT); } Dichiariamo in che modo interepretiamo il Pin. In questo caso il pin 13 sarà un pin OUTPUT. Il led hanno due piedini uno più lungo dell’altro... la loro posizione sull’arduino e fissa: quello più corto va all’interno del pin denominato GND, cioè la messa a terra, e l’altro all’interno del pin dichiarato come output. AZIONI DA FARE void loop() { digitalWrite(ledPin, HIGH); } Sul pin dichiarato possiamo o scrivere (write) o leggere (read). In questo caso scriviamo sul pin 13 dicendo di accendere, HIGH. il piedino più corto va inserito all’interno del pin denominato GND, cioè la messa a terra ..il secondo all’interno del pin 13 TRASFERIRE IL CODICE ALLA BOARD ‣Colleghiamo la scheda Arduino al MAC/PC con il cavo USB in dotazione ‣Clichiamo il pulsante sulla board ‣Clicchiamo il pulsante sulla IDE ARDUINO Accensione LED intermittente IMPOSTIAMO IL PIN int ledPin = 13; void setup() { pinMode(ledPin, OUTPUT); } Come per il led precedente dichiariamo il pin che sarà OUTPUT. AZIONI DA FARE void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); } Prima azione scriviamo sul pin che sarà acceso, HIGH, e dichiariamo un ritardo di 1000 millisecondi, cioè un secondo. Seconda azione scriaviamo sullo stesso pin lo spegnimento del led, LOW, con un ritardo di un secondo. ARDUINO Accensione LED intermittenti Collegare due led alla board e farli lampeggiare SOLUZIONE int ledPin = 13; int ledPin1 = 10; int interval = 100; int interval1 = 150; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); digitalWrite(ledPin1, LOW); delay(interval); delay(interval1); } digitalWrite(ledPin, LOW); digitalWrite(ledPin1, HIGH); delay(interval); delay(interval1); PROCESSING + ARDUINO Accensione LED con il click della tastiera Clicco ‘a’, si accende il led 1 Clicco ‘d’, si spegne il led 1 Clicco ‘c’, si accende il led 2 Clicco ‘b’, si spegne il led 2 TABELLA CODICI ASCII Da considerare solo i codici decimali, Dec. I CODICI CHE USEREMO a - 97 d - 100 c - 99 b - 98 Processing riceve il comando dalla tastiera e lo invia ad Arduino Arduino riceve il codice decimale della tastiera, e scrive sul PIN accende il LED - CODICE import processing.serial.*; Serial myPort; Importiamo la libreria “serial”. Serve per la lettura e lo scambio di byte attraverso le porte seriali. void setup(){ println(Serial.list()); myPort = new Serial(this, Serial.list()[1], 9600);} Impostiamo la porta seriale, e stampiamo l’elenco delle porte. void draw(){ if(keyPressed){ if(key=='a'){ myPort.write(65); } else{ if(key=='d'){ myPort.write(97); } } if(key=='c'){ myPort.write(98);} else{ if(key=='b'){myPort.write(118);}} }} se clicco ‘a’ scrivimi sulla porta il numero ’65’, altrimenti se clicco ‘d’ scrivimi sulla porta il numero ’97’. se clicco ‘c’ scrivimi sulla porta il numero ’98’, altrimenti se clicco ‘b’ scrivmimi sull aporta il numero ‘118’. - CODICE int ledPin = 13; int ledPin1 = 10; int val = 0; void setup(){ pinMode(ledPin, OUTPUT); pinMode(ledPin1, OUTPUT); Serial.begin(9600); } void loop(){ val=Serial.read(); if(val =='a'){ digitalWrite(ledPin, HIGH); } if(val=='d'){ digitalWrite(ledPin, LOW); } if(val=='c'){ digitalWrite(ledPin1, HIGH); } if(val=='b'){digitalWrite(ledPin1, LOW);} } Impostiamo i PIN che useremo e una variabile, chiamata ‘val’ = 0 Dichiariamo che i due PIN scelti saranno usati come OUTPUT, e impostiamo la porta USB. Il valore della variabile ‘val’ sarà uguale alla lettura della porta seriale. se il valore è ‘a’ il pin1 è aperto, se il valore è ‘d’ il pin1 è spento. se il valore è ‘c’ il pin2 è aperto, se il vaolre è ‘b’ il pin2 è spento. PROGETTO FINALE Homebrew Wii I piedini A e C sono sempre connessi fra loro, così come i piedini B e D, mentre se il pulsante viene premuto, sono connessi tra loro tutti i piedini Colleghiamo il piedino A alla terra (GND). Il piedino B lo colleghiamo prima ad una resistenza poi al PIN 5V. Colleghiamo sempre il piedino B al PIN2 che riceverà il segnale che il pulsante è stato premuto. Resistenza da 2.2 KOhm