Buy an Axon, Axon II, or Axon Mote and build a great robot, while helping to support SoR.
0 Members and 1 Guest are viewing this topic.
static void main(){ char leftIndexTracker = 0; char rightIndexTracker = 0; char leftCounter = 0; char rightCounter = 0; char leftSideArray[array_length]; char rightSideArray[array_length]; registerCounterInterrupts();}void setLeftPWM(byte pwmValue){ leftServoPWMValue = pwmValue; leftSideArray[leftIndexTracker] = leftCounter; leftCounter = 0; leftIndexTracker++; leftSideArray[leftIndexTracker] = pwmValue; leftIndexTracker++;}void setRightPWM(byte pwmValue){ rightServoPWMValue = pwmValue; rightSideArray[rightIndexTracker] = rightCounter; rightCounter = 0; rightIndexTracker++; rightSideArray[rightIndexTracker] = pwmValue; rightIndexTracker++;}void onLeftCounterInterrupt(){ leftCounter++;}void onRightCounterInterrupt(){ rightCounter++;}
If you have encoders, and are sure that the wheels don't slip, you can get good accuracy simply through counting forward when you get the encoder ticks.You can keep a "breadcrumb" of locations that the robot has been at -- say, save a coordinate every second (if you have the RAM.)