Arduino & Simulink – Blinking an LED

In questa guida vedremo come interfacciare la scheda Arduino a Simulink, utilizzeremo il pacchetto “ArduinoIO” già usate nelle precedenti guide. Per installare il pacchetto e configurare la scheda in modo da farla comunicare con il computer vi rimando alla guida Arduino & MATLAB – Serial Communication.


Dopo aver installato correttamente il pacchetto, se andiamo ad aprire Simulink, vedremo che nella libreria verrà caricato la ‘Arduino IO Library‘. Questi blocchi vengono utilizzati per interfacciarsi con la scheda Arduino, i blocchi Digital Write o Analog Read eseguono la scrittura su un pin digitale o leggono un dato analogico in ingresso da un sensore.

Esempio

Adesso vediamo un semplice esempio di come usare questi blocchi, in realtà vedremo il blocco Arduino IO Setup, Real-Time Pecer e Arduino Digital Write. Faremo lampeggiare un LED tramite un generatore di impulsi che è già presente nelle libraria Sources di Simulink.

Montiamo un LED su Breadboard con la relativa resistenza limitatrice di 330Ω e l’anodo del LED al pin digitale 7. Ora vediamo come disegnare e configurare il modello di Simulink che è mostrato nella figura segunte:

Ora andiama a spiegare e configurare i blocchi usati:

Arduino IO Setup e Real-Time Pacer: Questi due blocchi dovranno essere sempre presenti in ogni modello che creiamo. Facendo doppio click sul blocco Arduino IO Setup si apriranno le configurazioni del blocco in cui andremo a secificare la porta seriale a cui è collegata la nostra scheda che nel mio caso è “/dev/cu.usbmodemfa131”, in generale è diversa, e se non conoscete la vostra andate nell’IDE di Arduino e sotto Strumenti -> Porta Seriale troviamo il nome della porta. Il blocco Real-Time Pacer scandisce il tempo della simulazione e impostando il paramentro Speedup = 1 diciamo che 1 secondo di tempo di simulazione corrispondono a 1 secondo della realtà.

Pulse Generator (Sources): Questo generatore di impulsi, genera valori 1 e 0 che si vanno a comandare il pin digitale gestito dal blocco Arduino Digital Write. Nelle configurazioni cambiamo Pulse Type = Sample based e impostiamo Sample Time = 0.1, a questo punto possiamo modificare il periodo del nostro segnale a gradini modificando il perido che nell’esempio ho impostato a 20 (2 secondi) e il tempo per cui il segnale è alto Pulse Width impostato a 10 (1 secondo), in modo da produrre un segnale che per un secondo è 1 e per un secondo 0.

Arduino Digital Write: Questo blocco indica il pin di arduino che andremo a comandare, nelle configurazoni indichiamo il numero della porta, che nel nostro caso è la numero 7 e il parametro Sample Time = -1 cioè eredita il tempo di campionamento dal blocco generatore.

Una volta creato il modello Simulink possiamo eseguire andando nel menu Simulation -> Run, la durata della simulazione è impostata di default a 10 secondi.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Ultimi Articoli