Library to control the bike (just basic for now)
BikeControl.h@0:792a8f167ac0, 2016-07-18 (annotated)
- Committer:
- ptuytsch
- Date:
- Mon Jul 18 09:25:53 2016 +0000
- Revision:
- 0:792a8f167ac0
- Child:
- 1:39f462024f10
start of the bikeControl library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ptuytsch | 0:792a8f167ac0 | 1 | #ifndef BATTERYSTATE_H |
ptuytsch | 0:792a8f167ac0 | 2 | #define BATTERYSTATE_H |
ptuytsch | 0:792a8f167ac0 | 3 | #include "mbed.h" |
ptuytsch | 0:792a8f167ac0 | 4 | |
ptuytsch | 0:792a8f167ac0 | 5 | class BikeControl{ |
ptuytsch | 0:792a8f167ac0 | 6 | |
ptuytsch | 0:792a8f167ac0 | 7 | public: |
ptuytsch | 0:792a8f167ac0 | 8 | Bikecontrol(); |
ptuytsch | 0:792a8f167ac0 | 9 | |
ptuytsch | 0:792a8f167ac0 | 10 | protected: |
ptuytsch | 0:792a8f167ac0 | 11 | |
ptuytsch | 0:792a8f167ac0 | 12 | //State machine states definition |
ptuytsch | 0:792a8f167ac0 | 13 | typedef enum DriveState { |
ptuytsch | 0:792a8f167ac0 | 14 | DRIVE_START=0, |
ptuytsch | 0:792a8f167ac0 | 15 | DRIVE_BRAKE, |
ptuytsch | 0:792a8f167ac0 | 16 | DRIVE_BOOST, |
ptuytsch | 0:792a8f167ac0 | 17 | DRIVE_RUN, |
ptuytsch | 0:792a8f167ac0 | 18 | } DriveState_t; |
ptuytsch | 0:792a8f167ac0 | 19 | |
ptuytsch | 0:792a8f167ac0 | 20 | |
ptuytsch | 0:792a8f167ac0 | 21 | //WHEEL |
ptuytsch | 0:792a8f167ac0 | 22 | //const float WHEEL_CIRCUMFERENCE = 1.66; //Wheel Circumference |
ptuytsch | 0:792a8f167ac0 | 23 | //MOTOR |
ptuytsch | 0:792a8f167ac0 | 24 | //const float GEAR_RATIO = 13.3; //Motor gear ration |
ptuytsch | 0:792a8f167ac0 | 25 | |
ptuytsch | 0:792a8f167ac0 | 26 | //BATTERY |
ptuytsch | 0:792a8f167ac0 | 27 | AnalogIn batteryVoltageTrailer(PB_0); |
ptuytsch | 0:792a8f167ac0 | 28 | AnalogIn batteryVoltageBike(PC_5); |
ptuytsch | 0:792a8f167ac0 | 29 | AnalogIn batteryVoltageAuxiliay(PC_4); |
ptuytsch | 0:792a8f167ac0 | 30 | |
ptuytsch | 0:792a8f167ac0 | 31 | //TRAILER |
ptuytsch | 0:792a8f167ac0 | 32 | DigitalOut trailerCtrl(PB_1); |
ptuytsch | 0:792a8f167ac0 | 33 | |
ptuytsch | 0:792a8f167ac0 | 34 | //MOTOR |
ptuytsch | 0:792a8f167ac0 | 35 | PwmOut motorRightCtrl(PB_15); |
ptuytsch | 0:792a8f167ac0 | 36 | InterruptIn motorRightHall(PC_0); |
ptuytsch | 0:792a8f167ac0 | 37 | float motorRightCounter = 0; |
ptuytsch | 0:792a8f167ac0 | 38 | float motorRightRpm = 0; |
ptuytsch | 0:792a8f167ac0 | 39 | PwmOut motorLeftCtrl(PB_13); |
ptuytsch | 0:792a8f167ac0 | 40 | InterruptIn motorLeftHall(PC_1); |
ptuytsch | 0:792a8f167ac0 | 41 | float motorLeftCounter = 0; |
ptuytsch | 0:792a8f167ac0 | 42 | float motorLeftRpm = 0; |
ptuytsch | 0:792a8f167ac0 | 43 | |
ptuytsch | 0:792a8f167ac0 | 44 | //BRAKE |
ptuytsch | 0:792a8f167ac0 | 45 | DigitalIn brakeFront(PC_10); |
ptuytsch | 0:792a8f167ac0 | 46 | DigitalIn brakeRear(PC_12); |
ptuytsch | 0:792a8f167ac0 | 47 | |
ptuytsch | 0:792a8f167ac0 | 48 | //GENERATOR |
ptuytsch | 0:792a8f167ac0 | 49 | InterruptIn generatorHallA(PD_2); |
ptuytsch | 0:792a8f167ac0 | 50 | PwmOut generatorBrake(PC_9); |
ptuytsch | 0:792a8f167ac0 | 51 | float generatorHallACounter = 0; |
ptuytsch | 0:792a8f167ac0 | 52 | float generatorHallARpm = 0; |
ptuytsch | 0:792a8f167ac0 | 53 | InterruptIn generatorHallB(PC_3); |
ptuytsch | 0:792a8f167ac0 | 54 | float generatorHallBCounter = 0; |
ptuytsch | 0:792a8f167ac0 | 55 | float generatorHallBRpm = 0; |
ptuytsch | 0:792a8f167ac0 | 56 | |
ptuytsch | 0:792a8f167ac0 | 57 | //BUTTONS ON STEERING |
ptuytsch | 0:792a8f167ac0 | 58 | DigitalIn userButton(USER_BUTTON); |
ptuytsch | 0:792a8f167ac0 | 59 | DigitalIn buttonGreen(PB_11); |
ptuytsch | 0:792a8f167ac0 | 60 | DigitalIn buttonRed(PB_12); |
ptuytsch | 0:792a8f167ac0 | 61 | DigitalIn buttonDirectionRight(PA_15); |
ptuytsch | 0:792a8f167ac0 | 62 | DigitalIn buttonDirectionLeft(PB_7); |
ptuytsch | 0:792a8f167ac0 | 63 | |
ptuytsch | 0:792a8f167ac0 | 64 | //SWITCH |
ptuytsch | 0:792a8f167ac0 | 65 | DigitalIn switchOn(PC_11); |
ptuytsch | 0:792a8f167ac0 | 66 | DigitalIn switchWalk(PB_2); |
ptuytsch | 0:792a8f167ac0 | 67 | |
ptuytsch | 0:792a8f167ac0 | 68 | //LIGHT |
ptuytsch | 0:792a8f167ac0 | 69 | DigitalOut lightFront(PB_14); |
ptuytsch | 0:792a8f167ac0 | 70 | DigitalOut lightBack(PA_11); |
ptuytsch | 0:792a8f167ac0 | 71 | DigitalOut lightLeft(PC_6); |
ptuytsch | 0:792a8f167ac0 | 72 | DigitalOut lightRight(PC_8); |
ptuytsch | 0:792a8f167ac0 | 73 | |
ptuytsch | 0:792a8f167ac0 | 74 | }; |
ptuytsch | 0:792a8f167ac0 | 75 | |
ptuytsch | 0:792a8f167ac0 | 76 | #endif |