Arduino Yùn

Salut à tous, comment allez-vous?
Aujourd’hui, ce sera un article sur une nouvelle carte qui ne l’est pas vraiment : l’Arduino Yùn… Il a été commercialisé pour la première fois en mai 2013… Alors oui, je l’ai depuis la commercialisation et je n’ai pas forcément pris le temps d’écrire un article dessus, tort que je répare aujourd’hui… Principalement, car j’ai eu peu de temps et aussi, car à l’époque peu de projets étaient prévus pour le Yùn : ce n’est plus le cas…

Il est maintenant très facile de faire des objets connectés avec cette carte Arduino assez spéciale et surtout les piloter depuis iOS ou Android… En effet, d’origine l’Arduino Yùn dispose du WiFi intégré, d’une prise Ethernet et d’un port USB Host afin de connecter des périphériques. Voici les schémas que l’on peut trouver sur la page officielle de description : http://arduino.cc/en/Main/ArduinoBoardYun

yun_parties
Source : http://arduino.cc/en/Main/ArduinoBoardYun

Pour réaliser ces opérations plus complexes, l’aTmega32u4 est aidé par un processeur Linino AR9331 faisant tourner OpenWRT. Car oui, l’aTmega32U4 est bien, mais dès que l’on veut réaliser des choses plus complexes, il n’est pas assez puissant seul… Les deux processeurs communiquent entre eux grâce à une liaison Serial (port 0 et 1 de l’aTmega32U4). Une librairie pour faciliter les échanges a été mise en place, elle s’appelle bridge. C’est comme si vous branchiez un Raspberry Pi en Serial à un Arduino, la différence est qu’ici on vous explique bien comment cela fonctionne :

yun_bridge_working
Source : http://arduino.cc/en/Main/ArduinoBoardYun

Malheureseument, une carte avec plus de fonctionnalités est aussi une carte plus complexe et il n’y a plus un, mais trois boutons reset :

Source : http://arduino.cc/en/Main/ArduinoBoardYun
Source : http://arduino.cc/en/Main/ArduinoBoardYun

On a aussi des leds indicatrices en plus :

Source : http://arduino.cc/en/Main/ArduinoBoardYun
Source : http://arduino.cc/en/Main/ArduinoBoardYun

Cela signifie aussi que l’Arduino Yùn sera accessible de plusieurs façons… En effet, il y a plusieurs manière d’utiliser un Arduino Yùn…

  • Vous branchez avec la prise Ethernet pour internet et un micro-USB pour l’alimentation. Mais il faut tirer un câble Ethernet…
  • Vous branchez un micro-USB pour l’alimentation et vous configurez le WiFi pour internet.
  • Vous le branchez directement à votre PC via un micro-USB, mais vous n’aurez pas accès à toutes les fonctionnalités et surtout : pas d’internet…

Personnellement, j’utilise la seconde technique cela me permet d’uploader le code arduino où que je sois chez moi grâce à l’Arduino IDE 1.5.8 et d’avoir accès à la console Terminal de Open-WRT facilement via le Terminal de Mac OS X… Cela permet aussi et surtout de bien uploader les fichiers nécessaires sur la carte SD pour les exemples ce qui n’est pas le cas en USB… Vous avez donc tout intérêt à connecter votre Yùn via WiFi…

Mais ne vous en faites pas, cet article est un petit résumé pour une utilisation facile du Yùn… Je vais partir du début histoire de ne pas vous perdre… Et surtout pour vous montrez comment le configurer facilement…

1 – Premier allumage et première configuration.

Vous venez de recevoir votre Yùn? Génial, mais tout est en anglais et vous ne savez pas trop par où commencer… La première chose à faire est d’installer l’Arduino IDE 1.5.8 disponible sur le site officiel. Je vous conseille de privilégier la version qui tourne sur Java 6… Pour informations, la version avec Java 7 ne fonctionne pas chez moi…

Il n’y rien de bien différent par rapport à la version 1.0.6, sinon la prise en charge de carte plus complexe comme le Yùn ou le Galileo (il faut que je mette la main sur un exemplaire pour tester)… À partir de là, vous pouvez utiliser votre Yùn comme un Arduino Leonardo classique. Car oui, le Yùn peut être utilisé comme un clavier ou un MakeyMakey, mais vu le prix de la carte, je vous le déconseille…

Si on veut vraiment profiter du Yùn, il faut configurer le WiFi… Avec l’Ethernet tout est bien plus simple, connectez le Yùn à votre box, il apparaîtra automatiquement dans l’Arduino IDE, mais cela vous oblige à le laisser près de la borne ou à tirer un câble… Moi qui aime la liberté, cela ne me convient pas… Comment fait-on pour configurer le WiFi? c’est assez simple en fait, au premier démarrage, le Yùn se comporte comme un point d’accès :
yun_APLes chiffres et lettres après Arduino Yun varient pour chaque Yùn… Connectez-vous à ce WiFi, il n’y a pas de mot de passe, puis rendez-vous dans votre configuration réseau pour trouver l’IP de la passerelle qui n’est autre que l’adresse IP du Yùn, car il est configuré en mode Point d’Accès :
yun_looking_for_gatewayEnsuite direction votre navigateur internet, entrez soit l’adresse IP que vous venez de trouver soit arduino.local. Comme arduino.local ne fonctionne pas toujours j’utilise la technique de l’adresse IP qui est elle fiable à 100%… Vous devriez voir apparaître :
yun_first_connexionLe mot de passe par défaut est « arduino« . Tapez-le et cliquez sur Log In. On arrive alors sur la page d’information simple :
yun_AP_first_connexionOn clique alors sur Configure et on tombe sur la page de configuration simple :
yun_basic_configurationOn peut alors changer le nom du Yùn (permettra alors de ce connecter à cette même interface à l’adresse : lenomquevousentrez.local) et son mot de passe ainsi que la timezone (fuseau horaire). Ce que je vous conseille de faire… On peut ensuite passer à la deuxième partie, la configuration du WiFi :
yun_parametres_wifiIl vous suffit de choisir votre réseau WiFi et d’entrer votre mot de passe pour celui-ci. Si vous êtes sur un réseau WiFi personnel vous pouvez laisser le REST API sans mot de passe. Mais si c’est un projet pour un lab ou une entreprise laisser le mot de passe sur le REST API, cela évitera qu’un inconnu upload un sketch différent sur votre Yùn quand vous avez le dos tourné… On clique alors sur Configure and Restart et le Yùn charge la page suivante :
yun_reboot_beginningUne fois la barre complétée, le Yùn affichera ceci :
yun_reboot_sucessIl faudra vous reconnecter à votre WiFi. Normalement le Yùn devrait s’y connecter automatiquement. Mais j’ai remarqué qu’il faut vraiment le débrancher du courant pour le voir apparaître sur mon réseau WiFi. Apparemment, le reboot qu’il effectue n’est pas aussi total qu’il semble l’indiquer… Si vous le connectez en Ethernet vous pouvez sauter ces étapes, car en général il apparaît automatiquement dans l’Arduino IDE 1.5.8.

Maintenant quand vous ouvrez l’Arduino IDE 1.5.8 que le Yùn soit connecté en WiFi ou en Ethernet vous devriez le voir apparaître dans Outils -> Ports :
yun_outils_portsVous pouvez alors envoyer du code Arduino sur votre Yùn depuis l’IDE en choisissant le bon type de carte :
yun_type_carteMaintenant que l’on contrôle la partie Arduino grâce au WiFi, on va passer à la partie Linino… Si vous êtes un habitué du Raspberry Pi cela ne devrait pas bien vous changer de vos habitudes 😉

On ouvre une fenêtre Terminal sur Linux ou Mac Os X. (Sur Windows, il vous faut installer un programme comme WinSCP… 😛 ). Et on envoie la commande :

ssh root@192.168.1.74 (dans mon cas)

ou

 shh root@yun.local (toujours dans mon cas, car c'est le nom que je lui aie attribué...)

Lors de la première connexion, vous aurez sûrement un message d’erreur. Vous indiquant que l’authenticité de l’appareil n’a pu être vérifié… Mais c’est un peu normal, vu que c’est la première fois que l’on s’y connecte… Il vous suffit de rentrer yes pour avoir accès à votre Yùn :
yun_linino_yesPuis entrez votre mot de passe :yun_linino_passwordVous arrivez alors sur la console :
yun_linino_connexion_okLa console du Yùn fonctionne quasiment comme la console du Raspberry Pi, elle est juste basée sur opkg qui est un autre gestionnaire de paquet que apt-get comme sur le Pi… Si vous essayer de taper :

 opkg update

yun_opkg_updateCela mettra à jour la liste des paquets disponibles… On peut presque tout installer : python, samba, openssl, nodeJS etc…

Je ne peux pas tout vous montrer dans un seul article… Si vous voulez plus d’informations sur la bête :

Voilà vous savez maintenant contrôler le Yùn de toutes les manières possibles… 🙂

2 – Mettre à Jour Open-WRT

De temps à autre, il faut télécharger un fichier bin qui contient tout le système Open-WRT pour le mettre à jour… Vous pouvez télécharger et voir comment faire ici : http://arduino.cc/en/Tutorial/YunSysupgrade

Il vous suffit en fait de placer le fichier que vous avez téléchargé à la racine de la carte micro-SD, de rebooter le Yùn et de vous connecter à l’interface basique pour voir apparaître :

yun_upgrade_openwrtCliquez alors sur Reset et patienter le temps qu’il faut…

Une chose à savoir, lorsque vous réalisez ce genre de mise à jour, il vous faudra réinstaller les différents paquets que vous aviez rajoutés à votre Yùn et renvoyer votre code Arduino une fois la mise-à-jour faite…

3 – Activité WiFi via onboard LED

Dans ce paragraphe, je vais vous montrer comment afficher l’activité WiFi (TX & RX) sur les leds intégrés. Mais vous pouvez les configurer d’une autre façon…

Connectez-vous à votre interface de configuration basique :

yun_advanced_configPuis rendez-vous dans la partie avancée :

yun_luci_indexPassez dans l’onglet Sytème :

yun_led_configurationUne fois dans LED Configuration, appuyez sur Add. Les réglages affichés sur le dernier screenshoot permettent de laisser les leds allumées si le Yùn est connecté au WiFi et ce mettent à clignoter quand la carte reçoit ou envoie des données… Ce qui est très pratique quand on fait des tests…

4 – La vraie bidouille

Et si vous voyons maintenant ce que cette carte peut faire en pratique avec deux petits exemples? 8)

4-1 Premier exemple : hello world

Comme c’est un premier exemple, je vais faire simple : on allume ou on éteint la led 13 en envoyant H ou L dans la console à travers le WiFi. 😀

Vous pouvez récupérer le code exemple sur mon github : https://github.com/Anderson69s/Arduino_Yun/tree/master/Console_L_H

Chargez le sur votre Arduino Yùn et ouvrez la console (la petite loupe en haut à droite dans l’Arduino IDE) :

yun_console_openUne fenêtre similaire devrait apparaître :

yun_console_helloVous pouvez alors envoyer « H » :

yun_HPour voir la led s’allumer :

yun_H_demo

Sinon envoyez « L » pour l’éteindre :

yun_Lyun_L_demo

4-2 Second exemple : contrôle RGB LED

Dans le premier exemple, je vous aie montré comment allumer un led toute simple via la console. Dans ce second exemple, on va piloter une LED RGB à cathode commune via notre navigateur internet ou notre iPhone à travers le WiFi. Comme je n’aime pas trop faire d’exceptions, il est possible d’utiliser les commandes digitales et analogues dans ce sketch et en plus les sorties PWM sont aussi activés. :mrgreen:

Il vous faut uniquement câbler un LED RGB à cathode commune :

yun_RGB_LEDRécupérez le code sur mon Github : https://github.com/Anderson69s/Arduino_Yun/tree/master/RGB_LED_Yun_Controller

Puis chargez le sur l’Arduino Yùn. Pas la peine d’ouvrir la Console, rien ne se passe dedans… Il vous faut ouvrir un navigateur internet : peu importe lequel normalement il fonctionne tous. Pour informations j’ai déjà testé : FireFox, Chrome, Safari sur iPhone, Safari sur Mac mais dites moi dans les commentaires si d’autres fonctionnent aussi…

Il vous suffit alors de rentré ce type d’url pour controler vos ports :

http://yun.local/ma_commande (car j'ai donné le nom yun à ma carte)

ou

http://192.168.1.74/ma_commande (car c'est l'ip de mon yun sur mon réseau WiFi)

Quel type de commande sont acceptées? Toutes celles qui permettent de controler ou lire la valeur d’un port :

 * /arduino/digital/13     -> digitalRead(13)
 * /arduino/digital/13/1   -> digitalWrite(13, HIGH)
 * /arduino/analog/2/123   -> analogWrite(2, 123)
 * /arduino/analog/2       -> analogRead(2)
 * /arduino/mode/13/input  -> pinMode(13, INPUT)
 * /arduino/mode/13/output -> pinMode(13, OUTPUT)

Voici un petit exemple sur la led RGB, si je veux allumer la led rouge, je me rend à l’adresse suivante :

http://yun.local/arduino/digital/11/1
yun_d11_1
Page Web
yun_d11_1_demo
Résultat

Si je veux l’éteindre j’utilise :

http://yun.local/arduino/digital/11/0
yun_d11_0
Page Web
yun_d11_0_demo
Résultat

Comme les ports 9, 10, 11 sont des ports PWM on peut aussi utiliser :

http://yun.local/arduino/analog/9/197
http://yun.local/arduino/analog/10/30
http://yun.local/arduino/analog/11/175

yun_analog_demoPour créer pleins de couleurs différentes… Si vous voulez piloter le tout facilement grâce à une application, sachez que pour le moment il y en a peu de gratuite que ce soit sur iOS ou Android… J’ai craqué sur iPhone et j’ai acheté l’application Yùn Controller à 0.89 centimes cela ne m’a pas ruiné et elle fonctionne très bien : https://itunes.apple.com/us/app/yun-controller/id858835744

Je n’ai pas de moyen de paiement sur Android… 😳

Voila c’est à vous de jouer maintenant 😉

@Bientôt Anders

2 réponses sur “Arduino Yùn”

  1. merci pour ce tuto, ça m’a vraiment aidé, c’est claire et limpide comme de l’eau de roche à l’inverse d’autres tutoriels
    ,
    je ne sais pas si je dois vous importuner avec ma question, comment faire pour fixer mon adresse ip une bonne fois pour toute car à chaque fois elle change alors que je veux avoir accés à mon arduino de puis l’exterieur !! merci d’avance

    1. Bonsoir Menzer, j’espère que vous allez bien.

      Pas de quoi pour le tutoriel, je suis content qu’il ait pu vous être utile. Vous ne m’importunez pas du tout avec votre question, au contraire, j’aime bien répondre aux questions… Pour rendre l’IP du Yùn fixe, vous avez deux possibilités:

      – soit vous fixez l’adresse IP du Yùn directement sur le DHCP de votre box FAI. Il vous faut donc vous connecter à la passerelle réseau et dire au DHCP de toujours assigner la même adresse pour le Yùn. Ce que je vous recommande.
      – soit une fois connecté sur le Yùn vous lui dites de prendre une adresse IP fixe… Attention cette solution peu rendre votre Yùn inaccessible si votre box n’est pas configurer en IP fixe…

      Cordialement, Anders

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Traduction :