X-Git-Url: http://git.piffa.net/web?a=blobdiff_plain;f=libraries%2Frover%2Frover.cpp;h=58bbf2cbb082a1f3e2b2c685f8ff1e675df8e311;hb=cf5e92a6f4481506b8b360322d25b4be821cc741;hp=1b6c88e16c32d3c86a55c2ed2d9932205a55f2aa;hpb=7be1f456e0d5b7ac0b7fdef2c229de4777c716c6;p=rover diff --git a/libraries/rover/rover.cpp b/libraries/rover/rover.cpp index 1b6c88e..58bbf2c 100644 --- a/libraries/rover/rover.cpp +++ b/libraries/rover/rover.cpp @@ -1,5 +1,5 @@ /* - Rover + Rover Autore: Andrea Manni @@ -24,8 +24,19 @@ const int enB = 5; const int in3 = 4; const int in4 = 3; byte speedB = 255; -// Funzioni +// Servo vars +int pos = 0; // variable to store the servo position +const byte servoPIN =9 ; +const byte middle = 90; // Centratura servo +const int spausa = 10; // Pausa movimenti servo +const byte sx = 10; // Min SX +const byte dx = 170; // Maz DX +Servo myservo; // Non c'e' bisogno di extern se e' dichiarato in questo scope + +//////////////////////// +// Funzioni: +// void abilita() { // Abilita i PINs come OUTPUTS pinMode(enA, OUTPUT); @@ -34,6 +45,10 @@ void abilita() { pinMode(enB, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); + + + pinMode(servoPIN, OUTPUT); + myservo.attach(servoPIN); } @@ -104,3 +119,61 @@ void stopB() { // Stop digitalWrite(enB,LOW); } + + +// Entrambi i motori +void avanti() { + // Drive ahead: funzione composita + forwardA() ; + forwardB() ; +} +void indietro() { + // Drive backward: funzione composita + backwardA(); + backwardB(); +} +void giraSX() { + // Gira a DX + forwardB() ; + backwardA(); +} +void giraDX() { + // Gira a DX + forwardA() ; + backwardB(); +} +void stop() { + stopA(); + stopB(); +} + + + +// Servo +void servoDX() { + // TurnDX + while (pos < dx) { + myservo.write(pos++); + delay(spausa); + } +} + +void servoSX() { + // TurnSX + while (pos > sx) { + myservo.write(pos--); + delay(spausa); + } +} + +void servoMiddle() { + // Middle + while (pos > middle) { + myservo.write(pos--); + delay(spausa); + } + while (pos < middle) { + myservo.write(pos++); + delay(spausa); + } +}