Come programmare una scheda ESP8266 NodeMCU con l’IDE di Arduino

Per prima cosa bisogna configurare l’IDE di Arduino.
Andiamo in

File > Impostazioni

e nel campo

“URL aggiuntive per il Gestore schede”

aggiungiamo:

http://arduino.esp8266.com/stable/package_esp8266com_index.json.

Se sono già presenti altri URL usiamo la virgola come separatore.

Poi andiamo in

Strumenti > Scheda > Gestore schede

e installiamo il modulo esp8266 di ESP8266 Community (se ce ne sono molte il campo di ricerca permette di filtrare i risultati).

Ora possiamo tornare in

Strumenti > Scheda

e poter scegliere “NodeMCU 1.0 (ESP-12E Module)“.

Colleghiamo la scheda al computer e impostiamo la corretta porta seriale da

Strumenti > Porta (l’elenco dipenderà dal vostro computer).

Se a questo punto non vedi nessuna porta seriale e stai usando Windows 10 potresti avere bisogno di installare il driver del convertitore dei segnali TTL/USB che è installato sulla scheda.

Ora siamo pronti per caricare il primo programma!

Nel physical computing la classica stampa della stringa “Hello World” è sostituita dal lampeggio del LED che di solito si trova a bordo della scheda.

Andiamo dunque in “File > Esempi > ESP8266 > Blink”. Il programma caricato sarà simile a questo:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, LOW);   // Turn the LED on (Note that LOW is the voltage level
  // but actually the LED is on; this is because
  // it is active low on the ESP-01)
  delay(1000);                      // Wait for a second
  digitalWrite(LED_BUILTIN, HIGH);  // Turn the LED off by making the voltage HIGH
  delay(2000);                      // Wait for two seconds (to demonstrate the active low LED)
}

Successivamente possiamo eseguire il comando “Carica”. Ci sarà la fase di compilazione e poi quella vera e propria di caricamento, segnalata da brevi lampeggi del led vicino all’antenna della scheda.

Terminato il caricamento inizierà l’esecuzione del programma con un lampeggio più lento del LED.
Possiamo anche provare a variare i valori indicati nelle due istruzioni delay() per modificare il tipo di lampeggio.

Ora siamo pronti per passare a programmi più complessi! 🙂

Interrupt e Sleep Mode per scheda Digispark (Attiny85)

Schema dei collegamenti tra scheda Digispark e pulsante

Lo Sleep Mode, come dice il nome stesso, è una modalità di funzionamento dei microcontrollori a bassissimo consumo di corrente.
È una modalità che viene generalmente usata nei sistemi alimentati a batteria in modo da preservarne la carica per il tempo più lungo possibile.

Il risveglio del microcontrollore può avvenire tramite un reset oppure tramite un interrupt, interno, ad esempio tramite il Watchdog oppure esterno tramite il cambio di stato di un pin.

Vedremo alcuni esempi di uso dello Sleep Mode e risveglio proprio tramite cambio di stato di un pin.

Continua a leggere Interrupt e Sleep Mode per scheda Digispark (Attiny85)

Gestione efficiente delle porte GPIO del Raspberry Pi con interrupt e chiamate asincrone

raspberry-pi

Nonostante la libreria RPi.GPIO disponga già da diversi anni di funzioni per gestire le porte GPIO in maniera asincrona spesso vedo ancora tutorial che suggeriscono, ad esempio, di rilevare la pressione di un tasto utilizzando il semplice polling.

Continua a leggere Gestione efficiente delle porte GPIO del Raspberry Pi con interrupt e chiamate asincrone