venerdì 22 maggio 2015

Creare una semplice Gui per Arduino

Ciao,
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