DuckieTownCarHS

Dependencies:   TCS3200 X_NUCLEO_IKS01A2 mbed-rtos mbed

Fork of DuckieTownCar by Domenico Francesco De Angelis

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers DuckieTownCar.h Source File

DuckieTownCar.h

00001 #ifndef _DUCKIETOWNCAR_H
00002 #define _DUCKIETOWNCAR_H
00003 
00004 #include "ByteCode.h"
00005 //#include "color.h"
00006 #include "x_nucleo_iks01a2.h"
00007 
00008 /***********************************************
00009 *  DuckieTownCarHS     macchina Virtuale!      *
00010 *  by De Angelis Domenico Francesco            *
00011 *-------->      UNINA FabLAB      <------------*
00012 ************************************************/
00013 
00014 //Se con le classi siamo nel torno, è meglio sbagliare alla grande! :D
00015 
00016 #define DEBUG_CAR
00017 
00018 //Singleton
00019 class DuckieTownCar
00020 {
00021 private:
00022     static DuckieTownCar* instance;//istanza della macchina
00023     ByteCode code;
00024 
00025     LSM6DSLSensor *acc_gyro;//giroscopio
00026     int32_t axes[3],off[3];
00027     float parziale_angolo[3],angolo[3];//angolo indica di quanto sia ruotato rispetto ad offset iniziale in [gyro/d]
00028     //sceda per i motori
00029     
00030     //scheda dei Colori TCS3200
00031     //ColorSensor sensor_color;
00032     
00033     DuckieTownCar();
00034     
00035     void infoAxes();//aggiorna i valori di angolo!
00036     
00037     void dritto();
00038     void gira();
00039 public:
00040     ~DuckieTownCar(){error("Ora mi devi spiegare come ci sei arrivato qui...\n");}
00041     static DuckieTownCar* getInstance();
00042     
00043     void initCarSensor();
00044     __forceinline void updateStateCar();//aggiorno lo stato della macchina attraverso i sensori!
00045     __forceinline void readMission(const ByteCode& codice){this->code.code = codice.code; this->code.dim_code = codice.dim_code;}
00046     void execute() const;
00047     void executeLine(unsigned char code) const;
00048     void executeRandom() const;
00049 
00050     //nel caso vogliamo permettere di configurare l'auto
00051     //void setVel(float);
00052     //float getVel() const;
00053 };
00054 
00055 #endif