na
Dependencies: SeeedShieldBot mbed
Fork of robotLibreria by
Revision 1:2e4287fdc918, committed 2015-08-13
- Comitter:
- 0scar0o0o0
- Date:
- Thu Aug 13 02:15:11 2015 +0000
- Parent:
- 0:fc1b473bfa7f
- Commit message:
- robot2
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SeeedShieldBot.lib Thu Aug 13 02:15:11 2015 +0000 @@ -0,0 +1,1 @@ +https://developer.mbed.org/users/0scar0o0o0/code/SeeedShieldBot/#7041241217c4
--- a/Shieldbot.cpp Tue Aug 11 04:49:45 2015 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,239 +0,0 @@ -/* - Created to support the release of the Sheildbot from SeeedStudios - http://www.seeedstudio.com/wiki/Shield_Bot - - Created by Jacob Rosenthal and Colin Ho, December 30, 2012. - Released into the public domain. -*/ - -// include core Wiring API -#include "mbed.h" - -// include this library's description file -#include "Shieldbot.h" - -#define SHIELDBOTDEBUG 0 -// for shieldbot Version 0.9 and 1.0 - -/*#define right1 5 //define I1 interface -#define speedPinRight 6 //enable right motor (bridge A) -#define right2 7 //define I2 interface -#define left1 8 //define I3 interface -#define speedPinLeft 9 //enable motor B -#define left2 10 //define I4 interface */ - -// for shieldbot Version 1.1, we changed to the driver pins , -//if you shieldbot is ver1.0 or 0.9, please using the above pin mapping; -#define right1 PTA0 //define I1 interface -#define speedPinRight PTC4 //enable right motor (bridge A) -#define right2 PTD2 //define I2 interface -#define left1 PTD3 //define I3 interface -#define speedPinLeft PTD0 //enable motor B -#define left2 PTD1 //define I4 interface - -#define finder1 PTB2 //define line finder S1 -#define finder2 PTB3 //define line finder S2 -#define finder3 PTB10 //define line finder S3 -#define finder4 PTB11 //define line finder S4 -#define finder5 PTC11 //define line finder S5 - -int speedmotorA = 255; //define the speed of motorA -int speedmotorB = 255; //define the speed of motorB - - - -Shieldbot::Shieldbot() -{ - DigitalOut right1(PTA0); - DigitalOut right2(PTD2); - PwmOut speedPinRight(PTC4); - speedPinRight.period(0.002f); - DigitalOut left1(PTD3); - DigitalOut left2(PTD1); - PwmOut speedPinLeft(PTD0); - speedPinLeft.period(0.002f); - DigitalIn finder1(PTB2); - DigitalIn finder2(PTB3); - DigitalIn finder3(PTB10); - DigitalIn finder4(PTB11); - DigitalIn finder5(PTC11); -} - - - -//sets same max speed to both motors -void Shieldbot::setMaxSpeed(int both){ - setMaxLeftSpeed(both); - setMaxRightSpeed(both); -} - -void Shieldbot::setMaxSpeed(int left, int right){ - setMaxLeftSpeed(left); - setMaxRightSpeed(right); -} - -void Shieldbot::setMaxLeftSpeed(int left){ - speedmotorB=left; -} - -void Shieldbot::setMaxRightSpeed(int right){ - speedmotorA=right; -} - -int Shieldbot::readS1(){ - return finder1; -} - -int Shieldbot::readS2(){ - return finder2; -} - -int Shieldbot::readS3(){ - return finder3; -} - -int Shieldbot::readS4(){ - return finder4; -} - -int Shieldbot::readS5(){ - return finder5; -} - -void Shieldbot::drive(char left, char right){ - rightMotor(right); - leftMotor(left); -} - -//char is 128 to 127 -//mag is the direction to spin the right motor -//-128 backwards all the way -//0 dont move -//127 forwards all the way -void Shieldbot::rightMotor(char mag){ - int actualSpeed = 0; - DigitalOut right1(PTA0); - DigitalOut right2(PTD2); - PwmOut speedPinRight(PTC4); - speedPinRight.period(0.002f); - DigitalOut left1(PTD3); - DigitalOut left2(PTD1); - PwmOut speedPinLeft(PTD0); - speedPinLeft.period(0.002f); - - - if(mag >0){ //forward - float ratio = (float)mag/128; - actualSpeed = (int)(ratio*speedmotorA); //define your speed based on global speed - #if SHIELDBOTDEBUG - Serial.print("forward right: "); - Serial.println(actualSpeed); - #endif - speedPinRight.write(actualSpeed); - right1=0; - right2=1;//turn right motor clockwise - }else if(mag == 0){ //neutral - #if SHIELDBOTDEBUG - Serial.println("nuetral right"); - #endif - stopRight(); - }else { //meaning backwards - float ratio = (float)abs(mag)/128; - actualSpeed = ratio*speedmotorA; - #if SHIELDBOTDEBUG - Serial.print("backward right: "); - Serial.println(actualSpeed); - #endif - speedPinRight.write(actualSpeed); - right1=1; - right2=0;//turn right motor counterclockwise - } -} - -//TODO shouldnt these share one function and just input the differences? -void Shieldbot::leftMotor(char mag){ - DigitalOut right1(PTA0); - DigitalOut right2(PTD2); - PwmOut speedPinRight(PTC4); - speedPinRight.period(0.002f); - DigitalOut left1(PTD3); - DigitalOut left2(PTD1); - PwmOut speedPinLeft(PTD0); - speedPinLeft.period(0.002f); - - - int actualSpeed = 0; - if(mag >0){ //forward - float ratio = (float)(mag)/128; - actualSpeed = (int)(ratio*speedmotorB); //define your speed based on global speed - #if SHIELDBOTDEBUG - Serial.print("forward left: "); - Serial.println(actualSpeed); - #endif - speedPinLeft.write(actualSpeed); - left1=0; - left2=1;//turn left motor counter-clockwise - }else if(mag == 0){ //neutral - #if SHIELDBOTDEBUG - Serial.println("nuetral left"); - #endif - stopLeft(); - }else { //meaning backwards - float ratio = (float)abs(mag)/128; - actualSpeed = ratio*speedmotorB; - #if SHIELDBOTDEBUG - Serial.print("backward left: "); - Serial.println(actualSpeed); - #endif - speedPinLeft.write(actualSpeed); - left1=1; - left2=0;//turn left motor counterclockwise - } -} - -void Shieldbot::forward(){ - leftMotor(127); - rightMotor(127); -} - -void Shieldbot::backward(){ - leftMotor(-128); - rightMotor(-128); -} - -void Shieldbot::stop(){ - stopLeft(); - stopRight(); -} - -void Shieldbot::stopLeft(){ - PwmOut speedPinLeft(PTD0); - speedPinLeft.write(0); -} - -void Shieldbot::stopRight(){ - PwmOut speedPinRight(PTC4); - speedPinRight.write(0); -} - -//may be dangerous to motor if reverse current into hbridge exceeds 2A -void Shieldbot::fastStopLeft(){ - DigitalOut left1(PTD3); - DigitalOut left2(PTD1); - left1=1; - left2=1;//turn DC Motor B move clockwise -} - -//may be dangerous to motor if reverse current into hbridge exceeds 2A -void Shieldbot::fastStopRight(){ - DigitalOut right1(PTA0); - DigitalOut right2(PTD2); - right1=1; - right2=1;//turn DC Motor A move anticlockwise -} - -//may be dangerous to motor if reverse current into hbridge exceeds 2A -void Shieldbot::fastStop(){ - fastStopRight(); - fastStopLeft(); -}
--- a/Shieldbot.h Tue Aug 11 04:49:45 2015 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* - Created to support the release of the Sheildbot from SeeedStudios - http://www.seeedstudio.com/wiki/Shield_Bot - - Created by Jacob Rosenthal and Colin Ho, December 30, 2012. - Released into the public domain. -*/ - -// ensure this library description is only included once -#ifndef Shieldbot_h -#define Shieldbot_h - - -// include types & constants of Wiring core API -#include "mbed.h" - -// library interface description -class Shieldbot -{ - // user-accessible "public" interface - public: - Shieldbot(); - int readS1(); - int readS2(); - int readS3(); - int readS4(); - int readS5(); - void setMaxSpeed(int); - void setMaxSpeed(int, int); - void setMaxLeftSpeed(int); - void setMaxRightSpeed(int); - void rightMotor(char); - void leftMotor(char); - void drive(char, char); - void forward(); - void backward(); - void stop(); - void stopRight(); - void stopLeft(); - void fastStopLeft(); - void fastStopRight(); - void fastStop(); - -}; - -#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Aug 13 02:15:11 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/b9ad9a133dc7 \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trayecto.cpp Thu Aug 13 02:15:11 2015 +0000 @@ -0,0 +1,18 @@ +#include "mbed.h" + + +DigitalOut motorAD(D6); +DigitalOut motorAI(D5); +DigitalOut motorAEn(D7); +DigitalOut myled(LED1); + +int main(){ +while(1){ + motor1A=1; + myled=0; + wait(1); + motor1A=0; + myled=1; + wait(1); + } +} \ No newline at end of file