INFORMATICA APPLICATA ALL'ELETTRONICA
PER REALIZZARE LA PROVA E' NECESSARIO:
installare http://www.mblock.cc/
se necessario installare i driver per Arduino
eseguire mBlock
selezionare Arduino uno (menu board)
collegare Arduino al PC ed eventualmente attendere il riconoscimento e l'installazione dei driver sulla particolare usb utilizzata. Considerare che questa operazione può avvenire per ogni porta usb.
attendere che mblock riconosca la porta seriale e spuntarla (menu connect)
installare su Arduino il firmware (menu connect)
spiegare:
la funzione svolta dal firmware, la funzione svolta dai led di comunicazione seriale sulla usb
il comportamento di un pin di ingresso digitale e analogico
il comportamento di un pin di uscita digitale
come il sw su mBlock interagisce con arduino
ES. Test di funzionalità: accendere il led 13 della scheda.
ES. Scrivere il codice per il blink sul led 13 della scheda:
per sempre 1s acceso e 1s spento.
ES: Tramite due sprite (button) gestire il led 13 con il passaggio del mouse: button1 spegne e button2 accende il led13.
ES. Utilizzare due sprite, un pulsante e un led virtuale, e il led 13 reale di arduino.
Premendo il pulsante virtuale, i due led, reale e virtuale, invertono lo stato.
Inizialmente i due led sono spenti.
Suggerimenti: per il pulsante e il led virtuale utilizzare due costumi, considerare che il sistema è formato da due stati descrivibili da una variabile di stato...
La scheda TinkerKit Sensor Shield V.2 evita cablaggi e breadboard.
Si consideri che:
i connettori bianchi con la scritta INPUT I0, I1, ...,I5 sono ingressi analogici collegati a i pin A0, A1,..,A5 di Arduino.
i connettori arancio con la scritta OUTPUT O0, O1, O2, O3, O4, O5 sono I/O digitali collegati rispettivamente ai pin 11, 10, 9, 6, 5, 3
https://store.arduino.cc/product/T020010?language=it
MODULI DI INGRESSO
Il modulo Joystick è simile ai joystick analogici dei videogiochi. E' formato da due potenziometri montati con un angolo di 90 gradi. I potenziometri sono connessi a una piccola leva attraverso delle molle.
Si collega al TinkerKit Sensor Shield, attraverso due connettori, sugli ingressi analogici ad es. A0 e A1,
Il modulo Pushbutton è il sensore più semplice che ci sia. Percepisce la pressione effettuata sul suo cappuccio circolare.
Questo modulo restituisce 5v quando il bottone è premuto e 0v quando non lo è. Se connesso ad un input analogico di TinkerKit Shield, a bottone premuto il valore dovrebbe essere 1023, rilasciandolo verrà restituito 0.
Se connesso ad un input digitale di TinkerKit Shield, a bottone premuto il valore dovrebbe essere 1 logico, rilasciandolo verrà restituito 0 logico.
GRANDEZZE ANALOGICHE E DIGITALI
ES. Monitorare lo stato di un joystick e di un button.
Collegare il Joystick ad A0 e A1 e il button ad A2; creare tre variabili di cui due per il joystick. Lo script legge continuamente i valori degli ingressi e aggiorna le variabili: si osserva che le variabili del joystick sono effettivamente analogiche perchè cambiano da 0 a 1023 ( in realta sono il risultato di una digitalizzazione da parte di Arduino!), mentre button si rivela come una variabile digitale binaria perchè restituisce soltanto due valori che dovrebbero essere 0 e 1023 o valori molto vicini
ES. Utilizzare un button per visualizzare a rotazione singoli sprite diversi... (utilizzare una variabile di stato)
ES. Utilizzare il joystick per spostare uno sprite sul piano di lavoro (-240<x<+240; -170<y<+170). Quando il sensore è rilasciato (valori restituiti:500, 500) lo sprite deve trovarsi al centro, quando è completamente azionato deve raggiungere le rispettive posizioni estreme senza toccare il bordo del piano di lavoro...
PROVA A COMPRENDERE DI PIU'...
Arduino è una scheda che monta un microcontrollore (integrato che include CPU, memoria, periferiche per I/O dei segnali).
Gestisce ingressi analogico/digitali ed uscite digitali ed necessita di un sw, detto firmware, che risiede nella sua memoria flash.
Il firmware, in genere, continuamente acquisisce gli ingressi, li elabora e aggiorna le uscite, scambiando dati con eventuali sistemi esterni.
Un ingresso digitale di arduino è un pin (da 0 a 13) al quale si possono applicare solo due valori prossimi a 0/5V.
In corrispondenza arduino interpreta:
valori prossimi a 0V come stato basso, LOW, zero logico (non è un numero ma una informazione)
valori prossimi a 5V come stato alto, HIGH, o uno logico (non è un numero ma una informazione)
valori intermedi non è certo come saranno interpretati
Un ingresso analogico è un un pin (da A0 a A5) al quale si possono applicare tutti i possibili valori tra 0 e 5V . In corrispondenza arduino discretizza in 1024 intervalli, cioè fornisce un numero tra 0 e 1023 secondo una relazione di diretta proporzionalità.
Una uscita digitale di arduino è un pin (da 0 a 13) che può generare solo due valori: 0/5V (max 40mA/pin per un totale massimo di 200mA, vedi datasheet ATmega328)
Si deduce che i pin da 0 a 13 possono funzionare sia come ingressi che come uscite digitali, oltre che svolgere altre funzioni!
COME FUNZIONA MBLOCK+ARDUINO. Programma tipico.
MBLOCK esegue il sw dell'utente
1) chiede ad arduino il valore degli ingressi e attende
2) elabora i valori ricevuti da arduino
3) aggiorna le sue variabili
4) chiede ad arduino di aggiornare le uscite
ritorna al punto 1) oppure termina l'esecuzione
->
<-
->
ARDUINO esegue il firmware standard di mblock
attende i comandi di mblock
(led rx on)
legge gli ingressi
(led tx on) trasmette i valori letti a mblock
attende i comandi di mblock
''
''
(led rx on)
aggiorna le uscite
attende i comandi di mblock
http://it.aliexpress.com/item/Base-Plate-for-Arduino-Uno-R3-Case-Enclosure-No-Cable-Vehicle-Accessories/32576559340.html?detailNewVersion=2
http://it.aliexpress.com/item/New-3-3V-to-5V-Gamepad-Joystick-Shield-Module-Game-Rocker-Button-Controller-Expansion-Board-For/32489870590.html