Il Blinking Led è ormai il classico primo skecth interessante che viene proposto ai neofiti di Ardunio e di programmazione con la sua IDE. Subito dopo l’introduzione nel mondo della digitalWrite, che accende e spegne un led, viene introdotto il Delay e con poche righe il gioco è fatto. Non serve nient’altro che una scheda Arduino qualsiasi collegata via USB, e il led onboard eseguirà in manierea egregia la routine. Volendo un effetto più carino basta mettere un led tra i pin 13 e GND … e il vostro diodo esterno “blinkerà” felicemente.
Ma siccome a me piace complicarmi la vita, come già detto in precedenza, ho puntato direttamente ad un approccio di più ampio respiro che mi permettesse di gestire tutto da PC invece che da scheda. L’idea era quella di avere un piccolo programma in C# che pilotasse il led accendendolo, spegnendolo e illuminandolo ad intermittenza con un delay a scelta. Il “ritardo” doveva essere separato e dinamicamente variabile senza la necessità di caricare nuovamente lo sketch su Arduino.
Sfruttando le nozioni del corso Ifoa, l’ho realizzato con le Windows Form mediante .Net Framework 7.3, cercando di pianificare al meglio le Form e le classi per rendere tutto riusabile, o magari re-interfacciabile, per gestire diversi progetti con la stessa Form di avvio in caso di sketch con led. In pratica, senza neppure aver scritto la parte C di Arduino, ho modellato direttamente l’app in modo tale da rientrare nelle mie esigenza, sapendo che mi bastavano due stringhe via seriale per far si che il led venisse pilotato.
/* Author: Andrea Bonvissuto */ char mex = '0'; void setup() { Serial.begin(9600); //Setto 9600 per il bitrate pinMode(12, OUTPUT); //Setto il PIN 12 come OUTPUT } void loop() { if (Serial.available() > 0) { mex = Serial.read(); switch (mex) { case '1': digitalWrite (12, HIGH); break; case '0': digitalWrite (12, LOW); break; } Serial.println("Ricevuto: "+String(mex)); }
Nello specifico, con il fine di imparare a scrivere codice usando la documentazione Microsoft anche di classi o DLL sconosciute, ho optato per un programma “completo” di controlli ed eccezioni che mi permettessero di avere sempre la certezza, in qualsiasi momento, che ogni errore venisse gestito.
E’ stata anche l’occasione per creare il canale Youtube dedicato ai miei esperimenti elettronici e informatici, con un forte orientamento alla programmazione (ma anche il frutto delle ricerche ed approfondimenti sulla componentistica in generale) e le possibilità delle schede Ardunio come interfaccia tra diversi mondi IT e protocolli. E’ nato così simpaticamente Psydis in .Net# through Arduino su cui troverete, oltre alla presentazione ufficiale, anche il primo video esplicativo di questo piccolo progettino sviluppato.
Questo video contiene anche diversi retroscena e una nuova sottolineatura dell’ideale che sottende al progetto, dalle prossime volte andrò molto più al sodo. Lo scopo è darvi un piccolo esempio delle possibilità di interfacciamento. Ormai le premesse sono state sviscerate, è tempo di fare “sul serio”.
Tecnicamente ho fatto tanto lavoro inutile di programmazione e di approfondimento elettronico, ma per me questa è una fase di apprendimento e non sono lanciato a correre ad imparare male un po’ tutto. Nel video infatti si palesano gli inutili pulsanti e il finto led a stati per simulare On/Off e anche il serial monitor, che riporta ogni comunicazione che transita nella USB, che esiste già nella classe C# che ho creato nonostante sia assolutamente inutile ai fini del progetto attuale.
E prossimamente, se sarà possibile in modo coerente, amplierò il panorama dell’applicazione presentata con la analogWrite per pilotare i led in maniera PWM epurandola degli inutili oggetti grafici.
Se siete interessati ad un buon kit di partenza per qualche esperimento con Arduino, vi consiglio uno di questi Elegoo Starter Kit con qualche sensore ed attuatore sfizioso:
Se inoltre volete seguirmi in questa pazzia qui o su youtube, vi aspetto!!