implement gyroskop

This commit is contained in:
2023-09-04 19:42:11 +02:00
parent 1d56a2a36d
commit 7c94c8cc56
9 changed files with 129 additions and 17 deletions
@@ -0,0 +1,45 @@
/**
* @file menuSensorData.cpp
* @author Alexander Klein (alex@kleiax.de)
* @brief
* @version 0.1
* @date 2023-09-04
*
* @copyright Copyright (c) 2023
*
*/
#include "menuSensorData.h"
MenuSensorData::MenuSensorData(SensorData* sensorData) :
MenuInformationSites(4) {
this->sensorData = sensorData;
}
void MenuSensorData::printPage() const {
String lineOne = "";
String lineTwo = "";
switch (this->getCurrentPage()) {
case 0:
lineOne = "Yaw:";
lineTwo.concat(this->sensorData->getGyroData()[0]);
break;
case 1:
lineOne = "Pitch:";
lineTwo.concat(this->sensorData->getGyroData()[1]);
break;
case 2:
lineOne = "Roll:";
lineTwo.concat(this->sensorData->getGyroData()[2]);
break;
default:
this->printDefault();
return;
}
this->print(lineOne, lineTwo);
}
@@ -0,0 +1,28 @@
/**
* @file menuSensorData.h
* @author Alexander Klein (alex@kleiax.de)
* @brief
* @version 0.1
* @date 2023-09-04
*
* @copyright Copyright (c) 2023
*
*/
#ifndef MENU_SENSOR_DATA_H
#define MENU_SENSOR_DATA_H
#include "menuInformationSites.h"
#include "sensorData.h"
class MenuSensorData : public MenuInformationSites {
public:
MenuSensorData(SensorData* SensorData);
private:
void printPage() const override;
SensorData* sensorData;
};
#endif //MENU_SENSOR_DATA_H
@@ -32,7 +32,7 @@ void ManualControl::switchInputMode() {
void ManualControl::analogControl() {
// Have to be int16_t to avoid overflow (int8_t = 255 - 127 = -128)
int16_t x = this->input->x - 127;
int16_t y = this-> input->y - 127;
int16_t y = this->input->y - 127;
// static int counter = 0;
// if (counter % 60 == 0) {
+4
View File
@@ -46,6 +46,7 @@
#include "SpecialMenus/PID/menuPidSettings.h"
#include "SpecialMenus/Route/menuRoute.h"
#include "SpecialMenus/GPS/menuGPS.h"
#include "SpecialMenus/SensorData/menuSensorData.h"
MoveControl moveController;
DriveManager* driveManager;
@@ -225,15 +226,18 @@ void makeMenu() {
MenuCalibrateCompass* comp_m = new MenuCalibrateCompass(driveManager);
MenuGPS* gps_m = new MenuGPS(sensorData);
MenuSysteminformation* sys_m = new MenuSysteminformation(mainBattery);
MenuSensorData* sen_m = new MenuSensorData(sensorData);
//TODO: Wie bekommt jeder die dumme Route?
MenuRoute* rout_m = new MenuRoute(new Route());
auto_m->setUpdateDelay(1000);
gps_m->setUpdateDelay(1000);
sys_m->setUpdateDelay(1500);
sen_m->setUpdateDelay(500);
// Entry for the main menu
main_m->addEntry(new MenuAction("Mode", mode_m));
main_m->addEntry(new MenuAction("Sensor", sen_m));
main_m->addEntry(new MenuAction("GPS", gps_m));
main_m->addEntry(new MenuAction("Route", rout_m));
main_m->addEntry(new MenuAction("PID", pid_m));