Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
projets:conception_d_un_robot_a_base_d_arduino [2017/12/18 19:01] thierry_dasse |
projets:conception_d_un_robot_a_base_d_arduino [2018/02/18 15:45] (Version actuelle) thierry_dasse |
||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
liens: | liens: | ||
tags: | tags: | ||
- | usager:thierry_dasse doudoulolita ivan emmanuel sarah | + | usager: "le contenu est le fruit du travail des participants" |
licence:cc-by-sa | licence:cc-by-sa | ||
}}} | }}} | ||
Ligne 21: | Ligne 21: | ||
<!-- Présentez ici la phase de réflexion et de conception de votre projet, vos choix, etc. ... --> | <!-- Présentez ici la phase de réflexion et de conception de votre projet, vos choix, etc. ... --> | ||
+ | |||
+ | ==== Séance du samedi 17 février 2018 ==== | ||
+ | |||
+ | Pour cette séance du samedi robots, nous nous attaquons à la programmation d'une petite librairie de gestion de la pince avec pricipalement deux commandes : ouvrir la pince et fermer la pince. Pour cette dernière commande, l'activation du bouton poussoir servira de fin de course et arrêtera la fermeture. | ||
+ | |||
+ | Schéma conceptuel de la pince | ||
+ | |||
+ | {{:projets:conception_d_un_robot_a_base_d_arduino:pince.png?200|Schéma conceptuel de la pince}} | ||
+ | |||
+ | |||
+ | Schéma de montage du prototype pour tester le programme | ||
+ | |||
+ | {{:projets:conception_d_un_robot_a_base_d_arduino:pince_robot_bb.png?200|Schéma de montage du prototype}} | ||
+ | |||
+ | |||
+ | |||
+ | Pour le programme, nous avons réalisé une librairie contenant une classe TactilServo fille de la classe Servo | ||
+ | |||
+ | Fichier tactilservo.h à insérer dans le répertoire Arduino/librairies/TactilServo | ||
+ | |||
+ | <code c++> | ||
+ | |||
+ | #ifndef tactilservo_h | ||
+ | #define tactilservo_h | ||
+ | |||
+ | #include "Arduino.h" | ||
+ | #include <Servo.h> | ||
+ | |||
+ | class TactilServo : public Servo { | ||
+ | public: | ||
+ | void init(int servoPin, int switchPin); | ||
+ | void setOpenPos(int pos); | ||
+ | void setClosePos(int pos); | ||
+ | void setAngleSpeed(int s); | ||
+ | void open(); | ||
+ | int close(); | ||
+ | |||
+ | private: | ||
+ | int servoPin, switchPin; | ||
+ | int openPos,closePos,angleDelay; | ||
+ | }; | ||
+ | |||
+ | #endif | ||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | Fichier tactilservo.cpp à insérer dans le répertoire Arduino/librairies/TactilServo | ||
+ | |||
+ | Pendant la séance du 17 février, nous n'avons pas eu le temps d'implémenter toutes les méthodes. Il nous faudra finir. | ||
+ | |||
+ | <code c++> | ||
+ | |||
+ | #include "tactilservo.h" | ||
+ | |||
+ | void TactilServo::init(int servoPin, int switchPin) { | ||
+ | this->servoPin = servoPin; | ||
+ | this->switchPin = switchPin; | ||
+ | this->openPos = 180; | ||
+ | this->closePos = 0; | ||
+ | this->angleDelay = 15; | ||
+ | this->attach(this->servoPin); | ||
+ | pinMode(this->switchPin,INPUT); | ||
+ | digitalWrite(this->switchPin,HIGH); | ||
+ | } | ||
+ | |||
+ | void TactilServo::setOpenPos(int pos) { | ||
+ | // A faire | ||
+ | } | ||
+ | |||
+ | void TactilServo::setClosePos(int pos) { | ||
+ | // A faire | ||
+ | } | ||
+ | |||
+ | void TactilServo::setAngleSpeed(int s) { | ||
+ | // A faire | ||
+ | } | ||
+ | |||
+ | void TactilServo::open() { | ||
+ | this->write(this->openPos); | ||
+ | } | ||
+ | |||
+ | int TactilServo::close() { | ||
+ | int pos = this->read(); | ||
+ | while ((digitalRead(this->switchPin) != 0) && (pos > this->closePos)) { | ||
+ | pos -= 1; | ||
+ | this->write(pos); | ||
+ | delay(this->angleDelay); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </code> | ||
+ | |||
+ | Programme de test testpince.ino | ||
+ | |||
+ | <code c++> | ||
+ | #include "tactilservo.h" | ||
+ | |||
+ | TactilServo mapince; | ||
+ | |||
+ | void setup() { | ||
+ | mapince.init(3,2); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | mapince.open(); | ||
+ | delay(2000); | ||
+ | mapince.close(); //si on appuie sur le poussoir, la pince s'arrête | ||
+ | delay(5000); | ||
+ | } | ||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== Séance du samedi 20 janvier 2018 ==== | ||
+ | |||
+ | Aujourd'hui, on a décidé de travailler sur la conception/ modélisation de la pince. Elle sera constitué d'un servo moteur, d'un capteur de pression/contact et de pièces d'assemblage que l'on réalisera en impression 3D. | ||
+ | |||
+ | Nous avons choisi le servo moteur Hitec HS 422 (couple de ~3.5Kg.cm) et un bouton poussoir comme capteur de contact. | ||
+ | |||
+ | La modélisation du moteur est disponible sur GrabCad ([[https://grabcad.com/]]). Il faut se créer un compte pour pouvoir télécharger(gratuit). | ||
+ | |||
+ | Nous avons récupéré un fichier .step qui peut s'ouvrir sur Freecad. | ||
+ | {{:projets:conception_d_un_robot_a_base_d_arduino:hs-422.step|Moteur Hitec Hs 422}} | ||
+ | |||
+ | Sources d'inspiration pour la pince : | ||
+ | |||
+ | {{:projets:conception_d_un_robot_a_base_d_arduino:pince_ecrevisse.jpg?100 |}} | ||
+ | {{:projets:conception_d_un_robot_a_base_d_arduino:pince_robot.jpg?100 |}} | ||
Ligne 40: | Ligne 169: | ||
{{:projets:conception_d_un_robot_a_base_d_arduino:on_off_circuit_imprime.png?100 |}} | {{:projets:conception_d_un_robot_a_base_d_arduino:on_off_circuit_imprime.png?100 |}} | ||
+ | {{:projets:conception_d_un_robot_a_base_d_arduino:on_off_pistes.svg|}} | ||
=== Le programme === | === Le programme === |