
MTM PPO mbed cz2
Dependencies: LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI
servo_gui.cpp
- Committer:
- paweler
- Date:
- 2020-06-15
- Revision:
- 0:5d432267a99f
File content as of revision 0:5d432267a99f:
#include "servo_gui.h" #define PI 3.1415 ServoGui::ServoGui(void) { lcd.Clear(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.FillCircle(120, 120, 98); lcd.DrawCircle(30, 290, 20); lcd.DrawCircle(90, 290, 20); lcd.DrawCircle(150, 290, 20); lcd.DrawCircle(210, 290, 20); lcd.SetTextColor(LCD_COLOR_WHITE); lcd.FillCircle(120, 120, 20); lcd.DrawLine(120, 120, 120+98, 120); } void ServoGui::LedOn(unsigned char ucLedIndex) { lcd.SetTextColor(LCD_COLOR_WHITE); for(unsigned char ucLedCounter = 0; ucLedCounter < 4; ucLedCounter++) { lcd.FillCircle(30+ucLedCounter*60, 290, 19); } lcd.SetTextColor(LCD_COLOR_BLUE); lcd.FillCircle(30+ucLedIndex*60, 290, 19); } void ServoGui::LedStep(enum StepDirection eDirection) { if(eDirection == LEFT) { ucLedCtr--; } else if(eDirection == RIGHT) { ucLedCtr++; } LedOn(ucLedCtr%4); } void ServoGui::MotorStep(enum StepDirection eDirection) { if(eDirection == LEFT) { uiStepCounter--; } else if(eDirection == RIGHT) { uiStepCounter++; } dAngle = uiStepCounter % 360; lcd.SetTextColor(LCD_COLOR_BLACK); lcd.FillCircle(120, 120, 98); lcd.SetTextColor(LCD_COLOR_WHITE); lcd.DrawLine(120,120,120+98*cos(dAngle*PI/180), 120+98*sin(dAngle*PI/180)); lcd.FillCircle(120, 120, 20); } void ServoGui::GuiStepLeft(void) { LedStep(LEFT); MotorStep(LEFT); //wait(0.04); } void ServoGui::GuiStepRight(void) { LedStep(RIGHT); MotorStep(RIGHT); //wait(0.04); } unsigned char ServoGui::ucReadDetector(void) { if(dAngle == 0) { return 1; } else { return 0; } }