domenica 15 gennaio 2017

Arduino: prime impressioni

Ebbene si, mi sono fatto un Arduino.
Perché?, mi son chiesto. Perché volevo capire con mano come funzionava.
Ed eccolo qua, il mio bell' Arduino nuovo con il kit di Sunfounder!

E quindi, all'opera!
A parte il fatto che non so nulla o quasi di elettronica, ho usato i circuiti proposti negli esempi per capire come si potessero scrivere i programmi, e mi sono concentrato sulla scrittura dei programmi.
Ed ho installato Arduino IDE, come suggerito.
Fatto questo, tutto risulta molto semplice, lo scheletro di ogni programma risulta essere fatto di 2 funzioni

  • void setup() che serve per inizializzare il programma
  • void loop() che contiene il loop principale del programma
Ma.... e qui cominciano i ma...
supponiamo di voler controllare contemporaneamente 2 led, e di volerli far accendere e spengere con tempi diversi, come si può fare?
Facile, mi sono detto, si scrivono 2 thread ed ognuno controllerà un led in maniera indipendente!
Peccato che il processore di Arduino sia sfacciatamente monothread, e che quindi non sia assolutamente possibile scrivere programmi multithread in Arduino....

E allora che si fa?
La risposta si chiama protothreading: in pratica si simula il multithread attraverso un timer e usando funzioni che impegnino per poco tempo il processore.
Fortunatamente la documentazione di Arduino spiega molto bene come fare, vedi qui

Armato di questa conoscenza studierò un qualcosa di complesso da mettere su, e vedrò quali difficoltà si possono incontrare strada facendo