Arbalet MEKI (fr)


#1

Le projet Arbalet MEKI est un projet que nous allons réaliser pendant 1 mois dans le cadre de notre licence pro DAWIN (Développement d’Application WEB), pour enrichir le projet Arbalet et dans une optique de rendre encore plus ludique et facile l’utilisation des outils ludiques Arbalet.

Nous sommes 5 étudiants et nous allons réaliser une application (Arbalet Meki Live) permettant à un public non-initié de programmer un équipement Arbalet à l’aide d’un langage graphique facile d’utilisation.
Parmi ces langages il existe Scratch, Snap!, Blockly (liste non exhaustive).

  • Le langage graphique anciennement utilisé était Snap! nous allons passer à la technologie Blockly et recréer des blocs adaptés aux équipements lumineux Arbalet.

  • Création d’une application multi-plateformes (Windows, MacOs, Linux), le choix de la technologie ElectronJS semble judicieuse pour le développement de celle-ci.
    L’application proposera aussi un modèle de client-serveur: un enseignant avec l’application serveur tandis que les élèves utilisent l’application cliente. L’enseignant pourrait ainsi choisir qui a la main sur la table lumineuse Arbalet Lava et récupérer le contrôle à tout moment.

  • Remplacement du microcontrôleur Arduino par un microcontrôleur ESP32 qui apportera le support du bluetooth (BLE) et la connexion WIFI aux équipements Arbalet.

  • Développement d’une application mobile (Android et IOS) permettant d’interagir avec un équipement via le bluetooth(BLE). La fonctionnalité principale attendue consiste en un simulateur de “manette” (contrôleur de jeu) permettant de jouer aux jeux s’exécutant sur Arbalet. Ainsi un smartphone pourrait remplacer les manettes filaires qui sont actuellement utilisées. ( Récupération et adaptation de l’application manette réalisé dans le cadre du projet Arbalet St-Jean)

Le projet a commencé le lundi 4 février et se conclut pour nous le 8 mars.


#2

Retour sur le début de projet (1) :
Phase 1 : Comprendre et définir le cadre projet

  • Entretien avec 2 professeurs de notre licence pour leur expliquer notre projet 20 min.

  • Echanges avec Yoan Mollard afin d’éclaircir les zones de flou et ainsi pouvoir nous lancer dans le projet.

  • Traitement des informations qui nous ont été donné, classification et traitement.

Phase 2 : Gestion de projet
Afin de bien savoir ce qu’on a faire et quel est l’ordre d’importance, nous avons mit en place, en équipe, un backlog afin de définir les différentes User Story (une description simple et compréhensible d’une fonctionnalité).

Création de diagrammes :

  • Diagramme d’activité

  • Diagramme de séquences

  • Diagramme de cas d’utilisation

Phase 3 : Création de maquettes

  • Maquette pour l’interface d’administration du professeur ( application Arbalet Meki Live)

  • Maquette pour l’interface de programmation graphique pour les élèves

Phase 4 : Préparation de la phase de démo de lundi 11 février matin

  • L’application Arbalet Meki lance le serveur et voit les sessions qui s’y connecte.

  • Lancer un programme depuis l’ESP32 (microcontrôleur) pour allumer les lumières de la table lumineuse (Arbalet Lava)

  • Allumer une led grâce a son téléphone et le bluetooth relié à l’ESP


#3

Début du sprint 1
La première semaine de projet s’est conclue par la réalisation de deux maquettes, l’intégration d’une première page et la mise en place de la première fonction de notre application ElectronJs ( permettre à des ordinateurs d’accéder au serveur de l’ordinateur du professeur et de s’y connecter), nous avons aussi réalisé toute la partie gestion de projet (backlog, diagrammes et distributions des taches), avons changé le microcontrôleur arduino par un microcontrôleur ESP32.

Première phase de démos ce matin
Pour la démonstration de ce matin nous avons fait deux démonstrations, une qui consistait à montrer qu’on avait réussi à lancer un programme initialement prévu pour un microcontrôleur Arduino sur un ESP 32 afin de lancer des séquences lumineuses sur la table Arbalet Lava ( table lumineuse programmable).

  • Point positif les leds s’allument

  • Point négatif certaines leds avaient un comportement étrange

La deuxième démonstration consistait à montrer les premières étapes de l’application Arbalet Meki Live

  1. Le professeur lance l’application Arbalet Meki Live
  2. Il lance un serveur
  3. Les élèves se connectent a ce serveur en tapant l’IP de ce serveur dans leur barre de recherche
  4. L’élève entre son prénom
  5. Le professeur voit l’élève connecté sur son interface et peut dire que c’est l’élève qui a la main sur la table lumineuse.

-> Maquette de l’interface du professeur

Cette démonstration nous permet de savoir quels axes nous devons travailler par la suite :

  1. Régler le problème des leds
  2. Savoir comment faire communiquer notre application avec notre ESP32

Notre entrevue avec Yoan Mollard nous a permis d’éclaircir ces deux points.
-> Analyse du problème sur les leds, on s’est aperçu que la tension au début de la chaîne de led était de 5 V alors qu’en fin de chaîne la tension n’est plus qu’à 3,5 V.

-> Pour la communication entre notre application et l’ESP32 nous allons donc utiliser le port série.


#4

Fin Sprint 1

Problème de comportement de nos leds :
Cette semaine Yoan nous a aidé à analyser et trouver le problème de nos leds, il a réalisé trois tests avant de trouver le problème.

  • On constatait que le problème se constatait lorsqu’on arrivait a une rangée de leds précise, on a donc changé cette rangée mais sans succès le problème persistait

  • On a regardé si le problème était lié aux câbles qui étaient probablement pas assez résistant pour conserver une tension de 5 v entre la led 1 et la led 150, mais après quelques tests, le problème restait le même.

  • On a testé les leds avec l’arduino pour voir si le problème venait de l’ESP, avec l’arduino plus de problème, le problème était donc lié à l’ES. Après des recherches Yoan a trouvé le problème et là corrigé.
    -> Forum qui nous a permit de corriger le problème : https://forums.adafruit.com/viewtopic.php?t=117327

Communication via le port Série :
Concernant la communication depuis notre application avec l’ESP32, nous allons communiquer avec le port série.
Pour communiquer avec le port série il faut envoyer les actions en binaire.
La trame se compose de l’en-tête, nombres de pixels qu’on va changer, le numéro du pixel qu’on va changer, et sa couleur en RGB.

Intégration de blockly :

Dans ce projet nous devions passer du langage graphique Snap! au langage graphique Blockly et donc recréer certains blocs pour pouvoir allumer des leds.
Une fois tous les blocs réalisé nous les avons intégrer a notre projet et nous avons fait matché avec notre charte graphique.

Ecran de simulation
Lorsque les élèves cherchent à créer un programme, ils ont a leur disposition un écran de simulation de la table lumineuse, ça leur permet de visualiser leur programme, voir si il fonctionne comme ils le souhaitent et une fois satisfait de leur code, ils peuvent demander au professeur pour avoir la main sur la table et ainsi visualiser leur programme sur la table Arbalet Lava.

En ajoutant les bons blocs on peut réaliser un drapeau tricolore par exemple.

Démonstration de lundi :

  • On ouvre l’application Arbalet Meki Live

  • On lance le serveur

  • L’élève se connecte a ce serveur en tapant l’IP de ce serveur dans leur barre de recherche

  • L’élève entre son prénom

  • Le professeur voit l’élève connecté sur son interface

  • L’élève va réaliser son premier programme par exemple faire un drapeau tricolore

Si on arrive à bien intégrer la nouvelle bibliothèque sur notre ESP32 on pourra peut-être allumer une led avec une commande javascript et ainsi le montrer lors de la démonstration.