#Zone61 : Guide pour configurer votre carte Arduino Yún

sticker
Avant de vous lancer dans le code et l’électronique de votre projet #Zone61 ; voici quelques étapes pour vérifier que tout fonctionne bien entre votre ordinateur et la carte Yún ! Et comme cet évènement s’appuie également sur Microsoft Azure, vous apprécierez certainement une petite explication de texte sur la configuration WiFi ce cette même carte.

Bref, comment débuter avec votre carte Arduino Yún?

Logiciels

Télécharger la version intitulée Arduino 1.5.8 BETA (with support for Arduino Yún and Arduino Due boards) depuis https://arduino.cc/en/main/software. Comme son nom l’indique cette version est la seule à supporter actuellement les cartes Yún et Due.

Shield de base Grove

Pour débuter et vérifier que tout fonctionne correctement, positionnez le Shield de base Grove sur la carte Arduino.

Attention: les connecteurs du Shield risquent de toucher le port Ethernet de la carte Arduino, assurez vous qu’ils ne rentrent pas en contact avant d’alimenter la carte. Placez un carton entre les deux ou un autre isolant si vous souhaitez garantir la pérennité de votre matériel ^^ (oui, c’est aussi l’esprit makers, on bricole déjà la carte).

Commencez par le support LED avec votre couleur préférée en évitant de confondre les bornes positives et négatives. :)

Reliez ensuite le support LED à la base Grove en utilisant une des fiches de D2 à D8 ; ce sont les entrées/sorties numériques. Dans mon exemple, j’utiliserai la fiche D6.

WP_20150121_17_35_11_Pro

Alimentation de la Yún

Pour alimenter la carte Yún, il est simplement nécessaire de raccorder celle-ci à votre ordinateur à l’aide d’un câble USB micro-B (théoriquement le type de câble que vous utilisez pour charger vos smartphones). Il servira également à transmettre les données sur la carte Yùn depuis l’IDE Arduino

YunParts

Premiers pas

Lancez maintenant l’IDE Arduino et assurez-vous que la carte Arduino Yún est bien sélectionnée dans le menu [Tools][Board] comme ci-dessous.

image

De même, assurez-vous que COMx (Arduino Yún) est bien sélectionnée dans le menu [Port]. Si ce menu n’est pas disponible, il est probable que le câble utilisé soit défectueux ou de type A.

image

Le menu [File][Examples] a la délicate attention de nous proposer des programmes prêt à l’emploi ; pour respecter la typologie Arduino, ces programmes seront nommés des Sketchs dans le reste de l’article. Pour s’assurer que tout fonctionne bien, sélectionnez le sketch Blink dans la section 01.Basics.

image

La structure d’un Sketch est très simple et comprend deux fonctions:

  • Setup qui s’exécute une unique fois lorsque le sketch est téléchargé ou lors d’un arrêt/redémarrage de la carte. Ce point d’entrée permet donc d’initialiser les capteurs et vos variables.
  • Loop, comme son nom l’indique, exécute ensuite du code en boucle.

Le Sketch Blink propose de faire clignoter votre LED toutes les secondes. Modifiez simplement le Sketch pour utiliser la borne 6 au lieu de la 13.

Les bornes D2 à D8 sont configurables en entrée ou sortie. La fonction pinMode permet donc de préciser que D6 sera utilisée en sortie. digitalWrite change ensuite la valeur de notre sortie chaque seconde.

 // the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 6 as an output.
  pinMode(6, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(6, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(6, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

Le langage utilisé par Arduino est une version simplifiée de C/C++ qui s’appuie sur Wiring (même si les initiatives sont désormais séparées). Pour accéder à l’ensemble des primitives, je vous invite à consulter Language Reference.

Il ne reste plus qu’à télécharger le Sketch sur la carte; et si tout se passe sans accros … la diode clignote. On vient au moins de déterminer que les basiques fonctionnent parfaitement !

image

Malgré tout le bien que je pense des outils Arduino, on peut regretter que l'IntelliSense ne soit pas présent - ainsi que de pouvoir positionner quelques breakpoints dans notre code (en tout ca je n’ai pas trouvé l’option). Et bien il existe une solution pour palier à ce problème – un plugin Visual Studio nommé Visual Micro répond parfaitement à cette demande. Et il s’installe parfaitement avec l’édition Visual Studio Community 2013 !

Certes, cette solution est payante mais une version d’évaluation est disponible sur le site suivant:

https://www.visualmicro.com/page/Arduino-Visual-Studio-Downloads.aspx

Et cerise sur le gâteau, j’ai quelques clés d’activation à vous faire gagner pendant le Hackathon.

image

 

Réseau / Configuration du WiFi

La carte Yún a l’avantage de supporter deux options pour vous connecter au réseau : Ethernet et le WiFi. Usine.IO ne sera pas câblé en filaire, donc vraisemblablement, le choix du WiFi va vite s’imposer :).

Lors du démarrage de la carte, elle va déclarer automatiquement un réseau WiFi intitulé Arduino Yun-XXXXXXXXXXXX. Connectez vous à ce réseau depuis votre ordinateur ou votre smartphone.

image

Là où ca se complique, c’est lorsque 30 cartes se déclarent comme réseau WiFi en même temps ^^. Pour vous y retrouver, lancer le Sketch WiFiStatus disponible via [File][Examples][Bridge]. Après quelques secondes d’attente, la console Serial Monitor dans [Tools] affiche le nom de votre réseau (SSID).

image

Une fois connecté au réseau WiFi, naviguez vers https://arduino.local -ou- directement https://192.168.240.1 si la première option ne fonctionne pas.

image

Le mot de passe par défaut est arduino.

image

Vous pouvez dès lors configurer le réseau WiFi et changer le nom de votre carte. Appuyez sur “Configure & Restart” pour finaliser l’opération et redémarrer la Yun !

image

Vous pouvez relancer ensuite le Sketch WiFiStatus pour vous assurez que le WiFi est bien configuré.

image

Si les choses se compliquent et que vous souhaitez revenir à la configuration usine du WiFi : pressez le bouton WLAN RST pendant au minimum 5 secondes (mais surtout moins de 30 secondes – dans ce cas vous restaurez l’environnement linux). Plus d’information concernant cette procédure sur le site https://arduino.cc/en/Main/ArduinoBoardYun.

 

Tout fonctionne ? Right. On est fin prêt pour passer aux choses sérieuses.

Se connecter au monde (et notamment à Microsoft Azure)

La carte Yun a une particularité, le microcontrôleur ATmega 32U4 est complété par un processeur Atheros AR9331 qui permet de faire tourner une distribution de Linux basée sur OpenWrt. Pour faire cohabiter les deux mondes, Arduino met à disposition plusieurs librairies; et notamment <Process.h> qui permet de lancer des commandes curl linux sans se soucier des deux environnements.

Par exemple, le sketch suivant effectue une requête HTTP GET pour télécharger le logo Arduino en mode ASCII.

 #include <Process.h>

void setup() {
   // Initialize Bridge
   Bridge.begin();

   // Initialize Serial
   Serial.begin(9600);

   // Wait until a Serial Monitor is connected.
   while (!Serial);

   // run various example processes
   runCurl();
}

void loop() {
   // Do nothing here.
}

void runCurl() {
   // Launch "curl" command and get Arduino ascii art logo from the network
   // curl is command line program for transferring data using different internet protocols
   Process p;        // Create a process and call it "p"
   p.begin("curl");  // Process that launch the "curl" command
   p.addParameter("https://arduino.cc/asciilogo.txt"); // Add the URL parameter to "curl"
   p.run();      // Run the process and wait for its termination

   // Print arduino logo over the Serial
   // A process output can be read with the stream methods
   while (p.available()>0) {
     char c = p.read();
     Serial.print(c);
   }
   // Ensure the last bit of data is sent.
   Serial.flush();
}

 

Vous pouvez ensuite ouvrir la fenêtre Serial Monitor et lancer le Sketch !

image

En utilisant le même mécanisme, Thomas Conté (@tomconte) a publié plusieurs articles pour connecter la Yun aux services Microsoft Azure. #Zone61 n’impose pas d’architecture spécifique pour Azure, c’est à vous de faire le choix - héberger un web service - transmettre les données à un service de stockage - utiliser Event Hubs - sont tous des choix légitimes selon vos besoins.

Securing communications with HTTPS on the Arduino Yun Connecting the Arduino Yun to Azure Event Hubs

Pour aller plus loin

Site officiel Arduino Communicating with OpenWrt-Yun via Bridge Bridge Grove - Starter Kit v3 Grove – Starter Kit SketchBook

Documentation Visual Micro (si vous utiliser le plug-in)

Et bien évidemment Microsoft Azure :)

Maintenant à vous de jouer ! Bon courage à tous.