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:
Sun Sep 13 06:56:09 2015 +0000
Revision:
36:474d4795aafa
Parent:
28:ac5c6350ed9a
Mise a jours du labyrinthe et augmentation du debogage graphique.

Who changed what in which revision?

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