Mark Bruijn
/
DashboardV6
dash v6
Fork of DashboardV4 by
Diff: main.cpp
- Revision:
- 17:f8d3d1f0d8d1
- Parent:
- 16:21658c9e697c
--- a/main.cpp Tue May 02 17:25:18 2017 +0000 +++ b/main.cpp Sun May 21 19:33:42 2017 +0000 @@ -1,7 +1,7 @@ -#include "mbed.h" -#include "oled_driver.h" +#include "mbed.h" +#include "oled_driver.h" -#define MENU_TIMEOUT_TIME 50.0 //menu timeout in seconds [s] +#define MENU_TIMEOUT_TIME 5.0 //menu timeout in seconds [s] #define MAX_POWER_IN 1500 //max power in for power bars [W] #define MAX_POWER_OUT 2000 //max power out for power bars [W] #define MAX_TEMP_MOTOR 80 //alert when exceeding temp ['C] @@ -11,11 +11,10 @@ #define MIN_FLY_VELOCITY 15 //min velocity to request fly [km/h] #define BATTERY_LOW_ALERT 10 //min battery percentage [%, min] -//digital and analog inputs -DigitalIn reverse_button(D14); -DigitalIn menu_button(D15); -DigitalIn fly_button(D12); -AnalogIn analog_throttle(A5); +DigitalIn menu_button(D0); +DigitalIn fly_button(D0); +DigitalIn reverse_button(D0); +AnalogIn analog_throttle(A0); //global variables int battery_percentage_left = 0; @@ -53,10 +52,11 @@ clearDisplay(2); clearDisplay(3); - welcomeScreen(); + //welcomeScreen(); while(1) { + //listen to menu button current_menu = checkIfButtonPressed(current_menu); //listen to steering wheel at all time @@ -64,6 +64,7 @@ //check for errors at all time checkForErrors(current_menu, velocity, battery_temperature, motor_temperature, MAX_TEMP_MOTOR, MAX_TEMP_BATTERY, battery_percentage_left, battery_minutes_left, BATTERY_LOW_ALERT); + switch (current_menu) { case 0: @@ -73,21 +74,21 @@ showRaceMinutesDone(race_minutes_done); showRaceMinutesLeft(race_minutes_left); showRacePercentageLeft(race_percentage_left); - + //main display (2) displayTime(); checkTransmitter(transmitting); displayVelocity(velocity); displayThrottle(throttle_power, reverse); - displayAdvisedThrottle(advised_throttle_power); + //displayAdvisedThrottle(advised_throttle_power); updatePowerBars(power_out, power_in, MAX_POWER_OUT, MAX_POWER_IN); - + //circular display (3) //updateProgressCircle(3, battery_percentage_left); showBatteryMinutesLeft(battery_minutes_left); showBatteryPercentageLeft(battery_percentage_left); - break; - + break; + case 1: //circular display (1) //updateProgressCircle(1, race_percentage_left); @@ -95,13 +96,16 @@ showRaceMinutesDone(race_minutes_done); showRaceMinutesLeft(race_minutes_left); showRacePercentageLeft(race_percentage_left); - + + //main display (2) + displayData1(rpm_motor, battery_temperature, motor_temperature, voltage_in, power_out, power_in); + //circular display (3) //updateProgressCircle(3, battery_percentage_left); showBatteryMinutesLeft(battery_minutes_left); showBatteryPercentageLeft(battery_percentage_left); - break; - + break; + case 2: //circular display (1) //updateProgressCircle(1, race_percentage_left); @@ -109,35 +113,18 @@ showRaceMinutesDone(race_minutes_done); showRaceMinutesLeft(race_minutes_left); showRacePercentageLeft(race_percentage_left); - + //main display (2) - displayData1(rpm_motor, battery_temperature, motor_temperature, voltage_in, power_out, power_in); - + displayData2(battery_voltage, battery_temperature, motor_temperature, voltage_in, power_out, power_in); + //circular display (3) //updateProgressCircle(3, battery_percentage_left); showBatteryMinutesLeft(battery_minutes_left); showBatteryPercentageLeft(battery_percentage_left); - break; - - case 3: - //circular display (1) - //updateProgressCircle(1, race_percentage_left); - race_minutes_done = time(0)/60; //TODO give starting point - showRaceMinutesDone(race_minutes_done); - showRaceMinutesLeft(race_minutes_left); - showRacePercentageLeft(race_percentage_left); - - //main display (2) - displayData2(battery_voltage, battery_temperature, motor_temperature, voltage_in, power_out, power_in); - - //circular display (3) - //updateProgressCircle(3, battery_percentage_left); - showBatteryMinutesLeft(battery_minutes_left); - showBatteryPercentageLeft(battery_percentage_left); - break; + break; default: //empty, catch - break; + break; } } } @@ -149,7 +136,7 @@ menu_button_pressed = true; start = time(0); current_menu++; - if (current_menu > 3) current_menu = 0; + if (current_menu > 2) current_menu = 0; clearDisplay(1); clearDisplay(2); clearDisplay(3); @@ -181,22 +168,19 @@ void readEssentials() { + //get current throttle set + adjust params -------- DEBUG - throttle_power = 1000*analog_throttle; - - - power_out = 1.5*throttle_power; - power_in = 1.9*throttle_power; - velocity = 0.2*throttle_power; - battery_minutes_left = 0.1*throttle_power; - battery_percentage_left = 0.15*throttle_power; - motor_temperature = 0.5*throttle_power; - battery_temperature = 0.2*throttle_power; - battery_voltage = 300.1*throttle_power; - rpm_motor = throttle_power; - voltage_in = 200.1*throttle_power; - race_minutes_left = 0.13*throttle_power; + //throttle_power = 500 - (500*analog_throttle); + power_out = 580; + power_in = 680; + velocity = 0.1*throttle_power; + battery_minutes_left = throttle_power/6; + battery_percentage_left = throttle_power/5; + motor_temperature = 68; + battery_temperature = 24; + battery_voltage = 45; + rpm_motor = 6*throttle_power; + voltage_in = 44; + race_minutes_left = 12; race_percentage_left = 100*race_minutes_done/(race_minutes_left+race_minutes_done); - if (throttle_power > 3) transmitting = true; - else transmitting = false; }