Installation du Programme RadioShuttle pour Turtle

Une fois que le fichier « Turtle_RadioShuttle.NUCLEO_L432KC.bin » généré a été glissé-déposé dans la fenêtre « RadioShuttle STM32 Utility », le logiciel RadioShuttle est lancé sur la carte Turtle.

Figure 1: Le fichier binaire a été chargé sur la carte

Définir les propriétés pour « RadioTest »

Afin de fonctionner correctement, certaines propriétés doivent être définies pour l’application exemple « RadioTest ». Ceux-ci peuvent être définis à l’aide de l’application « PropertyEditor », un outil utile pour écrire des propriétés dans la mémoire permanente (« non volatile ») de la carte Turtle. Les étapes suivantes décrivent comment procéder.

L’application de test RadioShuttle (« RadioTest ») est destinée aux débutants. Il y a deux appareils qui communiquent entre eux et partagent un message simple. Un appareil s’appelle Nœud, l’autre est une Station. En appuyant sur le bouton « User », un message est transmis du nœud à la station. Cela fonctionne également dans l’autre sens, la station peut également transmettre un message au nœud, en supposant que le nœud a été configuré comme Nœud en ligne (par défaut est Nœud hors ligne).

Une fois que le logiciel a été flashé avec succès sous macOS, une fenêtre de programme « Terminal » s’ouvre automatiquement (figure 2) indiquant toute sortie du programme flashé, par exemple la version du compilateur d’armement, la tension et le type de source, la mémoire disponible, etc.

Remarque :
Si le programme du terminal ne démarre pas automatiquement (comme décrit ci-dessus), veuillez vous rendre dans le menu « Terminal > ttyusbmodem<…> » dans le outil « RadioShuttle STM32 Utility ».

Sous Windows, l’émulateur de terminal (par ex. « Tera Term ») doit se connecter au nouveau port COM. La section « Connecter l’UART série de la cible au terminal hôte » sur la page Interface Nucleo ST-Link explique cela en détail.

Figure 2: Sortie « Terminal » macOS

Cela ouvrira le PropertyEditor de RadioShuttle. Cet outil permet de lister toutes les propriétés (l), de définir une propriété (s<numéro d'attribution de la propriété>=<valeur>, et de supprimer une propriété (d) de la mémoire permanente.

  • Tapez l (pour la liste) et appuyez sur ENTER pour voir une liste de toutes les propriétés disponibles (« LORA_DEVICE_ID » et « LORA_CODE_ID » sont déjà prédéfinis, voir figure 3).
Figure 3: Liste des propriétés
PropriétéTypeDescription
LORA_DEVICE_IDT_32BITID du dispositif de la carte (préréglé en usine, ne pas toucher !)
LORA_CODE_IDT_32BITCode de la carte (préréglé en usine, ne pas toucher !)
LORA_RADIO_TYPET_32BITType d’utilisation (non défini) :
1 = Nœud hors ligne (fonctionnement comme capteur radio en mode « deepsleep »)
3 = Nœud en ligne (fonctionnement en tant que capteur radio, prêt à recevoir en permanence)
4 = Station basic (fonctionnement en tant que serveur pour les petits réseaux)
5 = Station serveur (fonctionnement en tant que serveur pour les grands réseaux)
LORA_REMOTE_IDT_32BITID de communication du station distant (non défini)
LORA_APP_PWD
(optionnel)
T_STRDéfinit le mot de passe de cryptage AES-128 par application

Comme nous l’avons déjà mentionné, un appareil (c.-à-d. la carte Turtle) fonctionne comme Nœud, l’autre comme Station. Le RadioShuttle « PropertyEditor » permet de spécifier si la carte fonctionne en tant que noeud ou station.

Station

  • Pour la carte Turtle qui devrait être la Station, tapez s14=4 (pour Station Basic) et appuyez sur ENTER

Pour permettre à la station d’envoyer des messages à un nœud, le « LORA_REMOTE_ID » du nœud doit être saisi sur la carte de station. Dans ce cas, le nœud doit être configuré en tant que nœud en ligne pour recevoir des messages d’autres personnes :

  • Tapez s12=11002 et appuyez sur ENTER
Figure 4: Défini comme Station Basic LoRa

Nœud

  • Pour la carte Turtle qui devrait être le Nœud, tapez s14=1 (pour Nœud hors ligne) et appuyez sur ENTER

Pour permettre au nœud d’envoyer des messages à une station, le « LORA_REMOTE_ID » de la station doit être entré dans le tableau des nœuds :

  • Tapez s12=11000 et appuyez sur ENTER
Figure 5: Défini comme nœud hors ligne LoRa

Vidéo didactique : Non-volatile settings (NV Property)

Exécuter le programme exemple « RadioTest »

Une fois les propriétés requises réglées dans les deux cartes Turtle, le programme d’exemple « RadioTest » inclus dans le logiciel RadioShuttle peut être exécuté pour tester la configuration des cartes :

  • Windows : Ouvrir « Tera Term » et régler le numéro de port et la vitesse de transmission via « Setup » > « Serial port… » (voir la section Connecter l’UART série de la cible au terminal hôte pour des informations détaillées)
  • macOS : Ouvrir « Terminal »
  • Appuyez sur le bouton « User »  de l’un des cartes Turtle, Nœud ou Station

Le programme « RadioTest » envoie un message (« TxSend ») qui est reçu par le dispositif adressé (« RxDone »).

Dans l’exemple suivant (figure 6), le nœud (ID « 11002 ») a transmis avec succès un message à la station (ID « 11000 »). Le protocole de transmission informe également sur la fréquence radio utilisée, le facteur d’étalement et la bande passante, le temps de transmission du message, le décalage de fréquence Rx, etc. A l’aide d’un nœud en mode hors ligne, le protocole de transmission se termine par la ligne Putting the radio into Sleep.

Figure 6: Envoi d’un message d’un nœud en mode hors ligne à la station

Cet exemple (figure 7) montre l’inverse : la station (ID « 11000 ») a transmis avec succès un message à un noeud en mode hors ligne (ID « 11002 »).

Figure 7: Envoi d’un message de la station à un nœud en mode hors ligne

Réinitialiser la carte

Si vous appuyez sur le bouton « Reset », la LED verte de la carte Turtle clignote rapidement, indiquant qu’elle attend la connexion d’un terminal via le port COM virtuel USB. Si aucune connexion n’a été établie après 30 secondes, la carte continue sans console série USB.

États des LEDs dans l’exemple « RadioTest »

LED (verte):

  • Clignotement rapide
    La carte attend 30 secondes pour connecter un programme terminal (via le port COM virtuel USB)
  • Éteinte
    La carte est inactive dans le « deepsleep » et n’a pas d’activité CPU
  • Partiellement clignotante
    La carte est en train de traiter des tâches, pendant qu’elle est occupée, la LED verte est allumée
  • Légèrement allumée en permanence
    La carte est connectée à un port COM virtuel USB, le CPU devient actif toutes les millièmes de seconde pour entretenir le canal USB
  • Allumée
    Un programme d’interrogation ou d’accrochage qui s’exécute indéfiniment sans passer en mode veille
  • Brièvement allumée
    Après l’émission d’un message LoRa (TX)

LED (rouge):

  • Pulseé
    Après le démarrage du logiciel RadioShuttle, la LED clignote brièvement toutes les 2 secondes pour indiquer que la carte est active. Ceci peut être arrêté en désactivant timerUpdate() dans le fichier « main.cpp »
  • Brièvement allumée
    Après la réception d’un message Lora (RX)

Bien entendu, les LEDs peuvent également être assignées individuellement par l’utilisateur.

L’idée des LEDs est de détecter l’activité du CPU et/ou de la radio. C’est très utile pour savoir si le conseil est occupé. Par exemple, si la LED verte est allumée en permanence, la carte ne se reposera pas pour économiser de l’énergie (sommeil), mais elle est occupée par des protocoles USB ou d’autres activités. L’impulsion de deux secondes de la LED rouge indique principalement que la carte est « vivante ». Pour les déploiements finaux avec les meilleures économies d’énergie, ce comportement peut être désactivé.

Vue d’ensemble de tous les exemples d’applications (en cours)

NomBibliothèqueExplication
CPUBenchCPUBench.cppMesure les performances des CPU flottants et entiers
PropertyEditorNVPEditor.cppProgramme de réglage des paramètres (propriétés), qui sont stockés de manière permanente sur la carte. Restez après le redémarrage ou même après l’installation d’un nouveau programme. Voir aussi Mémoire Permanente pour les Réglages
LoRaPingPongLoRaPingPong.cppExemple de LoRa ping pong
RadioContinuousTXRadioContinuousTX.cppProgramme de diagnostic qui émet en continu, par exemple pour les mesures d’antennes RF
BlinkyBlinky.cppClignotement périodique d’une LED à l’aide d’une minuterie à faible consommation d’énergie
RadioTestNewRadioTestNew.cppVoir l’explication détaillée ci-dessus
PanicButtonPanicButton.cppEnvoie les données du capteur à une station distante, a été ajouté. Ceci inclut la température, l’humidité et l’état de la batterie. Il est doté d’une sonnerie de base supplémentaire pour confirmer à la personne qui cherche de l’aide que l’alarme est en route
RemoteTempSensorRemoteTempSensor.cppCapteur de température à distance RadioShuttle; pour les clients et des serveurs
RemoteRelayRemoteRelay.cppCommande à distance du relais RadioShuttle; pour les clients et des serveurs
  • Appuyez sur « h » suivi du raccourci du programme pour voir l’aide à la commande correspondante, par exemple h b (lignes d’aide « Blinky »)

Vidéo didactique : Non-volatile settings (NV Property)

Fiche produit PDF (en angl.)