DuckieTownCarHS
Dependencies: TCS3200 X_NUCLEO_IKS01A2 mbed-rtos mbed
Fork of DuckieTownCar by
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
Generated on Thu Jul 14 2022 01:49:48 by 1.7.2