Différences entre versions de « Projets:Magic Control 2022 »

De wikilab
Ligne 61 : Ligne 61 :
 
<span style="color:#FFFFFF; background:#ff6600; padding:5px">En cours</span>
 
<span style="color:#FFFFFF; background:#ff6600; padding:5px">En cours</span>
  
 +
==== Pourquoi ? ====
  
Pour économiser de la batterie, on souhaite remplacer le raspberry pi par une carte de prototypage M5Stack basée sur un microcontrôleur ESP32.
+
Utiliser la raspberry pi pour faire l'interface entre le magic-joystick et le fauteuil pose quelques problèmes :
 +
 
 +
- le fauteuil doit être déconnecté du JSM d'origine du fauteuil
 +
- le raspberry pi doit être allumé en permanence même si on utilise le JSM
 +
 
 +
  Or il est aussi possible de se connecter au fauteuil en tant que second JSM, ce qui permet de conserver la connexion du JSM d'origine. Par contre, cela complique l'apprentissage des séquences d'initialisation qu'il est nécessaire de reproduire pour émuler un joystick à partir du microcontrôleur.
 +
 
 +
 
 +
Pour rappel, pour se connecter avec le BUS CAN au contrôleur du fauteuil, il faut "rejouer" une trame afin de se faire identifier comme un JSM.
 +
 
 +
 
 +
Il y a aussi une limite dans l'utilisation du raspberry pi comme interface car il doit décoder et recoder les trames du JSM, et n'a parfois pas la vélocité pour faire tout ce qu'on veut.
 +
 
 +
 
 +
==== Apprentissage ====
  
 
On a besoin d'un module supplémentaire COMMU pour le bus CAN, ainsi que deux interfaces CAN.
 
On a besoin d'un module supplémentaire COMMU pour le bus CAN, ainsi que deux interfaces CAN.
Ligne 76 : Ligne 91 :
 
TODO: Mettre à jour le schéma de principe tel qu'il va évoluer avec M5Stack / Sans MQTT ?
 
TODO: Mettre à jour le schéma de principe tel qu'il va évoluer avec M5Stack / Sans MQTT ?
  
 +
   
 +
En période d'apprentissage, au lieu de se faire passer pour le JSM d'origine du fauteuil, on utilise un second JSM (JSM_1) qui n'est utilisé que pour l'apprentissage.
 +
 +
 +
On a alors besoin d'enregistrer deux séquences d'initialisation :
 +
- Celle qui est émise par JSM_1 (le deuxième JSM: celui qu'on veut émuler plus tard) lorqsue c'est lui qui démarre le fauteuil.
 +
- Celle qui est émise par JSM_1 lorsque le fauteuil est démarré par JSM_0.
 +
 +
 +
À noter que seul le JSM qui a démarré le fauteuil peut prendre la main sur le déplacement du fauteuil.
 +
 +
 +
On en profite pour enregister deux autres séquences, les séquences "sablier", qui sont émise par le JSM_1 en cas de panne. Encore une fois, ces séquences sont différentes si le fauteuil a été allumé par JSM_0 (dicSablierJSM.bin) ou JSM_1 (dictSablierLocal.bin)
 +
 +
 +
Pour cela, il faut simuler la déconnection du JSM_0 pour faire "planter" le système, puis enregister la séquence sablier émise.
 +
 +
 +
Le système complet pour enregistrer les séquences (Arduino + M5Stack/COMMU + tranceiver CAN) est indépendant du système installé sur le fauteuil. Les séquences enregistrées sont écrites dans des fichiers sur une carte SD qui peut doit être insérée dans le M5Stack qui est sur le fauteuil.
 +
 +
 +
 +
[[File:MAgic_Control_2022_apprentissage_m5Stack.png|700px]]
  
 
=== Serveur WEB interface ===
 
=== Serveur WEB interface ===

Version du 20 octobre 2022 à 15:22

Magic Control 2022

400pxLa propriété « A image principale » (comme le type de page) avec la valeur d’entrée « File: » contient des caractères non valides ou est incomplète, et donc peut provoquer des résultats inattendus lors d’une requête ou d’un processus d’annotation.

Informations
Description Développement du Magic Control pendant le Fabrikarium 2022
Catégorie Mobilité Motricité
Etat d'avancement En cours
Techniques
Durée de fabrication
Coût matériel
Niveau
Licence by-sa
Date de création 2022-10-18
Équipe
Porteur de projet Jonathan
Contributeurs Delphine, LaurentM
Animateur Delphine
Fabmanager Delphine
Référent documentation LaurentM
Nom humanlab Humanlab_MHK
Documentation
Statut de la documentation Partielle
Relecture de la documentation Non vérifiée

Description du projet

Historique

Rappel des épisodes précédents en quelques mots


Chantiers pour ce Fabrikarium

Utilisation de M5Stack

Objectif : Se passer de raspberry pi pour économiser de la batterie

Amélioration de l'interface

  • Revoir la page d'accueil

Intégration de la domotique

  • Apprentissage de trames infrarouge pour remplacer des télécommandes (Contrôle de la télé, ouverture des portes)

État précédent

Schéma de principe

  • Schéma de principe électronique
  • Architecture logicielle

Raspberry pi

  • Installation -> setup.sh
  • Gestion des tâchessupervisord
  • Gestion du réseau

Interface

Chantier du Fabrikarium

R-NET CTRL de Raspberry Pi à M5Stack

En cours

Pourquoi ?

Utiliser la raspberry pi pour faire l'interface entre le magic-joystick et le fauteuil pose quelques problèmes :

- le fauteuil doit être déconnecté du JSM d'origine du fauteuil - le raspberry pi doit être allumé en permanence même si on utilise le JSM

 Or il est aussi possible de se connecter au fauteuil en tant que second JSM, ce qui permet de conserver la connexion du JSM d'origine. Par contre, cela complique l'apprentissage des séquences d'initialisation qu'il est nécessaire de reproduire pour émuler un joystick à partir du microcontrôleur.


Pour rappel, pour se connecter avec le BUS CAN au contrôleur du fauteuil, il faut "rejouer" une trame afin de se faire identifier comme un JSM.


Il y a aussi une limite dans l'utilisation du raspberry pi comme interface car il doit décoder et recoder les trames du JSM, et n'a parfois pas la vélocité pour faire tout ce qu'on veut.


Apprentissage

On a besoin d'un module supplémentaire COMMU pour le bus CAN, ainsi que deux interfaces CAN.

Composants utilisés :

TODO: Mettre à jour le schéma de principe tel qu'il va évoluer avec M5Stack / Sans MQTT ?


En période d'apprentissage, au lieu de se faire passer pour le JSM d'origine du fauteuil, on utilise un second JSM (JSM_1) qui n'est utilisé que pour l'apprentissage.


On a alors besoin d'enregistrer deux séquences d'initialisation : - Celle qui est émise par JSM_1 (le deuxième JSM: celui qu'on veut émuler plus tard) lorqsue c'est lui qui démarre le fauteuil. - Celle qui est émise par JSM_1 lorsque le fauteuil est démarré par JSM_0.


À noter que seul le JSM qui a démarré le fauteuil peut prendre la main sur le déplacement du fauteuil.


On en profite pour enregister deux autres séquences, les séquences "sablier", qui sont émise par le JSM_1 en cas de panne. Encore une fois, ces séquences sont différentes si le fauteuil a été allumé par JSM_0 (dicSablierJSM.bin) ou JSM_1 (dictSablierLocal.bin)


Pour cela, il faut simuler la déconnection du JSM_0 pour faire "planter" le système, puis enregister la séquence sablier émise.


Le système complet pour enregistrer les séquences (Arduino + M5Stack/COMMU + tranceiver CAN) est indépendant du système installé sur le fauteuil. Les séquences enregistrées sont écrites dans des fichiers sur une carte SD qui peut doit être insérée dans le M5Stack qui est sur le fauteuil.


MAgic Control 2022 apprentissage m5Stack.png

Serveur WEB interface

Serveur statique

En cours


Un script python permet de télécharger une version statique toutes les pages html produites par flask dans une liste définie.


Une option a été ajoutée dans le serveur flask pour choisir le mode de chargement des ressources statiques.

IR

En cours


Infrarouge

En cours


Principe Raspberry pi / ir-ctl

Sur la version raspberry pi, on utilise un capteur et des leds infrarouges directement reliées au GPIO.


L'utilitaire en ligne de commande ir-ctl pour enregistrer des trames infrarouges dans des fichiers et les relire. Il s'installe à partir du paquet v4l-utils.


Il est nécessaire de configurer les deux broches GPIO dans le fichier boot/config.txt.

# MagicJoy IR config starts =========
# Uncomment this to enable the infrared module
#for receiver, enable to receive IR signals
dtoverlay=gpio-ir,gpio_pin=18,rc-map-name=ir-keytable
#for transmitter, enable to send IR signals
dtoverlay=gpio-ir-tx,gpio_pin=17
# MagicJoy IR config stops ==========


On peut utiliser --one-shot


Revoir la procédure d'enregistrement

Circuit électronique

TODO: Modification du circuit de Marc

Interface

Nouvelle couleur 31 73 125

Modélisation

Casquette téléphone

Testé et fonctionnel

TODO: Images 3d et photo

Boîtier M5Stack

Cahier des charges

Analyse de l'existant et liens utiles

Matériel

Outils

Coût

Fichiers source

Etapes de fabrication pas à pas