Programme de contrôle de l'octopode 4DOF, Theraphosa-Salconi.

Dependencies:   debug mbed

CtrlBridge

  • fonction quelquonque pour communiquer avec les module
  • fonction quelquonque pour faire des recherche dans les module dispo
  • autre fonction pour jouer avec MemRegistre

Version 1.2.0

  • Ajout d'un mode de simulation pour tester le code avec seulement un contrôleur stm32
Committer:
salco
Date:
Thu May 14 21:40:23 2015 +0000
Revision:
27:ea60d12dccdf
Parent:
22:a2c875629f2d
Child:
28:ac5c6350ed9a
Toute fonctione reste plus qua integrer les donner au projet.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
salco 0:e4151abdff23 1 /*
salco 0:e4151abdff23 2 * mouvement.h
salco 0:e4151abdff23 3 *
salco 0:e4151abdff23 4 * Created on: Mar 02, 2015
salco 0:e4151abdff23 5 * Author: salco
salco 0:e4151abdff23 6 */
salco 0:e4151abdff23 7
salco 0:e4151abdff23 8 /*
salco 0:e4151abdff23 9 * Theraphosa Salconi
salco 0:e4151abdff23 10 *
salco 0:e4151abdff23 11 * Jambes[coxa/fermur/tibia/tars]+numeroMoteur:
salco 0:e4151abdff23 12 *
salco 0:e4151abdff23 13 * Arr-D: [0,1,2,3]
salco 0:e4151abdff23 14 * Arr-G: [16,17,18,19]
salco 0:e4151abdff23 15 * Arr-Mil-D: [4,5,6,7]
salco 0:e4151abdff23 16 * Arr-Mil-G: [20,21,22,23]
salco 0:e4151abdff23 17 * Avv-Mil-D: [8,9,10,11]
salco 0:e4151abdff23 18 * Avv-Mil-G: [24,25,26,27]
salco 0:e4151abdff23 19 * Avv-D: [12,13,14,15]
salco 0:e4151abdff23 20 * Avv-G: [28,29,30,31]
salco 0:e4151abdff23 21 *
salco 0:e4151abdff23 22 */
salco 0:e4151abdff23 23 #ifndef MOUVEMENT_H_
salco 0:e4151abdff23 24 #define MOUVEMENT_H_
salco 0:e4151abdff23 25
salco 22:a2c875629f2d 26
salco 27:ea60d12dccdf 27 #define DEBUG_MOUVEMENT 0/*1*/
salco 27:ea60d12dccdf 28 #define DEBUG_EXEC 0/*1*/
salco 27:ea60d12dccdf 29 #define DEBUG_SENDSEQ 0/*1*/
salco 0:e4151abdff23 30
salco 0:e4151abdff23 31 #include "mbed.h"
salco 0:e4151abdff23 32 //#include <string>
salco 19:0ac80045ba4c 33 #include "debug.h"
salco 0:e4151abdff23 34 //#include <stdio.h>
salco 0:e4151abdff23 35 #include "Patte.h"
salco 0:e4151abdff23 36 #include "homemadeSequence.h"
salco 0:e4151abdff23 37
salco 0:e4151abdff23 38
salco 0:e4151abdff23 39 class Faculter_motrice
salco 0:e4151abdff23 40 {
salco 0:e4151abdff23 41 Serial* m_com;
salco 0:e4151abdff23 42 homemadeSequence* m_seq;
salco 27:ea60d12dccdf 43 Timer delaisNextSeq;
salco 0:e4151abdff23 44
salco 0:e4151abdff23 45 Patte *m_arr_D;
salco 0:e4151abdff23 46 char m_SequenceID_arr_D;
salco 0:e4151abdff23 47 Patte *m_arr_mil_D;
salco 0:e4151abdff23 48 char m_SequenceID_arr_mil_D;
salco 0:e4151abdff23 49 Patte *m_arr_G;
salco 0:e4151abdff23 50 char m_SequenceID_arr_G;
salco 0:e4151abdff23 51 Patte *m_arr_mil_G;
salco 0:e4151abdff23 52 char m_SequenceID_arr_mil_G;
salco 0:e4151abdff23 53 Patte *m_avv_D;
salco 0:e4151abdff23 54 char m_SequenceID_avv_D;
salco 0:e4151abdff23 55 Patte *m_avv_mil_D;
salco 0:e4151abdff23 56 char m_SequenceID_avv_mil_D;
salco 0:e4151abdff23 57 Patte *m_avv_G;
salco 0:e4151abdff23 58 char m_SequenceID_avv_G;
salco 0:e4151abdff23 59 Patte *m_avv_mil_G;
salco 0:e4151abdff23 60 char m_SequenceID_avv_mil_G;
salco 27:ea60d12dccdf 61
salco 0:e4151abdff23 62 // Flag //
salco 0:e4151abdff23 63 bool m_ForceStop; // use when you want pause the motion
salco 0:e4151abdff23 64 bool m_CriticalStop; // use to turn off all legs
salco 0:e4151abdff23 65 bool m_SeqChange;
salco 0:e4151abdff23 66
salco 0:e4151abdff23 67 // //
salco 0:e4151abdff23 68 // char m_SequenceChosen;
salco 0:e4151abdff23 69 // A enlever au plus vite car sa prend beaucoup d'espace //
salco 0:e4151abdff23 70
salco 19:0ac80045ba4c 71 void sendSequence(void);
salco 0:e4151abdff23 72 public:
salco 0:e4151abdff23 73 #ifdef DEBUG
salco 0:e4151abdff23 74 char get_idSeq(void){return m_seq->get_Sequence();}
salco 0:e4151abdff23 75 #endif
salco 0:e4151abdff23 76 Faculter_motrice(Serial* com);
salco 0:e4151abdff23 77 virtual ~Faculter_motrice();
salco 20:c825e7b07af7 78
salco 27:ea60d12dccdf 79 bool isSeqComplet(void){return m_ForceStop;}
salco 0:e4151abdff23 80 void exec(void);
salco 0:e4151abdff23 81 void stop(void) {
salco 0:e4151abdff23 82 m_ForceStop= true;
salco 0:e4151abdff23 83 }
salco 0:e4151abdff23 84 void resume(void) {
salco 0:e4151abdff23 85 m_ForceStop=false;
salco 0:e4151abdff23 86 m_CriticalStop=false;
salco 27:ea60d12dccdf 87 delaisNextSeq.start();
salco 0:e4151abdff23 88 }
salco 0:e4151abdff23 89 void crit_stop(void);
salco 0:e4151abdff23 90
salco 0:e4151abdff23 91 void moveLeft (void) {
salco 19:0ac80045ba4c 92 m_ForceStop=false;
salco 0:e4151abdff23 93 m_seq->set_Sequence(9);
salco 27:ea60d12dccdf 94 delaisNextSeq.start();
salco 0:e4151abdff23 95 }
salco 0:e4151abdff23 96 void moveRight(void){
salco 19:0ac80045ba4c 97 m_ForceStop=false;
salco 0:e4151abdff23 98 m_seq->set_Sequence(10);
salco 27:ea60d12dccdf 99 delaisNextSeq.start();
salco 0:e4151abdff23 100 }
salco 0:e4151abdff23 101 void moveUp (void){
salco 19:0ac80045ba4c 102 m_ForceStop=false;
salco 0:e4151abdff23 103 m_seq->set_Sequence(2);
salco 27:ea60d12dccdf 104 delaisNextSeq.start();
salco 0:e4151abdff23 105 }
salco 0:e4151abdff23 106 void moveDown (void){
salco 19:0ac80045ba4c 107 m_ForceStop=false;
salco 0:e4151abdff23 108 m_seq->set_Sequence(3);
salco 27:ea60d12dccdf 109 delaisNextSeq.start();
salco 0:e4151abdff23 110 }
salco 0:e4151abdff23 111 void moveFront(void){
salco 19:0ac80045ba4c 112 m_ForceStop=false;
salco 0:e4151abdff23 113 m_seq->set_Sequence(6);
salco 27:ea60d12dccdf 114 delaisNextSeq.start();
salco 0:e4151abdff23 115 }
salco 0:e4151abdff23 116 void moveBack (void){
salco 19:0ac80045ba4c 117 m_ForceStop=false;
salco 0:e4151abdff23 118 m_seq->set_Sequence(7);
salco 27:ea60d12dccdf 119 delaisNextSeq.start();
salco 0:e4151abdff23 120 }
salco 0:e4151abdff23 121 void turnLeft (void){
salco 19:0ac80045ba4c 122 m_ForceStop=false;
salco 0:e4151abdff23 123 m_seq->set_Sequence(4);
salco 27:ea60d12dccdf 124 delaisNextSeq.start();
salco 0:e4151abdff23 125 }
salco 0:e4151abdff23 126 void trunRight(void){
salco 19:0ac80045ba4c 127 m_ForceStop=false;
salco 0:e4151abdff23 128 m_seq->set_Sequence(5);
salco 27:ea60d12dccdf 129 delaisNextSeq.start();
salco 0:e4151abdff23 130 }
salco 27:ea60d12dccdf 131 void calibre (){
salco 19:0ac80045ba4c 132 m_ForceStop=false;
salco 27:ea60d12dccdf 133 m_seq->set_Sequence(11);
salco 27:ea60d12dccdf 134 delaisNextSeq.start();
salco 27:ea60d12dccdf 135 }
salco 27:ea60d12dccdf 136 void repositioner(char idLeg){
salco 27:ea60d12dccdf 137 m_ForceStop=false;
salco 22:a2c875629f2d 138 m_seq->set_leg(idLeg);
salco 27:ea60d12dccdf 139 m_seq->set_Sequence(8);
salco 27:ea60d12dccdf 140 delaisNextSeq.start();
salco 0:e4151abdff23 141 }
salco 0:e4151abdff23 142
salco 0:e4151abdff23 143
salco 0:e4151abdff23 144
salco 0:e4151abdff23 145 };
salco 2:4c5b0f6d0a6b 146 extern Faculter_motrice *ptrFaculterMotrice;
salco 0:e4151abdff23 147 #endif /* MOUVEMENT_H_ */