mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-15 00:02:49 +03:00
Converted Robot_Control files to unix format for better git diffs
This commit is contained in:
@ -1 +1,113 @@
|
||||
#include "ArduinoRobot.h"
|
||||
#include "ArduinoRobot.h"
|
||||
#include "EasyTransfer2.h"
|
||||
|
||||
|
||||
void RobotControl::motorsStop(){
|
||||
messageOut.writeByte(COMMAND_MOTORS_STOP);
|
||||
messageOut.sendData();
|
||||
}
|
||||
void RobotControl::motorsWrite(int speedLeft,int speedRight){
|
||||
messageOut.writeByte(COMMAND_RUN);
|
||||
messageOut.writeInt(speedLeft);
|
||||
messageOut.writeInt(speedRight);
|
||||
messageOut.sendData();
|
||||
}
|
||||
void RobotControl::motorsWritePct(int speedLeftPct, int speedRightPct){
|
||||
int16_t speedLeft=255*speedLeftPct/100.0;
|
||||
int16_t speedRight=255*speedRightPct/100.0;
|
||||
motorsWrite(speedLeft,speedRight);
|
||||
}
|
||||
void RobotControl::pointTo(int angle){
|
||||
int target=angle;
|
||||
uint8_t speed=80;
|
||||
target=target%360;
|
||||
if(target<0){
|
||||
target+=360;
|
||||
}
|
||||
int direction=angle;
|
||||
while(1){
|
||||
int currentAngle=compassRead();
|
||||
int diff=target-currentAngle;
|
||||
direction=180-(diff+360)%360;
|
||||
if(direction>0){
|
||||
motorsWrite(speed,-speed);//right
|
||||
delay(10);
|
||||
}else{
|
||||
motorsWrite(-speed,speed);//left
|
||||
delay(10);
|
||||
}
|
||||
//if(diff<-180)
|
||||
// diff += 360;
|
||||
//else if(diff> 180)
|
||||
// diff -= 360;
|
||||
//direction=-diff;
|
||||
|
||||
if(abs(diff)<5){
|
||||
motorsStop();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
void RobotControl::turn(int angle){
|
||||
int originalAngle=compassRead();
|
||||
int target=originalAngle+angle;
|
||||
pointTo(target);
|
||||
/*uint8_t speed=80;
|
||||
target=target%360;
|
||||
if(target<0){
|
||||
target+=360;
|
||||
}
|
||||
int direction=angle;
|
||||
while(1){
|
||||
if(direction>0){
|
||||
motorsWrite(speed,speed);//right
|
||||
delay(10);
|
||||
}else{
|
||||
motorsWrite(-speed,-speed);//left
|
||||
delay(10);
|
||||
}
|
||||
int currentAngle=compassRead();
|
||||
int diff=target-currentAngle;
|
||||
if(diff<-180)
|
||||
diff += 360;
|
||||
else if(diff> 180)
|
||||
diff -= 360;
|
||||
direction=-diff;
|
||||
|
||||
if(abs(diff)<5){
|
||||
motorsWrite(0,0);
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
void RobotControl::moveForward(int speed){
|
||||
motorsWrite(speed,speed);
|
||||
}
|
||||
void RobotControl::moveBackward(int speed){
|
||||
motorsWrite(speed,speed);
|
||||
}
|
||||
void RobotControl::turnLeft(int speed){
|
||||
motorsWrite(speed,255);
|
||||
}
|
||||
void RobotControl::turnRight(int speed){
|
||||
motorsWrite(255,speed);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
int RobotControl::getIRrecvResult(){
|
||||
messageOut.writeByte(COMMAND_GET_IRRECV);
|
||||
messageOut.sendData();
|
||||
//delay(10);
|
||||
while(!messageIn.receiveData());
|
||||
|
||||
if(messageIn.readByte()==COMMAND_GET_IRRECV_RE){
|
||||
return messageIn.readInt();
|
||||
}
|
||||
|
||||
|
||||
return -1;
|
||||
}
|
||||
*/
|
@ -1 +1,29 @@
|
||||
#include <ArduinoRobot.h>
|
||||
#include <ArduinoRobot.h>
|
||||
|
||||
bool RobotControl::isActionDone(){
|
||||
if(messageIn.receiveData()){
|
||||
if(messageIn.readByte()==COMMAND_ACTION_DONE){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void RobotControl::pauseMode(uint8_t onOff){
|
||||
messageOut.writeByte(COMMAND_PAUSE_MODE);
|
||||
if(onOff){
|
||||
messageOut.writeByte(true);
|
||||
}else{
|
||||
messageOut.writeByte(false);
|
||||
}
|
||||
messageOut.sendData();
|
||||
}
|
||||
|
||||
void RobotControl::lineFollowConfig(uint8_t KP, uint8_t KD, uint8_t robotSpeed, uint8_t intergrationTime){
|
||||
messageOut.writeByte(COMMAND_LINE_FOLLOW_CONFIG);
|
||||
messageOut.writeByte(KP);
|
||||
messageOut.writeByte(KD);
|
||||
messageOut.writeByte(robotSpeed);
|
||||
messageOut.writeByte(intergrationTime);
|
||||
messageOut.sendData();
|
||||
}
|
||||
|
Reference in New Issue
Block a user