Multisensore Pimoroni – Alcuni esempi di utilizzo

pimoroni multisensore

Venerdì scorso abbiamo presentato la scheda multisensore Pimoroni. Oggi vediamo alcuni esempi di programmazione Micropython per schede Pico.

Come gestire una scheda che contiene più sensori? Come accederfe a tutte le funzioni attraverso una semplice chiamata? Oggi impareremo la tecnica più semplice, che consiste nell’inviare i  segnali di pilotaggio ad uno specifico indirizzo I2C (per maggiori informazioni sul protocollo I2C potete leggere questo articolo).

Iniziamo subito con la gestione del sensore ambientale BME280.

Dopo aver importato le librerie necessarie ed il modulo Micropython nell’IDE, importiamo il modulo time (ci serivrà per chiamare il metodo sleep() ). Definiamo quindi i PIN sda ed scl, necessari per la comunicazione del sensore con la scheda, quindi definiamo l’oggetto bme con i parametri i2c appena determinati.

Il ciclo infinito while() esegue una lettura del sensore e stampa il valore letto, quindi si ferma per 1 secondo. Semplice no?

Nota: In questo esempio utilizziamo il sistema pacchettizzato da Pimoroni, ma nulla ci vieta di accedere ad un sensore BME280 attraverso la classica libreria Bosch…

La gestione del sensore di luminosità ltr559 è altrettanto semplice:

Le prime righe sono quasi identiche all’esempio precedente: cambia solo (ovviamente) l’indirizzo I2C del sensore, mentre il canale è uguale.

Per prima cosa viene letto il part_id del sensore, per controllare che l’inizializzazione della libreria e la creazione dell’oggetto siano andate a buon fine. Viene poi stampata una stringa con le informazioni ricevute.

Il ciclo infinito esegue la lettura dei segnali sul bus all’indirizzo del sensore, e se viene letto qualcosa vengono stampate le informazioni ricevute, quindi il ciclo si ferma per un decimo di secondo e riparte.

Nota: la wiki di Pimoroni riporta un secondo esempio, che anziché utilizzare il loop infinito (non la migliore tecnica di lavoro) utilizza un sistema di interrupt. Vi invito aad approfondirlo se siete curiosi di come funzionino gli interrupt su Pico con Micropython.

Infine, vediamo come si gestisce il sensore LSM6DS3:

Importiamo la libreria consigliata da Pimoroni, LSM6DD3, ed il kernel Micropython.

Creiamo quindi l’istanza i2C e creiamo l’oggetto relativo al sensore.

Nel ciclo infinito, inseriamo i valori provenienti dal metido get_readings() in altrettante variabili temporanee. Potremo così stamparle in modo formattato come assi dell’accelerometro e valori di posizione del giroscopio. Chiudiamo come al solito con una sleep() di un secondo, quindi riprendiamo.

Buon divertimento!

 

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

 

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.