Pagina 1 di 1

Arduino chi era costui?

Inviato: martedì 1 marzo 2016, 21:45
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]

Re: Arduino chi era costui?

Inviato: martedì 1 marzo 2016, 22:07
da andreachef
Ottimo ...a me interessa
Andrea

Re: Arduino chi era costui?

Inviato: martedì 1 marzo 2016, 22:38
da DOZ
idem
:yahoo:

Re: Arduino chi era costui?

Inviato: martedì 1 marzo 2016, 23:17
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.

Re: Arduino chi era costui?

Inviato: giovedì 3 marzo 2016, 17:34
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:

Re: Arduino chi era costui?

Inviato: domenica 6 marzo 2016, 19:23
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!