Arduino

(aggiornamento del 2/4/2020)

Per la storia e la descrizione di Arduino vi rimando a quanto esaurientemente scritto su Wikipedia (qui).

In sintesi Arduino è un dispositivo elettronico che può comandare “qualcosa” (tipicamente motori, servocomandi, relè,  transistor o LED) quando riceve dei comandi dal mondo “esterno” (normalmente tramite interruttori, riceventi RC, sensori o potenziometri) o dal programma interno ad Arduino stesso.

Nel caso di un utilizzo in un plastico ferroviario potremmo quindi scrivere un programma che fa accendere e spegnere in maniera casuale o predefinita le luci dei vari appartamenti di un gruppo di case.

Altrettanto semplice è comandare un servocomando (che muove uno scambio, un portone, un cancello..) tramite un semplice interruttore manuale on-off con una velocità predefinita e con un’escursione angolare  desiderata.

Poco più complesso è utilizzare Arduino per gestire in maniera “analogica” il traffico ferroviario: attese, precedenze, va&vieni..

In rete si trovano moltissimi esempi di queste applicazioni: si parte dal programma per fare lampeggiare un led per arrivare alla gestione di Arduino come una vera e propria  una centrale digitale (qui).

Nel caso invece volessimo imbarcare Arduino potremmo avere poi un nave molto automatizzata (ad esempio per la sequenza programmata dei movimenti di una gru) o addirittura aumentare il numero di canali delle radio.

Tuttavia se in un plastico ferroviario Arduino è economico e flessibile (basta pensare al costo dei relè bistabili, alla semplificazione dei cablaggi e alla liberazione dalla rigidissima logica cablata) non sempre risulta conveniente imbarcarlo sulle nostre navi o dedicarlo a zone particolari del plastico: principalmente per problemi di spazio e di costo.

Tinkercad.

Un interessante strumento per la fase di programmazione e progettazione dei circuiti ci viene dato da Tinkercad (qui).

Tinkercad è un simulatore di circuiti elettrici online: è stato sviluppato da Autodesk e tra gli innumerevoli componenti elettronici propone anche Arduino.

Partendo dagli esempi o da lavori proposti da altri utenti e facile non solo scrivere il programma (code-codice) ma anche creare il circuito fisico vero e proprio, risparmiando tempo nel cablaggio-scablaggio nel caso di malfunzionamenti.

La scrittura del programma è semplice dal punto di vista concettuale: far accendere un led  o comandare un servocomando è davvero facilissimo. Ovviamente il livello di difficoltà cresce al crescere di cioò che chiediamo al circuito, ma normalmente i circuiti "modellistici" sono abbordabilissimi e gli esempi già fatti sono davvero innumerevoli. Un po' di attenzione va posta nella "sintassi" del programma: basta una maiuscola in minuscolo per creare un errore! Ma anche qui Tinkercad ci aiuta con una funzione di debugging.

Inoltre, e non è cosa da poco, permette di lavorare senza un Arduino fisico; ovunque voi siate è possibile simulare il funzionamento dei nostri circuiti.

Vediamo ora cosa ci offre Arduino come sua naturale altenativa..

Gli altri Arduino e i suoi cloni.

La famiglia Arduino è piuttosto numerosa. Al tipico Arduino, l' Uno per intenderci, si affiancano ad esempio il Mega, il Nano, il Micro, il Leonardo. Tutti sfruttano lo stesso ambiente di programmazione (l' IDE Arduino) e quelli di dimensioni più contenute sono i più adatti alle nostre applicazioni. Il costo è sempre sulla ventina di Euro. Poichè ho molti modelli con l' elettronica "residente" ho preferito dotare ogni modello di un Arduino dedicato. Per motivi economici e di curiosità ho quindi comprato dei Nano clonati dagli Arduino Nano originali. L' unica differenza è che la gestione della porta USB richiede l' installazione di un drive dedicato (il link è disponibile normalmente presso il venditore dei Nano ed è di facilissima installazione).

Sono molto soddisfatto di questi circuitini anche se ad oggi li ho solo "imbarcati" sugli LCT5 (qui)  e LCT6 (qui). Li considero una valida altenativa agli originali. Ecco le caratteristiche:

Microcontroller: Atmel Atmega328
Tensione di funzionamento: 5V
Tensione in ingresso: 7-12 V (cosigliati)
Tensione in ingresso: 6-20 V (limiti)
I/O digitali: 14 pin (di cui 6 PWM)
Ingressi analogici: 8 pin
Corrente continua per I/O: 40mA
Flash Memory: 32kB di cui 2kB utilizzati dal bootloader
SRAM: 2kB
EEPROM: 2kB
Velocità di clock: 16MHz
Dimensioni: 4,31 x 1,85 cm
Peso: 5g

La famiglia degli ATtiny.

Arduino però non si ferma qui; furbo come un gatto e ci permette di programmare dei simpatici e teneri circuitini che fanno più o meno esattamente quello che potrebbe fare lui stesso: sono gli ATtiny84 e gli ATtiny85. In pratica Arduino diventa il circuito programmatore (ISP) che li trasforma in piccoli Arduino, solo con un po’ meno memoria, un po' più lenti, non "comunicativi" con il PC, con meno ingressi/uscite e con delle librerie dedicate. 

Qui c'è tutto.

 

Qui a fianco trovate la fotografia dello "shield" dedicato alla programmazione degli ATtiny e al loro collaudo.

Se volete che un canale della vostra radio accenda le luci o comandi una sirena bastano così pochi  euro e un centimetro quadrato di spazio. Oppure se avete un carro armato RC in 1/35 un ATtiny può comandare i motori occupando pochissimo spazio e miscelando lui stesso i canali del trasmettitore; non sevono due costosi ed ingombranti ESC commerciali ma basta un piccolo L293.

Anche nel modellismo ferroviario gli ATtiny sono utili; ad esempio per fare delle lanterne di coda lampeggianti. Possono anche trasformarsi in economicissimi decoder funzioni.

Guardate qui quante ose interessanti: è un sito specificatamente dedicato al modellismo navale ma si trovano anche altre applicazioni. Si parte da un semplice fail safe per arrivare ad uno stabilizzatore automatico per sommergibili RC.

In ogni mi scheda modello trovate il programma (sketch) per l' ATtiny installato.

Ultimamente ho scoperto gli ATtiny85 USB. Si tratta di circuiti SMT completi di:

- ATtiny85

- presa USB,

- due LED: alimentazione (verde) e uscita 1 (rosso)

- alimentatore 

 

Costano come un chip PIH sciolto ma possono essere programmati direttamente dall'IDE di Arduino, senza ricorrere ad alcun ISP.

Caratteristiche:

Supporto Arduino IDE: dalla versione 1.0
Alimentazione da porta USB: 5V
Alimentazione esterna: da 7V a 16V
Regolatore: 5V 150mA
I/O pin: 6
Memoria programma: 8k (circa 6k liberi con bootloader caricato)
Comunicazione: I2C e SPI (via USI)
PWM: 3 pin (di più via software)
ADC: su 4 pin
LED: Alimentazione e Test/Stato

e dove trovare le procedure di installazione: Digispark.

Dal punto di vista “fisico” tra Arduino (o un ATtiny) e il mondo esterno sono generalmente  delle interfaccia fisiche: cioè per qualche decina di mA di carico in uscita ci può pensare Arduino, ma per carichi maggiori servono dei circuiti apposta che amplifichino la corrente pilotabile (relè, transistor, mosfet, h-bridge).

Nella rete si trova di tutto a prezzi interessantissimi; guardate questa batteria di relè ad esempio, adattissima ad un plastico ferroviario: quanto costerebbe se fatto con materiele Roco o Maerklin?

Inoltre esiste tutta una gamma di sensori che permettono la misurazione della corrente assorbita, della distanza di un oggetto, della luminosità esistente, della presenza di una massa metallica..

Personalmente preferisco farmi di volta in volta il circuito dedicato allo specifico modello: il mio XXIII ha un ATtiny che fa cose diverse da quello imbarcato sulla Schnellboot. Nelle pagine dei singoli modelli troverete l’hardware e il software di ogni circuito insieme ad una breve descrizione funzionale. Per il layout del circuito, che normalmente è un millefori tagliato a misura, utilizzo comunque il programma Expresspcb. Aiuta molto a razionalizzare la disposizione dei componenti e mi evita di rimanere senza fori liberi alla fine dello sviluppo.

In futuro utilizzerò sempre più spesso gli ATtiny USB soprattutto perchè hanno un alimentatore che "accetta" tensioni diverse e perchè possono essere programmati direttamente nel modello.