BE@R lab / motion_control

Dependencies:   motor_relay

Dependents:   dog_V3_3_testmotor

Committer:
soulx
Date:
Sat Jul 18 05:52:56 2015 +0000
Revision:
4:6509fec6a6fb
Parent:
3:4fa191f2194d
Child:
5:91d905f8bef7
test and edit :pass

Who changed what in which revision?

UserRevisionLine numberNew contents of line
soulx 0:77ab14788110 1 #ifndef MBED_MOTOR_RE_H
soulx 0:77ab14788110 2 #define MBED_MOTOR_RE_H
soulx 0:77ab14788110 3
soulx 0:77ab14788110 4 #include "mbed.h"
soulx 0:77ab14788110 5 #include "motor_relay.h"
soulx 0:77ab14788110 6
soulx 0:77ab14788110 7 class MOTION_CONTROL
soulx 0:77ab14788110 8 {
soulx 0:77ab14788110 9 public:
soulx 0:77ab14788110 10 MOTION_CONTROL(PinName dirA, PinName dirB, PinName limitUp, PinName limitDown, PinName vr );
soulx 0:77ab14788110 11
soulx 4:6509fec6a6fb 12 int limit_motor(uint8_t dirction);
soulx 4:6509fec6a6fb 13 int8_t position_control(uint16_t target);
soulx 0:77ab14788110 14 void calibration();
soulx 0:77ab14788110 15
soulx 3:4fa191f2194d 16 int GetLimitUp();
soulx 3:4fa191f2194d 17 int GetLimitDown();
soulx 2:2cadf29245f4 18
soulx 0:77ab14788110 19 void SetMargin(int16_t data);
soulx 2:2cadf29245f4 20 int16_t GetMargin();
soulx 2:2cadf29245f4 21
soulx 2:2cadf29245f4 22 uint16_t GetMaxPosition();
soulx 2:2cadf29245f4 23 uint16_t GetMinPosition();
soulx 2:2cadf29245f4 24
soulx 4:6509fec6a6fb 25
soulx 4:6509fec6a6fb 26 uint16_t GetAnalog();
soulx 4:6509fec6a6fb 27 uint16_t GetPosition();
soulx 2:2cadf29245f4 28
soulx 4:6509fec6a6fb 29 void stop();
soulx 0:77ab14788110 30
soulx 0:77ab14788110 31 private:
soulx 0:77ab14788110 32
soulx 4:6509fec6a6fb 33 uint16_t Scale(uint16_t data);
soulx 4:6509fec6a6fb 34
soulx 4:6509fec6a6fb 35 MOTOR_RELAY motor;
soulx 0:77ab14788110 36
soulx 0:77ab14788110 37 DigitalIn _limit_up;
soulx 0:77ab14788110 38 DigitalIn _limit_down;
soulx 0:77ab14788110 39 AnalogIn _position;
soulx 0:77ab14788110 40
soulx 0:77ab14788110 41 int16_t error;
soulx 0:77ab14788110 42 int16_t MARGIN;
soulx 0:77ab14788110 43
soulx 2:2cadf29245f4 44 uint16_t MAX_POSITION;
soulx 2:2cadf29245f4 45 uint16_t MIN_POSITION;
soulx 0:77ab14788110 46
soulx 4:6509fec6a6fb 47 const static uint16_t scale = 64;
soulx 1:5b313fd2ca6f 48
soulx 1:5b313fd2ca6f 49
soulx 0:77ab14788110 50 float Kp;
soulx 0:77ab14788110 51 float Ki;
soulx 0:77ab14788110 52 float Kd;
soulx 0:77ab14788110 53 float margin_pid;
soulx 0:77ab14788110 54
soulx 0:77ab14788110 55 };
soulx 0:77ab14788110 56
soulx 0:77ab14788110 57 #endif