RobotikaBrno - RBControl
Add message
Add a new message
Title
Text
[code] #include
#include "RBControl_manager.hpp" #include
rb::Manager& rbc() { static rb::Manager m(false); // ve výchozím stavu se motory po puštění tlačítka vypínají, false zařídí, že pojedou, dokud nedostanou další pokyn return m; } Servo servo; void setup() { Serial.begin(115200); servo.attach(25); servo.write(90); } #define LEFT_MOTOR rb::MotorId::M1 #define RIGHT_MOTOR rb::MotorId::M2 uint32_t t_enc = 0; void loop() { if(millis() > t_enc) { t_enc += 250; Serial.print(man->encoder(0)->value()); Serial.print(' '); Serial.println(man->encoder(7)->value()); } if(Serial.available()) { char c = Serial.read(); switch(c) { case 'w': man->setMotors().power(LEFT_MOTOR, 32) .power(RIGHT_MOTOR, 32) .set(); break; case 's': man->setMotors().power(LEFT_MOTOR, -32) .power(RIGHT_MOTOR, -32) .set(); break; case 'a': man->setMotors().power(LEFT_MOTOR, -32) .power(RIGHT_MOTOR, 32) .set(); break; case 'd': man->setMotors().power(LEFT_MOTOR, 32) .power(RIGHT_MOTOR, -32) .set(); break; case ' ': man->setMotors().power(LEFT_MOTOR, 0) .power(RIGHT_MOTOR, 0) .set(); break; case 'q': servo.write(60); break; case 'e': servo.write(120); break; case '1' ... '9': man->motor(LEFT_MOTOR)->drive(256 * (c - '0'), 64, nullptr); man->motor(RIGHT_MOTOR)->drive(256 * (c - '0'), 64, nullptr); // 96 tiků na otáčku break; default: Serial.write(c); break; } } } [/code]
Password
Save