Arduino & flowcode

Lo scopo di questo argomento, è di portare gli studenti e i “Maker”, a considerare la possibilità di trasformare le loro creazioni amatoriali, in veri strumenti professionali da commercializzare.

Per anni ho cercato di convincere i docenti di elettronica, che mi frequentavano per motivi di lavoro, ad adottare un sistema didattico in grado di coinvolgere gli studenti, con l’impiego della lavagna elettronica LIM, consigliando l’utilizzo di un sistema interattivo che permettesse a tutti i ragazzi, di essere coinvolti  nello sviluppo del progetto, ma l’ostacolo insormontabile fu, come lo è tuttora, la non conoscenza della lingua inglese.

Grazie alla facilità d’uso della scheda Arduino UNO, molti appassionati del fai da te, incuriositi dalla elettronica e senza conoscenze specifiche, si sono avvicinati alla programmazione e all’utilizzo di sistemi dotati di microprocessori programmabili.

La maggioranza degli studenti che studiano Arduino, realizzano i loro progetti scaricando il software da internet, montando le schede di espansione, chiamate, “shield”, che acquistano già montate; i pochi cablaggi che ho visto, otre ad essere caotici, non resistono agli urti di una caduta.

Negli anni 90’, gli elettronici iniziarono ad utilizzare i microchip programmabili per realizzare i loro progetti. La difficoltà principale fu l’acquisto di un, costoso, sistema di sviluppo per programmare le memorie e i microchip.

La maggior parte dei progettisti, sviluppò la propria scheda hardware da utilizzare come base per realizzare l’applicazione richiesta dal cliente, dotata dei principali componenti per interfacciare i microchip con il mondo esterno.

Arduino UNO, ha permesso a chiunque, in possesso di un personal computer, con una porta USB e una connessione internet, di programmare una scheda hardware e interfacciarla con il mondo esterno, grazie all’utilizzo di schede di espansione, ottimizzate per soddisfare i più diversi obbiettivi.

La diffusione di progetti pubblicati su internet  e youtube , ha permesso la proliferazione e la diffusione mondiale,  di schede compatibili Arduino e di sistemi di programmazione passando dai primi programmi, IDE-sketch e Scratch (https://scratch.mit.edu/ ) a Visuino ( https://www.visuino.com/ ), e Xod ( https://xod.io/docs/tutorial/02-deploy/ ).

A causa dei miei impegni di lavoro, poiché avevo poco  tempo da poter dedicare allo studio e applicazione di un sistema dotato di microchip programmabile in Assembler, difficile da ricordare senza la pratica quotidiana, mi portò alla ricerca di un software di programmazione a “diagramma di flusso”, facilmente comprensibile e aggiornabile anche a distanza di mesi.

Sapevo dell’esistenza di questo tipo di linguaggi, perché un amico programmatore di software gestionali, lo aveva sperimentato con successo, spiegandomi che il risultato finale della compilazione in Assembler, sembrava fatto da un esperto con anni di esperienza.

Finalmente scoprii flowcode, il programmae il sistema di sviluppo che serviva al mio scopo.

https://www.matrixtsl.com/flowcode/download/

Con Flowcode, non solo è possibile programmare i chip di molti produttori, semplicemente tracciando il diagramma di flusso del programma, ma è anche possibile eseguire la simulazione passo - passo, di ogni singola istruzione, osservando l’andamento dei segnali sul pin del microprocessore, verificando il risultato della simulazione virtuale, degli ingressi e delle uscite della componentistica utilizzata nel progetto.

Nella versione professionale del pacchetto, è possibile verificare virtualmente, l’esecuzione meccanica degli attuatori collegati alle uscite delle porte elettroniche (meccatronica), oltre che analizzare con strumenti di misura, virtuali, l’andamento dei segnali.

 https://www.youtube.com/watch?v=iiqx8HBdoPg

La società produttrice di Flowcode, ha implementato una scheda in grado di supportare Arduino in modo da utilizzare con Flowcode, tutte le periferiche hardware disponibili nelle simulazioni virtuali; il trasferimento del programma in Arduino, avviene tramite la porta USB.

A questo collegamento ipertestuale si trovano alcune delle molteplici schede Arduino reperibili sul mercato, con la relativa documentazione tecnica ( circuito stampato in formato EAGLE, schema elettrico in pdf e dimensioni della scheda in DXF).

https://www.arduino.cc/en/Main/Products?from=Main.Hardware

Sicuramente il lettore, è a conoscenza della terminologia utilizzata con l’IDE di Arduino, e conosce il significato delle funzioni void setup () e void loop ().

void setup () : utilizzata con lo sketch per l’inizializzazione delle variabili, l’impostazione dello stato  e della funzione del  PIN, nonché per la chiamata delle librerie e impostazione della porta seriale.

 void loop (): esegue ciclicamente il programma al suo interno.      

le funzioni void setup() e void loop() in Flowcode

void

 

La scheda Arduino UNO, è costruita attorno al chip ATmega328 con una frequenza di lavoro (clock speed) di 16 MHz fornita da un oscillatore ceramico, collegati al pin 9 (PB6) e al pin 10 (PB7)

Ha una porta USB, che oltre a fornire l’alimentazione di 5 Volt, serve per la programmazione del chip.

Ha un connettore jack (VIN) per l’alimentazione supplementare, che deve essere compresa tra 7 e 12 Volt.

 Un header ICSP e un pulsante di RESET.

Caratteristiche della scheda Arduino UNO

ICSP header: ( In Circuit Serial Programmer) questi piedini servono per programmare il “boot loader” di Arduino, oppure, mediante l’utilizzo di un chip, tipo il MAX232, comunicare con le periferiche connesse ad Arduino, mediante la RS232.

Per default, Arduino utilizza la porta UART con i pin 2 (PD0) e il pin 3 (PD1), utilizzata per convertire i bit di dati da un formato parallelo, ad uno seriale asincrono o viceversa.

La comunicazione avviene tramite i pin identificati dal datasheet del micro AtMega16U2 presente sulle board Arduino UNO.

MISO: Master In Slave Out- la linea per inviare i dati al master.

MOSI: Master Out Slave In – la linea per inviare i dati alle periferiche.

SCK: Serial ClocK – gli impulsi di clock che sincronizzano la trasmissione dei dati dal Master allo Slave.

SCL: Serial Bus Clock line – segnale del bus I2C

SDA: Serial Bus data Input/Output – segnale del bus I2C.

atmega328 io

Arduino UNO R3, ha 14 pins I/O digitali, da 0 a 13 impostabili come ingressi o come uscite e 6 ingressi analo

gici; anche i pins analogici possono essere utilizzati come pins digitali;quindi Arduino UNO ha 20 pins digitali.

6 di questi PIN possono essere configurati come uscite PWM .

1 porta di comunicazione seriale SCK,SDA,SCL, oltre ai GROUND,,AREF e IOREF.

atmega

Riccardo Monti