Ben Katz
/
Hobbyking_Cheetah_V1
FOC Implementation for putting multirotor motors in robots
Embed:
(wiki syntax)
Show/hide line numbers
PositionSensor.h
00001 #ifndef POSITIONSENSOR_H 00002 #define POSITIONSENSOR_H 00003 class PositionSensor { 00004 public: 00005 virtual float GetMechPosition() {return 0.0f;} 00006 virtual float GetElecPosition() {return 0.0f;} 00007 virtual float GetMechVelocity() {return 0.0f;} 00008 virtual float GetElecVelocity() {return 0.0f;} 00009 }; 00010 00011 00012 class PositionSensorEncoder: public PositionSensor { 00013 public: 00014 PositionSensorEncoder(int CPR, float offset, int ppairs); 00015 virtual float GetMechPosition(); 00016 virtual float GetElecPosition(); 00017 virtual float GetMechVelocity(); 00018 virtual float GetElecVelocity(); 00019 private: 00020 InterruptIn *ZPulse; 00021 DigitalIn *ZSense; 00022 //DigitalOut *ZTest; 00023 virtual void ZeroEncoderCount(void); 00024 virtual void ZeroEncoderCountDown(void); 00025 int _CPR, flag, rotations, _ppairs; 00026 //int state; 00027 float _offset, MechPosition, dir, test_pos, vel_old, out_old; 00028 }; 00029 00030 class PositionSensorMA700: public PositionSensor{ 00031 public: 00032 PositionSensorMA700(int CPR, float offset, int ppairs); 00033 virtual float GetMechPosition(); 00034 virtual float GetElecPosition(); 00035 virtual float GetMechVelocity(); 00036 virtual int GetRawPosition(); 00037 virtual void ZeroPosition(); 00038 private: 00039 float _offset, MechPosition, MechOffset; 00040 int _CPR, rotations, old_counts, _ppairs; 00041 SPI *spi; 00042 DigitalOut *cs; 00043 }; 00044 00045 class PositionSensorAM5147: public PositionSensor{ 00046 public: 00047 PositionSensorAM5147(int CPR, float offset, int ppairs); 00048 virtual float GetMechPosition(); 00049 virtual float GetElecPosition(); 00050 virtual float GetMechVelocity(); 00051 virtual int GetRawPosition(); 00052 virtual void ZeroPosition(); 00053 private: 00054 float _offset, MechPosition, MechOffset; 00055 int _CPR, rotations, old_counts, _ppairs; 00056 SPI *spi; 00057 DigitalOut *cs; 00058 int readAngleCmd; 00059 00060 }; 00061 #endif
Generated on Wed Jul 13 2022 02:31:45 by 1.7.2