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

source/Motrice/homemadeSequence.h

Committer:
salco
Date:
2015-05-14
Revision:
27:ea60d12dccdf
Parent:
22:a2c875629f2d
Child:
28:ac5c6350ed9a

File content as of revision 27:ea60d12dccdf:

/*
 * homemadeSequence.h
 *
 *  Created on: Mar 03, 2015
 *      Author: salco
 */

#ifndef HOMEMADESEQUENCE_H_
#define HOMEMADESEQUENCE_H_

#define DEBUG_HOMEMADE_GETFRAME 0
#define DEBUG_HOMEMADE_GETTIME 0
#define DEBUG_HOMEMADE_NEXTFRAME 0
#define DEBUG_HOMEMADE_PREVFRAME 0
#define DELAITESTE 1000

#include "debug.h"
#include "mbed.h"

class homemadeSequence
{
    //////////////////////////////
    // 00 - Nothing             //
    //X01 - Calibration(milieu) //
    //X02 - Debout              //
    //X03 - Coucher             //
    //X04 - Tourne Gauche       //
    //X05 - Tourne Droite       //
    // 06 - Marche              //
    // 07 - Recule              //
    // 08 - Repositioner  legs  //
    // 09 - Crabe  Gauche       // Dont use Crabe because it's really anoying
    // 10 - Crabe  Droite       // Dont use Crabe because it's really anoying
    // 11 - Position naturel    //
    //////////////////////////////
    char m_SequenceChosen;
    char m_idFrame;
    
    //Timer delaisNextSeq;//move to movement.h
    int delaisNeed;
    unsigned char m_posLeg[4];
    unsigned char timeSequence[8];
    char m_idLegUse; // pour seqRepositioner

    void seqUpDown(bool downUP,char idOperation,char idLeg);
    void seqTurn(bool leftRIGHT,char idOperation,char idLeg);
    void seqWalk(bool backFRONT,char idOperation,char idLeg);
    void seqRepositioner(char idOperation,char idLeg);
    void seqCrabe(bool leftRIGHT,char idOperation,char idLeg);
    void defaultPosition(char idLeg);
    
    int patchDelais(char idMode);
    
public:
    homemadeSequence();
    ~homemadeSequence();
    void set_Sequence(char idSequence) {
        m_SequenceChosen = idSequence;
        m_idFrame = 1;
        
        //delaisNeed=patchDelais(idSequence);
    }
    char get_Sequence(void) {
        return m_SequenceChosen;
    }
    void set_leg(char idLeg){m_idLegUse = idLeg;}
    int get_msTime(char idLeg){
        int result = timeSequence[idLeg-1];
        
        debug(DEBUG_HOMEMADE_GETTIME,"\n\r idLeg:%i \n\r timeSequence:%i\n\r delais:%i",idLeg,result,delaisNeed);
        return (result==255)? DELAITESTE/2:result*10;
        }
    int get_delaisNeed_Ms(){return delaisNeed;}
    unsigned char* get_frame(/*char idSequence,*/char idOperation,char idLeg);
    unsigned char* get_frame(/*char idSequence,char idOperation,*/char idLeg);
    void set_frameID(char position) {m_idFrame = position;};
    bool next_frame(void); //return true if you are not at the end
    bool prev_frame(void); //return true if you are not at the begining
};
#endif /* HOMEMADESEQUENCE_H_ */