Différences entre versions de « Projets:Appui-tete electrique »

De wikilab
m (Delphine moved page Projets:Appui-tête électrique to Projets:Appui-tete electrique: harmonisation des noms pour la doc du projet)
 
(26 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Le projet de l'appui tête électrique est proposé par Mathilde.
+
{{Infobox projet
 
+
|Image principale=Appui tete motorise vue arriere trois quart.jpg
 +
|Description=Appui-tête motorisé, permettant de soutenir et faire pivoter la tête d’une personne qui a une insuffisance musculaire au niveau du cou.
 +
|Porteur de projet=Mathilde
 +
|Contributeurs=Ylc, Philippe Pacotte, Stéphane Godin, Elektron, André, Danke
 +
|Fabmanager=Delphine
 +
|Référent documentation=Delphine
 +
|Catégorie de handicap=Motricité
 +
|Etat d'avancement=Réalisés
 +
|Statut de la documentation=Complète
 +
|Relecture de la documentation=Vérifiée
 +
|Durée de fabrication=de 16 à 32 h
 +
|Coût matériel=De 100 à 200 euros
 +
|Niveau=Difficile
 +
|Licence=by-sa
 +
|Projet date=2017-04-25
 +
|Nom humanlab=Humanlab_MHK
 +
}}
 
== Description du projet ==
 
== Description du projet ==
Créer un support à bas-coût permettant de soutenir et faire pivoter la tête d'une personne dont l'insuffisance musculaire au niveau du cou ne lui permet ni un soutien ni une rotation naturelle de gauche à droite (la rotation n'étant pas impossible articulairement mais uniquement musculairement).
+
Créer un support à bas-coût permettant de soutenir et faire pivoter la tête d’une personne dont l’insuffisance musculaire au niveau du cou ne lui permet ni un soutien ni une rotation naturelle de gauche à droite (la rotation n’étant pas impossible articulairement mais uniquement musculairement). Mathilde ne souhaite pas un énième bouton de télécommande pour le contrôle de cette fonctionnalité car elle en a déjà beaucoup et ne peut pas toujours y accéder selon les circonstances.
Mathilde ne souhaite pas un énième bouton de télécommande pour le contrôle de cette fonctionnalité car elle en a déjà beaucoup et ne peut pas toujours y accéder selon les circonstances.
 
 
 
Ce projet, a abouti à deux solutions viables.
 
 
 
==Lien utiles==
 
[https://rennes.humanlab.me/projet/appui-tete-electrique/ Page du Geslab]
 
  
 
== Cahier des charges ==
 
== Cahier des charges ==
Ligne 32 : Ligne 42 :
 
Détails sur le mécanisme de roulements http://ot-sieber.ch/wp-content/uploads/2016/03/DSC_0052_3-180x180.jpg
 
Détails sur le mécanisme de roulements http://ot-sieber.ch/wp-content/uploads/2016/03/DSC_0052_3-180x180.jpg
  
== Equipe ==
+
== Equipe (Porteur de projet et contributeurs) ==
* Mathilde Fuchs, responsable du projet 
 
* Yves Le Chevalier, conception 3D 
 
* Philippe Pacotte, conception 3D 
 
* Danke, conception
 
* Stéphane, électronique, moteur
 
* Christian, électronique, bouton
 
* Delphine, coordination
 
  
== Pistes de recherche ==
+
* Porteurs du projet :
=== Electronique ===
+
Mathilde Fuchs
''' Utilisation de capteurs musculaires : '''
+
* Concepteurs/contributeurs :
    +++ instinctif
 
    - prix (qualité du capteur)
 
    - mise en oeuvre (choix de l'emplacement au quotidien)
 
  
''' Utilisation d'une commande type interrupteur :'''
+
Philippe Pacotte,
    ++ simple à mettre en oeuvre
+
Stéphane Godin,
    - ajoute une commande manuelle sur un dispositif déjà bien rempli
+
André Bécot,
 +
Jean-Pierre Legrand,
 +
Yves Le Chevalier,
 +
Christian Fromentin,
 +
Danke,
 +
Francis Esnault,
 +
Jean-François Duguest,
 +
Brice Besançon,
 +
Yohann Véron,
  
=== Mécanique ===
+
* Animateur (coordinateur du projet)
L'axe de rotation naturel de la tête se situe au niveau des vertèbres cervicales placées sous le crâne.
+
Delphine Bézier
 +
* Fabmanager référent
 +
Delphine Bézier
 +
* Responsable de documentation
  
[images anatomiques face/profil d'un squelette]
+
== Matériel nécessaire ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! #
 +
! Composant
 +
! Quantité
 +
|-
 +
| '''1'''
 +
| Arduino-NANO
 +
| 1
 +
|-
 +
| '''2'''
 +
| resistance-1K
 +
| 4
 +
|-
 +
| '''3'''
 +
| micro-switch
 +
| 4
 +
|-
 +
| '''4'''
 +
| nema17-42SHD0228
 +
| 1
 +
|-
 +
| '''5'''
 +
| veroboard
 +
| 1
 +
|-
 +
| '''6'''
 +
| batterie-12V
 +
| 2
 +
|-
 +
| '''7'''
 +
| carte-big-easy-driver
 +
| 1
 +
|-
 +
| '''8'''
 +
| boitier-derivation-electrique
 +
| 1
 +
|-
 +
| '''9'''
 +
| poulie-GT2-bore5-20dents
 +
| 1
 +
|-
 +
| '''10'''
 +
| nema17
 +
| 1
 +
|-
 +
| '''11'''
 +
| vis-M3-12
 +
| 2
 +
|-
 +
| '''12'''
 +
| roulement-F624ZZ
 +
| 4
 +
|-
 +
| '''13'''
 +
| rondelles
 +
| 4
 +
|-
 +
| '''14'''
 +
| fil-de-cablage-monobrin-0.2
 +
| 1
 +
|-
 +
| '''15'''
 +
| vis CHc-M2X16
 +
| 2
 +
|-
 +
| '''16'''
 +
| ecrous-M2
 +
| 2
 +
|-
 +
| '''17'''
 +
| vis CHc-M3x14
 +
| 2
 +
|-
 +
| '''18'''
 +
| ecrous-nylstop-M3
 +
| 4
 +
|-
 +
| '''19'''
 +
| vis-CHc-M5X35
 +
| 1
 +
|-
 +
| '''20'''
 +
| ecrou-nylstop
 +
| 1
 +
|-
 +
| '''21'''
 +
| vis-CHc-M5X15
 +
| 1
 +
|-
 +
| '''22'''
 +
| rondelle
 +
| 1
 +
|-
 +
| '''23'''
 +
| vis-M3
 +
| 2
 +
|}
  
===== Deux possibilités : =====
+
==Outils nécessaires==
  
====== 1: on respecte cet axe : ======
+
==Coût==
  
      ++ Mouvement naturel de la tête
+
==Fichiers source==
      - Plus complexe à concevoir (effort mécanique plus important)
+
[[Media:code DUPLICATE.zip|Télécharger le code]]
      - Dispositif potentiellement plus encombrant
 
  
---> 1er choix exploré, refaire un peu comme celui du commerce mais en l'électrifiant (avec donc arceau de rotation) (quid du brevet de celui du commerce)
+
[[Media:documents.zip|Télécharger les documents]]
  
---> 2ème choix exploré, mettre une crémaillère à l'arrière de l'appui tête actuel (difficulté à garder la rotule de réglage et aussi la solidité... déporter la rotule...) modélisation de Danke et Yves
+
[[Media:images sources.zip|Télécharger les images]]
  
      '''Crémaillère + vis sans fin'''
+
[[Media:models.zip|Télécharger les modèles 3D (STL)]]
      ++ la crémaillère est bloquée en position si le moteur ne tourne pas
 
      - force sur l'axe moteur faible
 
      - frottement de la vis sur la crémaillère
 
  
====== 2: on déplace l'axe sous la têtière, au plus proche de la colonne vertébrale :======
+
==Etapes de fabrication pas à pas==
        ++ mécanisme grandement simplifié
 
        + effort mécanique diminué (moins de bras de levier)
 
        -- mouvement moins naturel (risque de traumatisme sur la durée ?)
 
  
Choix exploré, mettre l'axe de rotation dans l'appui tête avec double gros roulements et la rotation s'effectuerait avec un bras relié au moteur déporté légèrement en arrière (cela nécessiterait de refaire l'appui tête et Mathilde émet des craintes sur ce point) modélisation Philippe et ?
+
===Étape 1 - Vue légendée du prototype final===
  
== Test capteur musculaire avec le "Finger starter" ==
+
[[File:Vue_legendee.png|600px]] [[File:Vue_legendee2.png|600px]]
  
'''Objectif''' : contrôler la rotation grâce à deux capteurs placés de part et d'autre du cou et déclenchés par contraction musculaire (seul endroit pour Mathilde où elle a un tendon qui permet de détecter une contraction par un capteur)
+
===Étape 2 - Fabrication de la pièce de liaison entre rail et support réglable de l'appui-tête du fauteuil===
  
[https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2FMyHumanKit%2Fvideos%2F1857871601151296%2F&show_text=0&width=400 Lien vers viéeo facebook du capteur Ottobock en action]
+
La pièce de liaison entre le rail et le support réglable de l'appui-tête fixé sur le fauteuil a été réalisé à partir de trois fers plats soudés entre eux.
 +
Se référer au fichier "piece entre rail et fauteuil.stl"
  
'''Limites :'''
+
[[Media:support entre rail et fauteuil.stl|Télécharger le fichier stl support entre rail et fauteuil ]]
* Il faut deux capteurs constamment sur le cou.
 
* Les capteurs doivent adhérer parfaitement à la peau et avec le mouvement de contraction, il a tendance à se décoller.
 
  
'''Conclusion:''' Il faudrait envisager une autre solution. Peut-être un micro switch (comme les "end-stop" que l'on trouve sur des imprimantes 3D).
+
[[File:piece_entre_rail_et_fauteuil.png|400px]][[File:cotes_piece_liaison_rail_support_appui-tete.png|900px]]
  
'''Code Arduino mappé sur la contraction du cou de Mathilde'''
+
===Étape 3 - Fabrication du rail===
<code>
 
<pre>
 
int muscle;
 
//servo library
 
#include <Servo.h>
 
Servo myservo;  // create servo object to control a servo
 
int val;    // variable to read the value from the analog pin
 
  
void setup()
+
Pour fabriquer le rail , prendre la plaque d'aluminium 4G (voir image pour les côtes) et ajuster la courbe à la ceintreuse comme sur le fichier STL. IL est éventuellement possible de faire un gabarit en carton ou imprimé en 3D pour vérifier et ajuster la courbe.
{
 
  myservo.attach(7);  // attaches the servo on pin 9 to the servo object
 
  Serial.begin(57600);
 
  pinMode(A0,INPUT);
 
    myservo.write(0);
 
}
 
void loop()
 
{
 
//muscle
 
muscle=analogRead(A0);
 
Serial.println(muscle);
 
  
//action of the finger
+
Voir la manipulation en vidéo ici :
if(muscle>20){
 
  kikoo();
 
  }
 
  else{
 
  myservo.write(50);
 
  delay(100);
 
  }
 
}
 
  
//action of the finger : the last point is without tension (90 degrees).
+
https://youtu.be/oLzzKH7SkhM
void kikoo(){
 
  myservo.write(100);
 
  delay(100); 
 
}
 
  
</pre>
+
https://youtu.be/36KCF7G6KE4
</code>
 
  
== Premières conceptions de l'appui tête en 3D ==
+
https://youtu.be/mCTa5f2ztH4
  
=== Ebauche 29.03.2017, Version 1 Yves Le Chevalier : ===
+
Percer ensuite des trous et les filter pour les butées de fin de course dont la position est à ajuster selon le degré de mouvement voulu ou l'angle de rotation de la tête qui doit rester confortable pour l'usager
  
<gallery mode="slideshow">
+
[[Media:rail.stl|Télécharger le fichier stl rail]]
File:ATM_img-001.jpeg
 
File:ATM_img-002.jpeg
 
File:ATM_img-003.jpeg
 
File:ATM_img-004.jpeg
 
File:ATM_img-005.jpeg
 
File:ATM_img-006.jpeg
 
</gallery>
 
  
=== Ebauche 03.04.2017, version Philippe Pacotte : ===
+
[[File:dimensions rail.png|600px]] [[File:rail_ceintreuse.png|600px]]
  
<gallery mode="slideshow">
+
===Étape 4 - Fabrication de la rotule===
File:Appui-tete1.png
 
File:Appui-tete2.png
 
File:Appui-tete3.png
 
File:Appui-tete4.png
 
File:Appui-tete5.png
 
File:Appui-tete6.png
 
File:Appui-tete7.png
 
</gallery>
 
  
''' Limites ''' : L'axe de rotation n'est pas dans l'axe du cou et risque de poser problème. Cette version est donc abandonnée.
+
En fonction de l’appui-tête de la personne, il faudra ajuster la taille de la rotule.
 +
Si le modèle correspond à celui-ci rapprochez-vous d’un tourneur pour la réaliser en aluminium 4G suivant le
 +
modèle STL (rotule.stl) . Il faudra ensuite la percer et filter (pour une vis CHc-M5X15)pour permettre sa fixation.
 +
Attention ajout d’un ergo en acier sur l’embase de la rotule parallèle à la vis et qui va également sur le
 +
sur le support de la rotule pour éviter que la rotule tourne sur elle-même.
  
=== Version2 04.04.2017, Yves Le Chevalier : ===
+
[[Media:rotule model.stl|Télécharger le fichier stl rotule model]]
<gallery mode="slideshow">
 
File:ATM_VSF_img-1.jpeg
 
File:ATM_VSF_img-002.jpeg
 
File:ATM_VSF_img-003.jpeg
 
File:ATM_VSF_img-004.jpeg
 
File:ATM_VSF_img-005.jpeg
 
File:ATM_VSF_img-006.jpeg
 
</gallery>
 
  
''' Notes ''' :
+
[[File:rotule 1.png|400px]]
'' J'ai travaillé sur une seconde maquette avec une rotation par vis sans fin et réglage motorisé de l'inclinaison. Ce n'est ici aussi qu'une ébauche pour matérialiser mes idées, mais cela ne peut pas être fonctionnel en l'état. ''
 
  
=== Addon v2 07.04.2017, Yves Le chevalier : ===
+
[[File:rotule_usinee.jpg|400px]][[File:usinage_rotule.jpg|600px]]
<gallery mode="slideshow">
 
File:ATM_v2_p1_img1.jpeg
 
File:ATM_v2_p1_img2.jpeg
 
</gallery>
 
  
''' Notes : '''
+
===Étape 5 - Fabrication de la plaque de fixation de la rotule et des galets===
'' En vue de ta réunion de lundi, voici un petit travail qui pourra servir de support à votre discussion.''
 
''J'ai, en effet, un peu retravaillé ce matin le projet suite à nos échanges d'hier. (cf photos ci dessous)
 
J'ai donc dessiné une lame cintrée en métal (acier ?) avec une bille (soudée) pour permettre le raccordement sur la rotule du collier anatomique.
 
Le moteur (Nema 17) entraîne l'ensemble par une vis sans fin. Le tout est monté sur supports articulés. ''
 
  
'' Le rail de guidage doit être vissé en le cintrant sur la lame de métal en dessous du point de fixation de l'entraînement. ''
+
Fabriquer la plaque de fixation de la rotule avec une plieuse en se basant sur le fichier plaquerotule.stl.
  
'' Je suis passé voir John pour lui demander ce qu'on pouvait fraiser avec la CNC au LabFab afin de faire le rail de guidage. ''
+
Fabriquer les 4 galets (galets à réa de 5mm -le creux intérieur en largeur, et l’épaulement du réa de 2.5mm)
'' On ne peut fraiser que orthogonalement et dans les 3 directions mais sans incliner la fraise. Par contre on peut fraiser une dépouille en biais avec une fraise a 45° par ex. (mais à acheter) ou cela peut être fait ailleurs s'il le faut (Airbus, lycée technique,...?) ''
+
Tourner en pom C (pom C=matériau plastique) les 4 galets de diamètre extérieur 15mm et 10mm en diamètre intérieur et les aléser pour les roulements qui viennent se loger aux deux extrémités.
'' Le conseil de John c'est de concevoir un rail droit dans une matière semi-souple (nylon ?) qui pourra être cintré selon l'arc en métal. ''
 
  
=== v2 10.04.2017, Yves Le chevalier : ===
+
[[Media:galet_perce.stl|Télécharger le fichier stl galet_perce]]
<gallery mode="slideshow">
 
File:ATM_v2_commande_img1.jpeg
 
File:ATM_v2_commande_img2.jpeg
 
File:ATM_v2_commande_img3.jpeg
 
File:ATM_v2_entrainement_img1.jpeg
 
File:ATM_v2_entrainement_img2.jpeg
 
File:ATM_v2_entrainement_img3.jpeg
 
File:ATM_v2_entrainement_img4.jpeg
 
File:ATM_v2_p1_img1.jpeg
 
File:ATM_v2_p1_img2.jpeg
 
File:ATM_v2_rail_img1.jpeg
 
File:ATM_v2_rail_img2.jpeg
 
File:ATM_v2_rail_img3.jpeg
 
</gallery>
 
  
''' Notes :'''
+
[[Media:plaquerotule.stl|Télécharger le fichier stl plaquerotule]]
'' Je pense que le rail courbe est faisable à la CNC dans un bloc de téflon ou nylon.... sinon le rail droit a le même profil mais me semble difficile à courber une fois fait.''
 
  
 +
[[File:galets.png|400px]] [[File:plaque_rotule.png|400px]]
  
==== Fichiers sources Freecad + photos====
+
Les galets ont été tournés un peu dissymétriquement, il faut les mettre tous dans le même sens pour le montage. La plaque a les trous du haut taraudés, ainsi il faut commencer le montage par les vis du haut, puis ajuster avec celles du bas, sans taraudage elles permettent un certain jeu.
http://dl.free.fr/vizWvvTT0
 
  
== Choix des matériaux ==
+
Afin de permettre le bon fonctionnement des roulements, il ne faut pas trop serrer les vis (une entretoise peut être nécessaire si besoin).
=== Questions pour rencontre le 10/04/2017 avec Francis Esnault (ingénieur mécanique/résistance de matériaux)===
 
'''Choix judicieux du moteur''' : (si trop puissant  = consomme trop)
 
Le couple du moteur (en N/m) doit permettre de supporter l'ensemble : poids de la tête, poids de l'ensemble des mécanismes, frein rotation cou). Cela va conditionner la taille du mécanisme.
 
  
'''Si crémaillère nylon : ''' quel type de vis sans fin ? (métale, imprimée, nylon...?) : usure dûe à la friction à prendre en compte.
+
===Étape 6 - Impression des pièces en 3D (faire simulation temps d'impression dans Cura)===
  
''' Profil du rail de guidage pour usinage facile au LabFab (CNC 3 axes) et choix matière ''' : nylon, téflon... sachant que rail courbe.
+
Imprimer l’ensemble des pièces situées dans le dossier « STL/A imprimer »
+
* Matériau du filament : de préférence ABS ou PLA
''' Question à Mathilde ''':
+
* Paramétrage sur Cura : Densité : 90 % de remplissage, qualité 0.2.
De combien peut-on baisser la tige de l'appui tête dans le dossier du fauteuil (cela conditionne la hauteur disponible pour le systeme motorisé) sans considérer que Mathilde doit être dessus ? (c'est juste pour un calcul) ''Réponse'' : de 15 cm mais cela dépendra du dossier de son futur fauteuil, même si cela devrait être sensiblement pareil.
 
  
=== Retour de Francis sur la dernière proposition de Yves ===
+
Il s'agit d'imprimer les butées, le support moteur, le support à capteur de fin de course et le capot protecteur
  
Le système avec la vis sans fin est un peu complexe et prend beaucoup de place. Il faut peut-être envisager une simplification du système sur le modèle qu'avait envisagé Danke comme ci-dessous.
+
[[Media:butees.stl|Télécharger le fichier butees.stl]]
  
 +
[[Media:capot.stl|Télécharger le fichier capot.stl]]
  
<gallery mode="slideshow">
+
[[Media:support_capteurs_fin_course.stl|Télécharger le fichier capteurs_fin_course.stl]]
File:support-appui-tete1.jpg
 
File:support-appui-tete2.jpg
 
File:support-appui-tete3.jpg
 
</gallery>
 
  
<gallery mode="slideshow">
+
[[Media:support_moteur.stl|Télécharger le fichier support_moteur.stl]]
File:systeme-coulissant.jpg
 
File:systeme-coulissant2.jpg
 
File:systeme-coulissant3.jpg
 
</gallery>
 
  
=== Calcul de Francis pour le choix du moteur 13.04.2017 ===
+
[[File:support_moteur.png|400px]] [[File:butees.png|400px]] [[File:capot_brosse.jpg|400px]] [[File:support_capteurs_fin_course.png|400px]]
  
[[Media:Calculs-Francis.pdf|'''Télécharger''']] le détail des calculs.
+
===Étape 7 - Réalisation du circuit électronique===
 +
Composants nécessaires:
  
'''Nota bene : Avec un diamètre de tête de 220 mm :'''
 
  
*Les effets d'inertie demeurent négligeables (très faible accélération angulaire) devant le couple résistant dû aux forces de contact.
+
*Arduino-NANO
*Le couple résistant, à contrario, se trouve significativement augmenté
+
*resistance-1K
 +
*micro-switch
 +
*nema17-42SHD0228
 +
*veroboard
 +
*batterie-12V
 +
*carte-big-easy-driver
 +
___________________________________
 +
*PCB (auquel il faut ajouter le circuit on/off )
 +
*Fichier arduino (code)
  
''' Au final, on arrive à un couple moteur théorique devant être délivré par le moteur :'''
+
[[Media:code.zip|Télécharger le code]]
  
C moteur = 0,15 Nm  (le double de mon précédent résultat)
+
Réaliser ou faire fabriquer le circuit imprimé en vous référant au schema et PCB (Appuiteteschemav1.2.jpg, appui-tete-PCBv1.2.png) ci-dessous.
  
== Vue arrière de la fixation de l'appui-tête 06.04.2017 ==
+
[[File:Appui_tete_schema_v1.2.jpg|850px]] [[File:appui-tete-PCB_v1.2.png|800px]]
<gallery>
 
File:Appui-tete-support1.jpg
 
File:Appui-tete-support3.jpg
 
File:Appui-tete-support4.jpg
 
File:Appui-tete-vue-dessus.JPG
 
File:appui_tete_support_1.jpg
 
File:appui_tete_support_2.jpg
 
File:appui_tete_support_3.jpg
 
File:appui_tete_support_4.jpg
 
</gallery>
 
  
<gallery mode="slideshow">
+
Téléverser le code sur la carte Arduino.
File:Appui-tete-support1.jpg
 
File:Appui-tete-support3.jpg
 
File:Appui-tete-support4.jpg
 
File:Appui-tete-vue-dessus.JPG
 
File:appui_tete_support_1.jpg
 
File:appui_tete_support_2.jpg
 
File:appui_tete_support_3.jpg
 
File:appui_tete_support_4.jpg
 
</gallery>
 
  
== Mesures 13.04.2017 ==
+
<pre>
[MAJ 07.09.17] La mesure entre l'axe de la colonne vertébrale et le centre de la rotule est estimée à 100mm
+
#include "cli.h"
 +
#include "config.h"
  
<gallery>
 
File:Mathilde-mesures1.jpg
 
File:Mathilde-mesures2.jpg
 
File:Mathilde-mesures3.jpg
 
File:Mathilde-mesures4.jpg
 
</gallery>
 
  
<gallery mode="slideshow">
+
#include "command.h"
File:Mathilde-mesures1.jpg
 
File:Mathilde-mesures2.jpg
 
File:Mathilde-mesures3.jpg
 
File:Mathilde-mesures4.jpg
 
</gallery>
 
  
== Modélisation du prototype final 19.04.2017, Yves Le Chevalier ==
 
  
Toutes les instructions sur ce pdf : http://wikilab.myhumankit.org/images/a/a1/ATM_V3_Notes_de_fabrication_et_de_montage.pdf
+
// task definition for periodic scheduling 1ms
 +
//void motorControl(Task* me);
 +
//Task schedule (1, motorControl);
  
Tous les fichiers stl+FCStd+images : [[:File:FINAL.zip|Fichiers]]
 
  
<gallery>
 
File:ATM_V3_commande_01.jpeg|commande_01
 
File:ATM_V3_commande_02.jpeg|commande_02
 
File:ATM_V3_Crem-01.jpeg|crémaillère_01
 
File:ATM_V3_Crem-02.jpeg|crémaillère_02
 
File:ATM_V3_Crem-03.jpeg|crémaillère_03
 
File:ATM_V3_Crem-04.jpeg|crémaillère_04
 
File:ATM_V3_Crem-05.jpeg|crémaillère_05
 
File:ATM_V3_Crem-06.jpeg|crémaillère_06
 
File:ATM_V3_Crem-07.jpeg|crémaillère_07
 
File:ATM_V3_Crem-08.jpeg|crémaillère_08
 
File:ATM_V3_Ensemble-01.jpeg|Ensemble_01
 
File:ATM_V3_Ensemble-02.jpeg|Ensemble_02
 
File:ATM_V3_patins_PTFE-01.jpeg|patins_PTFE_01
 
File:ATM_V3_patins_PTFE-02.jpeg|patins_PTFE_02
 
File:ATM_V3_patins_PTFE-03.jpeg|patins_PTFE_03
 
File:ATM_V3_PFix-01.jpeg|PFix-01
 
File:ATM_V3_PFix-02.jpeg|PFix-02
 
File:ATM_V3_platine_support_acier.jpeg|platine_support_acier
 
File:ATM_V3_PMob-01.jpeg|PMob-01
 
File:ATM_V3_PMob-02.jpeg|PMob-02
 
File:ATM_V3_PMob-03_bille25.jpeg|PMob-03_dernière_version
 
File:ATM_V3_rail_01.jpeg|rail_01
 
File:ATM_V3_rail_02.jpeg|rail_02
 
File:ATM_V3_support_tetiere_25.jpeg|support_tétière_dernière_version
 
</gallery>
 
  
 +
void setup() {
  
<gallery mode ="slideshow">
+
  // intialize command
File:ATM_V3_commande_01.jpeg|commande_01
+
  cli_open ();
File:ATM_V3_commande_02.jpeg|commande_02
+
 
File:ATM_V3_Crem-01.jpeg|crémaillère_01
 
File:ATM_V3_Crem-02.jpeg|crémaillère_02
 
File:ATM_V3_Crem-03.jpeg|crémaillère_03
 
File:ATM_V3_Crem-04.jpeg|crémaillère_04
 
File:ATM_V3_Crem-05.jpeg|crémaillère_05
 
File:ATM_V3_Crem-06.jpeg|crémaillère_06
 
File:ATM_V3_Crem-07.jpeg|crémaillère_07
 
File:ATM_V3_Crem-08.jpeg|crémaillère_08
 
File:ATM_V3_Ensemble-01.jpeg|Ensemble_01
 
File:ATM_V3_Ensemble-02.jpeg|Ensemble_02
 
File:ATM_V3_patins_PTFE-01.jpeg|patins_PTFE_01
 
File:ATM_V3_patins_PTFE-02.jpeg|patins_PTFE_02
 
File:ATM_V3_patins_PTFE-03.jpeg|patins_PTFE_03
 
File:ATM_V3_PFix-01.jpeg|PFix-01
 
File:ATM_V3_PFix-02.jpeg|PFix-02
 
File:ATM_V3_platine_support_acier.jpeg|platine_support_acier
 
File:ATM_V3_PMob-01.jpeg|PMob-01
 
File:ATM_V3_PMob-02.jpeg|PMob-02
 
File:ATM V3 PMob-03_bille25.jpeg|PMob-03_dernière_version
 
File:ATM_V3_rail_01.jpeg|rail_01
 
File:ATM_V3_rail_02.jpeg|rail_02
 
File:ATM_V3_support_tetiere_25.jpeg|support_tétière_dernière_version
 
</gallery>
 
 
 
[[File:ATM-V3_modele_rails_alu.stl]]
 
 
 
== Schéma fritzing carte de commande 27/04/2017, Stéphane ==
 
<gallery>
 
File:Moteur appuitete bb.png
 
</gallery>
 
 
 
== Firmware Arduino, Stéphane ==
 
'''Le fichier .zip avec le projet complet'''
 
[[:File:Appuitete v1.zip|Appuitete-arduino.v1]]
 
 
 
===V1.0 27/04/2017===
 
 
 
'''Fichier principal'''
 
<code>
 
<pre>
 
#include <SoftTimer.h>
 
#include <Task.h>
 
#include <AccelStepper.h>
 
#include <MultiStepper.h>
 
 
 
#include "config.h"
 
 
 
 
 
// task definition for periodic scheduling 1ms
 
void motorControl(Task* me);
 
Task schedule (1, motorControl);
 
 
 
// stepper configuration
 
AccelStepper stepper1(AccelStepper::DRIVER, MOTOR_STEP, MOTOR_DIR);
 
 
 
void setup() {
 
 
   // initialize motor
 
   // initialize motor
   stepper1.setMaxSpeed (MAX_SPEED);
+
   load_config ();
   stepper1.setAcceleration (MAX_ACCEL);
+
  get_stepper()->setMaxSpeed (get_speed());
 +
   get_stepper()->setAcceleration (get_accel());
 
   // initialize led
 
   // initialize led
 
   pinMode(LED, OUTPUT);
 
   pinMode(LED, OUTPUT);
Ligne 413 : Ligne 327 :
 
    
 
    
 
   // run scheduler
 
   // run scheduler
   SoftTimer.add(&schedule);
+
   //SoftTimer.add(&schedule);
  
 
}
 
}
Ligne 426 : Ligne 340 :
 
boolean SensorLeft ()
 
boolean SensorLeft ()
 
{
 
{
 +
  if (get_force_left () > 0)
 +
    return (true);
 
   return (digitalRead (BTN_LEFT)== BTN_LEFT_ACTIVE_STATE ? true : false);
 
   return (digitalRead (BTN_LEFT)== BTN_LEFT_ACTIVE_STATE ? true : false);
 
}
 
}
Ligne 438 : Ligne 354 :
 
boolean SensorRight()
 
boolean SensorRight()
 
{
 
{
 +
  if (get_force_right () > 0)
 +
    return (true);
 
   return (digitalRead (BTN_RIGHT) == BTN_RIGHT_ACTIVE_STATE ? true : false);
 
   return (digitalRead (BTN_RIGHT) == BTN_RIGHT_ACTIVE_STATE ? true : false);
 
}
 
}
Ligne 469 : Ligne 387 :
 
int STOP_MOVE = 0;
 
int STOP_MOVE = 0;
  
void turnOn(Task* me)
+
//void turnOn(Task* me)
{
+
//{
  
}
+
//}
  
  
Ligne 481 : Ligne 399 :
 
//
 
//
 
//  
 
//  
void motorControl(Task* me)
+
//void motorControl(Task* me)
 +
void loop ()
 
{
 
{
 +
  AccelStepper *pstepper = get_stepper ();
 +
 
 
   // put your main code here, to run repeatedly:
 
   // put your main code here, to run repeatedly:
  
Ligne 494 : Ligne 415 :
 
   boolean endl = EndStopLeft ();
 
   boolean endl = EndStopLeft ();
 
   boolean endr = EndStopRight ();
 
   boolean endr = EndStopRight ();
 +
 +
 +
 
 
  if (endr || endl)
 
  if (endr || endl)
 
   digitalWrite (LED, HIGH);
 
   digitalWrite (LED, HIGH);
Ligne 516 : Ligne 440 :
 
     {
 
     {
 
       move = RIGHT_MOVE;
 
       move = RIGHT_MOVE;
       stepper1.move (1000);
+
       pstepper->move (20000);
 
       //digitalWrite(LED, HIGH);
 
       //digitalWrite(LED, HIGH);
 
     }
 
     }
Ligne 529 : Ligne 453 :
 
     {
 
     {
 
       move = LEFT_MOVE;
 
       move = LEFT_MOVE;
       stepper1.move(-1000);
+
       pstepper->move(-20000);
 
       //digitalWrite(LED, HIGH);
 
       //digitalWrite(LED, HIGH);
 
     }
 
     }
Ligne 537 : Ligne 461 :
 
   if (move != STOP_MOVE)
 
   if (move != STOP_MOVE)
 
   {
 
   {
     stepper1.run();
+
     pstepper->run();
 
   }
 
   }
 
   else
 
   else
 
   {
 
   {
 
     //stepper1.disableOutputs();
 
     //stepper1.disableOutputs();
     stepper1.setSpeed(0);
+
     pstepper->setSpeed(0);
     stepper1.setCurrentPosition (0);
+
     pstepper->setCurrentPosition (0);
 
   }
 
   }
  
 +
  // process command
 +
  CLI.process();
 
}
 
}
 
</pre>
 
</pre>
</code>
 
  
'''Fichier de configuration config.h'''
+
La carte arduino est alimentée en 5V depuis la sortie 5V de la carte easy driver. Raccorder le 24V du PCB aux batteries du fauteuil (voir Schema_batterie.jpg).
<code>
 
<pre>
 
  
#define MOTOR_MS1 11 // EASY DRIVER MS1 IO FROM ARDUINO
+
Ajouter le circuit interrupteur ON/OFF led en image ci-contre afin de pouvoir éteindre le dispositif et ne pas consommer de batterie pour rien :)
#define  MOTOR_MS2  10 // Easy Driver MS2 IO From Arduino
 
  
#define MOTOR_STEP 9 // EasyDriver STEP IO from Arduino (single step command)
+
[[File:interrupteur_on_off_led.png|400px]]
#define MOTOR_DIR 8  // EasyDriver DIR IO from arduino (move direction)
 
  
#define LED 13 // Onboard arduino led for signaling
+
[[File:Schema_batterie 1.jpg|400px]]
  
#define BTN_RIGHT 4 // Input for right movement
+
===Étape 8 - Mise en place du circuit dans le boîtier du circuit électronique===
#define BTN_LEFT 5 // Input for left movement
 
  
#define BTN_RIGHT_ACTIVE_STATE LOW // Input state to consider BTN active
+
Composant nécessaire:
#define BTN_LEFT_ACTIVE_STATE LOW // Input state to consider BTN active
 
  
 +
*boitier-derivation-electrique
  
#define MAX_SPEED 10000 // max speed in step/s
+
Positionner le circuit dans le boitier de dérivation électrique étanche dont voici la référence :
#define MAX_ACCEL 1000 // max acceleration in step / s / s
+
https://www.leroymerlin.fr/v3/p/produits/boite-de-derivation-etanche-en-saillie-debflex-8-entrees-e29160
  
#define ENDSTOP_LEFT 7
+
Ce boitier sera fixé à l'arrière du fauteuil.
#define ENDSTOP_RIGHT 6
 
#define ENDSTOP_LEFT_STATE LOW
 
#define ENDSTOP_RIGHT_STATE LOW
 
</pre>
 
</code>
 
 
 
== Fichiers pour impressions, 27/04/2017, Mathilde ==
 
Voici les fichiers stl et x3g
 
 
 
[[:File:Fichiers_stl_pour_impression.zip|fichiers impression stl]]
 
  
[[:File:Fichiers_3xg_pour_impression.zip|fichiers impression 3xg]]
+
===Étape 9 - Assemblage du bouton ou système choisi pour commander l'appui-tête rotatif===
  
== Fixation appui-tête actuel sur interface rotative, 07/05/2017, Mathilde ==
+
Assembler le bouton en se référant au schéma.
Bague de serrage avec trois vis.
+
Prévoir une longueur de câble suffisamment longue pour le relier au PCB situé dans le boîtier qui a été fixé à l’arrière du fauteuil.
  
[[:File: Bague_rotule.stl| Bague rotule stl]]
+
===Étape 10 - Fixation de la poulie GT2 bore 5 sur moteur NEMA17 (ajouter ref vis)===
  
<gallery>
+
Composants nécessaires:
File: Bague_rotule.jpg
 
</gallery>
 
  
== Fichiers gcode pour impressions sur Bicéphale, 18/05/2017, Delphine ==
+
*poulie-GT2-bore5-20dents
[[:File:Gcode.zip|Fichiers gcode]]
+
*nema17
  
Tous les fichiers sont regroupés dans ce zip sauf ceux déjà imprimés:
+
Enfiler la poulie la poulie GT2 bore (trou) 5 20 dents sur l'axe du moteur Nema17. Puis la fixer avec les deux vis sans tête de blocage de la poulie.
*ATM_V3_modele_patins_PTFE
 
*ATM_V3_pignon (le trou n'est pas centré, modèle en cours de remodélisation)
 
*ATM_V3_support_patins
 
  
== Distance appui-tête/support appui-tête, 18/05/2017; Delphine ==
+
Se référer à l'image du schéma global.
<gallery mode="slideshow">
 
File:Distance-rotule-appui-tete.JPG
 
File:Support-appui-tete-fauteuil.JPG
 
</gallery>
 
  
== Changement par rapport au modèle final de Yves ==
+
===Étape 11 - Fixation du moteur+poulie sur support moteur===
* Remplacer les boulons Allen de la plaque de support tétière par des boulons 6 pans (hexagonal) pour permettre de les visser facilement.
 
* Remodéliser la rotule + la plaque (Yves s'en charge) en fonction du diamètre du trou du support de la rotule. Les mesures ont été basées sur la plaque que Mathilde a modélisé ci-dessus (Bague rotule). Vérifier que le diamètre est bon (20 mm).
 
* L'idée est de réutiliser l'ancien support (tube de 13mm) de Mathilde mais il faudra peut-être refaire cette pièce. Attention car Yves a modélisé un tube carré de 20mm pour la platine support acier qui est en-dessous.
 
  
== A modéliser ==
+
Composant nécessaire:
* Rotule + plaque : Yves
 
  
== A implémenter pour la commande moteur ==
+
*vis-M3-12
* Prévoir un détecteur au point zéro (un switch qui le déclenche, ou une cellule (end-stop))
 
* Prévoir un potentiomètre pour redéfinir le point zéro (le personnaliser en fonction de l'usager)
 
* Vitesse de rotation (à affiner) : 60° en 4 secondes
 
  
== Débat sur le moteur : pas à pas ou courant continu ? ==
+
Fixer l'ensemble moteur+poulie sur le support moteur avec 2 vis M3x12.
  
Le moteur doit tourner dans les deux sens, il faut deux capteurs de fin de course, et il faut que la rotation puisse s'arrêter entre les extrémités.
+
===Étape 12 - Fixation roulements pour coulissage de la courroie===
  
'''++ moteur pas à pas :'''
+
Composants nécessaires:
* Facilement pilotable avec Arduino
 
* Arduino permet d'ajouter et de faire évoluer le circuit facilement
 
  
'''++ moteur à courant continu :'''
+
*roulement-F624ZZ
* La vitesse peut varier avec un potentiomètre de variation
+
*rondelles
* Le circuit est plus léger en conception car pas besoin d'une Arduino
 
  
== Fichiers Pignon + Bague_rotule (Obsolète :  Ne pas imprimer) ==
+
Fixer les 4 roulements à bille F624ZZ mis 2 par 2 en mirroir avec l'épaulement vers l'extérieur, avec des rondelles entre la vis et le roulement, pour éviter de comprimer la partie extérieure du roulement. Et de l'autre coté de la plaque du support moteur, on vient fixer la vis de M4x20 (ou 25) avec un écrou nylstop.
Attention le fichier du pignon dans le zip version Finale n'est pas centré. Le remplacer par la version du fichier suivant.
 
La bague rotule ici présente est par contre obsolète. Cette version qui permet de venir glisser la rotule n'est pas assez solide. Il faut utiliser la version du chapitre suivant : Modif_ATM_V3_bille25_boulonnee.zip.  
 
  
[[:File:Pignon-Bague_rotule.zip|Fichiers Pignon-Bague_rotule.zip]]
+
===Étape 13 - Câblage des capteurs de fin de course (end-stop)===
  
== Plaque support rotule + tête rotule qui remplacent la rotule et la plaque de la version finale ==
+
Composants nécessaires:
[[:File:Modif_ATM_V3_bille25_boulonnee.zip|Modif_ATM_V3_bille25_boulonnee.zip]]
 
  
Les fichiers step suivants seront utilisés pour usiner ces pièces en métal:
+
*micro-switch
[[:File:ATM_V3_fichiers_STEP.zip|ATM_V3_fichiers_STEP.zip]]
+
*fil-de-cablage-monobrin-0.2
  
== Ajustement des bras de commande et de la palette du contacteur, 10/06/2017, Yves ==
+
Souder les fils sur les capteurs de fin de course (autrement dit end stop ou microswitchs). Prévoir une longueur de fil suffisante pour aller jusqu'au boitier où se situe le circuit électronique.
Suite à une première impression, les bras de commande sont trop longs, Yves a donc raccourci la partie médiane de ceux ci.
 
  
La palette fixée au contacteur en bout de ces bras de commande était trop petite, ici elles sont agrandies.
+
===Étape 14 - Montage des capteurs de fin de course sur leur support===
  
[[File:ATM V3 commande courte 01.jpeg]]
+
Composants nécessaires:
  
Fichiers du bras de commande raccourci : [[File:Modif_ATM_V3_commande_raccourcie.zip]]
+
*vis CHc-M2X16
 +
*ecrous-M2
  
STL de la palette agrandie : [[File:Modif_ATM_V3_Commande_palette_agrandie.stl]]
+
Assembler les capteurs de fin de courses (microswitchs) à leurs supports avec 2 vis CHc-M2X16 chacun et l'écrou
 +
associé
  
== Version finale des fichiers après toutes les modifications, 10/06/2017 ==
+
===Étape 15 - Assemblage support des capteurs de fin de course sur support moteur (add photo)===
Récapitulatif des fichiers finaux
 
  
Fichiers STL : [[File:ATM_V3_derniers_fichiers_STL.zip]]
+
Composants nécessaires:
  
== Mise à jour du 28.06.2017 (Danke) ==
+
*vis CHc-M3x14
 +
*ecrous-nylstop-M3
  
En se basant sur le principe de la vis sans fin tel que proposé sur la Version2 du 04.04.2017, l'ajout d'un système de came a donné naissance au projet suivant.
+
Fixer les support des capteurs de fin de course sur le support moteur avec 2 vis CHc-M3x14 qui sont fixées sur le Nema 17.
  
[[File:Came_vis_sans_fin.gif|center]]
+
[[File:Fixation_support_fin_de_course_sur_support_moteur.jpg|400px]]
  
'''[IMPORTANT]''' C'est une maquette ''de principe'' qui n'a pas pour but d'être utilisée telle quelle et qui ne répond pas aux contraintes d'une version finale.
+
===Étape 16 - Préparation des galets===
  
Le principe qui guide la conception mécanique de ce modèle est de favoriser un équilibre '''fiabilité/réplicabilité''' (''low-tech'') :
+
Introduire de part et d'autre de chaque galet un roulement MR84ZZ. Insérer par la force les roulements (2 par galet) dans les galets.
 
* une mécanique fiable dans le temps,
 
* éviter les techniques de fabrication trop ''hi-tech'',
 
* privilégier des pièces et matériaux relativement faciles à se procurer (disponibilité en neuf ou récupération)
 
  
[[File:Detail_vis_sans_fin.gif|center]]
+
===Étape 17 - Assemblage des galets sur la plaque de fixation de la rotule (add photo+précision nb vis)===
  
Conception : FreeCAD,  technique : découpe laser sur contreplaqué 5mm
+
Composants nécessaires:
 +
*vis-CHc-M5X35
 +
*ecrou-nylstop
  
== Prototype version courroie (plus simple que la version crémaillère) sur la base de la proposition du Lab cesson le 13/07/2017==
+
Assembler les galets sur la plaque de fixation de la rotule avec les vis CHc-M4X35 et écrous nylstop M4. Ne pas visser à fond et laisser du jeu pour l'assemblage sur le rail.
===Les fichiers 3D réalisés par Philippe Pacotte===
 
===Vidéo de démonstration du prototype "Courroie" en action sur l'appui-tête===
 
https://www.youtube.com/watch?v=nSzuiB68iBQ
 
===Le schéma arduino+shield moteur===
 
 
 
 
 
Voici le schéma et le pcb proposé par Bris au lab de Cesson
 
 
 
[[File:Pcb v1.2.png|200px|PCB]]
 
[[File:Sup tete sch v1.2.pdf|Schéma]]
 
 
 
===Code Arduino===
 
 
 
==Prototype version low-tech réalisé par jean-pierre le 13/07/2017 ==
 
===Les fichiers sources dxf ===
 
===Schéma du circuit===
 
===Première vidéo de démonstration du prototype "Low tech===
 
https://youtu.be/XQPITVDHdcU
 
 
 
==Réunion du 07/09/2017==
 
*Philippe, Yves, Stéphane, Jean-Pierre, Mathilde, Delphine, Danke
 
 
 
===Images et stl du nouveau proto courroie===
 
A ajouter (Mathilde)
 
 
 
===Vidéo du nouveau prototype Courroie réalisé cet été par Philippe, Danke et Stéphane===
 
 
 
Test avec un poids de 3,2kg : https://youtu.be/Exe82_4w_C4
 
 
 
Test avec un poids de 6kg : https://youtu.be/o_f7csljxNY
 
 
 
===Résumé des avancés sur le proto courroie===
 
Test du prototype à courroie avec poids de 6 kilos. Problème : à l'arrivée aux extrémités de la rotation, le moteur peinait du fait qu'il était fixe et que le rail se déplaçait avec la rotule dessus. Il fallait donc pousser le rail pour qu'il reparte dans l'autre sens.
 
 
 
Donc rail unique facile à imprimer mais il fallait ajouter un antibasculement.
 
 
 
Donc autre prototype imprimé en deux fois (deux ensembles boulonnés avec boulons traversants) et là le rail est fixe et le moteur mobile. Les support rotule et moteur devraient être faits en aluminium, tout comme la rotule. Le support du tube du fauteuil doit être en acier. A voir si on peut utiliser le support d'appui-tête du nouveau fauteuil de Mathilde dont elle ne se sert pas.
 
 
 
Truc à voir : où fixer les capteurs ? → sur l'appui tête lui-même ou sur la tige de la rotule.
 
 
 
Ajouter peut-être des tiges alu pour les commandes ou support alu (ou PMMA) fixé au support de la rotule qui épouse la partie mobile pour fixer les bras articulés (imprimés ou alu).
 
 
 
A implémenter : pouvoir ranger les bras de commandes quand ils ne sont pas utilisés. Pourquoi pas prévoir un système de ressort sur le rail de manière à ranger et sortir facilement les bras.
 
 
 
===Résumé des avancés sur le prototype de Jean-Pierre===
 
 
 
===Schéma de la carte moteur et Arduino===
 
 
 
==Version courroie avec lame alu==
 
===Images logiciel 3D proto courroie avec lame alu (dessins de philippe)===
 
 
 
<gallery>
 
File:lame_alu.png
 
File:cintrage_lame.JPG
 
File:V_finale0.png
 
File:V_finale1.png
 
File:V_finale2.png
 
File:V_finale3.png
 
File:V_finale4.png
 
File:V_finale5.png
 
File:V_finale6.png
 
File:V_finale7.png
 
</gallery>
 
 
 
<gallery mode="slideshow">
 
File:lame_alu.png
 
File:cintrage_lame.JPG
 
File:V_finale0.png
 
File:V_finale1.png
 
File:V_finale2.png
 
File:V_finale3.png
 
File:V_finale4.png
 
File:V_finale5.png
 
File:V_finale6.png
 
File:V_finale7.png
 
</gallery>
 
 
 
==Montages et premiers tests==
 
<gallery mode="slideshow">
 
File:Uaux8B.gif
 
</gallery>
 
 
 
[[Category:Projets]]
 
[[Category:En cours]]
 
[[Category:Mobilité]]
 
  
Réunion du 30 novembre suite aux premiers essais concluants : la rotation fonctionne, l'électronique aussi, il faut prévoir un ergo à la rotule pour qu'elle ne tourne pas sur elle-même.
+
[[File:assemblage_galet_sur_plaque_fixation.jpg|400px]]
  
'''Suite''' :
+
===Étape 18 - Assemblage de la rotule sur la plaque support rotule===
dans un premier temps, 2 boutons seront positionnés proches de la manette à gauche, au plus près l'un de l'autre. Le boîtier qui doit être créé pour contenir ces deux boutons sera fixé par un serre clips à l'autre bouton déjà présent sur la manette.
 
Il sera imprimé en 3D, le bas en plastique dur (un trou en dessous permettra la sortie des fils) et le dessus en plastique souple afin de permettre l'étanchéité et garder la facilité de pression des boutons. Les deux parties du boîtier peuvent éventuellement être collées avec de la colle néoprene pour assurer encore plus d'étanchéité.
 
  
Ce boîtier devra pouvoir être déconnecté du reste de l'électronique et donc aussi du support rotatif. Il est ainsi envisagé de mettre sur la longueur du fil, environ sous l'accoudoir, un système de connexion/déconnexion étanche et à vis (système vu à Caen par Christian et trouvé par Stéphane sur le net).
+
Composants nécessaires:
 +
*vis-CHc-M5X15
 +
*rondelle
  
==Photos et point d'étape 12/04/18==
+
Assembler la rotule et son ergo sur la plaque avec la vis CHc-M5X15 et sa rondelle (il faut penser à mettre du frein filet si ça se déserre trop souvent).
<gallery>
 
File:photo12041.jpg
 
File:photo12042.jpg
 
File:photo12043.jpg
 
File:photo12044.jpg
 
File:photo12045.jpg
 
File:photo12046.jpg
 
</gallery>
 
  
<gallery mode="slideshow">
+
https://youtu.be/SlecIxJOSQ0
File:photo12041.jpg
 
File:photo12042.jpg
 
File:photo12043.jpg
 
File:photo12044.jpg
 
File:photo12045.jpg
 
File:photo12046.jpg
 
</gallery>
 
  
==Fichiers STL du contacteur du projet de Jean-Pierre==
+
===Étape 19 - Assemblage de plaque rotule sur le rail de guidage (add photo+vis ref)===
  
[[:File:Stl_bouton_jp.zip|Stl_bouton_jp.zip]]
+
Enfiler la plaque rotule sur le rail de guidage.
  
==Photos des éléments de la version finale==
+
Serrer les écrous de fixation des galets en ne les serrant pas trop fort pour que le coulissement soit correct.
Le support du moteur ayant cassé lors d'un essai, le support moteur sera renforcé d'une réglette en aluminium
 
  
<gallery>
+
===Étape 20 - Fixation de la cornière aluminium sur la plaque de support rotule===
File:Supportmoteurcarbone.jpg
 
</gallery>
 
  
<gallery mode="slideshow">
+
Composants nécessaires:
File:Supportmoteurcarbone.jpg
+
*vis-M3
</gallery>
+
*ecrous-nylstop-M3
  
 +
Fixer la cornière aluminium sur la plaque de support rotule.
 +
La corniere de 20x20 sur 31 mm de longueur + 2 vis M3 avec écrous nylstop + 2 vis (ref+longueur???)
  
==Rectifications pour le montage==
+
===Étape 21 - Pose, tension et fixation de la courroie===
Il faut deux vis M3 tête fraisée de 16mm de long  au lieu des BTR initialement prévues, pour le support moteur suite à la nouvelle modélisation.
 
  
==Branchement sur la batterie du fauteuil==
+
Pose, tension et fixation de la courroie GT2 de largeur 6 mm, pas de 2 mm et longueur environ 35mm ou ajuster la longueur selon la course du rail. La fixer à chaque extrémité en la faisant passer par le trou prévu sur la butée de fin de course, et la fixer avec un cerflex sur le côté extérieur. Les crans de la courroie doivent être orientés vers le rail.
Il y a deux batteries sur le fauteuil de Mathilde produisant chacune 12v, elles sont branchés en série pour produire 24V.
 
Pour avoir le 24V, on branche sur le + d'une des batteries et le moins sur l'autre.
 
Ici nous voulons du 12v pour le moteur de l'appui-tête et du 5V pour la carte arduino (mais celle-ci a un régulateur sur le vIn donc on peut mettre le 12V directement sur le vIN) donc '''on va brancher notre circuit sur le + et le - de la même batterie'''
 
  
[[File:Schema batterieOK.jpg]]
+
Fixation de l'appui-tête : https://urlz.fr/bjPY
  
==Fichiers stl version finale==
+
Fixation courroie : https://youtu.be/NXCGfeGCh6I
Télécharger les fichiers stl et les imprimer en 3D.
 
[[File:Pièces imprimées 3D.zip]]
 
  
==Circuit avec arduino nano et easy driver (driver de moteur)==
+
===Étape 22 - Vidéo du montage===
 +
https://urlz.fr/bjPs
  
[[File:Appui tete.png|900px]]
+
===Étape 23 - Photos du prototype final===
 +
[[File:appui_tete_motorise_en_action.jpg|400px]][[File:appui_tete_motorise_vue_arriere.jpg|400px]] [[File:appui_tete_motorise_vue_arriere_trois_quart.jpg|400px]]
  
==Video de l'appui-tête en action==
 
https://youtu.be/J9JQrLJC_1k
 
  
https://youtu.be/uTQurch47Lc
 
  
  
 
[[Category:Projets]]
 
[[Category:Projets]]
[[Category:Réalisés]]
+
[[Category:Motricité]]

Version actuelle datée du 5 avril 2023 à 16:43

Appui-tete electrique

Appui tete motorise vue arriere trois quart.jpg

Informations
Description Appui-tête motorisé, permettant de soutenir et faire pivoter la tête d’une personne qui a une insuffisance musculaire au niveau du cou.
Catégorie Motricité
Etat d'avancement Réalisés
Techniques
Durée de fabrication de 16 à 32 h
Coût matériel De 100 à 200 euros
Niveau Difficile
Licence by-sa
Date de création 2017-04-25
Équipe
Porteur de projet Mathilde
Contributeurs Ylc, Philippe Pacotte, Stéphane Godin, Elektron, André, Danke
Fabmanager Delphine
Référent documentation Delphine
Nom humanlab Humanlab_MHK
Documentation
Statut de la documentation Complète
Relecture de la documentation Vérifiée

Description du projet

Créer un support à bas-coût permettant de soutenir et faire pivoter la tête d’une personne dont l’insuffisance musculaire au niveau du cou ne lui permet ni un soutien ni une rotation naturelle de gauche à droite (la rotation n’étant pas impossible articulairement mais uniquement musculairement). Mathilde ne souhaite pas un énième bouton de télécommande pour le contrôle de cette fonctionnalité car elle en a déjà beaucoup et ne peut pas toujours y accéder selon les circonstances.

Cahier des charges

Le dispositif doit :

  • supporter le poids de la tête,
  • permettre une rotation de 30° à gauche, 30° à droite,
  • être piloté électroniquement à la demande,
  • supporter un usage quotidien en toutes conditions (vibrations, humidité, chaleur,...)
  • être suffisamment hermétique pour ne pas que les cheveux se prennent dans le mécanisme
  • être résistant aux intempéries
  • prendre en compte le fait que Mathilde va être équipée d'un nouveau fauteuil

Analyse de l'existant

Cette solution existe seulement en non électrifiée dans le commerce.

La solution suivante a été testée et convient à Mathilde, excepté le manque d'aide électrique. http://www.medifab.co.nz/products/wheelchair-seating/axion-rotary-interface-wheelchair-headrests

Support tete rotatif commerce.gif

Exemple d'interface rotative du commerce : https://media.wix.com/ugd/3c5a2b_070f4373519443e69189391e8c695b87.pdf

Détails sur le mécanisme de roulements http://ot-sieber.ch/wp-content/uploads/2016/03/DSC_0052_3-180x180.jpg

Equipe (Porteur de projet et contributeurs)

  • Porteurs du projet :

Mathilde Fuchs

  • Concepteurs/contributeurs :

Philippe Pacotte, Stéphane Godin, André Bécot, Jean-Pierre Legrand, Yves Le Chevalier, Christian Fromentin, Danke, Francis Esnault, Jean-François Duguest, Brice Besançon, Yohann Véron,

  • Animateur (coordinateur du projet)

Delphine Bézier

  • Fabmanager référent

Delphine Bézier

  • Responsable de documentation

Matériel nécessaire

# Composant Quantité
1 Arduino-NANO 1
2 resistance-1K 4
3 micro-switch 4
4 nema17-42SHD0228 1
5 veroboard 1
6 batterie-12V 2
7 carte-big-easy-driver 1
8 boitier-derivation-electrique 1
9 poulie-GT2-bore5-20dents 1
10 nema17 1
11 vis-M3-12 2
12 roulement-F624ZZ 4
13 rondelles 4
14 fil-de-cablage-monobrin-0.2 1
15 vis CHc-M2X16 2
16 ecrous-M2 2
17 vis CHc-M3x14 2
18 ecrous-nylstop-M3 4
19 vis-CHc-M5X35 1
20 ecrou-nylstop 1
21 vis-CHc-M5X15 1
22 rondelle 1
23 vis-M3 2

Outils nécessaires

Coût

Fichiers source

Télécharger le code

Télécharger les documents

Télécharger les images

Télécharger les modèles 3D (STL)

Etapes de fabrication pas à pas

Étape 1 - Vue légendée du prototype final

Vue legendee.png Vue legendee2.png

Étape 2 - Fabrication de la pièce de liaison entre rail et support réglable de l'appui-tête du fauteuil

La pièce de liaison entre le rail et le support réglable de l'appui-tête fixé sur le fauteuil a été réalisé à partir de trois fers plats soudés entre eux. Se référer au fichier "piece entre rail et fauteuil.stl"

Télécharger le fichier stl support entre rail et fauteuil

Piece entre rail et fauteuil.pngCotes piece liaison rail support appui-tete.png

Étape 3 - Fabrication du rail

Pour fabriquer le rail , prendre la plaque d'aluminium 4G (voir image pour les côtes) et ajuster la courbe à la ceintreuse comme sur le fichier STL. IL est éventuellement possible de faire un gabarit en carton ou imprimé en 3D pour vérifier et ajuster la courbe.

Voir la manipulation en vidéo ici :

https://youtu.be/oLzzKH7SkhM

https://youtu.be/36KCF7G6KE4

https://youtu.be/mCTa5f2ztH4

Percer ensuite des trous et les filter pour les butées de fin de course dont la position est à ajuster selon le degré de mouvement voulu ou l'angle de rotation de la tête qui doit rester confortable pour l'usager

Télécharger le fichier stl rail

Dimensions rail.png Rail ceintreuse.png

Étape 4 - Fabrication de la rotule

En fonction de l’appui-tête de la personne, il faudra ajuster la taille de la rotule. Si le modèle correspond à celui-ci rapprochez-vous d’un tourneur pour la réaliser en aluminium 4G suivant le modèle STL (rotule.stl) . Il faudra ensuite la percer et filter (pour une vis CHc-M5X15)pour permettre sa fixation. Attention ajout d’un ergo en acier sur l’embase de la rotule parallèle à la vis et qui va également sur le sur le support de la rotule pour éviter que la rotule tourne sur elle-même.

Télécharger le fichier stl rotule model

Rotule 1.png

Rotule usinee.jpgUsinage rotule.jpg

Étape 5 - Fabrication de la plaque de fixation de la rotule et des galets

Fabriquer la plaque de fixation de la rotule avec une plieuse en se basant sur le fichier plaquerotule.stl.

Fabriquer les 4 galets (galets à réa de 5mm -le creux intérieur en largeur, et l’épaulement du réa de 2.5mm) Tourner en pom C (pom C=matériau plastique) les 4 galets de diamètre extérieur 15mm et 10mm en diamètre intérieur et les aléser pour les roulements qui viennent se loger aux deux extrémités.

Télécharger le fichier stl galet_perce

Télécharger le fichier stl plaquerotule

Galets.png Plaque rotule.png

Les galets ont été tournés un peu dissymétriquement, il faut les mettre tous dans le même sens pour le montage. La plaque a les trous du haut taraudés, ainsi il faut commencer le montage par les vis du haut, puis ajuster avec celles du bas, sans taraudage elles permettent un certain jeu.

Afin de permettre le bon fonctionnement des roulements, il ne faut pas trop serrer les vis (une entretoise peut être nécessaire si besoin).

Étape 6 - Impression des pièces en 3D (faire simulation temps d'impression dans Cura)

Imprimer l’ensemble des pièces situées dans le dossier « STL/A imprimer »

  • Matériau du filament : de préférence ABS ou PLA
  • Paramétrage sur Cura : Densité : 90 % de remplissage, qualité 0.2.

Il s'agit d'imprimer les butées, le support moteur, le support à capteur de fin de course et le capot protecteur

Télécharger le fichier butees.stl

Télécharger le fichier capot.stl

Télécharger le fichier capteurs_fin_course.stl

Télécharger le fichier support_moteur.stl

Support moteur.png Butees.png Capot brosse.jpg Support capteurs fin course.png

Étape 7 - Réalisation du circuit électronique

Composants nécessaires:


  • Arduino-NANO
  • resistance-1K
  • micro-switch
  • nema17-42SHD0228
  • veroboard
  • batterie-12V
  • carte-big-easy-driver

___________________________________

  • PCB (auquel il faut ajouter le circuit on/off )
  • Fichier arduino (code)

Télécharger le code

Réaliser ou faire fabriquer le circuit imprimé en vous référant au schema et PCB (Appuiteteschemav1.2.jpg, appui-tete-PCBv1.2.png) ci-dessous.

Appui tete schema v1.2.jpg Appui-tete-PCB v1.2.png

Téléverser le code sur la carte Arduino.

#include "cli.h"
#include "config.h"


#include "command.h"


// task definition for periodic scheduling 1ms
//void motorControl(Task* me);
//Task schedule (1, motorControl);



void setup() {

  // intialize command
  cli_open ();
  
  // initialize motor
  load_config ();
  get_stepper()->setMaxSpeed (get_speed());
  get_stepper()->setAcceleration (get_accel());
  // initialize led
  pinMode(LED, OUTPUT);
  digitalWrite (LED, LOW);

  // initialize buttons
  pinMode(BTN_RIGHT, INPUT);
  pinMode(BTN_LEFT, INPUT);

  // stepper microstep
  pinMode (MOTOR_MS1, OUTPUT),
  pinMode (MOTOR_MS2, OUTPUT);
  digitalWrite (MOTOR_MS1, LOW); // todo place config in config.h
  digitalWrite (MOTOR_MS2, LOW);

  //endstop
  pinMode (ENDSTOP_LEFT, INPUT),
  pinMode (ENDSTOP_RIGHT, INPUT);
  
  
  // run scheduler
  //SoftTimer.add(&schedule);

}

// function :SensorLeft
//
// Description :
// return te logic state of the left sensor
//
// Return :
// true if the left sensor is active. Otherwise false
boolean SensorLeft ()
{
  if (get_force_left () > 0)
    return (true);
  return (digitalRead (BTN_LEFT)== BTN_LEFT_ACTIVE_STATE ? true : false);
}

// function :SensorRight
//
// Description :
// return te logic state of the right sensor
//
// Return :
// true if the right sensor is active. Otherwise false
boolean SensorRight()
{
  if (get_force_right () > 0)
    return (true);
  return (digitalRead (BTN_RIGHT) == BTN_RIGHT_ACTIVE_STATE ? true : false);
}

// function :EndStopLeft
//
// Description :
// return the logic state of the left endstop sensor
//
// Return :
// true if the left endstop is active. Otherwise false
boolean EndStopLeft ()
{
  return (digitalRead (ENDSTOP_LEFT) == ENDSTOP_LEFT_STATE ? true : false); 
}

// function :EndStopRight
//
// Description :
// return the logic state of the right endstop sensor
//
// Return :
// true if the right endstop is active. Otherwise false
boolean EndStopRight ()
{
  return (digitalRead (ENDSTOP_RIGHT) == ENDSTOP_RIGHT_STATE ?  true : false); 
}

int RIGHT_MOVE = 1;
int LEFT_MOVE = -1;
int STOP_MOVE = 0;

//void turnOn(Task* me)
//{

//}


// Function: motorControl
//
// Description :
// The function is called every 1 ms. check command sensor and enstop and control the motor
//
// 
//void motorControl(Task* me)
void loop ()
{
  AccelStepper *pstepper = get_stepper ();
  
  // put your main code here, to run repeatedly:

  int step = 0;
  // decide move
  int move = STOP_MOVE;

  boolean right = SensorRight ();
  boolean left = SensorLeft ();
  
  boolean endl = EndStopLeft ();
  boolean endr = EndStopRight ();

 
  
 if (endr || endl)
  digitalWrite (LED, HIGH);
  else
  digitalWrite (LED,LOW);
 
 //endr = false;
 //endl=false;
  if (right == left)
  {
    move = STOP_MOVE;
    
    //digitalWrite(LED, LOW);
  }
  else if (right==true)
  {
    if (endr)
    {
      move=STOP_MOVE;
    }
    else
    {
      move = RIGHT_MOVE;
      pstepper->move (20000);
      //digitalWrite(LED, HIGH);
    }
  }
  else if (left == true)
  {
    if (endl)
    {
      move=STOP_MOVE;
    }
    else
    {
      move = LEFT_MOVE;
      pstepper->move(-20000);
      //digitalWrite(LED, HIGH);
    }
  }

  // motor control
  if (move != STOP_MOVE)
  {
    pstepper->run();
  }
  else
  {
    //stepper1.disableOutputs();
    pstepper->setSpeed(0);
    pstepper->setCurrentPosition (0);
  }

  // process command
   CLI.process();
}

La carte arduino est alimentée en 5V depuis la sortie 5V de la carte easy driver. Raccorder le 24V du PCB aux batteries du fauteuil (voir Schema_batterie.jpg).

Ajouter le circuit interrupteur ON/OFF led en image ci-contre afin de pouvoir éteindre le dispositif et ne pas consommer de batterie pour rien :)

Interrupteur on off led.png

Schema batterie 1.jpg

Étape 8 - Mise en place du circuit dans le boîtier du circuit électronique

Composant nécessaire:

  • boitier-derivation-electrique

Positionner le circuit dans le boitier de dérivation électrique étanche dont voici la référence : https://www.leroymerlin.fr/v3/p/produits/boite-de-derivation-etanche-en-saillie-debflex-8-entrees-e29160

Ce boitier sera fixé à l'arrière du fauteuil.

Étape 9 - Assemblage du bouton ou système choisi pour commander l'appui-tête rotatif

Assembler le bouton en se référant au schéma. Prévoir une longueur de câble suffisamment longue pour le relier au PCB situé dans le boîtier qui a été fixé à l’arrière du fauteuil.

Étape 10 - Fixation de la poulie GT2 bore 5 sur moteur NEMA17 (ajouter ref vis)

Composants nécessaires:

  • poulie-GT2-bore5-20dents
  • nema17

Enfiler la poulie la poulie GT2 bore (trou) 5 20 dents sur l'axe du moteur Nema17. Puis la fixer avec les deux vis sans tête de blocage de la poulie.

Se référer à l'image du schéma global.

Étape 11 - Fixation du moteur+poulie sur support moteur

Composant nécessaire:

  • vis-M3-12

Fixer l'ensemble moteur+poulie sur le support moteur avec 2 vis M3x12.

Étape 12 - Fixation roulements pour coulissage de la courroie

Composants nécessaires:

  • roulement-F624ZZ
  • rondelles

Fixer les 4 roulements à bille F624ZZ mis 2 par 2 en mirroir avec l'épaulement vers l'extérieur, avec des rondelles entre la vis et le roulement, pour éviter de comprimer la partie extérieure du roulement. Et de l'autre coté de la plaque du support moteur, on vient fixer la vis de M4x20 (ou 25) avec un écrou nylstop.

Étape 13 - Câblage des capteurs de fin de course (end-stop)

Composants nécessaires:

  • micro-switch
  • fil-de-cablage-monobrin-0.2

Souder les fils sur les capteurs de fin de course (autrement dit end stop ou microswitchs). Prévoir une longueur de fil suffisante pour aller jusqu'au boitier où se situe le circuit électronique.

Étape 14 - Montage des capteurs de fin de course sur leur support

Composants nécessaires:

  • vis CHc-M2X16
  • ecrous-M2

Assembler les capteurs de fin de courses (microswitchs) à leurs supports avec 2 vis CHc-M2X16 chacun et l'écrou associé

Étape 15 - Assemblage support des capteurs de fin de course sur support moteur (add photo)

Composants nécessaires:

  • vis CHc-M3x14
  • ecrous-nylstop-M3

Fixer les support des capteurs de fin de course sur le support moteur avec 2 vis CHc-M3x14 qui sont fixées sur le Nema 17.

Fixation support fin de course sur support moteur.jpg

Étape 16 - Préparation des galets

Introduire de part et d'autre de chaque galet un roulement MR84ZZ. Insérer par la force les roulements (2 par galet) dans les galets.

Étape 17 - Assemblage des galets sur la plaque de fixation de la rotule (add photo+précision nb vis)

Composants nécessaires:

  • vis-CHc-M5X35
  • ecrou-nylstop

Assembler les galets sur la plaque de fixation de la rotule avec les vis CHc-M4X35 et écrous nylstop M4. Ne pas visser à fond et laisser du jeu pour l'assemblage sur le rail.

Assemblage galet sur plaque fixation.jpg

Étape 18 - Assemblage de la rotule sur la plaque support rotule

Composants nécessaires:

  • vis-CHc-M5X15
  • rondelle

Assembler la rotule et son ergo sur la plaque avec la vis CHc-M5X15 et sa rondelle (il faut penser à mettre du frein filet si ça se déserre trop souvent).

https://youtu.be/SlecIxJOSQ0

Étape 19 - Assemblage de plaque rotule sur le rail de guidage (add photo+vis ref)

Enfiler la plaque rotule sur le rail de guidage.

Serrer les écrous de fixation des galets en ne les serrant pas trop fort pour que le coulissement soit correct.

Étape 20 - Fixation de la cornière aluminium sur la plaque de support rotule

Composants nécessaires:

  • vis-M3
  • ecrous-nylstop-M3

Fixer la cornière aluminium sur la plaque de support rotule. La corniere de 20x20 sur 31 mm de longueur + 2 vis M3 avec écrous nylstop + 2 vis (ref+longueur???)

Étape 21 - Pose, tension et fixation de la courroie

Pose, tension et fixation de la courroie GT2 de largeur 6 mm, pas de 2 mm et longueur environ 35mm ou ajuster la longueur selon la course du rail. La fixer à chaque extrémité en la faisant passer par le trou prévu sur la butée de fin de course, et la fixer avec un cerflex sur le côté extérieur. Les crans de la courroie doivent être orientés vers le rail.

Fixation de l'appui-tête : https://urlz.fr/bjPY

Fixation courroie : https://youtu.be/NXCGfeGCh6I

Étape 22 - Vidéo du montage

https://urlz.fr/bjPs

Étape 23 - Photos du prototype final

Appui tete motorise en action.jpgAppui tete motorise vue arriere.jpg Appui tete motorise vue arriere trois quart.jpg