Alexandre Salconi-Denis / Mbed 2 deprecated ProjetOctopode

Dependencies:   debug mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers mouvement.h Source File

mouvement.h

00001 /**
00002  * mouvement.h
00003  *
00004  *  Created on: Mar 02, 2015
00005  *      Author: salco
00006  */
00007 
00008 /*
00009  * Theraphosa Salconi
00010  *
00011  * Jambes[coxa/fermur/tibia/tars]+numeroMoteur:
00012  *
00013  * Arr-D: [0,1,2,3]
00014  * Arr-G: [16,17,18,19]
00015  * Arr-Mil-D: [4,5,6,7]
00016  * Arr-Mil-G: [20,21,22,23]
00017  * Avv-Mil-D: [8,9,10,11]
00018  * Avv-Mil-G: [24,25,26,27]
00019  * Avv-D: [12,13,14,15]
00020  * Avv-G: [28,29,30,31]
00021  *
00022  */
00023 #ifndef MOUVEMENT_H_
00024 #define MOUVEMENT_H_
00025 
00026 
00027 #define DEBUG_MOUVEMENT 0/*1*/
00028 #define DEBUG_EXEC 0/*1*/
00029 #define DEBUG_SENDSEQ 0/*1*/
00030 #define DEBUG
00031 
00032 #include "mbed.h"
00033 //#include <string>
00034 #include "debug.h"
00035 //#include <stdio.h>
00036 #include "Patte.h"
00037 #include "homemadeSequence.h"
00038 
00039 
00040 class Faculter_motrice
00041 {
00042     Serial* m_com;
00043     homemadeSequence* m_seq;
00044     Timer delaisNextSeq;
00045 
00046     Patte *m_arr_D;
00047     char m_SequenceID_arr_D;
00048     Patte *m_arr_mil_D;
00049     char m_SequenceID_arr_mil_D;
00050     Patte *m_arr_G;
00051     char m_SequenceID_arr_G;
00052     Patte *m_arr_mil_G;
00053     char m_SequenceID_arr_mil_G;
00054     Patte *m_avv_D;
00055     char m_SequenceID_avv_D;
00056     Patte *m_avv_mil_D;
00057     char m_SequenceID_avv_mil_D;
00058     Patte *m_avv_G;
00059     char m_SequenceID_avv_G;
00060     Patte *m_avv_mil_G;
00061     char m_SequenceID_avv_mil_G;
00062     
00063 // Flag //
00064     bool m_ForceStop; // use when you want pause the motion
00065     bool m_CriticalStop; // use to turn off all legs
00066     bool m_SeqChange;
00067 
00068 //  //
00069 // char m_SequenceChosen;
00070 // A enlever au plus vite car sa prend beaucoup d'espace //
00071 
00072    void sendSequence(void);
00073 public:
00074 #ifdef DEBUG
00075 
00076 #endif
00077     char get_idSeq(void){return m_seq->get_Sequence();}
00078     char get_idFrame(void){return m_seq->get_frame();}
00079     void set_idSeq(char value){m_seq->set_frameID(value);}
00080     
00081     
00082     Faculter_motrice(Serial* com);
00083     virtual ~Faculter_motrice();
00084     
00085     bool isSeqComplet(void){return m_ForceStop;}
00086     void exec(void);
00087     void stop(void) {
00088         m_ForceStop= true;
00089     }
00090     void resume(void) {
00091         m_ForceStop=false;
00092         m_CriticalStop=false;
00093         delaisNextSeq.start();
00094     }
00095     void crit_stop(void);
00096     
00097     void moveLeft (void) {
00098         m_ForceStop=false;
00099         m_seq->set_Sequence(9);
00100         delaisNextSeq.start();
00101     }
00102     void moveRight(void){
00103         m_ForceStop=false;
00104         m_seq->set_Sequence(10);
00105         delaisNextSeq.start();
00106     }
00107     void moveUp   (void){
00108         m_ForceStop=false;
00109         m_seq->set_Sequence(2);
00110         delaisNextSeq.start();
00111     }
00112     void moveDown (void){
00113         m_ForceStop=false;
00114         m_seq->set_Sequence(3);
00115         delaisNextSeq.start();
00116     }
00117     void moveFront(void){
00118         m_ForceStop=false;
00119         m_seq->set_Sequence(6);
00120         delaisNextSeq.start();
00121     }
00122     void moveBack (void){
00123         m_ForceStop=false;
00124         m_seq->set_Sequence(7);
00125         delaisNextSeq.start();
00126     }
00127     void turnLeft (void){
00128         m_ForceStop=false;
00129         m_seq->set_Sequence(4);
00130         delaisNextSeq.start();
00131     }
00132     void trunRight(void){
00133         m_ForceStop=false;
00134         m_seq->set_Sequence(5);
00135         delaisNextSeq.start();
00136     }
00137     void calibre  (){
00138         m_ForceStop=false;
00139         m_seq->set_Sequence(11);
00140         delaisNextSeq.start();
00141     }
00142     void repositioner(char idLeg){
00143         m_ForceStop=false;
00144         m_seq->set_leg(idLeg);
00145         m_seq->set_Sequence(8);
00146         delaisNextSeq.start();
00147     }
00148 
00149 
00150 
00151 };
00152 extern Faculter_motrice *ptrFaculterMotrice;
00153 #endif /* MOUVEMENT_H_ */