Library to control the bike (just basic for now)
Diff: BikeControl.h
- Revision:
- 1:39f462024f10
- Parent:
- 0:792a8f167ac0
--- a/BikeControl.h Mon Jul 18 09:25:53 2016 +0000 +++ b/BikeControl.h Mon Jul 18 13:19:33 2016 +0000 @@ -1,14 +1,12 @@ -#ifndef BATTERYSTATE_H -#define BATTERYSTATE_H +#ifndef BIKECONTROL_H +#define BIKECONTROL_H #include "mbed.h" +#include "BikeData.h" +#include "BatteryState.h" class BikeControl{ - -public: - Bikecontrol(); protected: - //State machine states definition typedef enum DriveState { DRIVE_START=0, @@ -22,55 +20,67 @@ //const float WHEEL_CIRCUMFERENCE = 1.66; //Wheel Circumference //MOTOR //const float GEAR_RATIO = 13.3; //Motor gear ration - - //BATTERY - AnalogIn batteryVoltageTrailer(PB_0); - AnalogIn batteryVoltageBike(PC_5); - AnalogIn batteryVoltageAuxiliay(PC_4); + //TRAILER - DigitalOut trailerCtrl(PB_1); + DigitalOut trailerCtrl; //MOTOR - PwmOut motorRightCtrl(PB_15); - InterruptIn motorRightHall(PC_0); - float motorRightCounter = 0; - float motorRightRpm = 0; - PwmOut motorLeftCtrl(PB_13); - InterruptIn motorLeftHall(PC_1); - float motorLeftCounter = 0; - float motorLeftRpm = 0; + PwmOut motorRightCtrl; + InterruptIn motorRightHall; + uint16_t motorRightCounter; + uint16_t motorRightRpm; + PwmOut motorLeftCtrl; + InterruptIn motorLeftHall; + uint16_t motorLeftCounter; + uint16_t motorLeftRpm; //BRAKE - DigitalIn brakeFront(PC_10); - DigitalIn brakeRear(PC_12); + DigitalIn brakeFront; + DigitalIn brakeRear; //GENERATOR - InterruptIn generatorHallA(PD_2); - PwmOut generatorBrake(PC_9); - float generatorHallACounter = 0; - float generatorHallARpm = 0; - InterruptIn generatorHallB(PC_3); - float generatorHallBCounter = 0; - float generatorHallBRpm = 0; + InterruptIn generatorHallA; + PwmOut generatorBrake; + uint16_t generatorHallACounter; + uint16_t generatorHallARpm; + InterruptIn generatorHallB; + uint16_t generatorHallBCounter; + uint16_t generatorHallBRpm; //BUTTONS ON STEERING - DigitalIn userButton(USER_BUTTON); - DigitalIn buttonGreen(PB_11); - DigitalIn buttonRed(PB_12); - DigitalIn buttonDirectionRight(PA_15); - DigitalIn buttonDirectionLeft(PB_7); + //DigitalIn userButton; + DigitalIn buttonGreen; + DigitalIn buttonRed; + DigitalIn buttonDirectionRight; + DigitalIn buttonDirectionLeft; //SWITCH - DigitalIn switchOn(PC_11); - DigitalIn switchWalk(PB_2); + DigitalIn switchOn; + DigitalIn switchWalk; //LIGHT - DigitalOut lightFront(PB_14); - DigitalOut lightBack(PA_11); - DigitalOut lightLeft(PC_6); - DigitalOut lightRight(PC_8); + DigitalOut lightFront; + DigitalOut lightBack; + DigitalOut lightLeft; + DigitalOut lightRight; + + void generatorHallAPulsed(); + void generatorHallBPulsed(); + void motorRightPulsed(); + void motorLeftPulsed(); + void periodicCallback(); + + Ticker t; + BikeData *bd; + BatteryState *bikeBat, *trailerBat, *auxBat; + +public: + BikeControl(BikeData* bikeData, BatteryState* trailerBat, BatteryState* bikeBat, BatteryState* auxBat); + void runTestLight(); + void startControlLoop(); + void checkStatus(); }; #endif \ No newline at end of file