console-bridge.ino

Arduino Tian (id : tian) · 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 Tian (Microchip SAM3X8E + Linux TianOS sur Atheros AR9344, double port USB, Ethernet et Wi-Fi). 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 avec la carte Arduino Tian : téléversement par le port USB « Native ». Côté Linux : ssh root@arduino.local. La bibliothèque Bridge est identique à celle de la Yun.

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