Update src/open-led-race.ino, lib/Openledrace-lib/olr-lib.c, lib/Openledrace-lib/olr-lib.h files

This commit is contained in:
Singular Devices 2019-10-14 19:17:27 +00:00
parent 446fba6bc0
commit e65c428566
3 changed files with 29 additions and 40 deletions

View file

@ -24,8 +24,8 @@ void update_track( track_t* tck, car_t* car ) {
struct cfgtrack const* cfg = &tck->cfg.track; struct cfgtrack const* cfg = &tck->cfg.track;
if ( car->trackID == TRACK_MAIN if ( car->trackID == TRACK_MAIN
&& (int)car->dist % cfg->nled_main == cfg->init_aux && (int)car->dist % cfg->nled_main == (cfg->init_aux-(cfg->nled_aux))
// && get_controllerStatus( ct ) == 0 ) { //change track by switch push // && get_controllerStatus( ct ) == 0 ) { //change track by switch
&& (car->speed <= SPD_MIN_TRACK_AUX )) { //change track by low speed && (car->speed <= SPD_MIN_TRACK_AUX )) { //change track by low speed
car->trackID = TRACK_AUX; car->trackID = TRACK_AUX;
@ -51,7 +51,6 @@ void process_aux_track( track_t* tck, car_t* car ){
if ( (int)car->dist_aux == tck->ledcoin if ( (int)car->dist_aux == tck->ledcoin
&& car->speed <= get_accel() ) { && car->speed <= get_accel() ) {
car->speed = get_accel ()*10; car->speed = get_accel ()*10;
tck->ledcoin = COIN_RESET; tck->ledcoin = COIN_RESET;
}; };

View file

@ -1,3 +1,4 @@
#ifndef _OLR_LIB_h #ifndef _OLR_LIB_h
#define _OLR_LIB_h #define _OLR_LIB_h
@ -85,4 +86,3 @@ int track_cfgramp( track_t* tck, int center, int high );
#endif #endif
#endif #endif

View file

@ -37,7 +37,10 @@
#define COLOR3 track.Color(255,255,255) #define COLOR3 track.Color(255,255,255)
#define COLOR4 track.Color(0,0,255) #define COLOR4 track.Color(0,0,255)
#define COLOR_RAMP track.Color(64,0,64)
#define COLOR_COIN track.Color(0,255,255) #define COLOR_COIN track.Color(0,255,255)
#define LED_SEMAPHORE 12
enum{ enum{
MAX_CARS = 4, MAX_CARS = 4,
@ -148,7 +151,7 @@ Adafruit_NeoPixel track = Adafruit_NeoPixel( MAXLED, PIN_LED, NEO_GRB + NEO_KHZ8
void setup() { void setup() {
Serial.begin(115200); Serial.begin(115200);
randomSeed( analogRead(A0) + analogRead(A1) ); randomSeed( analogRead(A6) + analogRead(A7) );
setup_controller( ); setup_controller( );
param_load( &tck.cfg ); param_load( &tck.cfg );
@ -172,13 +175,13 @@ void setup() {
track.begin(); track.begin();
if ( digitalRead( DIG_CONTROL_1 ) == 0 ) { //push switch 1 on reset for activate physic if ( digitalRead( DIG_CONTROL_1 ) == 0 ) { //push switch 1 on reset for activate physics
init_ramp( &tck ); init_ramp( &tck );
draw_ramp( &tck ); draw_ramp( &tck );
track.show(); track.show();
} }
if ( digitalRead( DIG_CONTROL_2 ) == 0 ) { //push switch 2 on reset for activate box if ( digitalRead( DIG_CONTROL_2 ) == 0 ) { //push switch 2 on reset for activate boxes
track_configure( &tck, 240 ); track_configure( &tck, 240 );
} }
@ -367,33 +370,21 @@ void print_cars_positions( car_t* cars ) {
} }
} }
void start_race( ) { void start_race( ) {
track.setPixelColor(LED_SEMAPHORE, track.Color(255,0,0));
track.setPixelColor(12, track.Color(255,0,0));
track.setPixelColor(11, track.Color(255,0,0));
track.show(); track.show();
tone(PIN_AUDIO,400); tone(PIN_AUDIO,400);
delay(2000); delay(2000);
noTone(PIN_AUDIO); noTone(PIN_AUDIO);
track.setPixelColor(LED_SEMAPHORE, track.Color(0,0,0));
track.setPixelColor(12, track.Color(0,0,0)); track.setPixelColor(LED_SEMAPHORE+1, track.Color(255,255,0));
track.setPixelColor(11, track.Color(0,0,0));
track.setPixelColor(10, track.Color(255,255,0));
track.setPixelColor(9, track.Color(255,255,0));
track.show(); track.show();
tone(PIN_AUDIO,600); tone(PIN_AUDIO,600);
delay(2000); delay(2000);
noTone(PIN_AUDIO); noTone(PIN_AUDIO);
track.setPixelColor(LED_SEMAPHORE+1, track.Color(0,0,0));
track.setPixelColor(9, track.Color(0,0,0)); track.setPixelColor(LED_SEMAPHORE+2, track.Color(0,255,0));
track.setPixelColor(10, track.Color(0,0,0));
track.setPixelColor(8, track.Color(0,255,0));
track.setPixelColor(7, track.Color(0,255,0));
track.show(); track.show();
tone(PIN_AUDIO,1200); tone(PIN_AUDIO,1200);
delay(2000); delay(2000);
noTone(PIN_AUDIO); noTone(PIN_AUDIO);
@ -422,7 +413,7 @@ void strip_clear( track_t* tck ) {
void draw_coin( track_t* tck ) { void draw_coin( track_t* tck ) {
struct cfgtrack const* cfg = &tck->cfg.track; struct cfgtrack const* cfg = &tck->cfg.track;
track.setPixelColor( 1 + cfg->nled_main + tck->ledcoin, COLOR_COIN ); track.setPixelColor( 1 + cfg->nled_main + cfg->nled_aux - tck->ledcoin,COLOR_COIN );
} }
void draw_winner( track_t* tck, uint32_t color) { void draw_winner( track_t* tck, uint32_t color) {
@ -434,7 +425,6 @@ void draw_winner( track_t* tck, uint32_t color) {
} }
} }
void draw_car( track_t* tck, car_t* car ) { void draw_car( track_t* tck, car_t* car ) {
struct cfgtrack const* cfg = &tck->cfg.track; struct cfgtrack const* cfg = &tck->cfg.track;
@ -445,7 +435,7 @@ void draw_car( track_t* tck, car_t* car ) {
break; break;
case TRACK_AUX: case TRACK_AUX:
for(int i=0; i<= car->nlap; ++i ) for(int i=0; i<= car->nlap; ++i )
track.setPixelColor( (word)(cfg->nled_main + car->dist_aux) + i, car->color); track.setPixelColor( (word)(cfg->nled_main + cfg->nled_aux - car->dist_aux) - i, car->color);
break; break;
} }
} }