Différences entre versions de « Projets:Myocoach v2 »
(16 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 22 : | Ligne 22 : | ||
== Cahier des charges == | == Cahier des charges == | ||
− | Facile à mettre en place (plug n play).<br> | + | *Facile à mettre en place (plug n play).<br> |
− | Facile à utiliser.<br> | + | *Facile à utiliser.<br> |
− | Diversité des jeux.<br> | + | *Diversité des jeux.<br> |
− | Open source.<br> | + | *Open source.<br> |
− | Relativement abordable.<br> | + | *Relativement abordable.<br> |
+ | *Limitation des interférences.<br> | ||
== Analyse de l'existant et liens utiles== | == Analyse de l'existant et liens utiles== | ||
Il est déjà possible d’apprendre à utiliser et contrôler sa prothèse de main électrique chez un prothésiste. Cela reste cependant un exercice complexe qui nécessite de se déplacer (parfois loin) pour pratiquer avec le prothésiste.<br> | Il est déjà possible d’apprendre à utiliser et contrôler sa prothèse de main électrique chez un prothésiste. Cela reste cependant un exercice complexe qui nécessite de se déplacer (parfois loin) pour pratiquer avec le prothésiste.<br> | ||
− | L’entreprise Orthopus a | + | Cet apprentissage se fait notamment avec l'outil MyoBoy commercialisé par Ottobock.<br> |
− | Ce projet s’inscrit dans la continuité de celui d’Orthopus et vise à simplifier l’utilisation de l’outil notamment au niveau des branchements et des interférences.<br> | + | Il existe également le projet opensource [https://github.com/Orange-OpenSource/BaahBox-Arduino Baah Box] qui offre un choix d'application et de jeux intéressants.<br> |
+ | L’entreprise Orthopus a développé le Myocoach, une solution pour utiliser sa prothèse chez soi, disponible en open source [https://github.com/orthopus/01-myocoach ici]<br> | ||
+ | Ce projet s’inscrit dans la continuité de celui d’Orthopus et vise à simplifier l’utilisation de l’outil notamment au niveau des branchements et des interférences. Le projet documenté ici est basé sur la version 1.0.1 du MyoCoach.<br> | ||
== Matériel == | == Matériel == | ||
− | + | ===Electronique=== | |
− | *1 Carte Raspberry Pi (3B+) et carte micro SD 16Go<br> | + | *1 Carte Raspberry Pi (3B+) et carte micro SD 16Go (1)<br> |
− | *1 Cable USB vers microUSB<br> | + | *1 Cable USB A vers microUSB (2)<br> |
− | *1 Carte Arduino<br> | + | *1 Carte Arduino Uno (3)<br> |
− | *1 Cable USB vers USB | + | *1 Cable USB A vers USB B (4)<br> |
− | *2 Capteurs EMG avec prise jack 3,5mm ( | + | *2 Capteurs EMG avec prise jack 3,5mm (5)<br> |
− | *1 Batterie externe | + | *1 Batterie externe (2 ampères)<br> |
− | + | ===Hardware=== | |
− | *1 boîtier pour Arduino Uno ( | + | *1 boîtier pour Arduino Uno (3)<br> |
− | *1 boîtier pour Raspberry Pi<br> | + | *1 boîtier pour Raspberry Pi (1)<br> |
*4 vis 5mm x Ø2mm<br> | *4 vis 5mm x Ø2mm<br> | ||
*4 vis 10mm x Ø2mm<br> | *4 vis 10mm x Ø2mm<br> | ||
− | *1 Brassard<br> | + | *1 Brassard (7)<br> |
==Outils== | ==Outils== | ||
Ligne 52 : | Ligne 55 : | ||
==Fichiers source== | ==Fichiers source== | ||
+ | https://github.com/orthopus/01-myocoach<br> | ||
+ | *[[File:Boitier.stl]] | ||
+ | *[[File:Boitier.stl]] | ||
==Montage== | ==Montage== | ||
− | Préparation des cartes électroniques | + | ===Préparation des cartes électroniques=== |
Installer la carte Raspberry Pi (1) dans son boitier.<br> | Installer la carte Raspberry Pi (1) dans son boitier.<br> | ||
Refermer le boitier et insérer la carte microSD dans l'emplacement prévu à cet effet.<br> | Refermer le boitier et insérer la carte microSD dans l'emplacement prévu à cet effet.<br> | ||
Installer la carte Arduino Uno (3) dans son boitier en veillant à bien la clipser au fond de ce dernier.<br> | Installer la carte Arduino Uno (3) dans son boitier en veillant à bien la clipser au fond de ce dernier.<br> | ||
Sécuriser la carte en place à l'aide des 4 vis 5mm x Ø2mm.<br> | Sécuriser la carte en place à l'aide des 4 vis 5mm x Ø2mm.<br> | ||
+ | [[File:Installation carte arduino.jpg|400px]] | ||
+ | |||
Installer les 2 prises jack femelles dans les emplacements prévu à cet effet et les maintenir en place à l'aide des écrous de serrage.<br> | Installer les 2 prises jack femelles dans les emplacements prévu à cet effet et les maintenir en place à l'aide des écrous de serrage.<br> | ||
+ | [[File:installation jacks.jpg|400px]] | ||
+ | [[File:installation jacks écrous.jpg|400px]] | ||
+ | |||
Vérifier que le branchement sur la carte corresponde au schéma suivant.<br> | Vérifier que le branchement sur la carte corresponde au schéma suivant.<br> | ||
Refermer le boitier et le maintenir en place à l'aide des 4 vis 10mm x Ø2mm.<br> | Refermer le boitier et le maintenir en place à l'aide des 4 vis 10mm x Ø2mm.<br> | ||
− | Assemblage | + | [[File:Boitier fermé.jpg|400px]] |
+ | |||
+ | ===Assemblage des éléments=== | ||
Brancher la carte Arduino Uno (3) à la carte Raspberry Pi (1) à l'aide du câble USB A (3).<br> | Brancher la carte Arduino Uno (3) à la carte Raspberry Pi (1) à l'aide du câble USB A (3).<br> | ||
Brancher les 2 capteurs myoélectriques (5) à la carte Arduino (3) via les prises jacks.<br> | Brancher les 2 capteurs myoélectriques (5) à la carte Arduino (3) via les prises jacks.<br> | ||
Brancher la carte Raspberry Pi (1) à la batterie externe (6) à l'aide du câble microUSB (2).<br> | Brancher la carte Raspberry Pi (1) à la batterie externe (6) à l'aide du câble microUSB (2).<br> | ||
+ | [[File:montage.jpg|400px]] | ||
+ | |||
Le Myocoach est allumé à partir du moment où il est branché.<br> | Le Myocoach est allumé à partir du moment où il est branché.<br> | ||
Ligne 81 : | Ligne 96 : | ||
− | ==Etapes de fabrication | + | ==Etapes de fabrication== |
===Matériel nécessaire=== | ===Matériel nécessaire=== | ||
− | + | ====Electronique==== | |
*2 Prises jack femelle 3 pôles avec écrou de verrouillage<br> | *2 Prises jack femelle 3 pôles avec écrou de verrouillage<br> | ||
*2 Câbles jack mâle 3 pôles démontables<br> | *2 Câbles jack mâle 3 pôles démontables<br> | ||
Ligne 92 : | Ligne 107 : | ||
*Gaine thermorétractable<br> | *Gaine thermorétractable<br> | ||
− | + | ====Composants==== | |
*1 ordinateur personnel avec une interface réseau Wi-Fi (ou smartphone/tablette) avec un navigateur Web<br> | *1 ordinateur personnel avec une interface réseau Wi-Fi (ou smartphone/tablette) avec un navigateur Web<br> | ||
*2 Capteurs musculaires de chez Orthopus<br> | *2 Capteurs musculaires de chez Orthopus<br> | ||
Ligne 100 : | Ligne 115 : | ||
*1 câble USB vers USB A<br> | *1 câble USB vers USB A<br> | ||
− | + | ===Outils et logiciels nécessaires=== | |
*Tournevis plat et cruciforme<br> | *Tournevis plat et cruciforme<br> | ||
*Pince à bec long<br> | *Pince à bec long<br> | ||
Ligne 111 : | Ligne 126 : | ||
*Interface de programmation Arduino (Arduino IDE)<br> | *Interface de programmation Arduino (Arduino IDE)<br> | ||
*Interface d’impression 3D (Cura)<br> | *Interface d’impression 3D (Cura)<br> | ||
+ | |||
+ | ===Préparation des capteurs myoélectriques=== | ||
+ | Dans cette version du projet et dans un souci de facilité d’utilisation, les capteurs myoélectriques se branchent à l’aide de prises jack 3,5mm sur la carte Arduino.<br> | ||
+ | Couper à la longueur souhaitée les 2 câbles qui relieront les capteurs à l’Arduino (25-30cm).<br> | ||
+ | Dénuder les deux parties sur 2 cm et les fils individuellement sur 8mm.<br> | ||
+ | Ajouter la gaine thermorétractable sur chaque fil.<br> | ||
+ | Souder les fils sur la prise jack et les pin headers en respectant la polarité suivante.<br> | ||
+ | Image circuit.<br> | ||
+ | Chauffer la gaine thermorétractable au briquet ou à l’air chaud.<br> | ||
+ | Refermer la prise jack.<br> | ||
+ | Emmancher la gaine thermorétractable sur le câble, brancher le pin header sur la fiche du capteur.<br> | ||
+ | Verrouiller l’ensemble en chauffant la gaine.<br> | ||
+ | Préparation des prises jack.<br> | ||
+ | Préparer les 4 fils dupont en coupant une extrémité de manière à garder une fiche mâle et dénuder la partie coupée.<br> | ||
+ | Préparer 2 fils noirs et 2 fils rouges d’environ 5cmet dénuder les extrémités.<br> | ||
+ | Emmancher de la gaine thermorétractable sur chacun des fils et souder l’ensemble en suivant le schéma de montage suivant.<br> | ||
+ | Chauffer la gaine thermorétractable pour sécuriser l’ensemble.<br> | ||
+ | |||
===Flash Raspberry Pi=== | ===Flash Raspberry Pi=== | ||
====Configuration du système d'exploitation==== | ====Configuration du système d'exploitation==== | ||
− | Téléchargez une image Raspberry Pi OS Lite disponible à l'adresse suivante depuis un poste de travail : | + | Téléchargez une image Raspberry Pi OS Lite disponible à l'adresse suivante depuis un poste de travail :<br> |
− | < | + | https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit |
− | Décompressez l'archive téléchargée pour obtenir le fichier image (extension de fichier .img). | + | Décompressez l'archive téléchargée pour obtenir le fichier image (extension de fichier .img).<br> |
− | Depuis un terminal, allez dans le répertoire où se trouve le fichier .img puis connectez une carte MicroSD sur le poste (16Go A1 minimum recommandé). | + | Depuis un terminal, allez dans le répertoire où se trouve le fichier .img puis connectez une carte MicroSD sur le poste (16Go A1 minimum recommandé).<br> |
− | La carte MicroSD doit être démontée si elle a été montée automatiquement. | + | La carte MicroSD doit être démontée si elle a été montée automatiquement.<br> |
− | Lancez ensuite la commande suivante : | + | Lancez ensuite la commande suivante :<br> |
− | + | Remarque : Remplacez ''2021-05-07-raspios-buster-armhf-lite'' par le nom de fichier .img réel.<br> | |
− | < | + | <pre>~ > sudo dd bs=1m if=2021-05-07-raspios-buster-armhf-lite.img of=/dev/rdisk2</pre> |
− | Éjectez la carte MicroSD de la fente SD de la station de travail, puis insérez-la dans la fente MicroSD du Raspberry Pi. | + | Éjectez la carte MicroSD de la fente SD de la station de travail, puis insérez-la dans la fente MicroSD du Raspberry Pi.<br> |
− | Connectez un écran, un clavier et un câble ethernet puis allumez la carte Raspberry Pi. | + | Connectez un écran, un clavier et un câble ethernet puis allumez la carte Raspberry Pi.<br> |
− | Attendez que le système soit prêt. | + | Attendez que le système soit prêt.<br> |
− | Une fois le système démarré, authentifiez-vous sur le terminal avec l'utilisateur "pi" (mot de passe : raspberry). | + | Une fois le système démarré, authentifiez-vous sur le terminal avec l'utilisateur "pi" (mot de passe : raspberry).<br> |
+ | |||
====Accès SSH==== | ====Accès SSH==== | ||
− | Sur le Raspberry Pi, activez l'accès ssh pour autoriser la connexion à distance à partir d'un autre poste de travail. | + | Sur le Raspberry Pi, activez l'accès ssh pour autoriser la connexion à distance à partir d'un autre poste de travail.<br> |
− | Exécutez la commande suivante : | + | Exécutez la commande suivante :<br> |
<pre>pi@raspberrypi : ~ $ sudo raspi-config</pre> | <pre>pi@raspberrypi : ~ $ sudo raspi-config</pre> | ||
− | Sélectionnez l'option suivante sur l'interface utilisateur : 3 Options d'interface , P2 SSH puis sélectionnez Oui . Enfin, sélectionnez Terminer pour enregistrer la configuration et revenir à l'invite de commande. | + | Sélectionnez l'option suivante sur l'interface utilisateur : ''3 Options d'interface , P2 SSH'' puis sélectionnez ''Oui'' . Enfin, sélectionnez ''Terminer'' pour enregistrer la configuration et revenir à l'invite de commande.<br> |
====Clavier==== | ====Clavier==== | ||
− | Il peut être nécessaire de configurer le type de clavier utilisé. Exécutez la commande suivante : | + | Il peut être nécessaire de configurer le type de clavier utilisé. Exécutez la commande suivante :<br> |
<pre>pi@raspberrypi : ~ $ sudo raspi-config</pre> | <pre>pi@raspberrypi : ~ $ sudo raspi-config</pre> | ||
− | Sélectionnez l'option suivante sur l'interface utilisateur : 5 Options de localisation , Clavier L3 puis suivez les instructions pour configurer le clavier (par exemple : Logitech, Français-Français (ancien, alt.), La disposition par défaut du clavier, Pas de touche de composition) . Enfin, sélectionnez Terminer pour enregistrer la configuration et revenir à l'invite de commande. | + | Sélectionnez l'option suivante sur l'interface utilisateur : ''5 Options de localisation , Clavier L3'' puis suivez les instructions pour configurer le clavier (par exemple : Logitech, Français-Français (ancien, alt.), La disposition par défaut du clavier, Pas de touche de composition) . Enfin, sélectionnez ''Terminer'' pour enregistrer la configuration et revenir à l'invite de commande.<br> |
====Mot de passe Pi==== | ====Mot de passe Pi==== | ||
− | Pour changer le mot de passe par défaut, exécutez la commande suivante : | + | Pour changer le mot de passe par défaut, exécutez la commande suivante :<br> |
<pre>pi@raspberrypi : ~ $ passwd</pre> | <pre>pi@raspberrypi : ~ $ passwd</pre> | ||
− | Tapez ensuite le mot de passe actuel, le nouveau mot de passe et enfin validez. | + | Tapez ensuite le mot de passe actuel, le nouveau mot de passe et enfin validez.<br> |
====Installation des packages système==== | ====Installation des packages système==== | ||
− | Pour installer un logiciel à partir d'Internet, il est nécessaire de câbler le Raspberry Pi à un routeur à l'aide de l'interface Ethernet. Pour ce faire, branchez un câble RJ45 sur le port Ethernet de la carte et connectez-le à un routeur disposant d'une connexion à Internet. | + | Pour installer un logiciel à partir d'Internet, il est nécessaire de câbler le Raspberry Pi à un routeur à l'aide de l'interface Ethernet. Pour ce faire, branchez un câble RJ45 sur le port Ethernet de la carte et connectez-le à un routeur disposant d'une connexion à Internet.<br> |
− | Avant d'installer de nouveaux composants, il peut être nécessaire d'obtenir la liste des packages à jour : | + | Avant d'installer de nouveaux composants, il peut être nécessaire d'obtenir la liste des packages à jour :<br> |
<pre>pi@raspberrypi : ~ $ sudo apt update</pre> | <pre>pi@raspberrypi : ~ $ sudo apt update</pre> | ||
− | Ainsi que les packages installés par défaut : | + | Ainsi que les packages installés par défaut :<br> |
<pre>pi@raspberrypi : ~ $ sudo apt upgrade</pre> | <pre>pi@raspberrypi : ~ $ sudo apt upgrade</pre> | ||
− | L'installation de MyoCoach nécessite plusieurs packages pour fonctionner correctement : Pip3, VirtualEnv, Flask, NodeJs, SQLite. | + | L'installation de MyoCoach nécessite plusieurs packages pour fonctionner correctement : Pip3, VirtualEnv, Flask, NodeJs, SQLite.<br> |
− | Ajoutez d'abord le dépôt nodesource apt afin de pouvoir obtenir les packages nodejs : | + | Ajoutez d'abord le dépôt nodesource apt afin de pouvoir obtenir les packages nodejs :<br> |
<pre>pi@raspberrypi : ~ $ curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -</pre> | <pre>pi@raspberrypi : ~ $ curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -</pre> | ||
− | Installez ensuite les packages : | + | Installez ensuite les packages :<br> |
<pre>pi@raspberrypi : ~ $ sudo apt install nodejs git python3-pip python3-flask sqlite3 virtualenv</pre> | <pre>pi@raspberrypi : ~ $ sudo apt install nodejs git python3-pip python3-flask sqlite3 virtualenv</pre> | ||
====Configuration de l'application==== | ====Configuration de l'application==== | ||
− | Obtenir le code d'application Pour obtenir la dernière version du code source de l'application, maintenez la carte connectée à Internet via le port Ethernet et exécutez les commandes suivantes : | + | =====Obtenir le code d'application===== |
+ | Pour obtenir la dernière version du code source de l'application, maintenez la carte connectée à Internet via le port Ethernet et exécutez les commandes suivantes :<br> | ||
<pre>pi@raspberrypi : ~ clone $ git https://github.com/orthopus/01-myocoach.git</pre> | <pre>pi@raspberrypi : ~ clone $ git https://github.com/orthopus/01-myocoach.git</pre> | ||
− | ====Récupérer les dépendances des applications==== | + | =====Récupérer les dépendances des applications===== |
− | Sur le Raspberry Pi, rendez-vous dans le répertoire de la webapp MyoCoach : | + | Sur le Raspberry Pi, rendez-vous dans le répertoire de la webapp MyoCoach :<br> |
<pre>pi@raspberrypi : ~ $ cd 01-myocoach/src/software/webapp/</pre> | <pre>pi@raspberrypi : ~ $ cd 01-myocoach/src/software/webapp/</pre> | ||
− | Pour obtenir les packages Python, exécutez la commande suivante : | + | Pour obtenir les packages Python, exécutez la commande suivante :<br> |
<pre>pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ sudo pip3 install -r requirements.txt</pre> | <pre>pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ sudo pip3 install -r requirements.txt</pre> | ||
− | Exécutez la commande suivante pour obtenir les dépendances nodejs : | + | Exécutez la commande suivante pour obtenir les dépendances nodejs :<br> |
<pre>pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ installation npm</pre> | <pre>pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ installation npm</pre> | ||
− | ====Variables d'environnement et compilation==== | + | =====Variables d'environnement et compilation===== |
− | Créez une copie du fichier .env.example nommé .env : | + | Créez une copie du fichier ''.env.example'' nommé ''.env'' :<br> |
<pre>pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ cp .env.example .env</pre> | <pre>pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ cp .env.example .env</pre> | ||
− | Vérifiez ensuite son contenu et adaptez-le si nécessaire à l'aide d'un éditeur de texte : | + | Vérifiez ensuite son contenu et adaptez-le si nécessaire à l'aide d'un éditeur de texte :<br> |
<pre>pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ nano .env .</pre> | <pre>pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ nano .env .</pre> | ||
− | .env | + | .env<br> |
<pre>NODE_ENV=production | <pre>NODE_ENV=production | ||
ENDPOINT=http://app.myocoach.lan</pre> | ENDPOINT=http://app.myocoach.lan</pre> | ||
− | Puis lancez la compilation Webpack avec la commande suivante : | + | Puis lancez la compilation Webpack avec la commande suivante :<br> |
<pre>pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ npx webpack --config webpack.prod.js</pre> | <pre>pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ npx webpack --config webpack.prod.js</pre> | ||
+ | commande cd pour changedirectory | ||
+ | |||
====Mise en réseau==== | ====Mise en réseau==== | ||
=====Nom d'hôte===== | =====Nom d'hôte===== | ||
− | Dans l'objectif de changer le nom d'hôte MyoCoach (actuellement raspberrypi), ouvrez l'interface des paramètres système avec les commandes suivantes : | + | Dans l'objectif de changer le nom d'hôte MyoCoach (actuellement raspberrypi), ouvrez l'interface des paramètres système avec les commandes suivantes :<br> |
<pre>pi@raspberrypi : ~ $ sudo raspi-config</pre> | <pre>pi@raspberrypi : ~ $ sudo raspi-config</pre> | ||
− | Sur l'interface des paramètres système, sélectionnez 1 Options système , Nom d' hôte S4 puis OK . Tapez le nouveau nom "myocoach" . Sélectionnez Terminer pour enregistrer la configuration. Enfin, sélectionnez Oui pour redémarrer le système afin que les modifications prennent effet. | + | Sur l'interface des paramètres système, sélectionnez ''1 Options système , Nom d' hôte S4'' puis ''OK'' . Tapez le nouveau nom "''myocoach''" . Sélectionnez ''Terminer'' pour enregistrer la configuration. Enfin, sélectionnez ''Oui'' pour redémarrer le système afin que les modifications prennent effet.<br> |
− | Le nom d'hôte du fichier hosts doit être actualisé pour enregistrer le nouveau nom d'hôte. | + | Le nom d'hôte du fichier hosts doit être actualisé pour enregistrer le nouveau nom d'hôte.<br> |
<pre>pi@myocoach:~ $ less /etc/hosts | <pre>pi@myocoach:~ $ less /etc/hosts | ||
hôte | hôte | ||
Ligne 185 : | Ligne 222 : | ||
127.0.1.1 myocoach</pre> | 127.0.1.1 myocoach</pre> | ||
− | ====Configuration d'avahi==== | + | =====Configuration d'avahi===== |
− | Ouvrez le fichier de configuration avahi afin que MyoCoach obtienne le nom "myocoach.lan" sur le réseau : | + | Ouvrez le fichier de configuration avahi afin que MyoCoach obtienne le nom "''myocoach.lan''" sur le réseau :<br> |
<pre>pi@myocoach:~ $ sudo nano /etc/avahi/avahi-daemon.conf</pre> | <pre>pi@myocoach:~ $ sudo nano /etc/avahi/avahi-daemon.conf</pre> | ||
− | avahi-daemon.conf | + | avahi-daemon.conf<br> |
<pre>... | <pre>... | ||
Ligne 196 : | Ligne 233 : | ||
nom-de-domaine=lan | nom-de-domaine=lan | ||
...</pre> | ...</pre> | ||
− | Redémarrez le service pour que les changements prennent effet avec les commandes suivantes : | + | Redémarrez le service pour que les changements prennent effet avec les commandes suivantes :<br> |
<pre>pi@myocoach:~ $ sudo systemctl reload avahi-daemon | <pre>pi@myocoach:~ $ sudo systemctl reload avahi-daemon | ||
pi@myocoach:~ $ sudo systemctl restart avahi-daemon</pre> | pi@myocoach:~ $ sudo systemctl restart avahi-daemon</pre> | ||
====Point d'accès - RaspAP==== | ====Point d'accès - RaspAP==== | ||
− | Pour activer le sans fil sur le Raspberry Pi, utilisez la commande suivante : | + | Pour activer le sans fil sur le Raspberry Pi, utilisez la commande suivante :<br> |
<pre>pi@myocoach:~ $ sudo rfkill unblock wlan | <pre>pi@myocoach:~ $ sudo rfkill unblock wlan | ||
pi@myocoach:~ $ curl -sL https://install.raspap.com | bash</pre> | pi@myocoach:~ $ curl -sL https://install.raspap.com | bash</pre> | ||
− | Puis suivez les instructions. | + | Puis suivez les instructions.<br> |
− | Une fois le Raspberry Pi redémarré, connectez-vous au réseau raspap-webui (psk : ChangeMe) avec la station de travail. Allez sur l'interface de gestion du point d'accès depuis la station de travail avec un navigateur web à l'adresse suivante 10.3.141.1. S'authentifier sur l'interface avec le nom d'utilisateur "admin" (mot de passe : secret) puis aller dans la section Authentification pour changer le mot de passe. | + | Une fois le Raspberry Pi redémarré, connectez-vous au réseau raspap-webui (psk : ChangeMe) avec la station de travail. Allez sur l'interface de gestion du point d'accès depuis la station de travail avec un navigateur web à l'adresse suivante ''10.3.141.1''. S'authentifier sur l'interface avec le nom d'utilisateur "admin" (mot de passe : secret) puis aller dans la section Authentification pour changer le mot de passe.<br> |
− | ====Portail captif==== | + | =====Portail captif===== |
− | Le portail captif est géré par l'application Nodogsplash. | + | Le portail captif est géré par l'application Nodogsplash.<br> |
<pre>pi@myocoach:~ $ sudo apt-get install libmicrohttpd-dev | <pre>pi@myocoach:~ $ sudo apt-get install libmicrohttpd-dev | ||
Ligne 217 : | Ligne 254 : | ||
pi@myocoach:~ $ sudo chgrp pi /srv/nodogsplash | pi@myocoach:~ $ sudo chgrp pi /srv/nodogsplash | ||
pi@myocoach:~ $ git clone https://github.com/nodogsplash/nodogsplash.git /srv/nodogsplash</pre> | pi@myocoach:~ $ git clone https://github.com/nodogsplash/nodogsplash.git /srv/nodogsplash</pre> | ||
− | Pour compiler Nodogsplash, exécutez les commandes suivantes : | + | Pour compiler Nodogsplash, exécutez les commandes suivantes :<br> |
<pre>pi@myocoach:~ $ cd /srv/nodogsplash | <pre>pi@myocoach:~ $ cd /srv/nodogsplash | ||
pi@myocoach:~ $ make | pi@myocoach:~ $ make | ||
pi@myocoach:~ $ sudo make install | pi@myocoach:~ $ sudo make install | ||
− | Ouvrez le fichier de configuration nodogsplash.conf : | + | Ouvrez le fichier de configuration nodogsplash.conf :<br> |
pi@myocoach:~ $ sudo nano /etc/nodogsplash/nodogsplash.conf</pre> | pi@myocoach:~ $ sudo nano /etc/nodogsplash/nodogsplash.conf</pre> | ||
− | Modifiez les lignes suivantes : | + | Modifiez les lignes suivantes :<br> |
<pre>GatewayInterface wlan0 | <pre>GatewayInterface wlan0 | ||
GatewayAddress 10.3.141.1 | GatewayAddress 10.3.141.1 | ||
RedirectURL http://10.3.141.1:2050/redirect.html</pre> | RedirectURL http://10.3.141.1:2050/redirect.html</pre> | ||
− | Dans l'objet FirewallRuleSet users-to-router, ajoutez la ligne suivante : | + | Dans l'objet FirewallRuleSet users-to-router, ajoutez la ligne suivante :<br> |
<pre>FirewallRule allow tcp port 5000</pre> | <pre>FirewallRule allow tcp port 5000</pre> | ||
− | Sauvegardez et fermez le fichier. | + | Sauvegardez et fermez le fichier.<br> |
− | Supprimer les fichiers html du portail captif par défaut de nodogsplash : | + | Supprimer les fichiers html du portail captif par défaut de nodogsplash :<br> |
<pre>pi@myocoach:~ $ sudo rm -rf /etc/nodogsplash/htdocs.</pre> | <pre>pi@myocoach:~ $ sudo rm -rf /etc/nodogsplash/htdocs.</pre> | ||
− | Puis créer un lien vers les fichiers html du portail captif de myocoach : | + | Puis créer un lien vers les fichiers html du portail captif de myocoach :<br> |
<pre>pi@myocoach:~ $ sudo ln -s /home/pi/01-myocoach/src/software/captiveportal /etc/nodogsplash/htdocs.</pre> | <pre>pi@myocoach:~ $ sudo ln -s /home/pi/01-myocoach/src/software/captiveportal /etc/nodogsplash/htdocs.</pre> | ||
− | Ouvrez le fichier de configuration dnsmasq.conf : | + | Ouvrez le fichier de configuration dnsmasq.conf :<br> |
<pre>pi@myocoach:~ $ sudo nano /etc/dnsmasq.conf</pre> | <pre>pi@myocoach:~ $ sudo nano /etc/dnsmasq.conf</pre> | ||
− | Ajoutez ou modifiez la ligne suivante : | + | Ajoutez ou modifiez la ligne suivante :<br> |
<pre>address=/#/10.3.141.1</pre> | <pre>address=/#/10.3.141.1</pre> | ||
− | Sauvegardez et fermez le fichier. | + | Sauvegardez et fermez le fichier.<br> |
− | Copiez le fichier nodogsplash.service puis activez le démarrage au démarrage : | + | Copiez le fichier nodogsplash.service puis activez le démarrage au démarrage :<br> |
<pre>pi@myocoach:~ $ sudo cp /srv/nodogsplash/debian/nodogsplash.service /lib/systemd/system/ | <pre>pi@myocoach:~ $ sudo cp /srv/nodogsplash/debian/nodogsplash.service /lib/systemd/system/ | ||
pi@myocoach:~ $ sudo systemctl enable nodogsplash.service</pre> | pi@myocoach:~ $ sudo systemctl enable nodogsplash.service</pre> | ||
− | Activer le lancement au démarrage : | + | Activer le lancement au démarrage :<br> |
<pre>pi@myocoach:~ $ sudo systemctl enable dnsmasq.service</pre> | <pre>pi@myocoach:~ $ sudo systemctl enable dnsmasq.service</pre> | ||
− | Enfin, redémarrez le système pour enregistrer les modifications. | + | Enfin, redémarrez le système pour enregistrer les modifications.<br> |
− | ====Configuration de Lighttpd==== | + | =====Configuration de Lighttpd===== |
− | Afin d'accéder à l'interface web de MyoCoach et à l'interface web de RaspAP, Lighttpd doit être configuré. | + | Afin d'accéder à l'interface web de MyoCoach et à l'interface web de RaspAP, Lighttpd doit être configuré.<br> |
− | Tout d'abord, l'interface web RaspAP doit avoir un accès restreint au nom de sous-domaine raspap.myocoach.lan. | + | Tout d'abord, l'interface web RaspAP doit avoir un accès restreint au nom de sous-domaine ''raspap.myocoach.lan''.<br> |
<pre>pi@myocoach:~ $ sudo nano /etc/lighttpd/conf-available/50-raspap-router.conf</pre> | <pre>pi@myocoach:~ $ sudo nano /etc/lighttpd/conf-available/50-raspap-router.conf</pre> | ||
− | 50-raspap-router.conf | + | 50-raspap-router.conf<br> |
<pre>server.modules += ("mod_rewrite") | <pre>server.modules += ("mod_rewrite") | ||
Ligne 274 : | Ligne 311 : | ||
} | } | ||
}</pre> | }</pre> | ||
− | Ensuite, créez un nouveau fichier pour déclarer l'hôte virtuel app.myocoach.lan. | + | Ensuite, créez un nouveau fichier pour déclarer l'hôte virtuel ''app.myocoach.lan''.<br> |
<pre>pi@myocoach:~ $ sudo nano /etc/lighttpd/conf-available/40-myocoach.conf</pre> | <pre>pi@myocoach:~ $ sudo nano /etc/lighttpd/conf-available/40-myocoach.conf</pre> | ||
− | 40-myocoach.conf | + | 40-myocoach.conf<br> |
<pre>server.modules += ("mod_proxy" ) | <pre>server.modules += ("mod_proxy" ) | ||
Ligne 287 : | Ligne 324 : | ||
proxy.header = ("upgrade" => "enabled" ) | proxy.header = ("upgrade" => "enabled" ) | ||
}</pre> | }</pre> | ||
− | Ensuite, créez un lien pour activer ce nouvel hôte. | + | Ensuite, créez un lien pour activer ce nouvel hôte.<br> |
<pre>pi@myocoach:~ $ cd /etc/lighttpd/conf-enabled/ | <pre>pi@myocoach:~ $ cd /etc/lighttpd/conf-enabled/ | ||
pi@myocoach:~ $ sudo ln -s ../conf-available/40-myocoach.conf</pre> | pi@myocoach:~ $ sudo ln -s ../conf-available/40-myocoach.conf</pre> | ||
− | Enfin, redémarrez le service pour que les changements soient pris en compte. | + | Enfin, redémarrez le service pour que les changements soient pris en compte.<br> |
<pre>pi@myocoach:~ $ sudo systemctl reload lighttpd | <pre>pi@myocoach:~ $ sudo systemctl reload lighttpd | ||
pi@myocoach:~ $ sudo systemctl restart lighttpd</pre> | pi@myocoach:~ $ sudo systemctl restart lighttpd</pre> | ||
====Service MyoCoach==== | ====Service MyoCoach==== | ||
− | Créez un lien nommé myocoach dans le répertoire /srv vers le répertoire webapp : | + | Créez un lien nommé myocoach dans le répertoire /srv vers le répertoire webapp :<br> |
<pre>pi@myocoach:~ $ sudo ln -s /home/pi/01-myocoach/src/software/webapp /srv/myocoach.</pre> | <pre>pi@myocoach:~ $ sudo ln -s /home/pi/01-myocoach/src/software/webapp /srv/myocoach.</pre> | ||
− | Créez un lien nommé ledbutton dans le répertoire /srv vers le répertoire ledbutton : | + | Créez un lien nommé ledbutton dans le répertoire /srv vers le répertoire ledbutton :<br> |
<pre>pi@myocoach:~ $ sudo ln -s /home/pi/01-myocoach/src/software/ledbutton /srv/ledbutton.</pre> | <pre>pi@myocoach:~ $ sudo ln -s /home/pi/01-myocoach/src/software/ledbutton /srv/ledbutton.</pre> | ||
− | Créez le service systemd de MyoCoach : | + | Créez le service systemd de MyoCoach :<br> |
<pre>pi@myocoach:~ $ cd /lib/systemd/system | <pre>pi@myocoach:~ $ cd /lib/systemd/system | ||
Ligne 324 : | Ligne 361 : | ||
ExecStop= /bin/kill -2 $MAINPID | ExecStop= /bin/kill -2 $MAINPID | ||
ExecStopPost= /bin/bash /srv/ledbutton/set_led_color.sh 255 255 255 0</pre> | ExecStopPost= /bin/bash /srv/ledbutton/set_led_color.sh 255 255 255 0</pre> | ||
− | Pour démarrer le service, exécutez la commande suivante : | + | Pour démarrer le service, exécutez la commande suivante :<br> |
<pre>pi@myocoah:~ $ sudo systemctl start myocoach.service</pre> | <pre>pi@myocoah:~ $ sudo systemctl start myocoach.service</pre> | ||
− | Pour activer le service au démarrage du système, exécutez la commande suivante : | + | Pour activer le service au démarrage du système, exécutez la commande suivante :<br> |
<pre>pi@myocoah:~ $ sudo systemctl enable myocoach.service</pre> | <pre>pi@myocoah:~ $ sudo systemctl enable myocoach.service</pre> | ||
− | L'interface web MyoCoach est maintenant accessible à l'adresse suivante : http://app.myocoach.lan | + | L'interface web MyoCoach est maintenant accessible à l'adresse suivante : http://app.myocoach.lan<br> |
− | Et l'interface web RaspAP est maintenant accessible à l'adresse suivante : http://raspap.myocoach.lan | + | Et l'interface web RaspAP est maintenant accessible à l'adresse suivante : http://raspap.myocoach.lan<br> |
===Flash Arduino Uno=== | ===Flash Arduino Uno=== | ||
Ligne 362 : | Ligne 399 : | ||
} </pre><br> | } </pre><br> | ||
Téléverser le code à l’aide du bouton Image du bouton<br> | Téléverser le code à l’aide du bouton Image du bouton<br> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Version actuelle datée du 14 octobre 2022 à 14:17
Myocoach v2 | |
---|---|
Informations | |
Description | Le MyoCoach est un appareil de rééducation DIY permettant d'apprendre à utiliser des capteurs EMG (musculaires) de manière ludique. |
Catégorie | Motricité Membre supérieur |
Etat d'avancement | Réalisés |
Techniques | arduino, raspberry pi |
Durée de fabrication | de 0 à 2 h |
Coût matériel | De 50 à 100 euros |
Niveau | Facile |
Licence | by-sa |
Date de création | 2022-09-27 |
Équipe | |
Porteur de projet | Bionico |
Contributeurs | Orthopus, Re-factory, Bionico, Mathis, ValentinMHK |
Fabmanager | Bionico, ValentinMHK |
Référent documentation | Bionico, ValentinMHK |
Nom humanlab | Humanlab_MHK |
Documentation | |
Statut de la documentation | Complète |
Relecture de la documentation | Non vérifiée |
Description du projet
Le MyoCoach est une solution Do It Yourself de fabrication d'un appareil de rééducation fonctionnel permettant d'apprendre à utiliser des capteurs EMG (capteurs musculaires) de manière ludique. Ses fonctionnalités permettent de jouer à des jeux vidéos minimalistes à partir des contractions musculaires de l'avant-bras. Sur le plus long terme, il vise à se familiariser avec ces capteurs dans l’objectif d’utiliser une prothèse myoélectrique.
Cahier des charges
- Facile à mettre en place (plug n play).
- Facile à utiliser.
- Diversité des jeux.
- Open source.
- Relativement abordable.
- Limitation des interférences.
Analyse de l'existant et liens utiles
Il est déjà possible d’apprendre à utiliser et contrôler sa prothèse de main électrique chez un prothésiste. Cela reste cependant un exercice complexe qui nécessite de se déplacer (parfois loin) pour pratiquer avec le prothésiste.
Cet apprentissage se fait notamment avec l'outil MyoBoy commercialisé par Ottobock.
Il existe également le projet opensource Baah Box qui offre un choix d'application et de jeux intéressants.
L’entreprise Orthopus a développé le Myocoach, une solution pour utiliser sa prothèse chez soi, disponible en open source ici
Ce projet s’inscrit dans la continuité de celui d’Orthopus et vise à simplifier l’utilisation de l’outil notamment au niveau des branchements et des interférences. Le projet documenté ici est basé sur la version 1.0.1 du MyoCoach.
Matériel
Electronique
- 1 Carte Raspberry Pi (3B+) et carte micro SD 16Go (1)
- 1 Cable USB A vers microUSB (2)
- 1 Carte Arduino Uno (3)
- 1 Cable USB A vers USB B (4)
- 2 Capteurs EMG avec prise jack 3,5mm (5)
- 1 Batterie externe (2 ampères)
Hardware
- 1 boîtier pour Arduino Uno (3)
- 1 boîtier pour Raspberry Pi (1)
- 4 vis 5mm x Ø2mm
- 4 vis 10mm x Ø2mm
- 1 Brassard (7)
Outils
- Ordinateur personnel ou smartphone avec une interface réseau Wi-Fi
Fichiers source
https://github.com/orthopus/01-myocoach
Montage
Préparation des cartes électroniques
Installer la carte Raspberry Pi (1) dans son boitier.
Refermer le boitier et insérer la carte microSD dans l'emplacement prévu à cet effet.
Installer la carte Arduino Uno (3) dans son boitier en veillant à bien la clipser au fond de ce dernier.
Sécuriser la carte en place à l'aide des 4 vis 5mm x Ø2mm.
Installer les 2 prises jack femelles dans les emplacements prévu à cet effet et les maintenir en place à l'aide des écrous de serrage.
Vérifier que le branchement sur la carte corresponde au schéma suivant.
Refermer le boitier et le maintenir en place à l'aide des 4 vis 10mm x Ø2mm.
Assemblage des éléments
Brancher la carte Arduino Uno (3) à la carte Raspberry Pi (1) à l'aide du câble USB A (3).
Brancher les 2 capteurs myoélectriques (5) à la carte Arduino (3) via les prises jacks.
Brancher la carte Raspberry Pi (1) à la batterie externe (6) à l'aide du câble microUSB (2).
Le Myocoach est allumé à partir du moment où il est branché.
Utilisation du Myocoach
Une fois le Myocoach assemblé et donc allumé, il apparait dans les réseaux wifi auquel on peut se connecter dans un délai de 30 secondes.
Se connecter au Myocoach en sélectionnant "myocoach" dans les réseaux disponibles.
Une fenêtre internet s'ouvre avec un portail de connexion.
Choisir "Continue" pour valider l'authentification.
Copier le lien fourni (http://app.myocoach.lan) et le coller dans un nouvel onglet (navigateur Chrome ou Firefox recommandé).
Fermer la fenêtre précédente.
L'appli Myocoach est dès lors lancée et les captations des capteurs myoélectriques apparaissent à l'écran.
Positionner les capteurs myoélectrique comme souhaité et les maintenir en place à l'aide du brassard (7).
Régler le gain du capteur à l'aide du potentiomètre situé sur la face supérieure du capteur jusqu'à obtenir l'intensité désirée.
Une fois la préparation terminée, choisir une activité parmi "Signal", "Training" et "Games" à l'aide du bandeau textuel en haut à gauche.
Etapes de fabrication
Matériel nécessaire
Electronique
- 2 Prises jack femelle 3 pôles avec écrou de verrouillage
- 2 Câbles jack mâle 3 pôles démontables
- 4 Câbles Dupont mâle/mâle ou mâle/femelle (rouge, noir et 2 autre couleurs différentes)
- 2 blocs de 3 pin header mâle/mâle
- Câblerie (câble avec 3 fils, fils noir et rouge)
- Gaine thermorétractable
Composants
- 1 ordinateur personnel avec une interface réseau Wi-Fi (ou smartphone/tablette) avec un navigateur Web
- 2 Capteurs musculaires de chez Orthopus
- 1 carte Raspberry Pi (3B+)
- 1 Carte micro SD ((16Go A1 minimum recommandé))
- 1 carte Arduino Uno
- 1 câble USB vers USB A
Outils et logiciels nécessaires
- Tournevis plat et cruciforme
- Pince à bec long
- Cutter
- Pince à dénuder
- Pince coupante
- Imprimante 3D (et consommable)
- Fer a souder (et consommable)
- Station à air chaud ou briquet
- Interface de programmation Arduino (Arduino IDE)
- Interface d’impression 3D (Cura)
Préparation des capteurs myoélectriques
Dans cette version du projet et dans un souci de facilité d’utilisation, les capteurs myoélectriques se branchent à l’aide de prises jack 3,5mm sur la carte Arduino.
Couper à la longueur souhaitée les 2 câbles qui relieront les capteurs à l’Arduino (25-30cm).
Dénuder les deux parties sur 2 cm et les fils individuellement sur 8mm.
Ajouter la gaine thermorétractable sur chaque fil.
Souder les fils sur la prise jack et les pin headers en respectant la polarité suivante.
Image circuit.
Chauffer la gaine thermorétractable au briquet ou à l’air chaud.
Refermer la prise jack.
Emmancher la gaine thermorétractable sur le câble, brancher le pin header sur la fiche du capteur.
Verrouiller l’ensemble en chauffant la gaine.
Préparation des prises jack.
Préparer les 4 fils dupont en coupant une extrémité de manière à garder une fiche mâle et dénuder la partie coupée.
Préparer 2 fils noirs et 2 fils rouges d’environ 5cmet dénuder les extrémités.
Emmancher de la gaine thermorétractable sur chacun des fils et souder l’ensemble en suivant le schéma de montage suivant.
Chauffer la gaine thermorétractable pour sécuriser l’ensemble.
Flash Raspberry Pi
Configuration du système d'exploitation
Téléchargez une image Raspberry Pi OS Lite disponible à l'adresse suivante depuis un poste de travail :
https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit
Décompressez l'archive téléchargée pour obtenir le fichier image (extension de fichier .img).
Depuis un terminal, allez dans le répertoire où se trouve le fichier .img puis connectez une carte MicroSD sur le poste (16Go A1 minimum recommandé).
La carte MicroSD doit être démontée si elle a été montée automatiquement.
Lancez ensuite la commande suivante :
Remarque : Remplacez 2021-05-07-raspios-buster-armhf-lite par le nom de fichier .img réel.
~ > sudo dd bs=1m if=2021-05-07-raspios-buster-armhf-lite.img of=/dev/rdisk2
Éjectez la carte MicroSD de la fente SD de la station de travail, puis insérez-la dans la fente MicroSD du Raspberry Pi.
Connectez un écran, un clavier et un câble ethernet puis allumez la carte Raspberry Pi.
Attendez que le système soit prêt.
Une fois le système démarré, authentifiez-vous sur le terminal avec l'utilisateur "pi" (mot de passe : raspberry).
Accès SSH
Sur le Raspberry Pi, activez l'accès ssh pour autoriser la connexion à distance à partir d'un autre poste de travail.
Exécutez la commande suivante :
pi@raspberrypi : ~ $ sudo raspi-config
Sélectionnez l'option suivante sur l'interface utilisateur : 3 Options d'interface , P2 SSH puis sélectionnez Oui . Enfin, sélectionnez Terminer pour enregistrer la configuration et revenir à l'invite de commande.
Clavier
Il peut être nécessaire de configurer le type de clavier utilisé. Exécutez la commande suivante :
pi@raspberrypi : ~ $ sudo raspi-config
Sélectionnez l'option suivante sur l'interface utilisateur : 5 Options de localisation , Clavier L3 puis suivez les instructions pour configurer le clavier (par exemple : Logitech, Français-Français (ancien, alt.), La disposition par défaut du clavier, Pas de touche de composition) . Enfin, sélectionnez Terminer pour enregistrer la configuration et revenir à l'invite de commande.
Mot de passe Pi
Pour changer le mot de passe par défaut, exécutez la commande suivante :
pi@raspberrypi : ~ $ passwd
Tapez ensuite le mot de passe actuel, le nouveau mot de passe et enfin validez.
Installation des packages système
Pour installer un logiciel à partir d'Internet, il est nécessaire de câbler le Raspberry Pi à un routeur à l'aide de l'interface Ethernet. Pour ce faire, branchez un câble RJ45 sur le port Ethernet de la carte et connectez-le à un routeur disposant d'une connexion à Internet.
Avant d'installer de nouveaux composants, il peut être nécessaire d'obtenir la liste des packages à jour :
pi@raspberrypi : ~ $ sudo apt update
Ainsi que les packages installés par défaut :
pi@raspberrypi : ~ $ sudo apt upgrade
L'installation de MyoCoach nécessite plusieurs packages pour fonctionner correctement : Pip3, VirtualEnv, Flask, NodeJs, SQLite.
Ajoutez d'abord le dépôt nodesource apt afin de pouvoir obtenir les packages nodejs :
pi@raspberrypi : ~ $ curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
Installez ensuite les packages :
pi@raspberrypi : ~ $ sudo apt install nodejs git python3-pip python3-flask sqlite3 virtualenv
Configuration de l'application
Obtenir le code d'application
Pour obtenir la dernière version du code source de l'application, maintenez la carte connectée à Internet via le port Ethernet et exécutez les commandes suivantes :
pi@raspberrypi : ~ clone $ git https://github.com/orthopus/01-myocoach.git
Récupérer les dépendances des applications
Sur le Raspberry Pi, rendez-vous dans le répertoire de la webapp MyoCoach :
pi@raspberrypi : ~ $ cd 01-myocoach/src/software/webapp/
Pour obtenir les packages Python, exécutez la commande suivante :
pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ sudo pip3 install -r requirements.txt
Exécutez la commande suivante pour obtenir les dépendances nodejs :
pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ installation npm
Variables d'environnement et compilation
Créez une copie du fichier .env.example nommé .env :
pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ cp .env.example .env
Vérifiez ensuite son contenu et adaptez-le si nécessaire à l'aide d'un éditeur de texte :
pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ nano .env .
.env
NODE_ENV=production ENDPOINT=http://app.myocoach.lan
Puis lancez la compilation Webpack avec la commande suivante :
pi@raspberrypi : ~ /01-myocoach/src/software/webapp $ npx webpack --config webpack.prod.js
commande cd pour changedirectory
Mise en réseau
Nom d'hôte
Dans l'objectif de changer le nom d'hôte MyoCoach (actuellement raspberrypi), ouvrez l'interface des paramètres système avec les commandes suivantes :
pi@raspberrypi : ~ $ sudo raspi-config
Sur l'interface des paramètres système, sélectionnez 1 Options système , Nom d' hôte S4 puis OK . Tapez le nouveau nom "myocoach" . Sélectionnez Terminer pour enregistrer la configuration. Enfin, sélectionnez Oui pour redémarrer le système afin que les modifications prennent effet.
Le nom d'hôte du fichier hosts doit être actualisé pour enregistrer le nouveau nom d'hôte.
pi@myocoach:~ $ less /etc/hosts hôte 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 127.0.1.1 myocoach
Configuration d'avahi
Ouvrez le fichier de configuration avahi afin que MyoCoach obtienne le nom "myocoach.lan" sur le réseau :
pi@myocoach:~ $ sudo nano /etc/avahi/avahi-daemon.conf
avahi-daemon.conf
... [serveur] host-name=myocoach nom-de-domaine=lan ...
Redémarrez le service pour que les changements prennent effet avec les commandes suivantes :
pi@myocoach:~ $ sudo systemctl reload avahi-daemon pi@myocoach:~ $ sudo systemctl restart avahi-daemon
Point d'accès - RaspAP
Pour activer le sans fil sur le Raspberry Pi, utilisez la commande suivante :
pi@myocoach:~ $ sudo rfkill unblock wlan pi@myocoach:~ $ curl -sL https://install.raspap.com | bash
Puis suivez les instructions.
Une fois le Raspberry Pi redémarré, connectez-vous au réseau raspap-webui (psk : ChangeMe) avec la station de travail. Allez sur l'interface de gestion du point d'accès depuis la station de travail avec un navigateur web à l'adresse suivante 10.3.141.1. S'authentifier sur l'interface avec le nom d'utilisateur "admin" (mot de passe : secret) puis aller dans la section Authentification pour changer le mot de passe.
Portail captif
Le portail captif est géré par l'application Nodogsplash.
pi@myocoach:~ $ sudo apt-get install libmicrohttpd-dev pi@myocoach:~ $ sudo mkdir /srv/nodogsplash pi@myocoach:~ $ sudo chown pi /srv/nodogsplash pi@myocoach:~ $ sudo chgrp pi /srv/nodogsplash pi@myocoach:~ $ git clone https://github.com/nodogsplash/nodogsplash.git /srv/nodogsplash
Pour compiler Nodogsplash, exécutez les commandes suivantes :
pi@myocoach:~ $ cd /srv/nodogsplash pi@myocoach:~ $ make pi@myocoach:~ $ sudo make install Ouvrez le fichier de configuration nodogsplash.conf :<br> pi@myocoach:~ $ sudo nano /etc/nodogsplash/nodogsplash.conf
Modifiez les lignes suivantes :
GatewayInterface wlan0 GatewayAddress 10.3.141.1 RedirectURL http://10.3.141.1:2050/redirect.html
Dans l'objet FirewallRuleSet users-to-router, ajoutez la ligne suivante :
FirewallRule allow tcp port 5000
Sauvegardez et fermez le fichier.
Supprimer les fichiers html du portail captif par défaut de nodogsplash :
pi@myocoach:~ $ sudo rm -rf /etc/nodogsplash/htdocs.
Puis créer un lien vers les fichiers html du portail captif de myocoach :
pi@myocoach:~ $ sudo ln -s /home/pi/01-myocoach/src/software/captiveportal /etc/nodogsplash/htdocs.
Ouvrez le fichier de configuration dnsmasq.conf :
pi@myocoach:~ $ sudo nano /etc/dnsmasq.conf
Ajoutez ou modifiez la ligne suivante :
address=/#/10.3.141.1
Sauvegardez et fermez le fichier.
Copiez le fichier nodogsplash.service puis activez le démarrage au démarrage :
pi@myocoach:~ $ sudo cp /srv/nodogsplash/debian/nodogsplash.service /lib/systemd/system/ pi@myocoach:~ $ sudo systemctl enable nodogsplash.service
Activer le lancement au démarrage :
pi@myocoach:~ $ sudo systemctl enable dnsmasq.service
Enfin, redémarrez le système pour enregistrer les modifications.
Configuration de Lighttpd
Afin d'accéder à l'interface web de MyoCoach et à l'interface web de RaspAP, Lighttpd doit être configuré.
Tout d'abord, l'interface web RaspAP doit avoir un accès restreint au nom de sous-domaine raspap.myocoach.lan.
pi@myocoach:~ $ sudo nano /etc/lighttpd/conf-available/50-raspap-router.conf
50-raspap-router.conf
server.modules += ("mod_rewrite") $HTTP["host"] == "raspap.myocoach.lan" { $HTTP["url"] =~ "^/( ?!(dist|app|ajax|config)).*" { url.rewrite-once = ("^/(.* ?)(\ ?.+)?$"=>"/index.php/$1$2" ) server.error-handler-404 = "/index.php" } }
Ensuite, créez un nouveau fichier pour déclarer l'hôte virtuel app.myocoach.lan.
pi@myocoach:~ $ sudo nano /etc/lighttpd/conf-available/40-myocoach.conf
40-myocoach.conf
server.modules += ("mod_proxy" ) # proxy myocoach $HTTP["host"] == "app.myocoach.lan" { proxy.debug = 1 proxy.server = ( """ => ( ("host" => "10.3.141.1", "port" => "5000" ) ) ) proxy.header = ("upgrade" => "enabled" ) }
Ensuite, créez un lien pour activer ce nouvel hôte.
pi@myocoach:~ $ cd /etc/lighttpd/conf-enabled/ pi@myocoach:~ $ sudo ln -s ../conf-available/40-myocoach.conf
Enfin, redémarrez le service pour que les changements soient pris en compte.
pi@myocoach:~ $ sudo systemctl reload lighttpd pi@myocoach:~ $ sudo systemctl restart lighttpd
Service MyoCoach
Créez un lien nommé myocoach dans le répertoire /srv vers le répertoire webapp :
pi@myocoach:~ $ sudo ln -s /home/pi/01-myocoach/src/software/webapp /srv/myocoach.
Créez un lien nommé ledbutton dans le répertoire /srv vers le répertoire ledbutton :
pi@myocoach:~ $ sudo ln -s /home/pi/01-myocoach/src/software/ledbutton /srv/ledbutton.
Créez le service systemd de MyoCoach :
pi@myocoach:~ $ cd /lib/systemd/system pi@myocoach:/lib/systemd/system $ sudo nano myocoach.service myocoach.service [Unit] Description= Controls myocoach webapp service Requires= lighttpd.service After= lighttpd.service [Install] WantedBy= multi-user.target [Service] Type= simple User= root WorkingDirectory= /srv/myocoach/app ExecStart= /bin/python3 ./app.py ExecStartPost= /bin/bash /srv/ledbutton/set_led_color.sh 0 0 255 0 ExecStop= /bin/kill -2 $MAINPID ExecStopPost= /bin/bash /srv/ledbutton/set_led_color.sh 255 255 255 0
Pour démarrer le service, exécutez la commande suivante :
pi@myocoah:~ $ sudo systemctl start myocoach.service
Pour activer le service au démarrage du système, exécutez la commande suivante :
pi@myocoah:~ $ sudo systemctl enable myocoach.service
L'interface web MyoCoach est maintenant accessible à l'adresse suivante : http://app.myocoach.lan
Et l'interface web RaspAP est maintenant accessible à l'adresse suivante : http://raspap.myocoach.lan
Flash Arduino Uno
Connecter la carte Arduino Uno à l’ordinateur
Choisir le type de carte Arduino : Uno
Sélectionner le port COM
Copier le code suivant
void setup() { Serial.begin(9600); // Starts the serial communication } void loop() { int sensorValue1 = analogRead(A0); int sensorValue2 = analogRead(A1); // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V): float e1 = map(sensorValue1,0,1023,0,255); float e2 = map(sensorValue2,0,1023,0,255); byte data = Serial.read(); if(data == 's') { Serial.print(e1); Serial.print(":"); Serial.print(e2); Serial.println(); } delay(10); }
Téléverser le code à l’aide du bouton Image du bouton