Library to control the bike (just basic for now)

Dependents:   TORTUGA_BLE

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?

UserRevisionLine numberNew 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