Différences entre versions de « Projets:Exosquelette coude »
Ligne 53 : | Ligne 53 : | ||
==Fichiers source== | ==Fichiers source== | ||
+ | Le code source pour cette version : | ||
+ | /* | ||
+ | Projet de contrôle de L'exosquelette coude. | ||
+ | Deux fins de course pour les limites haute et basse. | ||
+ | Deux boutons pour contrôler la montée et la descente. | ||
+ | Ces deux boutons simulent le fonctionnement des capteurs MYO. | ||
+ | Un ajustable de variation de la vitesse. | ||
+ | */ | ||
+ | |||
+ | const int analogInPin = A1; | ||
+ | const int btn_Monte = 5; //marron | ||
+ | const int btn_Descend = 4; //orange | ||
+ | |||
+ | const int fdc_Descend = 7; //rouge | ||
+ | const int fdc_Monte = 6; // vert | ||
+ | |||
+ | const int enable_1 = 11; | ||
+ | const int cmd_Monte = 10; | ||
+ | const int cmd_Descend = 9; | ||
+ | |||
+ | int vitesse ; | ||
+ | |||
+ | void setup() { | ||
+ | // initialize serial communications at 9600 bps: | ||
+ | // Serial.begin(9600); | ||
+ | |||
+ | pinMode(btn_Descend, INPUT_PULLUP); | ||
+ | pinMode(btn_Monte, INPUT_PULLUP); | ||
+ | pinMode(fdc_Descend, INPUT_PULLUP); | ||
+ | pinMode(fdc_Monte, INPUT_PULLUP); | ||
+ | pinMode(enable_1, OUTPUT); | ||
+ | pinMode(cmd_Monte, OUTPUT); | ||
+ | pinMode(cmd_Descend, OUTPUT); | ||
+ | |||
+ | digitalWrite(enable_1, LOW); | ||
+ | digitalWrite(cmd_Monte, LOW); | ||
+ | digitalWrite(cmd_Descend, LOW); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | vitesse = map(analogRead(analogInPin),0,1023,0,255); | ||
+ | setMotor(vitesse, !digitalRead(btn_Monte),!digitalRead(btn_Descend)) ; | ||
+ | } | ||
+ | |||
+ | |||
+ | void setMotor(int velocite, boolean M, boolean D ) | ||
+ | { | ||
+ | if (digitalRead(fdc_Monte)){ | ||
+ | M = false; | ||
+ | } | ||
+ | if (digitalRead(fdc_Descend)){ | ||
+ | D = false; | ||
+ | } | ||
+ | analogWrite(enable_1, velocite); | ||
+ | digitalWrite(cmd_Descend,D); | ||
+ | digitalWrite(cmd_Monte,M); | ||
+ | } | ||
==Etapes de fabrication pas à pas== | ==Etapes de fabrication pas à pas== |
Version du 3 décembre 2020 à 19:00
Description du projet
Création d'un exosquelette de coude permettant de plier le coude afin de soulever la main. Utiliser les capteurs myo électriques pour déclencher le mouvement.
Cahier des charges
poids du bras 300g coude posé
Synoptique :
Analyse de l'existant
Partir de cet outil pédagogique https://www.eduexo.com/eduexo-kit/ pour en faire un exosquelette utilisable
Equipe (Porteur de projet et contributeurs)
- Porteurs du projet : Mathilde
- Concepteurs/contributeurs : Christian, Michel, David
- Animateur (coordinateur du projet) : Mathilde
- Fabmanager référent
- Responsable de documentation : Mathilde
Matériel nécessaire
Dans un premier temps on liste les différents ensembles de moteurs pouvant être utilisés.
Ensemble Servo moteur
- Ensemble Moteur 12v avec réducteur et codeur
- Ensemble Moteur 24v avec réducteur et sans codeur Moteur 24volt 0.6 RPM
https://www.amazon.fr/gp/product/B089PTHM98/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 Moteur 24volt 0.6 RPM
Cartes électroniques:
- Carte Contrôleur Moteur LD293D
- Carte Arduino Uno
Outils nécessaires
Coût
Délai estimé
Fichiers source
Le code source pour cette version : /* Projet de contrôle de L'exosquelette coude. Deux fins de course pour les limites haute et basse. Deux boutons pour contrôler la montée et la descente. Ces deux boutons simulent le fonctionnement des capteurs MYO. Un ajustable de variation de la vitesse.
- /
const int analogInPin = A1; const int btn_Monte = 5; //marron const int btn_Descend = 4; //orange
const int fdc_Descend = 7; //rouge const int fdc_Monte = 6; // vert
const int enable_1 = 11; const int cmd_Monte = 10; const int cmd_Descend = 9;
int vitesse ;
void setup() {
// initialize serial communications at 9600 bps: // Serial.begin(9600);
pinMode(btn_Descend, INPUT_PULLUP); pinMode(btn_Monte, INPUT_PULLUP); pinMode(fdc_Descend, INPUT_PULLUP); pinMode(fdc_Monte, INPUT_PULLUP); pinMode(enable_1, OUTPUT); pinMode(cmd_Monte, OUTPUT); pinMode(cmd_Descend, OUTPUT);
digitalWrite(enable_1, LOW); digitalWrite(cmd_Monte, LOW); digitalWrite(cmd_Descend, LOW);
}
void loop() {
vitesse = map(analogRead(analogInPin),0,1023,0,255); setMotor(vitesse, !digitalRead(btn_Monte),!digitalRead(btn_Descend)) ;
}
void setMotor(int velocite, boolean M, boolean D )
{
if (digitalRead(fdc_Monte)){ M = false; } if (digitalRead(fdc_Descend)){ D = false; } analogWrite(enable_1, velocite); digitalWrite(cmd_Descend,D); digitalWrite(cmd_Monte,M);
}