console-bridge.ino

Arduino Yún · Fichier : console-bridge.ino · Langage : Arduino · Usage : Dialoguer avec le croquis depuis la console Linux (telnet/ssh)

La bibliothèque Console remplace Serial côté réseau : depuis une session ssh de la carte, la commande console affiche ce que print le croquis et envoie les frappes clavier. Le débogage sans câble USB, à distance.

Matériel requis

Une Arduino Yun (ATmega32U4 + Linux Linino sur Atheros AR9331, Wi-Fi et Ethernet, emplacement microSD). Aucun ; accès ssh à la carte (mot de passe root de la distribution).

Câblage

Rien à câbler. La carte doit être sur le réseau pour être joignable en ssh.

Fonctionnement

Console.begin() ouvre un canal vers le démon bridge ; Console.available/read reçoivent les caractères tapés côté Linux, println leur revient. Le lien physique est le port série interne MCU↔SoC.

Exécution

Arduino IDE : sélectionne le port série pour téléverser, puis la carte Arduino Yun pour le moniteur. Côté Linux : ssh root@arduino.local (mot de passe de la distribution). L"app Yunwizard configure le réseau.

Variantes

Exposer les mêmes commandes en REST (YunServer) pour un double accès console + HTTP, ou logger dans /tmp via Process.

console-bridge.ino

// Console sur le pont : taper des commandes depuis ssh/telnet.
#include <Bridge.h>
#include <Console.h>

int compteur = 0;

void setup() {
  Bridge.begin();
  Console.begin();            // console = port serie "reseau"
  while (!Console);           // attend qu'un client se branche
  Console.println("Console pont prete : 'c' compte, 'x' reinitialise");
}

void loop() {
  if (Console.available() > 0) {
    char c = Console.read();
    switch (c) {
      case 'c':
        compteur++;
        Console.print("compteur = ");
        Console.println(compteur);
        break;
      case 'x':
        compteur = 0;
        Console.println("reinitialise");
        break;
      default:
        Console.print("inconnu: ");
        Console.println(c);
    }
  }
  // Cote Linux : la commande "console" (Yun) ou telnet localhost 5555 pour
  // voir cette sortie sans ouvrir l'IDE.
  delay(50);
}

← Retour à la fiche