vendredi 9 août 2013

LED + XBee + .NET

Oh! Regarde! J'allume la LED là bas depuis le PC!



Le but de l’utilisation d'un module de communication sans fil comme le XBee avec Arduino est d'utiliser les ressources de l'Arduino, à distance, sans avoir à effectuer de manipulation. Par exemple, récupérer des logs, modifier des configuration ou visualiser des valeurs de capteurs. Pour interagir avec le hardware, l'utilisateur va utiliser une application sur un PC.

Voir l'article très complet XBee & Arduino sur le site FaitMain.org.

Dans cet exemple je mixe ce que j'ai développé dans mes deux précédents posts : XBee et .NET. Le programme et le branchement Arduino sont les mêmes.

Sur la video, on voit légèrement la LED au loin sur la partie gauche.



L'interface n'est pas très intéressante, voici le code behind :

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.IO.Ports;

namespace ArduinoLed
{
    /// <summary>
    /// Allumer et éteindre la LED de l'Arduino!
    /// </summary>
    public partial class MainForm : Form
    {
        SerialPort port;
        bool etatLed = false;
           
        public MainForm()
        {
            InitializeComponent();
           
            comboBox1.Items.AddRange(SerialPort.GetPortNames());
            button1.Enabled = false;
        }
       
        void Button1Click(object sender, EventArgs e)
        {
            if(etatLed) {
                port.Write("e");
                button1.Text = "ON";
            } else {
                port.Write("a");
                button1.Text = "OFF";
            }
            etatLed = ! etatLed;
        }
       
        void ComboBox1SelectedIndexChanged(object sender, EventArgs e)
        {
            if(port == null) {
                port = new SerialPort(comboBox1.SelectedItem.ToString(),9600);
            } else {
                port.Close();
                port.PortName = comboBox1.SelectedItem.ToString();
            }
           
            port.Open();
            button1.Enabled = true;
        }
    }
}

Aucun commentaire:

Enregistrer un commentaire