Arduino chi era costui?

Utilizza questo forum per richiedere informazioni o condividere le tue esperienze sulla digitalizzazione dei modelli ferroviari.
 
Rispondi
Luca Regoli
Assistente di Stazione
Assistente di Stazione
Messaggi: 1767
Iscritto il: martedì 7 marzo 2006, 7:26

Arduino chi era costui?

Messaggio da Luca Regoli »

Se ne parla ovunque e tutti ne parlano.... ma non sempre a proposito.
Proviamo a desrcivere cosa è Arduino e cosa può fare per noi fermodellisti, come può aiutarci a risolvere i problemucci vari del nostro plastico.

Innanzi tutto quando parliamo di Arduino, parliamo di hardware. Il progetto, italiano una volta tanto, è nato nel 2005 in mabito universitario e da lì è cresciuto, generando una moltitudine di modelli per 1000 applicazioni: dagli Arduino indossabili sino ai Mega con moltissime porte.
Ma cos'è? In maniera mooolto sintetica lo possiamo descrivere così: è una scheda composta da un microcontrollore che gestisce una serie di porte di ingresso e uscita.
Per decidere come gestire gli eventi di ingresso e uscita serve un programma che deve essere caricato sul nostro Arduino. E qui sta l'idea che ha fatto esplodere la Arduino mania: gli (allora) studenti che hanno messo a punto la piattaforma hanno creato un'IDE (che in inglese sta per Integrated Development Environment - cioè ambiente di sviluppo integrato) che altro non è che un programma (facilissimo da usare) che può girare su un PC windows, o su un iMac o su un PC Linux.
Collegando il nostro Arduino al PC con un normale cavo USB, l'IDE lo riconosce e permette, schiacciando un solo tasto, di caricargli il programma che abbiamo creato.
Da quel momento Arduino diventa autonomo (poi vediamo meglio che vuol dire) e può lavorare senza cordone ombelicale con il PC (leggi cavo USB).

Bene, dopo queste informazioni di base, cerchiamo di capire come funziona.
Per iniziare, dobbiamo immaginare il nostro Arduino come una macchinetta che fa sempre le stesse cose e le fa all'infinito.
Cosa sono queste cose?
Abbiamo visto che Arduino è dotato di porte; quindi le cose (più importanti) che può fare sono:
a) leggere lo stato (o una tensione) di alcune porte che definiremo di input
b) scrivere uno stato su alcune porte che definiremo di output.

E questo replicato all'infinito.
Facciamo un esempio.
colleghiamo un tasto su una porta di input ed il led rosso di un segnale su una porta di output

il programma leggerà con continuità la porta di input e se troverà un valore alto, attiverà l'uscita a cui è collegato il segnale.

ecco il programma ispirato da un esempio del sito provalotu.com:


const int buttonPin = 2; // Settiamo il pin dove è collegato il pulsante - sarà un pin di ingresso
const int ledPin = 13; // Impostiamo il pin cui è collegato il led - sarà un pin di uscita

int buttonState = 0; // Introduciamo una variabile "buttonState" nella quale verrà inserito lo stato del pulsante (aperto o chiuso)

void setup() // definiamo come si devono comportare le porte
{
pinMode(ledPin, OUTPUT); // Impostiamo il led come Output (porta 13)
pinMode(buttonPin, INPUT); // Impostiamo il pulsante come Input (porta 2)
}

void loop() // è il corpo principale del programma: verrà ripetuto all'infinito fino che arduino resterà acceso. Se lo spegniamo il programma resterà in memoria pronto a ripartire non appena ridaremo alimentazione
{
buttonState = digitalRead(buttonPin); //Leggiamo lo stato del pulsante e lo inseriamo nella variabile buttonState
if (buttonState == HIGH) { //Ora, se il pulsante viene premuto (valore Alto perchè chiude il circuito)
digitalWrite(ledPin, HIGH); //verrà impostato il valore Alto al led che si accenderà
}
else { / /altrimenti, se il pulsante non viene premuto,
digitalWrite(ledPin, LOW); //imposta il valore basso al led che si spegnerà
}
}


questo è lo schema di collegamento del pulsante all'arduino.
Schermata 2016-03-01 alle 20.44.40.png
La rilflessione sorge spontanea: che me ne faccio di tutta sta elettronica per accendere un segnale?
Giusto, ma in realtà questo è solo un primo passo verso un sistema che mi permetterà di muovere deviatoi, accendere quadri sinottici, cambiare stato a segnali alla presenza di determinate condizioni logiche.
Intendiamoci, nulla che non si possa fare anche in altro modo. Ma con questo sistema si può fare facilmente e concedersi il lusso di cambiare idea e riprogrammare il nostro microcontrollore per variare
le condizioni di apertura di un segnale o di movimento di un deviatoio.... fino a implementare il codice che trasforma tutto in un decoder DCC e fare replicare tutte le azioni ad un computer o
da una centrale...... [continua]
andreachef
Telegrafista
Telegrafista
Messaggi: 800
Iscritto il: giovedì 21 settembre 2006, 22:41
Interesse per i treni reali: Si
Interesse per i treni in modello: Si
Località: Ventimiglia

Re: Arduino chi era costui?

Messaggio da andreachef »

Ottimo ...a me interessa
Andrea
DOZ
Manovratore
Manovratore
Messaggi: 641
Iscritto il: martedì 29 ottobre 2013, 13:02
Interesse per i treni reali: Si
Interesse per i treni in modello: Si
Località: Milano

Re: Arduino chi era costui?

Messaggio da DOZ »

idem
:yahoo:
Domenico
Avatar utente
Patrick D.
Manovratore
Manovratore
Messaggi: 330
Iscritto il: domenica 15 febbraio 2009, 10:55
Interesse per i treni reali: Si
Interesse per i treni in modello: Si
Località: Alto Adige

Re: Arduino chi era costui?

Messaggio da Patrick D. »

Su un forum tedesco un modellista ha costruito un "magazzino" (in principio un ascensore) perchè non aveva posto per una stazione nascosta e quel magazzino va gestito con Arduino... solo per fare un altro esempio.
max5726
Manovratore
Manovratore
Messaggi: 408
Iscritto il: lunedì 21 luglio 2008, 17:14

Re: Arduino chi era costui?

Messaggio da max5726 »

Teoricamente con i microprocessori si può automatizzare qualunque cosa! Praticamente però ci sono delle limitazioni, che possono essere di tipo hardware (mancanza di ingressi/uscite sufficienti, mancanza di moduli hardware, tensione d'alimentazione ecc), o di tipo software (il micro non ce la fa ad eseguire correttamente tutto ciò che dovrebbe fare, perchè troppo lento o ha un FW troppo complesso).

durante la fase iniziale di progettazione consiglio di esaminare attentamente le caratteristiche dei micro o delle schede: ad es. io sono tra quelli che preferisce spendere qualche euro ed un pò di tempo in più, per usare micro o schede che implementano già una certa funzione (ad es. generatore di PWM, gestore di porte seriali, I2C ecc.)

saluti

Max

p.s. a breve posterò qualche cosa anche io, ma il tempo è tiranno..... :cry:
max47
Ausiliario di Stazione
Ausiliario di Stazione
Messaggi: 1
Iscritto il: martedì 31 marzo 2009, 11:00

Re: Arduino chi era costui?

Messaggio da max47 »

Salve, anche io seguo con MOLTO interesse ma POCA conoscenza sul tema.
Spero MOLTO di riuscire a capire fino al punto da poter implementare anche io prima o poi il Arduino.
Cmq, per il momento grazie!
Rispondi

Torna a “Universo Digitale DCC”