Skip to content

Commit

Permalink
detect forward/backward
Browse files Browse the repository at this point in the history
  • Loading branch information
captFuture committed May 4, 2022
1 parent dfe096d commit aae5163
Show file tree
Hide file tree
Showing 6 changed files with 95 additions and 43 deletions.
4 changes: 2 additions & 2 deletions data/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"passwd": "chillfumml",
"speedprofile":[
{
"speed_max":-300,
"speed_min":300,
"speed_max":300,
"speed_min":-300,
"steer_max":100,
"steer_min":-100,
"accel":200,
Expand Down
4 changes: 2 additions & 2 deletions src/lvgl_loop.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ if (first == 0){
first = 1;
}
//lv_label_set_text_fmt(txt1, "speed: %d", driveSpeed );
lv_label_set_text_fmt(txt1, "SetSpeed: %d", myDrive );
lv_label_set_text_fmt(txt1, "SetSpeed: %d", forwardReverseInput );
lv_label_set_text_fmt(txt2, "configNum: %d", configNum);
lv_label_set_text_fmt(txt3, "%d", configNum);

Expand All @@ -18,7 +18,7 @@ lv_gauge_set_value (gauge, 0, driveSpeed );
//lv_gauge_set_value (gauge, 1, sentSpeed );

lv_gauge_set_value (gauge2, 0, batVoltage );
lv_gauge_set_value (gauge3, 0, forwardReverseValue*-1);
lv_gauge_set_value (gauge3, 0, forwardReverseValue);
lv_gauge_set_value (gauge3, 1, forwardReverseInput);
lv_gauge_set_value (gauge3, 2, myDrive);

Expand Down
29 changes: 26 additions & 3 deletions src/lvgl_setup.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
lv_obj_t *tab2 = lv_tabview_add_tab(tabview, "SPEED");
lv_obj_t *tab3 = lv_tabview_add_tab(tabview, "INPUT");
lv_obj_t *tab4 = lv_tabview_add_tab(tabview, "BATTERY");
lv_obj_t *tab5 = lv_tabview_add_tab(tabview, "Chart");
lv_tabview_set_tab_act(tabview, tab_pos, false); // display position
static lv_style_t st; lv_style_init(&st);
lv_style_set_bg_color(&st,LV_STATE_DEFAULT,lv_color_hex(0x049CD8));
Expand Down Expand Up @@ -149,9 +150,9 @@

//-------------------------------------------------------------------

// Batterx GAUGE tab4 ==================================================
// Batterx GAUGE tab4 ==================================================
// Gauge : https://docs.lvgl.io/latest/en/html/widgets/gauge.html
// Create a gauge on tab2 ===========================================
// Create a gauge on tab4 ===========================================
static lv_style_t st5; lv_style_init(&st5);
lv_style_set_text_font(&st5,LV_STATE_DEFAULT,&lv_font_montserrat_16);
lv_page_set_scrollbar_mode(tab4, LV_SCROLLBAR_MODE_OFF); //scroll off
Expand All @@ -171,4 +172,26 @@
lv_obj_align( label4, NULL, LV_ALIGN_CENTER, 0, 0);
lv_label_set_text( label4, "Battery\n\n\n\n\nmAh");
lv_gauge_set_critical_value(gauge2, 3600);
//-------------------------------------------------------------------
//-------------------------------------------------------------------

// speed CHART tab5 ==================================================
// Chart : https://docs.lvgl.io/latest/en/html/widgets/chart.html
// Create a chart on tab5 ===========================================

chart = lv_chart_create(tab5, NULL);
lv_obj_set_size( chart, screenWidth -20, screenHeight -20); // size
lv_obj_align( chart, NULL, LV_ALIGN_CENTER, 0, 0);
lv_chart_set_type( chart, LV_CHART_TYPE_LINE);
lv_chart_set_range(chart, -800, 800); // y axis

ser1 = lv_chart_add_series(chart,LV_COLOR_BLUE);
ser2 = lv_chart_add_series(chart, LV_COLOR_RED);
ser3 = lv_chart_add_series(chart, LV_COLOR_GREEN);

led1 = lv_led_create(tab5, NULL);
lv_obj_align(led1, NULL, LV_ALIGN_CENTER, 0,0);
lv_led_off(led1);

led2 = lv_led_create(tab5, NULL);
lv_obj_align(led2, NULL, LV_ALIGN_CENTER, -50,0);
lv_led_off(led2);
10 changes: 9 additions & 1 deletion src/lvgl_start.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,17 @@ static lv_obj_t * label;
static lv_obj_t * gauge;
static lv_obj_t * gauge2;
static lv_obj_t * gauge3;
static lv_obj_t * chart;
static lv_chart_series_t * ser1;
static lv_chart_series_t * ser2;
static lv_chart_series_t * ser3;
static lv_obj_t * led1;
static lv_obj_t * led2;

static lv_obj_t * tabview;

uint32_t period = 10; //
int tb = 4; // Number of tabs
int tb = 5; // Number of tabs
int tab_pos = 0;
int time_count = 0;

Expand Down
49 changes: 25 additions & 24 deletions src/main.ino
Original file line number Diff line number Diff line change
Expand Up @@ -158,32 +158,28 @@ int first = 0;

#include "hoverboard_telemetry.h"

void accelerAte(int16_t start, int16_t target){
/*myDrive = start;
while(myDrive > target){
myDrive = myDrive - 1;
}*/
myDrive = target;

oldmyDrive = myDrive;
OLDforwardReverseValue = target; // start = target
}

void decelerAte(int16_t start, int16_t target){
/*myDrive = start;
while(myDrive < target){
myDrive = myDrive + 1;
}*/
myDrive = target;
void forWard(int16_t start, int16_t target){
myDrive = start;
while(myDrive < target){
myDrive = myDrive + 1;
}
//myDrive = target;
oldmyDrive = myDrive;
}

oldmyDrive = myDrive;
OLDforwardReverseValue = target; // start = target
}
void backWard(int16_t start, int16_t target){
myDrive = start;
while(myDrive > target){
myDrive = myDrive - 1;
}
//myDrive = target;
oldmyDrive = myDrive;
}

void calibrateCenter(int16_t statex, int16_t statey){
leftRightCalibration = statex;
forwardReverseCalibration = statey;
}
void calibrateCenter(int16_t statex, int16_t statey){
leftRightCalibration = statex;
forwardReverseCalibration = statey;
}

// ########################## LOOP ##########################

Expand All @@ -207,6 +203,11 @@ void loop(void)
myDrive = 0;
SendCommand(0, 0);
}


lv_chart_set_next(chart, ser1, forwardReverseInput);
lv_chart_set_next(chart, ser2, forwardReverseValue);
lv_chart_set_next(chart, ser3, myDrive);
}

}
Expand Down
42 changes: 31 additions & 11 deletions src/nunchuk.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,32 +32,52 @@
if( leftRightValue > -15 && leftRightValue < 15 ){
leftRightValue = 0;
}else{
leftRightValue = leftRightValue - leftRightCalibration;

}

if(forwardReverseInput > -15 && forwardReverseInput < 15){
forwardReverseInput = 0;
forwardReverseValue = 0;
}else if(forwardReverseInput < config.speed_max+(config.boost_max*configNum) && forwardReverseInput > config.speed_min+(config.boost_max*configNum)){
forwardReverseValue = 0;
}else if(forwardReverseInput < config.speed_min-(config.boost_max*configNum)){
forwardReverseValue = config.speed_min-(config.boost_max*configNum);
}else if(forwardReverseInput > config.speed_max+(config.boost_max*configNum)){
forwardReverseValue = config.speed_max+(config.boost_max*configNum);
}else{
forwardReverseValue = forwardReverseValue - forwardReverseCalibration;

}

/*if(forwardReverseInput < -50){
forwardReverseInput = -50; // limit backward
}*/

leftRightValue = map(leftRightValue, -100, 100, config.steer_min, config.steer_max);
forwardReverseValue = map(forwardReverseInput, -100, 100, config.speed_min+(config.boost_max*configNum), config.speed_max-(config.boost_max*configNum));
forwardReverseValue = map(forwardReverseInput, -100, 100, config.speed_min-(config.boost_max*configNum), config.speed_max+(config.boost_max*configNum));

//myDrive = forwardReverseValue;

if(forwardReverseInput > -5 && forwardReverseInput < 5){
lv_led_off(led1);
lv_led_off(led2);
myDrive = 0;
}else{
lv_led_on(led1);
lv_led_on(led2);

if(forwardReverseInput > 5){ // forward
lv_led_off(led2);
lv_led_on(led1);
forWard(OLDforwardReverseValue, forwardReverseValue);

if(OLDforwardReverseValue > forwardReverseValue){ // brake
//decelerAte(OLDforwardReverseValue, forwardReverseValue);
myDrive = forwardReverseValue;
}else if(OLDforwardReverseValue < forwardReverseValue){
//accelerAte(OLDforwardReverseValue, forwardReverseValue);
myDrive = forwardReverseValue;
}else if(forwardReverseInput < -5){ // backward
lv_led_on(led2);
lv_led_off(led1);
backWard(OLDforwardReverseValue, forwardReverseValue);

}
}

OLDforwardReverseValue = forwardReverseValue;


//float SentSpeedFactor = 2.0 * 3.14 * 0.08255 * 60 /1000;
//float tempSentSpeed = (float)forwardReverseValue * SentSpeedFactor;
Expand Down

0 comments on commit aae5163

Please sign in to comment.