Ova phone home đŸ‘œ

Vous venez de faire l’acquisition d’un robot Ova et il vous tarde de dĂ©couvrir les talents de votre nouvelle compagne programmable ?

Dans ce tutoriel, nous allons voir ensemble comment la prendre en main pour pouvoir la démarrer, la programmer, et bien plus encore.

Sommaire

1. 🚀 DĂ©marrage

Et Finger Touch GIFs | Tenor

Pour dĂ©marrer Ova, tirez dĂ©licatement vers l’avant le slider en dessous de l’Ɠil gauche d’Ova.

Elle se met alors Ă  faire 2 notes de musiques (Do Sol) puis clignote Ă  une certaine frĂ©quence et d’une certaine couleur indiquant la tension de la batterie. Si la couleur est proche du rouge et qu’elle clignote Ă  une frĂ©quence Ă©levĂ©e, cela signifie qu’elle a besoin d’ĂȘtre rechargĂ©e.

1.1. 💡 La machine Ă  Ă©tat d’Ova

AprĂšs quoi, selon sa batterie, Ova dĂ©marre sa « booting dance Â», puis son systĂšme d’exploitation se lance pendant qu’une animation HUE du rose au bleu se rĂ©pĂšte en boucle. A tout moment, vous pouvez savoir dans quel Ă©tat Ova est selon sa couleur :

  • Couleur changeant progressivement de teinte (Ă©tat HUE SETUP) : Ova est en cours de lancement aprĂšs son (re)dĂ©marrage. AprĂšs une dizaine de seconde, Ova passe en Ă©tat AP MODE.
  • Couleur bleue scintillant pĂ©riodiquement toutes les 3 secondes, AP visible (Ă©tat AP MODE) : Ova est accessible et visible autour d’elle via son Access Point (AP) en wifi 2.4 GHz. Elle est joignable via HTTP sur son rĂ©seau Ă  l’adresse 192.168.71.1 (OvaOS 2.x.x) ou sur les anciennes versions Ă  l’adresse 192.168.4.1 (OvaOS 1.x.x). Si un point d’accĂšs/station wifi (STA) est renseignĂ© dans ses paramĂštres (voir Settings dans IDEAL) et qu’aucun appareil ne s’est connectĂ© Ă  Ova depuis son dernier dĂ©marrage, elle cherchera Ă  se connecter Ă  ce point d’accĂšs de maniĂšre concomitante, et une fois connectĂ© passera en STA MODE. Sinon elle restera dans ce mode ad vitam aeternam. Notez que l’animation de sa LED (ainsi que ses capteurs et actionneurs) peut ĂȘtre programmĂ© dans ce mode via son API HTTP connaissant son IP.
  • Couleur magenta scintillant pĂ©riodiquement toutes les 3 secondes, AP visible (Ă©tat STA MODE) : Ova est connectĂ©e au point d’accĂšs/station wifi 2.4GHz renseignĂ© dans ses paramĂštres, et est joignable sur ce rĂ©seau Ă  l’adresse IP dynamique donnĂ©e par le DHCP du rĂ©seau (pour l’obtenir, demander Ă  votre administrateur rĂ©seau). Si un broker MQTT est renseignĂ© dans ses paramĂštres (voir Settings dans IDEAL), elle cherchera Ă  s’y connecter de maniĂšre concomitante, et une fois connectĂ©, passera en Ă©tat STA MQTT. Ova reste visible et accessible via son AP en wifi 2.4GHz et si un device s’y connecte, elle retournera en AP MODE et ne sera plus joignable sur le rĂ©seau STA. De la mĂȘme maniĂšre qu’en AP MODE, son comportement peut ĂȘtre programmĂ© via API HTTP connaissant son IP sur le rĂ©seau STA.
  • Aucune couleur, AP visible (Ă©tat STA MQTT) : Ova est connectĂ©e au point d’accĂšs/station wifi 2.4GHz (couche rĂ©seau du modĂšle TCP/IP) ainsi qu’au broker MQTT (couche applicative du modĂšle TCP/IP) renseignĂ© dans ses paramĂštres. Comme l’état STA MODE, elle reste visible via son AP et si un device s’y connecte, elle retournera en AP MODE et ne sera plus joignable sur le rĂ©seau STA. Contrairement au AP MODE, son comportement est programmable via son API MQTT par l’intermĂ©diaire du broker dont l’adresse IP ou DNS est Ă  obtenir auprĂšs de votre administrateur rĂ©seau, ou vous mĂȘme si vous administrez ce broker sur votre machine (voir le repository github Jusdeliens ovahub).

đŸ€” Pourquoi autant d’API et de protocoles diffĂ©rents ?

🔍 Information
Pour rĂ©pondre au maximum de cas d’usage, Ova utilise principalement 2 protocoles (et donc 2 types d’API) pour communiquer, comme la plupart des objets connectĂ©s. Le protocole HTTP qui permet une utilisation simple, fiable (via TCP) et crossplatform, mais qui est plus lourd et moins adaptĂ© pour du temps rĂ©el (flux capteurs et camĂ©ra), ni pour gĂ©rer une flotte de robots dispatchĂ©s gĂ©ographiquement avec la sĂ©curitĂ© qui s’impose (gestion des droits utilisateurs et mots de passe). Tandis que le protocole MQTT permet ces 2 derniers usages, i.e. vous pourrez dans un mĂȘme programme piloter une centaine de robots dans le monde entier, en limitant l’accĂšs aux capteurs en lecture seule pour certains utilisateurs, et l’accĂšs aux actionneurs pour d’autres avec mot de passe.

1.2. đŸš”â€â™‚ïž Cas d’usage

Selon ses paramĂštres rĂ©seaux enregistrĂ©s (accessibles dans la section Settings de son IDEAL), vous pourrez utiliser Ova selon diffĂ©rent cas d’usage parmi les suivants

1. Sur le point d’accùs Wifi d’Ova HTTP (AP)

NĂ©cessite

đŸ€– 1 robot par utilisateur
đŸ’» 1 ordinateur par utilisateur Ă©quipĂ© de wifi (ou dongle wifi)
📂 1 workspace à transmettre à chaque utilisateur
đŸ‘šâ€đŸ’» 1 IDE installĂ© sur chaque ordinateur, ou bien un navigateur web pour IDEAL

A privilégier

đŸ€– Pour contrĂŽler 1 Ova par utilisateur
đŸ“” Si connexion Internet instable/inexistante ou LAN/wifi inaccessible
đŸ€ En prĂ©sentiel

2. Sur un point d’accùs Wifi en LAN HTTP (STA)

NĂ©cessite

đŸ€– 1 robot par utilisateur paramĂ©trĂ© en STA
đŸ’» 1 ordinateur par utilisateur reliĂ© au mĂȘme LAN que les robots (en Wifi ou RJ45)
đŸ“¶ 1 point d’accĂšs wifi connu et joinable par les robots, reliĂ© au mĂȘme LAN que les ordinateurs
đŸ‘šâ€đŸ’» 1 IDE installĂ© sur chaque ordinateur, ou bien un navigateur web pour IDEAL

A privilégier

✅ Si possible de connecter les robots et ordinateurs Ă  un mĂȘme LAN
đŸ€– Pour contrĂŽler 1 ou plusieurs Ova par utilisateur
đŸ€ En prĂ©sentiel

2 et 3. Sur un point d’accùs Wifi MQTT LAN ou WAN (STA)

NĂ©cessite

đŸ€– 1 robot par utilisateur paramĂ©trĂ© en STA et MQTT
đŸ’» 1 ordinateur par utilisateur reliĂ© au mĂȘme LAN (ou WAN) que les robots (en Wifi ou RJ45)
đŸ“¶ 1 point d’accĂšs wifi connu et joinable par les robots, reliĂ© au mĂȘme LAN (ou WAN) que les ordinateurs
đŸ‘šâ€đŸ’» 1 IDE installĂ© sur chaque ordinateur, ou bien un navigateur web pour IDEAL
🌐 1 broker MQTT connu et joignable

A privilégier

✅ Si possible de connecter les robots et ordinateurs Ă  un mĂȘme LAN (ou WAN)
đŸ€– Pour contrĂŽler 1 ou plusieurs Ova par utilisateur
đŸ€ En prĂ©sentiel ou distanciel
đŸŽïž Pour avoir les meilleures performances
đŸ‘źđŸ»â€â™‚ïž Pour administrer les robots et surveiller les utilisateurs
🏆 Pour rĂ©aliser des challenges gamifiĂ©s entre robots

2. đŸ€– Connexion directe Ă  Ova (AP MODE, cas d’usage 1)

Se connecter en direct sur Ova vous permettra de

Pour programmer plusieurs Ova Ă  la fois, prĂ©fĂ©rez le cas d’usage 2 et 3 paramĂ©trable via le menu Settings IDEAL.

🔍 Information
La connexion directe avec Ova en wifi, vous prive d’accĂšs Ă  Internet (si vous ne disposez pas d’une autre carte rĂ©seaux reliĂ©e Ă  Internet sur votre ordinateur). Si vous disposez d’un point d’accĂšs wifi avec Internet et pour lequel vous connaissez le mot de passe, nous vous dĂ©conseillons ce cas d’usage 1. Utiliser le uniquement pour paramĂ©trer votre (ou vos) Ova pour se connecter Ă  ce point d’accĂšs wifi en STA MODE, afin de pouvoir les programmer via les cas d’usage 2 ou 3.

2.1. 🛜 Connexion physique à Ova

Le robot dĂ©marre le mode point d’accĂšs (AP) une fois que la LED scintille en bleu. DĂšs lors, vous pouvez voir un nouveau SSID visible commençant par « ova Â».

Sur Windows, cliquez sur l’icĂŽne wifi dans la barre des tĂąches en bas Ă  droite, attendez quelques instants que le systĂšme scanne les points d’accĂšs aux alentours. Si besoin, Ă©teignez et redĂ©marrez votre carte wifi. Vous devriez voir apparaitre votre Ova aprĂšs quelques secondes.

🔍 Information
Si vous ne trouvez pas toujours pas Ova aprĂšs plus de 30 secondes, vĂ©rifiez bien que vous ĂȘtes bien dĂ©connectĂ© de tout point d’accĂšs. Si vous ne trouvez pas l’icĂŽne wifi, vous n’avez peut-ĂȘtre pas de carte wifi sur votre ordinateur. Dans ce cas, vous pouvez vous procurez un dongle wifi 2.4Ghz dans le commerce, ou bien utiliser un ordinateur portable.

Pour se connecter, veuillez saisir le mot de passe par défaut (à changer à la premiÚre connexion dans la section Settings)

ovaladiva

Une fois connectĂ© en wifi, Ova se met Ă  chanter une petite mĂ©lodie de grave Ă  aiguĂ« (les 5 premiĂšres notes de la gamme Do majeur/ CM pour les puristes 😁). Notez qu’Ova maĂźtrise aussi sa gamme de l’aiguĂ« au grave, ce qu’elle ne manquera pas de vous signaler en cas de dĂ©connexion.

⛔ Important
La connexion avec Ova peut ĂȘtre altĂ©rĂ©e voir interrompue inopinĂ©ment dans les cas suivants : distance Ă  Ova trop grande (idĂ©alement <5 mĂštres), obstacles entre Ova et l’ordinateur (Ă©viter les murs Ă©pais ou cage de faraday), rĂ©seaux wifi prĂ©fĂ©rĂ© Ă  proximitĂ© de l’ordinateur avec connexion Internet (oublier ces rĂ©seaux de l’ordinateur et cocher l’option reconnexion automatique pour rester connecter Ova), batterie d’Ova faible ou en cours de recharge (fonction idĂ©al en tension nominale, quand Ova est non reliĂ©e au secteur), ou plus rarement quand plusieurs interfaces rĂ©seaux sont connectĂ©es en mĂȘme temps sur l’ordinateur (activer uniquement l’interface wifi et dĂ©sactiver les autres i.e. Ethernet et/ou machine virtuelle).

2.2. đŸ’» Connexion logique Ă  Ova

En Ă©tant connectĂ© sur le mĂȘme rĂ©seau qu’Ova et en connaissant son adresse IP, il est possible de requĂȘter le serveur HTTP embarquĂ© dans Ova pour piloter ses actionneurs, lire l’état de ses capteurs et changer ses paramĂštres rĂ©seaux, soit

  • Dans l’interface fullweb IDEAL embarquĂ©e dans Ova, accessible via votre navigateur web
  • Directement dans votre navigateur via la barre d’adresse ou avec des outils de requĂȘtage HTTP comme Postman
  • Dans un environnement de dĂ©veloppement (IDE) via un langage de programmation comme Python

Pour connaitre l’adresse IP d’Ova sur ovaOS 2.x.x

http://192.168.71.1 (plus rapide)
ou
http://ovaXXXXXXX.local (plus long car nécessite une résolution DNS préalable, XXXXXXX à remplacer par le nom de votre Ova)

Sur ovaOS 1.x.x (pour les anciennes versions d’Ova avant 2024)

http://192.168.4.1

2.3. ⌚ Programmez votre Ova dans votre IDE prĂ©fĂ©rĂ©

Vous souhaitez programmer Ova dans votre IDE prĂ©fĂ©rĂ© comme VS Code ou Pycharm ? Pour cela, 2 options s’offrent Ă  vous selon le langage de programmation que vous souhaitez utiliser

2.3.1. 🐍 Python

TĂ©lĂ©chargez notre module Python pyrobotx sur la page des tĂ©lĂ©chargements pour vous permettre de programmer les actionneurs et lire les capteurs d’Ova en orientĂ© objet, via la classe OvaClientHttpV2 (ou OvaClientHttpV1 pour les anciennes versions d’ovaOS 1.X.X avant 2024), exposant les mĂ©thodes de l’interface IRobot.

Vous pouvez 👉 rĂ©cupĂ©rer un zip standalone en cliquant ici, ou bien 👉 cloner notre repository github en suivant les Ă©tapes du README.md si vous ĂȘtes Ă  l’aise avec git et les submodules.

🔍 Information
Comme son nom l’indique, la classe OvaClientHttpV2 implĂ©mente les responsabilitĂ©s de l’interface, via un client HTTP (d’oĂč la dĂ©pendence avec le module request pour effectuer des requĂȘtes HTTP sur le serveur embarquĂ© dans le robot). Cette mĂȘme interface IRobot est Ă©galement hĂ©ritĂ©e par d’autres clients (OvaClientMqtt, OvaClientHttpV1, OvaClientHttpV2) selon la version du robot et du protocole, ce qui vous permettra de changer de cas d’usage (en STA LAN plutĂŽt qu’en AP, ou bien en MQTT WAN ou LAN) en changeant qu’une seule ligne dans votre programme, celle oĂč vous instanciez le client via le constructeur de la classe fille hĂ©ritant de IRobot.

⛔ Important
Gardez Ă  l’esprit que le protocole HTTP repose sur le TCP et est donc assez gourmand en bande passante (3 ways handshake Ă  chaque session) surtout pour serveur web embarquĂ© sur votre minuscule Ova. Si vous souhaitez vous abonner Ă  un flux constant des capteurs avec un faible temps de rĂ©ponse (ex: pour du streaming camera), privilĂ©gier le protocole MQTT (case d’usage 2 ou 3) qui sera plus rĂ©actif, bien que plus complexe Ă  administrer par l’intermĂ©diaire d’un broker.

⛔ Important
N’oubliez pas de bien rĂ©cupĂ©rer tous les submodules de maniĂšre rĂ©cursive, suite Ă  quoi vous devriez avoir les sous dossiers pyanalytx pychromatx pymusx remplis. S’ils sont vides, ouvrez un terminal Ă  la racine du projet et entrer :
git submodule update –init –recursive

Vous trouverez Ă  la racine du projet clonĂ© ou dezippĂ©, le fichier main.py dans lequel un programme d’exemple est fourni.

from client import *

import random
import time
import env

# Comment this line above 👇 to disable OvaClientMQTT
# robot:IRobot = OvaClientMqtt(robotId=env.ROBOTID, clientId=env.PLAYERID, arena=env.ARENA, username=env.USERNAME, password=env.PASSWORD, server=env.BROKERADDRESS, port=env.BROKERPORT, verbosity=env.VERBOSITY, useProxy=env.USEPROXY)

# Uncomment this line above 👇 to control Ova on a LAN
robot:IRobot = OvaClientHttpV2(url="192.168.71.1", verbosity=3)

...

Commencer par commenter la ligne d’instanciation du robot avec le constructeur OvaClientMQTT, et dĂ©commentez celle utilisant le constructeur OvaClientHttpV2.

VĂ©rifiez que les dĂ©pendences listĂ©es dans le fichier requirements.txt sont installĂ©es en executant l’instruction suivante dans une console

pip install --no-cache-dir -r requirements.txt

VĂ©rifiez que vous ĂȘtes bien connectĂ© sur le mĂȘme rĂ©seau que votre Ova, et qu’elle est bien allumĂ©e en Ă©tat AP MODE (LED devrait scintiller en bleue de maniĂšre pĂ©riodique, avant d’executer le script).

Enfin, dĂ©marrez l’interpreteur python pour executer le script main.py et Ova devrait suivre les instructions du programme, qui selon les versions devrait

  • attendre un certain temps pour qu’Ova rĂ©ponde
  • puis jouer une mĂ©lodie de dĂ©marrage
  • puis renvoyer l’état des capteurs dans la console pendant une dizaine de seconde (« Test sensors Â»)
  • puis se dĂ©placer de maniĂšre alĂ©atoire en jouant une note et une couleur Ă  chaque changement de d’ordre moteur, et ce pendant une dizaine de seconde
  • puis capture rĂ©guliĂšrement des images de la camĂ©ra accessible dans un fichier img.jpeg crĂ©Ă© Ă  la rachine, en affichant le dĂ©lai entre chaque prise dans la console pendant une dizaine de seconde Ă©galement
  • enfin jouer une mĂ©lodie de fin avant que le programme et le robot ne s’arrĂȘte

2.3.2. 🌐 API HTTP

Vous souhaitez programmer en langage web ou tout autre langage disposant de librairie cliente HTTP ? C’est Ă©galement possible, en crĂ©ant vous mĂȘme votre surcouche OvaClientX en orientĂ© objet ou en impĂ©ratif en requĂȘtant le serveur HTTP d’Ova via les mĂ©thodes GET et POST.

Pour piloter les actionneurs

  • đŸ“«POST sur l’URL http://<ip_robot>/api/robot avec <ip_robot> Ă  remplacer par l’adresse IP fixe d’Ova sur son AP
  • ✉ Content-Type: « application/json Â» Ă  POST en contenu de la requĂȘte HTTP
    • « buzzer Â» : (Uint16,Uint16). Set a sequence of tones, with each tone described with 2 params
    • « motor Â» : (Int8,Int8,Uint16). Set a sequence of motor moves, with each move described with 3 params : motor power left (from -100 to 100 ), motor power right, and duration (in ms)
    • « led Â» : Set a animation of colors, described with several keys according to animation type
      • « animation Â» : « static Â» | « twinkle Â» | « fade Â» | « hue Â» | « custom Â»
      • « rgb Â» : (Uint8, Uint8, Uint8). The base color of the animation. Required only for animation values « static Â» « twinkle Â» « fade Â»
      • « repeat Â» : Uint8. How many time the animation must repeat before ending. Required only for animation values « twinkle Â» « fade Â» « hue Â» « custom Â»
      • « duration Â» : Uint16. The duration of the animation period in milliseconds. Required only for animation values « twinkle Â» « fade Â» « hue Â» « custom Â»
      • « colors Â» : Array[ (Uint8, Uint8, Uint8, Uint16) ]. A sequence of fixed array of 4 params describing in the order : red, green, blue color (from 0 to 255 each) and the duration in milliseconds. Required only for animation value « custom Â».
    • « reboot Â» : Uint8. For restarting Ova whatever the value

Pour lire les capteurs

  • đŸ“«GET sur l’URL http://<ip_robot>/api/robot avec <ip_robot> Ă  remplacer par l’adresse IP fixe d’Ova sur son AP
  • ✉ Content-Type: « application/json Â» Ă  GET en contenu de la rĂ©ponse HTTP
    • « version Â» : string. La version d’OvaOS embarquĂ© dans Ova
    • « battery Â» : State of the robot LIPO battery
      • « voltage Â» : Uint16. In millivolt, nominal between 3.6V (empty) and 4.2V (fully recharged)
      • « isCharging Â» : bool. True if the battery is charging, false otherwise. Not implemented.
    • « photo_front Â» : state of the front photosensor below Ova, to be use to track lane on an active surface (like tablet)
      • « lum Â» : Uint8. From 0 (dark) to 255 (light)
    • « photo_back Â» : state of the back photosensor below Ova
      • « lum Â» : Uint8. From 0 (dark) to 255 (light)
    • « reboot Â» : Uint8. For restarting Ova whatever the value

🔍 Information
Il existe d’autres routes requetable en HTTP sur l’API d’Ova pour des fonctionnalitĂ©s plus avancĂ©es. N’hĂ©sitez pas Ă  nous contacter si vos besoins ne sont pas couverts par les Ă©lĂ©ments prĂ©sentĂ©s ci-dessus.

2.4. ✹ Programmez votre Ova sans rien installer, grĂące Ă  son IDEAL embarquĂ© (version beta)

L’environnement de dĂ©veloppement IDEAL d’Ova est conçu pour fonctionner dans votre navigateur web, sans rien n’avoir Ă  installer ni configurer sur votre ordinateur, et ce, sans nĂ©cessiter de connexion Ă  Internet.

Il est IDEAL pour configurer Ova et pour rĂ©pondre aux problĂšmes frĂ©quents quand il est impossible d’installer des logiciels soit parce que

  • les machines sont protĂ©gĂ©s par des droits administrateurs non communiquĂ©s
  • les versions des OS installĂ©s ne sont pas compatibles
  • le(s) proxy(ies) de l’établissement empĂȘche(nt) leur usage
  • par manque de temps

Notre leitmotiv est d’en faire votre IDEAL, un IDE pour permettre un apprentissage optimal de l’ALgorithmique par le jeu et la robotique, en s’adaptant Ă  tous les contextes pĂ©dagogiques imaginables.

2.4.1 đŸ’» Ouvrir IDEAL embarquĂ© dans Ova

Ouvrez votre navigateur web prĂ©fĂ©rĂ© (de prĂ©fĂ©rence Firefox, Chrome, ou Safari pour lesquels nous avons optimisĂ© les fonctionnalitĂ©s), puis tapez dans la barre d’adresse l’URL suivante, selon la version du firmware d’Ova (2.x.x par dĂ©faut depuis octobre 2023).

AprĂšs quelques instants (environ 10 secondes), le launcher d’IDEAL s’affiche et une animation de chargement d’Ova dĂ©bute, indiquant la progression du dĂ©marrage. Le chargement devrait prendre moins de 1 minute selon la distance qui vous sĂ©pare de votre robot.

🔍 Information
La plupart des navigateurs mettent en veille les applications web qu’ils exĂ©cutent une fois qu’ils sont mis en arriĂšre plan, ce qui peut entrainer une dĂ©connexion du robot vous obligeant Ă  recharger IDEAL. Pour Ă©viter d’attendre Ă  nouveau ce chargement, nous vous recommandons de conserver votre navigateur en premier plan pendant toute votre utilisation d’IDEAL.

Une fois le chargement terminĂ©, vous devriez voir s’afficher le workspace (dossier de travail) initial d’IDEAL

🔍 Information
Il est possible comme sur la capture ci-dessus qu’aucun projet n’apparaissent dans Workspace si l’administrateur de votre Ova ne l’a pas souhaitĂ©. Si vous souhaitez charger les projets de prise en main d’Ova, rĂ©cupĂ©rer le workspace .tar depuis notre site accessible Ă  la page suivante.

🔍 Information
Il est possible que IDEAL s’affiche en mode sombre sur votre navigateur. Cela dĂ©pend du mode sĂ©lectionnĂ© dans votre systĂšme d’exploitation. Par sĂ©lectionner le thĂšme clair ou sombre, rendez vous dans les paramĂštres de personnalisation des couleurs de votre OS.
Sous Windows 11 : dans ParamĂštres -> Personnalisation -> Couleurs -> Choisir votre mode

2.4.2 🧭 Barre de navigation

Toujours présente à gauche, la barre de navigation vous permet de savoir dans quelle partie du logiciel vous vous trouvez. Vous trouverez de haut en bas

  • La section Workspace tout en haut, pour votre permettre de crĂ©er, charger, sauvegarder, ouvrir ou supprimer les projets de dĂ©veloppement
  • La section Code qui s’affichera une fois un projet de dĂ©veloppement ouvert pour vous permettre d’accĂ©der Ă  la modification de ses sources et Ă  son exĂ©cution en debug
  • D’éventuelles extensions si le workspace chargĂ© en contient
  • D’éventuels raccourcis des projets 📌 en dessous du sĂ©parateur horizontal, pour les exĂ©cuter directement en release, sans voir les sources du projet
  • La section Settings tout en bas, pour modifier les paramĂštres rĂ©seaux du robot

2.4.3. ⚡ Barre de status

Toujours présente en bas, la barre de status vous donne les informations suivantes de gauche à droite :

  • la version d’IDEAL actuellement utilisĂ©e sur votre navigateur, ainsi que celle du firmware exĂ©cutĂ© sur le robot
  • les liens hypertextes vers les mentions lĂ©gales ainsi que vers la page contact pour nous joindre en cas de problĂšme avec le robot
  • l’état du robot en temps rĂ©el : la taille de sa mĂ©moire flash embarquĂ©e, la tension de sa batterie, la RAM consommĂ©e, la tempĂ©rature interne de son processeur, ainsi que l’état de connexion sans fil.

🔍 Information
Les tĂ©moins d’état d’Ova vous donne de prĂ©cieuses indications pour travailler dans les meilleures conditions. Veuillez Ă  la garder la plus proche de votre ordinateur (tĂ©moin de connexion en vert avec 3 barres), dans une plage de tempĂ©rature processeur entre 20°C et 60°C (tĂ©moin de tempĂ©rature gris), et tension batterie > 10% et de mĂ©moire flash < 90%.

⛔ Important
En dehors de cette plage de fonctionnement optimale, le robot risque de s’endommager de maniĂšre irrĂ©versible ! La garantie ne couvre pas les Ă©ventuels problĂšmes qui surviendraient aprĂšs un tel usage. Plus d’informations dans nos conditions d’utilisation et mentions lĂ©gales en cliquant ici.

2.4.4 📂 Les grands projets d’Ova

Une fois connecté à Ova en AP MODE et IDEAL ouvert dans votre navigateur, plusieurs cartes apparaissent aprÚs le chargement :

đŸ§Ș Les projets « samples Â»

N’hĂ©sitez pas Ă  regarder et modifier les projets d’exemple pour dĂ©couvrir tous les pouvoirs d’Ova

  • sa led pour la faire briller comme un diamant (alias ovashines)
  • son Ɠil de cyborg pour voir tout ce qu’elle voit (alias ovasees)
  • son corps d’athlĂšte pour la faire bouger avec ses moteurs (alias ovamoves)
  • sa voix de diva pour la faire chanter en boucle encore et encore (alias ovasings)
  • ses capteurs de lumiĂšres sous son chĂąssis pour la faire suivre des trajectoires lumineuses (alias ovasenses)

🚧 Work in progress
D’autres projets sont dans les cartons et vous seront partagĂ©s lors des prochaines mises Ă  jour : pour utiliser sa boussole, son accĂ©lĂ©romĂštre
 Pour rĂ©cupĂ©rer les derniers projets de prise en main, rĂ©cupĂ©rer le workspace .tar depuis notre site accessible Ă  la page suivante.

⚗ CrĂ©ez et gĂ©rez vos propres projets

Les cartes en gris pointillé sont toujours présentes et vous permettent :

  • de crĂ©er un nouveau projet
  • de charger un workspace de projets dans une archive .tar depuis votre ordinateur, ou un ordinateur distant via son url http
  • de sauvegarder les projets rĂ©alisĂ©s sur votre ordinateur et/ou pouvoir les transmettre sur d’autres ordinateurs

Pour pouvoir créer votre propre workspace et alterner les développement entre IDEAL et votre IDE préféré (fonctionnalité en version beta), voici les étapes à suivre

  1. Créer un dossier workspaces comme racine de tous vos projets
  2. CrĂ©er Ă  l’intĂ©rieur du dossier workspaces racine 1 dossier par projet portant le nom du projet sans espaces ni caractĂšres spĂ©ciaux.
  3. Ajouter dans chaque dossier projet à cÎté de ses sources un fichier settings.json contenant a minima les informations précisées ci-aprÚs.
  4. Privilégier des noms courts pour tous vos fichiers et sous dossiers, sans espaces ni caractÚres spéciaux
  5. Utiliser votre outil de compression préféré pour archiver le dossier workspaces
    – graphique
    avec 7zip : clic droit sur dossier racine workspaces -> prĂ©ciser « format de l’archive Â» tar, et « mĂ©thode de compression Â» POSIX
    – en ligne de commande dans le dossier contenant le dossier racine workspaces
    tar -cf workspace.tar workspaces
  6. Cliquer sur Load project puis sĂ©lectionner votre archive dans l’explorateur de fichiers

Les cartes entourées en gris continue sont les projets chargés de votre workspace que vous pouvez

  • Ouvrir pour Ă©dition dans la section Code en cliquant dessus (clic gauche souris)
  • Placer en raccourci dans la barre de navigation en cliquant sur le bouton punaise📌
  • Dupliquer en cliquant sur le bouton de copie
  • ExĂ©cuter en mode debug dans la section Code en cliquant sur le bouton play ▶
  • Supprimer en cliquant sur le bouton corbeille đŸ—‘ïž

⛔ Important
Une fois supprimĂ©, le projet est dĂ©finitivement supprimĂ© d’IDEAL et sera impossible Ă  rĂ©cupĂ©rer en cas d’erreur. Prenez garde Ă  bien sauvegarder le workspace en cliquant sur la carte en pointillĂ© Save projects.

L’affichage et la gestion de chaque projet dans IDEAL est rĂ©git par son fichier settings.json qu’il contient. Pour toute modification avancĂ©e dans ce projet, ouvrez celui dans la section Code pour y apporter des modifications.

  • Le nom du projet affichĂ© dans la carte du workspace est la valeur associĂ©e Ă  la clĂ© name
  • Le valeur de description est affichĂ©e en dessous de son nom
  • Tous les projets taggĂ©s public (clĂ© « private Â»: true) chargĂ©s dans votre workspace, sont accessibles Ă  toute personne connectĂ©e sur le mĂȘme rĂ©seau que votre Ova, et pourront ĂȘtre chargĂ©s dans IDEAL sur une autre machine. Par dĂ©faut tous les projets crĂ©Ă©s sont dĂ©finis en privĂ©.
  • Si la valeur de la clĂ© pinned est Ă  true, un raccourci d’exĂ©cution du projet sera disponible dans la barre de navigation en dessous du sĂ©parateur horizontale. Utiliser la clĂ© extension pour apparaĂźtre au dessus du sĂ©parateur.
  • Si la valeur de la clĂ© idealonly est Ă  true, le projet ne sera pas sauvegardĂ© dans l’archive au clic sur Save projects
  • Si la valeur de la clĂ© hidden est Ă  true, le projet ne sera pas affichĂ© dans la section Workspace
  • Si votre projet dĂ©pend d’autre projets du workspace pour fonctionner, rajouter le nom de cette dĂ©pendance dans les valeurs Ă  la clĂ© dependencies
  • La clĂ© displayFileOnProjectOpened permet de prĂ©ciser le fichier du projet qui sera chargĂ© par dĂ©faut dans la section Code

🔍 Information
Les modifications du fichier settings.json d’un projet ne sont pas chargĂ©es Ă  chaud par IDEAL. Pour que ces derniĂšres prennent effet, sauvegarder le projet avec le bouton Save projects et recharger le en cliquant sur Load projects dans la section Workspace.

2.4.5 🐔 Code code codec

Envie de coder ? C’est parti !

Commençons par un projet existant pour se faire la main en cliquant sur la carte du projet ovatalks. La page suivante s’affiche.

L’écran se divise en plusieurs parties que nous allons rapidement parcourir ensemble de gauche Ă  droite.

📑 Le sĂ©lecteur de fichiers

A gauche de l’éditeur de code, il liste tous les fichiers du projets. Cliquez sur le fichier que vous souhaitez Ă©diter. Une fois sĂ©lectionnĂ©, le contenu du fichier s’ouvre dans l’éditeur Ă  droite dans lequel vous pourrez le modifier.

📝 L’éditeur de fichier

L’éditeur embarquĂ© vous permet de modifier le contenu des fichiers directement dans votre navigateur. Un tĂ©moin orange apparait Ă  droite du fichier dans le sĂ©lecteur une fois modifiĂ©, indiquant que des modifications n’ont pas Ă©tĂ© sauvegardĂ©es. N’oubliez pas de rĂ©guliĂšrement sauvegarder votre travail avec le raccourci CTRL+S.

⛔ Important
Par dĂ©faut, les modifications apportĂ©es sont enregistrĂ©es dans la mĂ©moire du navigateur (et non sur le robot). Attention donc Ă  ne pas fermer prĂ©maturĂ©ment le navigateur ou l’onglet IDEAL, ou bien changer de page par un retour arriĂšre, sous peine de perdre tout le travail effectuĂ©.

Une fois votre code Ă©crit, cliquez sur le bouton play ▶ en bas de l’éditeur pour dĂ©marrer l’exĂ©cution de votre projet dans l’iframe de droite.

💬 La console

Une fois dĂ©marrĂ©, utilisez la console pour dialoguer avec votre programme en cours d’exĂ©cution. Pour bien utiliser cette console dans votre script.js, reportez vous Ă  la librairie jsideal dans les dĂ©pendances du projet, et utiliser les fonctions Ideal.prompt et console.log.

Quand le programme vous pose une question, le champs input >_ en bas de la console se mettra à clignoter en orange. Vous pourrez donc écrire dans ce champs puis appuyer sur la touche entrée du clavier pour envoyer votre réponse. Suite à cela, le programme reprendra son exécution.

N’hĂ©sitez surtout pas Ă  utiliser cette console pour dĂ©boguer votre programme et vĂ©rifier s’il fait tout ce que vous attendez de lui ! N’oubliez pas, en algorithmique, le problĂšme se situe bien souvent entre la chaise et le clavier đŸ«”đŸ˜ !

🎹 L’iframe de rendu

Si vous avez l’ñme d’un Picasso des temps modernes, vous serez ravi d’utiliser l’HTML et le CSS pour ajouter une interface graphique Ă  votre script.js, grĂące Ă  cette iframe de rendu situĂ©e Ă  droite de l’écran.

Quand le bouton play est cliquĂ©, votre navigateur exĂ©cutera en premier le fichier index.html. C’est « le point d’entrĂ©e Â» dans une application web.

Voyant ce fichier index.html dans votre projet, le navigateur chargera son contenu dans cette iframe de rendu. S’il trouve une balise script dans ce fichier html (ce qui est le cas par dĂ©faut), il exĂ©cutera dynamiquement son contenu. S’il trouve une balise style, il appliquera les style dĂ©crits en CSS sur la page index.html.

Connaissant cela, Ă  votre pinceau Picasso !

NotĂ© que vous pouvez cacher l’éditeur pour profiter en plein Ă©cran de votre Ɠuvre d’art, en cliquant sur l’icĂŽne de rectangulaire en haut Ă  droite de l’iframe. Cliquez Ă  nouveau dessus pour le faire rĂ©apparaitre.

2.5. ⚙ LibĂ©rer le potentiel d’Ova avec la section Settings d’IDEAL

Vous souhaitez accĂ©der aux Ă©tat STA MODE et STA MQTT (cas d’usage 2 et 3) pour programmer 1 ou plusieurs Ova avec un seul programme, pour relever un dĂ©fi de programmation Ă  plusieurs ou bien crĂ©er par vous mĂȘme un jeu robotique ? Ou bien vous souhaiter administrer plusieurs Ova dans le cadre d’un cours ou d’un Ă©vĂšnement robotique ?

Pour cela vous aurez besoin de modifier ses paramÚtres réseaux, accessibles dans la section Settings, pour lequel vous aurez besoin du mot de passe administrateur.

🔍 Information
Le mot de passe de la section Settings vous est envoyĂ© sur votre adresse mail aprĂšs l’achat du robot. Si vous ĂȘtes le propriĂ©taire de l’Ova que vous utilisez et que vous ne l’avez pas reçu ou que vous l’avez Ă©garĂ©, contactez-nous en cliquant ici. Si vous n’ĂȘtes pas le propriĂ©taire, contactez le responsable de cette Ova.

Une fois le mot de passe saisie, l’accĂšs Ă  cette section vous permettra de modifier les credentials suivantes. Une fois les modifications effectuĂ©es, cliquez sur le bouton Save & Restart pour que ces derniĂšres soient enregistrĂ©es et appliquĂ©es par Ova aprĂšs son redĂ©marrage. Seuls les champs modifiĂ©s seront enregistrĂ©s, ceux laissĂ©s vides ne seront pas enregistrĂ©s.

2.5.1. đŸ€– Access Point (AP Mode, cas d’usage 1)

Ces champs vous permettront de modifier le nom du point d’accùs wifi du robot, ainsi que le mot de passe pour se connecter.

Ova est accessible en wifi sous son nom de SSID commençant par ova, suivi de son adresse mac, suivi de la valeur entrĂ©e dans le champs Network SSID. Par dĂ©faut, ce champs est vide et le SSID affichĂ© est « ovaXXXXXXXX Â» avec XXXXXXXX son adresse mac. Attention, ce champs ne doit pas dĂ©passer 8 caractĂšres ASCII.

🔍 Information
Le SSID du robot peut contenir des caractĂšres unicodes comme des Ă©moji. N’hĂ©sitez pas Ă  bien vous en servir pour facilement distinguer chaque Ova parmi plusieurs !
Ex: entrer « â€ïžred Â» affichera « ovaXXXXXXXX ❀red Â» ce qui sera trĂšs utile pour l’utilisateur d’une ova rouge, qu’il soit daltonien ou non.

Vous pouvez Ă©galement changer le mot de passe du point d’accĂšs, qui doit contenir Ă  minima 8 caractĂšres avec au moins 1 chiffre et 1 caractĂšre spĂ©cial.

⛔ Important
Quelque soit le mode de connexion de votre Ova (AP, STA et/ou MQTT), son point d’accĂšs sera toujours visible. Une connexion en AP sera traitĂ©e prioritairement aux autres modes pour permettre une administration en cas de mauvais paramĂ©trage rĂ©seau.

2.5.2. 🌐 Wifi network (STA Mode, cas d’usage 2)

Ces champs permettront de connecter votre Ova Ă  n’importe quel point d’accĂšs (comme une box, un rĂ©pĂ©teur wifi ou votre tĂ©lĂ©phone en partage de connexion), avec ou sans connexion Internet.

Assurez vous d’entrer les bon identifiants et mot de passe de votre point d’accĂšs. Une fois les paramĂštres enregistrĂ©s, Ova tentera Ă  chaque dĂ©marrage de se connecter au point d’accĂšs demandĂ© si elle le trouve Ă  proximitĂ©.

Une fois connectĂ©e en STA (i.e. Ă  la STAtion wifi enregistrĂ©e), Ova jouera la super (wo)man avec 4 notes qui devrait vous rappeler la bande son d’un hĂ©ro aux supers pouvoirs extraterrestres 🩾, ou encore celle d’un voleur transformĂ© en sultan suite Ă  une rencontre gĂ©niale 🧞!

Sur STA l’attribution de l’adresse IP d’Ova se fait de maniĂšre dynamique via le serveur DHCP du rĂ©seau. Il vous faudra donc la demander Ă  votre administrateur rĂ©seau (celui qui peut se connecter Ă  l’interface admin du DHCP pour lister les IP et baux attribuĂ©s sur le rĂ©seau).

Si vous ne pouvez pas rĂ©cupĂ©rer l’adresse IP d’Ova sur le rĂ©seau, le protocole MQTT est fait pour vous.

2.5.3. 📡 MQTT (cas d’usage 2 et 3)

Ce protocole ubiquiste dans le monde de l’IOT permettra de rĂ©aliser vos projets les plus fous et de connecter votre Ova avec d’autres robots de diffĂ©rentes espĂšces et ce, dans le monde entier, par l’intermĂ©diaire d’un serveur un peu spĂ©cial appelĂ© broker !

Pour libĂ©rer tout le potentiel d’Ova, remplissez ces champs pour indiquer

  • l’url du broker MQTT sur un LAN ou n’importe oĂč dans le monde via Internet. L’url doit commencer par mqtt:// suivi de l’adresse IP de prĂ©fĂ©rence (plus rapide), ou bien du nom de domaine du broker (plus long car nĂ©cessite des requĂȘtes DNS supplĂ©mentaire pour la rĂ©solution du nom de domaine)
  • son port. Par dĂ©faut il s’agit du port 1883
  • Le username et password selon les ACL (Access Control List) dĂ©finis par l’administrateur du broker
🌎 MQTT sur WAN (cas d’usage 3)

Si vous disposez d’un broker en ligne, et d’une bonne connexion Internet dans votre Ă©tablissement, ce cas d’usage est idĂ©al. Chaque utilisateur peut travailler avec son ordinateur et son robot en prĂ©sentiel ou distanciel, et ce, connectĂ© Ă  d’autres robots d’autres utilisateurs potentiellement dans le monde entier via Internet, ainsi que via un serveur applicatif (i.e. une arĂšne) pour gamifier et augmenter le terrain de jeu des robots.

HĂ©berger un broker MQTT en ligne peut s’avĂ©rer assez complexe (surtout de maniĂšre sĂ©curisĂ©) car il faut disposer

  • d’un serveur reliĂ© Ă  Internet 24/24 7j/7
  • d’un bon fournisseur d’accĂšs Internet avec une bonne bande passante
  • d’une adresse IP publique fixe
  • ainsi qu’un nom de domaine avec des certificats valides pour chiffrer la communication avec le broker

C’est pourquoi nous vous proposons une offre clĂ© en main pour monter vos arĂšnes et connecter vos robots, accessibles dans le monde entier de maniĂšre sĂ©curiser, sans vous soucier de la maintenance du broker.

🌐 MQTT sur LAN STA (cas d’usage 2)

Dans les cas oĂč vous souhaiteriez utiliser des robots localement sur LAN (Local Area Network), il est possible d’hĂ©berger localement le broker sur votre ordinateur (minimum 8Go de RAM et un bon processeur permettant une virtualisation hardware).

L’avantage principal est que vous pouvez vous passer d’une connexion Internet : toutes les donnĂ©es circulent uniquement localement, ce qui est idĂ©al pour des usages Ă©vĂšnementiels locaux (salons, journĂ©es portes ouvertes 
).

L’inconvĂ©nient de cette option est qu’il ne sera pas possible de travailler en distanciel, oĂč chaque utilisateur (leur robot et leur ordinateur) Ă©tant potentiellement sur autant de rĂ©seaux LAN diffĂ©rents.

2.5.4. 🔐 Administrator

Utiliser ces champs pour modifier le mot de passe requis pour accéder aux Settings.

⛔ Important
Si vous ĂȘtes propriĂ©taire de votre Ova, pensez Ă  modifier ce mot de passe directement aprĂšs l’acquisition de votre Ova. Choisissez un mot de passe diffĂ©rent de celui du point d’accĂšs AP, de maniĂšre Ă  permettre Ă  des utilisateurs non administrateurs de travailler avec votre Ova, sans sans qu’ils puissent modifier les paramĂštres rĂ©seaux.

3. 🌐 Connexion à plusieurs Ova en HTTP (STA MODE, cas d’usage 2)

Les Ă©tapes Ă  suivre sont les mĂȘmes qu’en LAN AP MODE, Ă  l’exception de l’adresse IP des Ova Ă  contrĂŽler, qui seront soit

  • Ă  rĂ©cupĂ©rer auprĂšs de votre administrateur rĂ©seau (i.e. celui qui peut accĂ©der et lister les baux IP attribuĂ©s automatiquement par le serveur DHCP du rĂ©seau)
  • Ă  rĂ©soudre automatiquement en DNS en connaissant le nom des Ova via l’url http://ovaXXXXXXX.local (XXXXXXX Ă  remplacer par la mac visible dans le SSID wifi du AP d’Ova)

4. 🌍 Connexion à plusieurs Ova en MQTT (STA MODE, cas d’usage 2 et 3)

4.1. 🛜 Connexion physique et logique au broker

Une fois vos Ova parametrĂ©es pour se connecter en STA MODE sur un point d’accĂšs wifi reliĂ© au broker MQTT renseignĂ© dans leurs settings, allumez-les, puis attendez que leurs machines Ă  Ă©tat se connectent en STA MQTT.

DĂšs lors, elles enverront au broker en temps rĂ©el l’état de leurs capteurs Ă  periode dĂ©finie par votre administrateur (300ms par dĂ©faut Ă  chaque allumage, puis parametrable en tant qu’administrateur autorisĂ© par le broker dans les ACLS).

🔍 Information
Par dĂ©faut, Ova est paramĂ©trĂ©e pour se connecter au point d’accĂšs suivant
🛜 SSID : ovawan
🔑 PWD : ovaladiva
Une fois connectĂ©e au point d’accĂšs, elle se connecte au broker officiel de Jusdeliens et est accessible 👉dans l’arĂšne RobotX en rentrant au login ‘ova+adress mac’.
Cela peut ĂȘtre utile pour visualiser sa camĂ©ra et l’état de ses capteurs Ă  distance, mais aussi pour participer Ă  des challenges robotiques dans le monde entier !

Connectez Ă©galement votre ordinateur Ă  un rĂ©seau (Wifi, Ethernet 
) reliĂ© Ă©galement au mĂȘme broker (soit sur le mĂȘme LAN, soit via routeur ou VPN si WAN).

4.2. ⌚ Programmez vos Ova dans votre IDE prĂ©fĂ©rĂ©

Comme pour le mode AP, vous pouvez utiliser n’importe quel IDE selon le langage de programmation souhaitĂ©.

4.2.1.🐍 Python

Procedez aux mĂȘmes Ă©tapes que si vous Ă©tiez en LAN AP MODE, puis dĂ©commenter dans le fichier main.py la ligne d’instanciation du client MQTT et commenter celle du client HTTP.

from client import *

import random
import time
import env

# Uncomment this line above 👇 to control an Ova bot all around the world
robot:IRobot = OvaClientMqtt(robotId=env.ROBOTID, clientId=env.PLAYERID, arena=env.ARENA, username=env.USERNAME, password=env.PASSWORD, server=env.BROKERADDRESS, port=env.BROKERPORT, verbosity=env.VERBOSITY, useProxy=env.USEPROXY)

# Comment this line above 👇 to control on Ova on a LAN
#robot:IRobot = OvaClientHttpV2(url="192.168.71.1", verbosity=3)

...

Puis crĂ©ez un fichier .env Ă  la racine (au mĂȘme niveau que le main.py) et copiez-collez les textes ci-dessous dedants, en rentrant les paramĂštres de connexion Ă  la place des 


# The name of your robot ID as str (i.e. ovaXXXXXXXX for physical robots)
ROBOTID         = ...
# 1 if you want to control the bot through the arena (needed in some arena), 0 otherwise
USEPROXY        = 0
# The name of the arena to join as str
ARENA           = RobotX
# The broker user name provided by a Jusdeliens administrator as str
USERNAME        = ...
# The broker user password as str
PASSWORD        = ...
# The broker ip address or dns as str
BROKERADDRESS   = ...
# The broker port as int 
BROKERPORT      = ...
# Verbosity level as int from 0:no log, to 4: full debug logs
VERBOSITY       = ... 

Selon les rĂšgles d’accĂšs (ACLS) dĂ©finies par le broker et votre username renseignĂ©, vous n’aurez peut-ĂȘtre accĂšs qu’en lecture aux capteurs de vos robots. C’est le cas sur le broker Jusdeliens accessible avec le .env suivant

# The name of your robot ID as str (i.e. ovaXXXXXXXX for physical robots with XXXXXXXX to be replaced by its mac address)
ROBOTID         = ovaXXXXXXXX
# 1 if you want to control the bot through the arena (needed in some arena), 0 otherwise
USEPROXY        = 0
# The name of the arena to join as str
ARENA           = RobotX
# The broker user name provided by a Jusdeliens administrator as str
USERNAME        = demo
# The broker user password as str
PASSWORD        = demo
# The broker ip address or dns as str
BROKERADDRESS   = mqtt.jusdeliens.com
# The broker port as int 
BROKERPORT      = 1883
# Verbosity level as int 0:no log, 1:error, 2:warning, 3:info, 4: full debug logs
VERBOSITY       = 2

Si vous souhaitez plus de contrĂŽle, il vous faudra

4.2.2. 🌐 API MQTT

Vous souhaitez programmer Ova dans d’autres langage que Python ? C’est Ă©galement possible car le protocole MQTT dispose de nombreuses implĂ©mentations via des librairies de la plupart des langages de programmations actuels, avec des codes d’exemple pour bien dĂ©marrĂ© (ex: en C avec eclipse paho mqtt).

Une fois la librairie installĂ©e et importĂ©e, il ne reste plus qu’à comprendre comment requĂȘter (publish) et Ă©couter (subscribe) les robots par l’intermĂ©diaire du broker et des topics et usernames dĂ©finis dans ses ACLS (Access Control List).

Le schéma ci-dessous présente 2 robots (Users Bots : Ova1 et Ova2) connectés chacun à son maßtre (Users PC via leur IDE : respectivement User1 et User2) via le Broker server paramétré avec les ACLS par défaut.

Pour piloter les actionneurs

  • đŸ“«publish sur le topic robotx/clients/state/<robotID> avec <robotId> Ă  remplacer par l’identifiant du robot ova+mac (ovaXXXXXXXXXX)
  • ✉payload json Ă  publier
    • « buzzer Â» : (Uint16,Uint16). Set a sequence of tones, with each tone described with 2 params
    • « motor Â» : (Int8,Int8,Uint16). Set a sequence of motor moves, with each move described with 3 params : motor power left (from -100 to 100 ), motor power right, and duration (in ms)
    • « led Â» : Set a animation of colors, described with several keys according to animation type
      • « animation Â» : « static Â» | « twinkle Â» | « fade Â» | « hue Â» | « custom Â»
      • « rgb Â» : (Uint8, Uint8, Uint8). The base color of the animation. Required only for animation values « static Â» « twinkle Â» « fade Â»
      • « repeat Â» : Uint8. How many time the animation must repeat before ending. Required only for animation values « twinkle Â» « fade Â» « hue Â» « custom Â»
      • « duration Â» : Uint16. The duration of the animation period in milliseconds. Required only for animation values « twinkle Â» « fade Â» « hue Â» « custom Â»
      • « colors Â» : Array[ (Uint8, Uint8, Uint8, Uint16) ]. A sequence of fixed array of 4 params describing in the order : red, green, blue color (from 0 to 255 each) and the duration in milliseconds. Required only for animation value « custom Â».
    • « reboot Â» : Uint8. For restarting Ova whatever the value

Pour lire les capteurs

  • đŸ“«subscribe sur le topic robotx/clients/state/<robotID> avec <robotId> Ă  remplacer par l’identifiant du robot ova+mac (ovaXXXXXXXXXX)
  • ✉payload json notifiĂ©
    • « version Â» : string. La version d’OvaOS embarquĂ© dans Ova
    • « battery Â» : State of the robot LIPO battery
      • « voltage Â» : Uint16. In millivolt, nominal between 3.6V (empty) and 4.2V (fully recharged)
      • « is_charging Â» : bool. True if the battery is charging, false otherwise. Not implemented.
    • « photo_front Â» : state of the front photosensor below Ova, to be use to track lane on an active surface (like tablet)
      • « lum Â» : Uint8. From 0 (dark) to 255 (light)
    • « photo_back Â» : state of the back photosensor below Ova
      • « lum Â» : Uint8. From 0 (dark) to 255 (light)
    • « reboot Â» : Uint8. For restarting Ova whatever the value

🔍 Information
Il existe d’autres topics sur Ova pour des fonctionnalitĂ©s plus avancĂ©es. N’hĂ©sitez pas Ă  nous contacter si vos besoins ne sont pas couverts par les topics prĂ©sentĂ©s ci-dessus.

4.3. đŸ“± Pilotez vos Ova sur votre tĂ©lĂ©phone portable

Le protocole MQTT Ă©tant un standard pour connecter des devices Ă  l’IOT (Internet Of Things), il existe de nombreuses applications sur tĂ©lĂ©phone permettant de crĂ©er son propre dashboard que ce soit pour faire de la datavisualisation sur votre flotte d’objets connectĂ©s, ou bien pour prendre le contrĂŽle Ă  distance.

Nous vous recommendons l’application IoT MQTT Panel sur Play Store, vous permettant de paramĂ©trer des widgets sans coder en WYSIWYG (What You See Is What You Get). Le plus dur Ă©tant de bien comprendre le mĂ©canisme de topic, subscribe et publish du protocole MQTT, ainsi que le protocole JSON et la maniĂšre dont sont formatter les requĂȘtes (publish) et notifications (subscribe) des robots.

🚧 Work in progress
Nous mettrons bientĂŽt en ligne un tutoriel pour dĂ©marrer un dashboard MQTT de zero. Pour les plus impatients d’entre-vous, n’hĂ©sitez pas Ă  nous contacter pour participer Ă  une prochaine masterclasse robotique oĂč nous verrons tout cela ensemble.

4.4. đŸŽČ CrĂ©ez des dĂ©fis robotiques avec Ova et IDEAL Arena

Vous avez aimĂ© les arĂšnes virtuelles avec IDEAL Arena et vous rĂȘvez d’augmenter ces dĂ©fis robotiques avec des vrais robots Ova ? Le mode administrateur d’IDEAL Arena et le protocole MQTT sont faits pour vous 😉

🚧 Work in progress
Cette section du tutoriel est en cours de rĂ©daction. N’hĂ©sitez pas Ă  nous 👉 partager vos avis et envies ou nous contacter directement pour nous permettre de rĂ©pondre au mieux Ă  vos attentes.

5. 🧠 Vous voulez monter en compĂ©tences pour donner des supers pouvoirs Ă  Ova ?

Chez Jusdeliens, nous avons la passion du code et de la pĂ©dagogie dans l’ADN. Nous travaillons avec des Ă©coles et centres de formations pour donner aux apprenants dĂ©sireux de parfaire leurs compĂ©tences, les meilleurs cours possibles avec des challenges Ă©piques mĂ©langeant jeux, stratĂ©gies, intelligences, et dĂ©passement de soi !

Avec nous, vos jeux favoris deviennent rĂ©alitĂ© par l’algorithmique et la robotique : Pokemon n’est plus une fiction, c’est vous le maĂźtre et Ova votre pokĂ©bot !

N’hĂ©sitez pas Ă  nous contacter si vous souhaitez nous retrouver pour le prochain concours de robot, et/ou en formation et/ou cours particuliers adaptĂ©s Ă  vos besoins.

Si vous souhaitez comprendre davantage le web et les langages évoqués, voici quelques courtes vidéos que nous vous recommandons pour comprendre :

Ce qu’est le web et comment il permet d’accĂ©der Ă  des sites web
Le modĂšle client-serveur
Ce qu’il se passe quand vous tapez un url dans votre navigateur
Comment une page web est structurée en html
Comment une page web est mise en forme en css

Pour un apprentissage plus complet et pas à pas de ces langages, vous avez aussi les supers tutoriels gratuits d’Openclassroom

https://openclassrooms.com/fr/courses/1603881-creez-votre-site-web-avec-html5-et-css3
https://openclassrooms.com/fr/courses/6175841-apprenez-a-programmer-avec-javascript

6. đŸ›Łïž Et aprĂšs ?

Vous avez aimĂ© ce tutoriel et vous en voulez d’autres ?

Faites le nous savoir en donnant vos avis et vos envies et nous nous empresserons de vous en rĂ©digez d’autres 😉

Suivez le 👉 (jus de) lien(s) en cliquant ici.

C’est fini pour ce tutoriel ! A vous de jouer maintenant 😉