Archivi categoria: elettronica

Utilizzare M5StickC con l’IDE UIFlow

UIFlow è una piattaforma di programmazione appositamente progettata per i dispositivi M5Stack. L’IDE di programmazione grafico a blocchi è basato su blockly, linguaggio grafico di programmazione ben conosciuto in campo didattico. UIFlow consente inoltre di programmare qualsiasi oggetto M5Stack in MicroPython, implementazione di Python 3 per microcontrollori e sistemi embedded. MicroPython, come molti di voi sapranno, è un linguaggio di programmazione snello ed efficiente ideale per attività di Coding a scuola e da sempre impiegato in campo scientifico.

UIFlow fornisce le funzionalità necessarie per la realizzazione, in maniera estremamente semplice, progetti con forte interazione con il mondo reale, ideale quindi per chi si avvicina al mondo della prototipazione elettronica, dell’automazione e della programmazione.

L’IDE UIFlow può essere utilizzato on-line oppure localmente scaricandolo dal sito principale. Per prelevarlo collegatevi al sito https://m5stack.com/ e selezionate dal menù principale: software > download:

Nella pagina posizionate il mouse sul pulsante “Download” di UIFlow-Desktop-IDE, apparirà un menù a discesa, selezionate il sistema operativo su cui dovrà essere istallato UIFlow

Una volta prelevato il programma scompattate il file ed eseguite facendo doppio click

All’avvio dell’IDE viene controllato se sono presenti i driver necessari per poter gestire i dispositivi M5StickC.
M5StickC non necessita di installazione driver per i sistemi operativi Windows 10, Mac (High Sierra+), Linux. Per altri sistemi operativi, oppure se il dispositivo non dovesse essere rilevato dai sopracitati SO dovete installare il driver CP210X per il vostro sistema operativo, il driver può essere prelevato sempre dall’area download.

Al termine dell’installazione di UIFlow collegate M5StickC con il cavo USB C al computer.

M5StickC può essere programmato via USB o in modalità WiFi, in questo tutorial procederemo ad una prima programmazione in modalità USB.

Una pressione di 2 secondi sul power button, sulla sinistra di M5SickC provoca l’accensione del dispositivo, non appena compare il logo di UIFlow premete il pulsante grande M5 per accedere al menù di setting. Per spostarsi tra i menù disponibili utilizzare il pulsante sulla destra in alto di M5StickC:

Dal menù Setup potrete scegliere la modalità di programmazione e potrete impostare il WiFi. Per questo tutorial selezionate la modalità USB.

Selezionare la modalità di programmazione:

Selezionare la modalità USB:

Nell’IDE di programmazione dovete selezionare la seriale facendo click sulla parte in basso a sinistra della finestra dove compare la segnalazione COM:

Il click permetterà di aprire la finestra di selezione della COM:

Dal menù a discesa COM selezionare la porta seriale a cui avete collegato l dispositivo:

Per Windows 10 la seriale è identificata da COM seguito da un numero, mentre per sistemi Mac e Linux dalla sigla tty seguito da una serie di numeri e lettere. La modalità di selezione della seriale è la medesima per tutti i sistemi operativi.

Realizziamo il primo programma: Accensione del LED interno

Selezionare “Hardwares” dalla blocks list, selezionare LED e successivamente l’istruzione “LED ON” che dovrete trascinare nell’area di programmazione collegandola al blocco Setup.

Per eseguire il programma sul dispositivo fate click sul pulsante play che trovate in alto a destra della finestra, il LED rosso della scheda si accende.

Realizziamo il secondo programma: Blink del LED interno

Dalla sezione Event selezionare Loop ed collegarlo al Setup, nel Loop inserire la sequenza delle istruzioni: LED ON, Wait 1 S, LED OFF, Wait 1 S, così come indicato nell’immagine che segue. Per eseguire sul dispositivo un click sul pulsante Play:

Interfaccia di programmazione

01. Titolo del progetto
Inserite il nome del vostro progetto in questa area.

02. Blockly/Python
Consente di selezionare la modalità di programmazione Blockly oppure Python

03. Tab menù
Per accedere al forum, alla documentazione, agli esempi, ripetere l’ultima azione eseguita, fare l’upload dei file, eseguire il programma ed accedere alle impostazioni del dispositivo.

04. Anteprima UI
Trascinare testo e immagini sullo schermo del dispositivo virtuale per creare l’interfaccia grafica. Non appena inserite elementi grafici, appariranno nella lista delle istruzioni centrali le funzioni specifiche per manipolare gli oggetti grafici

05. Units
Aggiungere unità hardware che fanno parte del progetto tra quelle standard disponibili su M5Steck e stabilire le porte di connessione.

06. Hide UI
Possibilità di nascondere il dispositivo virtuale per aumentare lo spazio disponibile per la programmazione

07. Menù istruzioni Code Block
Contiene tutti i blocchi necessari per la programmazione. La sezione Hardware contiene le istruzioni che agiscono direttamente sull’elettronica dell’M5StickC. Troverete la sezione Math che include operazioni matematiche e Logic che raccoglie operatori logici e strutture di controllo.

08. Area di Codice
L’area in cui saranno trascinati i blocchi per realizzare il programma

Lista delle istruzioni

01. Event
Funzione Loop e gli eventi legati alla pressione dei pulsanti

02. Hardware
Blocchi dedicati all’elettronica del dispositivo: LED, IMU e gestione alimentazione

03. Units
Ogni volta che si aggiunge un’unità specifica in questa sezione appaiono i blocchi specifici alla sua gestione

04. Math
Blocchi per eseguire calcoli matematici

05. Logic
Blocchi per l’esecuzione di operazioni logiche e controllo di flusso

06. Advanced
Sezione dedicata per i programmatori esperti. Blocchi per il networking, per la gestione dei pin analogici e digitali e molto altro.

Come costruire un programma con Blockly

Setup

Il blocco Setup è essenziale per eseguire qualsiasi programma è il primo blocco che viene eseguito non appena il programma viene caricato sul dispositivo. Il Setup viene eseguito una sola volta.

Loop

Questo blocco esegui in modo continuo per sempre tutte le istruzioni in esso contenute, ciò implica che l’esecuzione del loop può essere interrotta solamente se viene tolta l’alimentazione al dispositivo.

Wait

Il blocco Wait pone in attesa il programma per un tempo specificato dal parametro numerico che può essere impostato dall’utente.

Sequenza di programmazione

Connessione blocchi

Come sicuramente avrete intuito blockly ricorda molto la filosofia di programmazione di altri ambienti di programmazione come ad esempio Scratch o il MakeCode editor di BBC micro:bit. Anche per UIFlow che utilizza blockly, i blocchi si uniscono “magneticamente” insieme, incastrandosi e cambiando colore, nel caso non si abbia un cambiamento colore vuol dire che blocchi non sono uniti.

Alcuni trucchi per chi comincia con UIFlow

  • Per duplicare un blocco tasto destro del mouse sul blocco e fare click sulla voce del menù contestuale che appare: duplicate.
  • Per cancellare un blocco trascinarlo sulla lista della collezioni delle istruzioni oppure sull’icona del cestino in basso a destra o ancora click tasto destro del mouse e “Delete block”

Nella prossima lezione vedremo come realizzare i primi programmi.

Buon Coding a tutti 🙂

M5 StickC

E’ da qualche mese che sto utilizzando M5 StickC per la progettazione di future esercitazioni di laboratorio, mi piace considerarlo il fratellino 🙂 di M5Stack Fire segnalato su queste pagine qualche mese fa.
M5StickC ESP32 Development Board è una scheda di sviluppo estremamente versatile programmabile in diverse modalità e vi permette di realizzare facilmente e rapidamente progetti IoT. In questi mesi ho realizzato una serie di progetti: datalogger, telecomando WiFi e IR,  utilizzo con sensore PIR, controllo velocità motori e molto altro. Grazie all’interfaccia GROVE e GPIO è possibile connettere dispositivi esterni, sul sito ufficiale ne trovate moltissimi. Attualmente, connesso ad un piccolo altoparlante, sto sviluppando un dispositivo per persone ipovedenti.

Il sito ufficiale è: https://m5stack.com/

Sul sito di riferimento troverete moltissimi dispositivi e moduli di espansione, tra questi il già citato M5Stack FIRE ed altri prodotti molto interessanti di recente presentazione: ATOM Matrix ESP32 e M5StickV K210 AI Camera di cui vi parlerò in prossimi post e che sto utilizzando per altre tipologie di sperimentazioni.

Il piccolo “mattoncino” ha dimensioni estremamente contenute 5×2,5cm

all’interno trovano posto:

  • ESP32
  • display da 0,96 pollici (risoluzione 160×80)
  • microfono
  • buzzer
  • trasmettitore IR
  • WiFi
  • Bluetooth
  • accelerometro
  • giroscopio (6 gradi di libertà)
  • LED di segnalazione integrato
  • due pulsanti (A e B) programmabili
  • batteria da 80 mAh
  • memoria flash da 4MB
  • modalità di programmazione via USB e WiFi
  • Linguaggi di programmazione: UIFlow (blockly), C (pronto per essere programmato con IDE Arduino), MicroPython

I due video che allego di seguito forniscono una rapida presentazione sulla programmazione usando UIFlow e Arduino:

M5 Stick C può essere acquistato anche con un pratico cinturino da polso, ciò vi permetterà ad esempio di realizzare il vostro smartwatch IoT.

Per l’acquisto di M5 Stick C potete utilizzare il sito di riferimento, oppure direttamente su AliExpress. Alcuni prodotti di M5Stack potete trovarli anche su Amazon.

Per comprendere possibili applicazioni vi segnalo le sezioni del sito ufficiale:

Seguiranno a questo post una serie di tutorial sulla configurazione e aggiornamento del firmware, programmazione ed esempi di applicazioni.

Buon Making a tutti 🙂

Arduino Plate v02

In queste settimane ho utilizzato in laboratorio la prima versione dell’Arduino Plate ed osservando la modalità di utilizzato da parte dei ragazzi ho effettuato alcune modifiche producendo una seconda versione che condivido con voi.

In questa nuova versione ho aumentato i fori disponibili in modo che si possano fissare altre schede elettroniche, inoltre ho aggiunto un supporto che permette di porre in verticale in due modalità diverse l’intera plate.

La posizione verticale è stata pensata per:

  • poter illustrare e mostrare meglio i collegamenti sulla scheda,
  • per ridurre gli spazi sul banco di lavoro,
  • per avere un punto di visione del circuito più comodo sul banco della classe o sulla scrivania di casa.

Inoltre il supporto è anch’esso forato e può ospitare altri elementi come ad esempio delle batterie di alimentazione che favoriscono con il loro peso la stabilità dell’intera struttura.

Nei file che condivido troverete due versioni per il supporto della plate, pensate per il taglio di compensato con spessore da 3mm e 4mm. Come sempre potete prelevare i file per il taglio laser direttamente da Thingiverse, nel caso modificate e migliorate come ritenete.

Buona sperimentazione a tutti.

5 minuti da maker: supporto per potenziometro e manopola

Durante le sperimentazioni con Arduino per comprendere la gestione di sensori analogici in tensione si fa uso di potenziometri o trimmer e nel medesimo modo si può procede quando si conducono esperimenti con i PLC.

Per rendere più agevole e veloce la realizzazione delle esperienze di laboratorio, ho realizzato un supporto per potenziometro con manopola, il tutto da fissare su una basetta di legno.

I potenziometri utilizzati hanno un albero con diametro da 6 mm.
La manopola è fissata all’albero del potenziometro mediante una vite M3 da 8 mm di lunghezza.

Condivido questo semplice progetto su thingiverse.
In fase di realizzazione una versione da pannello da alloggiare su guida DIN, condividerò nel breve.

Buon Making a tutti 🙂

M5Stack FIRE

Da qualche giorno utilizzo l’M5stack Fire development kit, si tratta di un un kit di prototipazione basato su un chip ESP32 che permette di realizzare in tempi rapidissimi, applicazioni IoT con la possibilità di utilizzare una serie di schede di espansione di diverso tipo, oppure potete costruirne di vostre. Le schede di espansione si aggiungono impilandole, al di sotto del cuore del kit (la parte in rosso nell’immagine) una sull’altra e sono tra esse vincolate con dei magneti.


Perché ho acquistato M5Stack? Ho la necessità di sviluppare un prototipo di un robot per un progetto didattico in tempi brevi, il progetto necessita di display touch con connessione WiFi, Bluetooth. Ho l’esigenza di costruire rapidamente un’interfaccia grafica su un display da cui gestire il comportamento del robot, inoltre ho bisogno di avere anche degli output sonori e luminosi, quindi leggendo le specifiche dell’M5stack e guardando alcuni video dimostrativi, ho pensato di sperimentarne l’uso. Ovviamente non nego la curiosità nell’utilizzare l’oggetto 🙂

M5Stack Fire è costituito da tre unità separabili. Nell’unità superiore è alloggia tutta l’elettronica principale, l’ESP32, l’antenna 2.4G, l’elettronica per la gestione dell’alimentazione, schermo LCD touch. La parte centrale è chiamata base M5GO, all’interno trova posto una batteria al litio, una presa M-BUS, due strisce LED RGB e altre due porte GROVE. La parte inferiore è adibita alla ricarica, può essere collegata alla base M5GO tramite pin POGO. All’interno dell’M5Stack si trova anche una IMU in grado di fornire la posizione nello spazio del dispositivo.
I moduli disponibili sono moltissimi ed un elenco completo può essere visto seguendo il link, si va dai moduli GSM, moduli PLC, LORA, telecamere e sensoristica di ogni genere, gestione motori, interfacce per Lego Mindstorms e molto altro.

Caratteristiche

  • 5V DC power supply
  • USB Type-C
  • ESP32-based
  • 16 MB Flash
  • 4 MB PSRAM
  • MPU9250
  • Speaker, 3 Pulsanti, LCD(320*240), 1 Reset
  • 2.4G Antenna: Proant 440
  • TF card slot (Dimensione massima 16G)
  • Battery Socket & 1Batteria Lipo da 50 mAh 
  • Connessioni Pins & Holes per l’espansione
  • Grove Port
  • M-Bus Socket & Pins
  • Piattaforme di sviluppo UIFlow, MicroPython, Arduino

Caratteristice ESP32

  • 240 MHz dual core Tensilica LX6 microcontroller con 600 DMIPS
  • Memoria integrata: 520 KB SRAM
  • Integrata sulla scheda: 802.11b/g/n HT40 Wi-Fi transceiver, baseband, stack e LWIP
  • Integrata sulla scheda: dual mode Bluetooth (classic and BLE)
  • Hall sensor
  • Interfaccia capacitiva touch 10x 
  • 32 kHz crystal oscillator
  • PWM/timer input/output available per ogni pin GPIO 
  • SDIO master/salve 50MHz
  • Supporto SD-card

Per maggiori informazioni

  • Sito di riferimento: https://m5stack.com
    da cui accedere alla documentazione, esempi di utilizzo ed accesso all’interfaccia di programmazione a blocchi.
  • Caratteristiche tecniche dettagliate seguendo il link.
  • Canale YouTube da cui potete vedere diverse sperimentazioni

Ho acquistato M5Stack FIRE su Amazon, ma trovate il dispositivo e schede di espansione anche su diversi store cinesi (sul sito di riferimento trovate tutti i link).

Nel breve pubblicherò alcuni risultati sulle sperimentazioni condotte con M5Stack FIRE.

Buon making a tutti 🙂