La scheda Flip&Click è una combinazione vincente tra Arduino e Python: la flessibilità dell’hardware open source, con la semplicità di programmazione di Python. Flip&Click è essenzialmente Arduino Due con la possibilità di implementare una serie di moduli Click MikroBus che la MikroElektronika mette a disposizione. In questo articolo vedremo come poter implementare degli accelerometri Accel Click e Accel 2 Click per poter dar vita a tanti progetti fantasiosi. Gli accelerometri misurano l'accelerazione nei tre assi x, y e z con diversi approcci, il più comune sfrutta la rilevazione della capacità. Quando vi sono due strutture vicine adiacenti vi è una variazione di capacità elettrica opportunamente misurabile. Se un accelerometro viene spostato in qualsiasi direzione, la capacità cambia e la relativa conversione della variazione di capacità in tensione elettrica permette di poter implementare questa misura nei sistemi elettronici in varie soluzioni di interfacce e sensing.
Introduzione
L'accelerometro capacitivo utilizza micro strutture collegate ad un punto fisso. Quando l'accelerazione è applicata a un dispositivo, le micro-strutture si muovono modificando la capacità elettrica tra di esse. Per mezzo di una circuiteria elettronica, la variazione di capacità è convertita in una tensione. Ci sono molti tipi di accelerometri, ma la differenza principale è la quantità di "g" che può essere misurata con precisione. Accelerometri "Low g" possono misurare circa 20 g o meno e sono più adatti per un tempo di risposta basso con bassi consumi di corrente, di solito trovano impiego negli smartphone. Accelerometri "High g", invece, sono progettati per rilevare molti più "g", e sono molto più adatti per soluzioni automotive.
Soluzioni
Accel Click è una scheda nel fattore di forma mikroBUS, dotata del modulo accelerometro ADXL345 a 3 assi ultra-low power e ad alta risoluzione di misura (13-bit). Il modulo supporta diverse funzioni di rilevamento, quali quello tap singolo / doppio, di caduta libera ecc. La scheda è dotata di un sistema di gestione della memoria con un buffer FIFO 32 livelli per memorizzare i dati (Figura 1 e 2).
Implementando il modulo Accel Click con due 8x8 B Click e un Buzz Click possiamo realizzare un simpatico Moving Ball che permette di sincronizzare i movimenti dell’accelerometro con l’illuminazione LED.
void loop() { accel.getEvent(&event); x = map(event.acceleration.x, -8, 8, -4, 4); y = map(event.acceleration.y, -8, 8, -4, 4); Serial.print("X: "); Serial.print(x); Serial.print(" "); Serial.print("Y: "); Serial.print(y); Serial.print(" "); Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print(" ");Serial.println("m/s^2 "); delay(50); updateposition(x,y); }
Ricordando inoltre di definire gli include e variabili:
#include <Adafruit_ADXL345_U.h> #include <Adafruit_Sensor.h> Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
Il modulo BUZZ Click, invece, è un altoparlante piezoelettrico in grado di emettere segnali audio. La frequenza di risonanza del cicalino è 3.8 kHz (figura 3 e 4). Il modulo 8x8 Click visto anche nel progetto Etilometro è una matrice a Led display che implementa il driver MAX7219 8-digit.
Un altro accelerometro MikroBUS della MikroElektronika è Accel 2 Click che integra un sensore MEMS di movimento LIS3DSH low power a tre assi e uscita digitale, con un buffer FIFO e due macchine a stati programmabili integrati nel sensore. Accel 2 click è stato progettato solo con un’alimentazione di 3,3V e trova spazio nelle applicazioni di gesture recognition (figura 5 e 6).
I sensori MEMS (Sensori Micro-Elettro-Meccanici) sono utilizzati per i sistemi airbag, nelle serrature delle porte automatiche, nei sistemi di sicurezza e rilevamento terremoto, nelle stampanti a getto d'inchiostro e negli elettrodomestici da cucina. Un bellissimo gioco Magic8Ball implementa il sensore Accel 2 e un pulsante Button come una specie di hi-tech per l’aiuto decisionale: una “scossa” deciderà il tuo destino, così che le decisioni non saranno lasciate ad un semplice lancio di una monetina ma ad una circuiteria elettronica. Divertente, ma soprattutto come base per poter utilizzare il codice Accel 2 Click in altre occasioni progettuali. Di seguito la funzione setup() del progetto Magic 8 Ball.
void setup() { Serial.begin( 57600 ); /**< For debugging purposes */ SPI.begin(); /**< Used with OLED, Rotary, Thermo */ Wire.begin(); /**< Used with RTC */ for( int i = 0; i < 4; i++ ) { pinMode( leds[i], OUTPUT ); digitalWrite( leds[i], LOW ); } pinMode( BTN_PWM, OUTPUT ); pinMode( BTN_INT, INPUT_PULLUP ); analogWrite( BTN_PWM, 150 ); attachInterrupt( digitalPinToInterrupt( BTN_INT ), btn_isr, FALLING ); /* Initialise the sensor */ if( !accel.begin() ) { while( 1 ); } Serial.println( "Accelerometer is Running" ); accel.setRange( ADXL345_RANGE_4_G ); state = WAITING; display_entered = false; }
Il Button Click permette di aggiungere un singolo pulsante con una retroilluminazione a LED di colore rosso. Quando viene premuto, invia un segnale di interruzione al microcontrollore.
void btn_isr() { static unsigned long last_interrupt_time; unsigned long interrupt_time = millis(); // If interrupts come faster than 200ms, assume it's a bounce and ignore if ( interrupt_time - last_interrupt_time > 80 ) { if( state == READ_ACCEL ) return; state++; //display_entered = false; if( state > ANSWERING ) state = WAITING; } display_entered = false; last_interrupt_time = interrupt_time; }
Conclusioni
La Flip&Click combina Arduino e Python in una stessa scheda, in questo esempio abbiamo visto come poter implementare con il codice Arduino dei semplici accelerometri disponibili come moduli Click che la MikroElektronika mette a disposizione. Al seguente link trovate centinaia di moduli ognuno per una particolare funzione: GPS, relè, moduli RGB etc. Flip&Click è una scheda espandibile fino a 4 moduli Click, il socket MikroBUS è composto da collettori femmina 1x8 con alimentazione da 5 e 3.3 V. E' possibile combinare fino a 4 schede Click per ottenere infinite soluzioni di funzionamento con otre 160 schede a disposizione. Grazie al MikroBus è possibile eseguire correttamente i collegamenti, evitando le "collisioni" relativamente ai segnali che possono contribuire a fenomeni di cortocircuito. L'elemento principale dei moduli Click è rappresentato, oltre che dalla semplicità di programmazione, dalla facilità estrema di connessione con la board master. Nulla vieta di implementare questi progetti con il linguaggio di programmazione Python (per ulteriori informazioni consultare il corso Python riportato nella sezione "Link di approfondimento"), avendo a disposizione la suite Zerynth Studio scaricabile dal seguente link. La suite è composta da un IDE per la programmazione embedded in Python, una Virtual Machine e una App per la gestione Mobile.
Link di approfondimento
- Come ricevere la scheda Flip&Click gratis!
- Flip&Click: la convivenza tra Arduino e Python
- Getting Started Flip & Click
- Progetto Master Chef Demo
- Realizziamo un etilometro con la scheda Flip&Click
- Rilevatore fughe di gas Fai-da-Te: progetto Fartalyzer
- Una stazione meteo con la Flip&Click per l’analisi e la previsione
- Corso di programmazione Python su Flip&Click: Introduzione
- Cuciniamo gli arrosticini con la Flip&Click
- Zerynth Studio
Allegati
Le potenzialità della scheda Flip&Click risiedono proprio nell’unione di Arduino e Python, oltre a numerosi moduli Click per gestire i progetti.
Buon giorno Maurizio,
grazie per le tue ottime escursioni su Rm ed Rx, ma a proposito di dati da accelerometro e giroscopio, volevo chiedere se è possibile arrivare ad un data rate di almeno 200 campioni al secondo per ricostruire velocità e direzione dei movimenti di un arto superiore in “aria libera”. Ho provato diverse combinazioni con WiFi con protocollo UDP e TCP ma presentano strani rallentamenti del flusso dati in ricezione. Con approccio Bluetooth le cose vanno meglio ma avrei bisogno di un pò di distanza in più. Esiste qualche protocollo tipo M2M GO che possa garantire un flusso dati continuo in real time ?
complimenti per la rivista
riccardo
Dai un’occhiata a questo http://it.emcelettronica.com/lora-una-wide-area-network-per-iot Ma con la Wi-Fi dovresti essere in grado di gestire, poi dipende dall’hardware disponibile.