in questo articolo vorrei illustrare come creare una semplice interfaccia grafica per accendere e spegnere un led su arduino (ho utilizzato un olimexino 32u4 invece di arduino).
Cosa ci serve per iniziare?
1* arduino (nell'esempio ho utilizzato un olimexino 32u4 che è una versione secondo me molto migliore di un arduino leonardo) https://www.olimex.com/Products/Duino/AVR/OLIMEXINO-32U4/open-source-hardware
Microsoft Visual Studio
Innanzitutto per quel che riguarda la creazione dell'interfaccia che ci servirà su visual studio consiglio di leggere la seguente guida, vi ci vorrà circa una mezz'oretta per terminare il tutorial e sarete subito in grado di creare piccole Gui con alcuni pulsanti che è quanto ci serve qui.
https://msdn.microsoft.com/it-it/library/dd492135.aspx
Come appena scritto, al termine del tutorial sarete in grado di creare la vostra prima interfaccia, nel nostro caso avremo bisogno di 2 pulsanti per accendere e spegnere il led e di un checkbox per aprire o chiudere le comunicazioni sulla porta seriale.
Creiamo qualcosa insomma come nell'immagine qui sotto:
nella toolbox inoltre aggiungete una serialport, la trovate sotto la voce Components; della serial ports modificate nella finestra properties il baudrate mettendolo a 9600 e la portname, indicando la porta sulla quale si trova la vostra device.
Ora un po' di codice, prima di tutto ecco quello relativo a visual studio
___________VISUAL STUDIO___________
namespace littlearduinoGUI
{
public partial class LEDAPP : Form
{
public LEDAPP()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
try
{
serialPort1.Write("2");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void ONButton_Click(object sender, EventArgs e)
{
try
{
serialPort1.Write("1");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
serialPort1.Open();
}
else
{
serialPort1.Close();
}
}
}
}
______________END____________________
Qui di seguito invece il codice per arduino, vi ricordo ancora una volta che ho usato un olimexino 32u4, che viene riconosciuto come leonardo, nel caso stiate usando un UNO apportate le eventuali modifiche:
//_________CODE___START__HERE______________
#define Led 7 //l'olimexino 32u4 ha due led disponibili su 7 e 9, il primo verde ed il secondo giallo
char incomingOption;
void setup(){
pinMode(Led, OUTPUT);
Serial.begin(9600);
}
void loop(){
incomingOption = Serial.read(); //lettura della porta seriale
switch (incomingOption)
{
case '1': //in caso venga premuto il pulsante ON
digitalWrite(Led, HIGH); //accendo il led
break;
case '2': //in caso venga premuto il pulsante OFF
digitalWrite(Led, LOW); //spegni il led
break;
}
}
//_________________END______________________
Carichiamo il nostro sketch sulla nostra board e torniamo su Visual Studio, a questo punto premendo il pulsante start si avvierà la nostra GUI, "checkiamo" la casella della porta seriale per avviare la comunicazione e premiamo il pulsante ON, se tutto è ok si accenderà il led sul nostro arduino, verificate con attenzione che la porta seriale settata su visual studio corrisponda con quella della board.
Di seguito un breve video della Gui in azione sul mio olimexino:
Spero che quanto sopra scritto vi sia stato utile, un saluto
Nessun commento:
Posta un commento