![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
DuckieTownCarHS
Dependencies: TCS3200 X_NUCLEO_IKS01A2 mbed-rtos mbed
Fork of DuckieTownCar by
Diff: VM_Car/DuckieTownCar.h
- Revision:
- 0:65ecca01ac5c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VM_Car/DuckieTownCar.h Wed Feb 15 13:27:01 2017 +0000 @@ -0,0 +1,55 @@ +#ifndef _DUCKIETOWNCAR_H +#define _DUCKIETOWNCAR_H + +#include "ByteCode.h" +//#include "color.h" +#include "x_nucleo_iks01a2.h" + +/*********************************************** +* DuckieTownCarHS macchina Virtuale! * +* by De Angelis Domenico Francesco * +*--------> UNINA FabLAB <------------* +************************************************/ + +//Se con le classi siamo nel torno, è meglio sbagliare alla grande! :D + +#define DEBUG_CAR + +//Singleton +class DuckieTownCar +{ +private: + static DuckieTownCar* instance;//istanza della macchina + ByteCode code; + + LSM6DSLSensor *acc_gyro;//giroscopio + int32_t axes[3],off[3]; + float parziale_angolo[3],angolo[3];//angolo indica di quanto sia ruotato rispetto ad offset iniziale in [gyro/d] + //sceda per i motori + + //scheda dei Colori TCS3200 + //ColorSensor sensor_color; + + DuckieTownCar(); + + void infoAxes();//aggiorna i valori di angolo! + + void dritto(); + void gira(); +public: + ~DuckieTownCar(){error("Ora mi devi spiegare come ci sei arrivato qui...\n");} + static DuckieTownCar* getInstance(); + + void initCarSensor(); + __forceinline void updateStateCar();//aggiorno lo stato della macchina attraverso i sensori! + __forceinline void readMission(const ByteCode& codice){this->code.code = codice.code; this->code.dim_code = codice.dim_code;} + void execute() const; + void executeLine(unsigned char code) const; + void executeRandom() const; + + //nel caso vogliamo permettere di configurare l'auto + //void setVel(float); + //float getVel() const; +}; + +#endif \ No newline at end of file