Différences entre versions de « Projets:Exosquelette coude »

De wikilab
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 :

Synoptique Exosquelette Coude.png


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

https://www.robotshop.com/eu/fr/servomoteur-analogique-engrenage-en-metal-fs6530m-feetech.html?gclid=Cj0KCQiA-rj9BRCAARIsANB_4ABs3I54-IUqXLTlHeVo0u6hbV8QlVzzKuNPWpJsA_ljIBE9OQj9TKUaAmrDEALw_wcB

Sans codeur


  • Ensemble Moteur 12v avec réducteur et codeur
Avec Codeur


  • Ensemble Moteur 24v avec réducteur et sans codeur Moteur 24volt 0.6 RPM
Sans Codeur Moteur 24volt 0.6 RPM
Détail


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 Contrôleur


  • Carte Arduino Uno
Carte Arduino


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);

}

Etapes de fabrication pas à pas

Durée de fabrication du prototype final

Journal de bord