P11 Détecteur d'obstacles pour fauteuils électriques : Différence entre versions
(→02 Février - 06 Février) |
(→02 Février - 06 Février) |
||
Ligne 239 : | Ligne 239 : | ||
'''Partie Software :''' | '''Partie Software :''' | ||
+ | |||
+ | <u>Mise en réseau des capteurs à ultrason</u> | ||
[[Fichier:2_SR08_2_Metres.png | vignette | left| upright=0.7 | 2 SRF08 en réseau]]<br> | [[Fichier:2_SR08_2_Metres.png | vignette | left| upright=0.7 | 2 SRF08 en réseau]]<br> | ||
Ligne 248 : | Ligne 250 : | ||
− | [[Fichier:Montage_6_SRF08.jpg | frameless| upright=2.5 | left| Montage 6 SRF08 + Arduino]]<br> | + | [[Fichier:Montage_6_SRF08.jpg | frameless| upright=2.5 | left| Montage 6 SRF08 + Arduino]] |
+ | |||
+ | Après cette mise en réseau de 2 capteurs, nous avons décidé de tester l’ensemble des capteurs. Pour cela, après avoir soudé des connecteurs sous chaque capteur, on modifie alors l’adresse de chacun afin de pouvoir les différencier sur le bus I²C. Au niveau du code, on déclare alors un objet SonarSRF08 pour chaque capteur impliqué dans le réseau. On modifie alors la range et le gain de chaque capteur et on affiche la valeur récupérée dans le port série de la même façon qu’auparavant.<br> | ||
+ | |||
+ | <br>[[Fichier:6_SRF08_2_Metres.PNG | frameless| center| upright=2 | 6 SRF08 en réseau]]<br><br><br> | ||
+ | |||
+ | <u> Découverte du PWM avec Arduino</u> | ||
− | + | [[Fichier:Duty 50 Oscillo.png | vignette| left| upright=0.7 | Signal PWM créé via Arduino]] | |
+ | [[Fichier:PWM Duty Freq 50.PNG | vignette| right| upright=0.7 | Signal PWM lu via Arduino]] | ||
− | + | <br>Ensuite, nous avons décidé d’apprendre à utiliser des signaux PWM (lecture et écriture) afin de pouvoir récupérer les signaux RM et LM et de les modifier. Avec l’arduino Mega 2560, nous avons pu récupérer et créer des signaux PWM simplement et les visualiser sur oscilloscope. | |
+ | Nous avons alors cherché à modifier la fréquence du signal PWM écrit afin de correspondre à la fréquence des signaux RM et LM relevés. Avec l’Arduino Mega, il nous a été impossible de modifier les signaux PWM créés par manque de documentation. Cependant, ayant un arduino UNO à disposition, nous avons alors décidé de l’utiliser. Tous les programmes précédents étant fonctionnels, nous avons pu réussir à modifier la fréquence d’un signal PWM créé en utilisant un prescaler. Ce qui signifie que la fréquence du signal créé sera fonction de la fréquence maximale de l’horloge interne du microprocesseur. De plus, nous avons réussi à afficher la valeur de la fréquence du signal mesuré ainsi que son duty cycle. |
Version du 9 février 2015 à 14:02
Sommaire
Présentation du projet
Le but principal du projet est de créer un module d'aide au déplacement pour les personnes en fauteuil roulant électrique. Ce module devra être utilisable sur la plupart des fauteuils roulants existants et devra permettre de faciliter la vie des utilisateurs.
Le contexte est le suivant :
- Les maisons d'accueil accompagnent des personnes polyhandicapées présentant un handicap physique sévère, un handicap mental plus ou moins sévère et des troubles associés. La plupart des résidents sont donc des utilisateurs de fauteuils roulants électriques. Le besoin principal de ces personnes est de pouvoir se déplacer dans la maison en toute sécurité. Cependant, leur autonomie n'est pas complète et l'aide des accompagnateurs est souvent requise afin d'intervenir ou de prévenir lors de chocs avec des obstacles, murs etc... C'est pourquoi le développement d'un module d'aide au déplacement pour les fauteuils permettrait aux résidents de se déplacer en sécurité avec une détection d'obstacles et de chocs efficace ainsi que des avertissements visuels / sonores afin d'alerter les accompagnateurs en cas de problèmes majeurs.
Avancement du projet
22 -29 Septembre
- > Documentation sur les fauteuils roulants électriques en général ainsi que sur les modules d'aide au déplacement existants.
- > Première prise de contact par mail / téléphone avec Charly Chevalley ainsi que Corinne Meillier, directrice de la maison du Hameau à Hantay.
- > Rédaction d'un cahier des charges du point de vue étudiant, à améliorer après la réunion avec les membres du projet le Lundi 29 Septembre à la maison d'accueil spécialisée.
- > Début de réflexion aux potentielles solutions aux problèmes évoqués :
- - Chocs avec obstacles : capteurs de chocs TOR;
- - Détection de distance d'obstacles : capteurs à ultrasons;
- - Détection de couloir étroit / passage de porte : capteurs infrarouges;
- - Chocs avec obstacles : capteurs de chocs TOR;
29 Septembre - 5 Octobre
Réunion à la maison d'accueil spécialisée du Hameau avec :
- > Le personnel :
- - Mme Meillier, directrice de la maison;
- - Mme Lescure, ergothérapeute;
- - L'homme d'entretien;
- - Un appareilleur de chez Facon Médical.
- > 3 résidents en fauteuils roulants électriques.
Au cours de cette réunion, nous avons pu écouter et comprendre les besoins des résidents et du personnel concernant le projet.
Nous avons alors appris que les problèmes principaux à résoudre étaient les collisions :
- > Avec les murs;
- > Avec les radiateurs;
- > Lors des passages de portes;
- > Entre les résidents (collisions entre fauteuils).
Les résidents ont aussi exprimé des contraintes fortes concernant :
- > Le blocage du fauteuil :
- - Un résident doit rester maître de son fauteuil, autrement dit, le système développé ne devra pas empêcher le déplacement du fauteuil lors de la détection d'un obstacle par exemple.
- > La discrétion du système :
- - Les résidents sont déjà conscients de la taille imposante du fauteuil et ne désirent pas d'un système voyant. On évitera aussi d'avoir de lourdes connexions filaires autour du fauteuil.
De plus, le projet a soulevé la question de la garantie des fauteuils électriques. En effet, nous ne devons en aucun cas modifier la structure électronique afin de conserver la garantie constructeur. Pour cela, nous avons appris grâce à l'appareilleur que les fauteuils possèdent une nappe électronique pour les signaux de commande. Il serait donc possible de créer notre propre nappe en remplacement sans affecter la garantie du fauteuil.
A l'issue de cette réunion, nous avons alors plusieurs objectifs à réaliser :
- > Rédiger un cahier des charges technique complet pour le projet
- > Présenter des solutions possibles et les chiffrer (en temps de travail, prix)
6 Octobre - 11 Novembre
Réunions avec B.Conrard afin de discuter du cahier des charges et des potentielles solutions techniques.
Rédaction d'un cahier des charges précis prenant en compte toutes les contraintes apportées par l'équipe de la maison d'accueil, portant notamment sur la précision des besoins.
Rédaction d'une fiche de solutions potentielles au cahier des charges, prenant en compte différentes technologies de capteurs (ultrason, infrarouge...) et de commande (Arduino, PIC)
Cahier des charges et fiche de solutions potentielles validés par M.Conrard,il nous reste maintenant à présenter ces deux documents à l'équipe de la maison du Hameau.
Cahier des charges au 11 Novembre : Fichier:CahierDesCharges11Novembre.pdf
Solutions au 11 Novembre : Fichier:Solutions11Novembre.pdf
11 - 21 Novembre
Réunion le 20 Novembre avec toute l'équipe de la maison d'accueil spécialisée du Hameau et M Conrard.
Les thèmes abordés ont été les suivants:
- -Révision du cahier des charges afin de voir les modifications à apporter
- -Présentation des différentes solutions pour le développement du module
- -Choix d'une solution
A la fin de cette réunion nous avons convenu d'une solution pour le développement du module : un réseau de capteurs à ultrasons couplé avec une commande Arduino permettant l'adaptation des signaux de commande du FRE.
Nous aurons très prochainement le fauteuil roulant électrique à notre disposition grâce à Martin NICOLAS, ergothérapeute à la maison de la Gerlotte.
De plus, nous avons décidé de développer un robot avec du matériel Bioloid afin de simuler le comportement d'un FRE muni du module d'aide au déplacement. Cela aura pour effet d'apporter un support visuel plus concret aux personnes participant au projet.
Compte rendu complet de la réunion du 20 Novembre 2014:Fichier:Compte rendu réunion 20-11-2014.pdf
26 Novembre - 4 Décembre
Assemblage d'un module Bioloid de base afin de simuler une base roulante similaire à un FRE : la Melody Car.
N.B : Nous avons choisi d'utiliser un unique capteur sur la face avant permettant la détection avant, droite et gauche. Sur le module final, on aura évidemment une détection à l'arrière du fauteuil.
Développement du programme Bioloid avec différents comportements :
- Déplacement avant;
- Déplacement sur la gauche;
- Déplacement sur la droite.
Dans chaque cas, le but est de détecter la présence d'un obstacle dans toutes les directions, de ralentir progressivement selon la distance de ce dernier et de finalement s'arrêter s'il est considéré comme trop proche.
En parallèle, nous avons reçu le FRE (actuellement en C006) avec son chargeur. Il possède une commande par Joystick simple et la possibilité de régler la vitesse.
La majorité des signaux de commande est située dans le boîtier Joystick avec les traitements correspondants pour que le tout soit envoyé aux moteurs.
10 Décembre - 16 Décembre
Rédaction du rapport de mi-projet et préparation de la soutenance du 17 décembre.
Rapport : Fichier:Rapport Intermédiaire PFE GAPAS Rose Tixier.pdf
15 Janvier - 30 Janvier
Partie Electronique/Etude de l'existant:
- >Démontage de l’ancienne commande : analyse rapide de la carte en visuel.
On observe 2 nappes :
- -1 blanche qui sort du joystick
- -1 sortant de la carte électronique vers le reste du fauteuil (qui doit contenir les signaux pour les moteurs).
Nous ne pouvons pas tester l'envoi de signaux car nous n'avons pas d'alimentation pour ce joystick.
>Démontage de la commande actuelle du fauteuil :
Une fois la commande démontée on observe 1 nappe blanche sortant du joystick, ainsi qu'un regroupement de fils de différentes couleurs.
On émet les hypothèses suivantes :
- -Selon les inscriptions électronique de la carte, on retrouve en rouge vif : l’alim (Volt), et en noir l’alim -(COM).
- -Les inscriptions RM- RM+ LM - LM+ : correspondent à l'envoi des données pour le moteur droit et pour le moteur gauche. </br>
- -On interprète RM pour Right Motor et LM pour Left Motor.
- -On interprète RM pour Right Motor et LM pour Left Motor.
- -Les couleurs des fils correspondent aux couleurs des boutons sur la commande (pour le support blanc contenant 4 fils) : Changer de vitesse, Klaxon.
Une fois l'étude de la carte réalisée nous avons alors étudié les signaux.
Nous avons observé:
- -Les signaux aux bornes de la nappe de communication entre le joystick et la carte électronique
- L'étude de la tension aux bornes de la nappe nous a seulement permis de voir les pattes utilisées pour l'envoi des signaux de commande
- Nous avons aussi observé les signaux en sortie du composant HE8 (joystick), cependant l'étude de l'évolution de la résistance ne nous a donné aucun résultat exploitable.
- L'étude de la tension aux bornes de la nappe nous a seulement permis de voir les pattes utilisées pour l'envoi des signaux de commande
- -Les signaux allant de la carte électronique vers les moteurs.
Nous avons alors obtenu les résultats suivants: Fichier:Analyse Signaux.xls
Nous avons tout d'abord étudié les signaux en tension avant de les visualiser à l'oscilloscope afin de confirmer notre hypothèse de départ sur les inscriptions de la carte électronique. En étudiant les tensions aux bornes de ces signaux, nous avons pu voir une évolution des valeurs en fonction de la vitesse du fauteuil choisie (entre 1 et 5) comme présenté dans le fichier Excel.
En étudiant maintenant les signaux PWM :
On remarque alors des signaux qui varient en fonction de la vitesse du fauteuil et des différentes rotations possibles, tout comme les tensions mesurée auparavant avec une précision plus importante.
Pour les différentes vitesses étudiées, les rapports cycliques permettant d'effectuer une rotation vers la droite ou la gauche varient peu. Cependant pour avancer ou reculer le rapport cyclique évolue fortement selon la vitesse choisie.
On confirme alors l'hypothèse de départ : Les signaux RM+ RM- LM+ et LM- sont des signaux PWM envoyés aux moteurs du FRE afin de déterminer le sens et la vitesse de rotation des roues.
On notera :
- - RM+ LM+ : Déplacement vers l'avant
- - RM- LM- : Déplacement vers l'arrière
- - RM+ LM- : Déplacement vers la gauche
- - RM- LM+ : Déplacement vers la droite
Partie Software:
Durant cette période, nous avons pu commencé la partie software avec comme matériel :
- - Un Arduino Mega 2560
- - 7 capteurs à ultrasons SRF08 (Datasheet : http://www.robot-electronics.co.uk/htm/srf08tech.html)
- - Une Breadboard
- - Des résistances et de la connectique.
Après l'installation des logiciels nécessaires et une première prise en main de l'Arduino avec des tests (allumage de Leds etc...), nous avons connecté un capteur à ultrasons SRF08 afin de communiquer avec lui.
Ces capteurs fonctionnent en utilisant un bus I²C :
Le bus I²C comprend 2 lignes :
- - Un signal de données bidirectionnelles SDA (Signal Data Line)
- - Un signal d'horloge de synchronisation bidirectionnelle SCL (Serial Clock Line)
Pour faire bref, nous récupérons et nous envoyons des données sur la ligne SDA, et le tout est synchronisé grâce à une horloge (SCL).
Afin de communiquer avec un capteur SRF08, nous devons alors écrire sur le bus I²C différentes commandes avant de pouvoir lire les valeurs renvoyées par le capteur.
Avant tout, il faut détecter les adresses I2C de nos différents capteurs. Pour cela, on scanne toutes les adresses possibles jusqu'à détecter un ou plusieurs capteurs.
On utilise alors l'adresse du capteur pour aller interroger le bus I2C.
Nous avons alors tout d'abord lu les valeurs renvoyées par le capteur dans sa configuration nominale (en centimètres) afin de tester son bon fonctionnement. Nous écrivons alors les valeurs reçues sur un terminal via la liaison série.
Après avoir réalisé cette première connexion maître-esclave, nous avons approfondi les possibilités du capteur afin d'apprendre à changer la portée ainsi que le gain. Cela nous permet d'avoir un capteur plus précis sur des distances de détection plus faibles.
Pour cela, nous avons modifié la librairie du capteur afin de créer nos propres fonctions. Nous pouvons désormais changer le gain et la portée d'un capteur, récupérer son adresse I²C et lire son information de distance selon une unité choisie (cm ou inch).
02 Février - 06 Février
Partie Electronique:
Cette semaine nous avons travaillé sur plusieurs points :
- -Elaboration des distances de sécurité
- -Alimentation de l’arduino
- -Récupération des informations pour la commande des moteurs
Afin de pouvoir programmer l’arduino pour que celui-ci arrête le fauteuil, il a fallu revoir les distances d’arrêt du fauteuil lors de la rencontre d’un obstacle.
Nous avons donc déterminé 3 valeurs :
- -Distance de détection : Nous avons déterminé une distance de détection afin que l’arduino ne soit pas contraint d’évaluer continuellement la vitesse du FRE.
- -Distance de décélération : A partir de cette distance on considère que si le fauteuil va à une vitesse trop élevé, l’obstacle représente un danger et il faut décélérer.
- -Distance d’arrêt : A cette distance il y a un grand risque de collision, on décide d’arrêter le fauteuil.
Alimentation de l’arduino:
Afin d’alimenter la carte arduino plusieurs solutions on été envisagées :
- -Alimentation directe à partir des batteries
- -Alimentation à partir de la carte électronique du joystick
- -Alimentation par pile (batteries) externe
En étudiant la carte électronique du joystick nous nous sommes aperçu qu’il était possible de se relier directement. Cependant la tension prise à ce point est de 24 V et la tension d’alimentation de l’arduino est comprise entre 7 V et 12 V, il nous faut donc un circuit d’adaptation de tension.
Pour se faire nous allons utiliser le 7812 qui nous permet de transformer du 24 V en 12 V.
Récupération des informations de commande des moteurs :
Afin de pouvoir évaluer la vitesse du fauteuil nous devons récupérer les signaux de commandes :
- -Récupérer les commandes moteurs directement à partir de RM +-/ LM+-
- -Récupérer les commandes provenant du joystick
La solution qui a été choisie est de récupérer les signaux provenant du joystick, en effet récupérer les signaux de commandes des moteurs présentait l’inconvénient de devoir réaliser un circuit d’adaptation de puissance plus difficile à mettre en œuvre.
Les signaux seront récupérés sur les entrées ANALOG IN, cependant la carte arduino ne présentant pas de sortie ANALOG OUT les signaux de commande que nous devons envoyer seront générés en PWM, signal qui sera ensuite filtré par un circuit RC suivi d'un AOP en suiveur afin d’avoir un signal constant. Le contrôle de la tension envoyé se fera en fonction du Duty Cycle de la PWM.
Le schéma du montage autour de l'arduino est le suivant :
Partie Software :
Mise en réseau des capteurs à ultrason
Afin de tester les capteurs en réseau, nous avons reliés 2 capteurs SRF08 avec un Arduino. Afin d'utiliser un autre capteur, il est nécessaire de modifier son adresse I²C, sinon il restera à l'adresse fixée par défaut (0xE0).
Pour ce faire, il suffit de connecter le capteur seul avec l'Arduino et d'aller écrire une séquence de données dans le registre de commande (voir datasheet).
Une fois les adresses des 2 capteurs dissociées, nous avons pu modifier la range et le gain de chacun afin d'observer leur bon fonctionnement en réseau. On modifie ici la range pour atteindre les 2 mètres de portée et on observe les résultats : Le capteur est précis jusqu'à 2 mètres (on mesure 196cm en valeur réelle pour ~~200cm de relevé capteur).
Après cette mise en réseau de 2 capteurs, nous avons décidé de tester l’ensemble des capteurs. Pour cela, après avoir soudé des connecteurs sous chaque capteur, on modifie alors l’adresse de chacun afin de pouvoir les différencier sur le bus I²C. Au niveau du code, on déclare alors un objet SonarSRF08 pour chaque capteur impliqué dans le réseau. On modifie alors la range et le gain de chaque capteur et on affiche la valeur récupérée dans le port série de la même façon qu’auparavant.
Découverte du PWM avec Arduino
Ensuite, nous avons décidé d’apprendre à utiliser des signaux PWM (lecture et écriture) afin de pouvoir récupérer les signaux RM et LM et de les modifier. Avec l’arduino Mega 2560, nous avons pu récupérer et créer des signaux PWM simplement et les visualiser sur oscilloscope.
Nous avons alors cherché à modifier la fréquence du signal PWM écrit afin de correspondre à la fréquence des signaux RM et LM relevés. Avec l’Arduino Mega, il nous a été impossible de modifier les signaux PWM créés par manque de documentation. Cependant, ayant un arduino UNO à disposition, nous avons alors décidé de l’utiliser. Tous les programmes précédents étant fonctionnels, nous avons pu réussir à modifier la fréquence d’un signal PWM créé en utilisant un prescaler. Ce qui signifie que la fréquence du signal créé sera fonction de la fréquence maximale de l’horloge interne du microprocesseur. De plus, nous avons réussi à afficher la valeur de la fréquence du signal mesuré ainsi que son duty cycle.