Skip to content

Commit

Permalink
Fixed issue #1478, #1599, #1709, motors being opposite, updated turni…
Browse files Browse the repository at this point in the history
…ng algorithm
  • Loading branch information
X-Y authored and jenscski committed May 12, 2014
1 parent cfe24c7 commit fb50563
Show file tree
Hide file tree
Showing 33 changed files with 58 additions and 1,100 deletions.
2 changes: 1 addition & 1 deletion libraries/Robot_Control/Motors.cpp
@@ -1 +1 @@
#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; int16_t speedRight=255*speedRightPct; 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){ 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::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;}*/
#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;}*/
Expand Down
66 changes: 0 additions & 66 deletions libraries/Robot_Control/SPI.cpp

This file was deleted.

70 changes: 0 additions & 70 deletions libraries/Robot_Control/SPI.h

This file was deleted.

0 comments on commit fb50563

Please sign in to comment.