From cf5e92a6f4481506b8b360322d25b4be821cc741 Mon Sep 17 00:00:00 2001 From: Andrea Manni Date: Wed, 5 Apr 2017 18:53:21 +0200 Subject: [PATCH] Servo func clean up, drive lib --- README.rst | 12 +++-- libraries/rover/rover.cpp | 35 ++++++++++++-- libraries/rover/rover.h | 16 +++++-- prototypes/motor/drive_lib/drive_lib.ino | 47 +++++++++++++++++++ .../servo/rotation_lib/rotation_lib.ino | 12 ++--- 5 files changed, 106 insertions(+), 16 deletions(-) create mode 100644 prototypes/motor/drive_lib/drive_lib.ino diff --git a/README.rst b/README.rst index 4b5568e..b77bf6c 100644 --- a/README.rst +++ b/README.rst @@ -8,10 +8,10 @@ Setup ======= Gli sketch utilizzano la libreria common presente nella cartella -``libraries/common/``: questa deve essere quindi inclusa tra le librerie +``libraries/rover/``: questa deve essere quindi inclusa tra le librerie utilizzate. Un modo rapido per farlo e' settare nelle preferences dell'Arduino -IDE l'intero repo ``aerei_arduino`` come cartella degli sketchbook, oppure -copiare la cartella ``libraries/common`` dentro ``libraries`` dello sketchbook +IDE l'intero repo ``rover`` come cartella degli sketchbook, oppure +copiare la cartella ``libraries/rover`` dentro ``libraries`` dello sketchbook attuale. Download @@ -31,6 +31,12 @@ Per aggiornare all'ultima versione:: * `Foum di Discussione `_ +Utilizzo +========= + +I vari sketch usano la libreria ``rover`` per le funzionalita' di base, nel file ``libraries/rover/rover.cpp`` sono contenute tutte le impostazioni di PIN / variabili (a mo' di file di configurazione) utilizzate per tutte le versioni degli sketch. + + Links ========= Risorse utili: diff --git a/libraries/rover/rover.cpp b/libraries/rover/rover.cpp index b02e8cb..58bbf2c 100644 --- a/libraries/rover/rover.cpp +++ b/libraries/rover/rover.cpp @@ -120,8 +120,37 @@ void stopB() { 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 turnDX() { +void servoDX() { // TurnDX while (pos < dx) { myservo.write(pos++); @@ -129,7 +158,7 @@ void turnDX() { } } -void turnSX() { +void servoSX() { // TurnSX while (pos > sx) { myservo.write(pos--); @@ -137,7 +166,7 @@ void turnSX() { } } -void turnMiddle() { +void servoMiddle() { // Middle while (pos > middle) { myservo.write(pos--); diff --git a/libraries/rover/rover.h b/libraries/rover/rover.h index ce72cdb..3f0470e 100644 --- a/libraries/rover/rover.h +++ b/libraries/rover/rover.h @@ -19,7 +19,7 @@ Licenza: GPLv3 // Funzioni -void abilita() ; +void abilita() ; // Abilita tutti i PIN void forwardA(); // speedA e' dato dalla variabile golabale speedA void forwardA(byte speedA); // Overloading void backwardA() ; @@ -31,7 +31,15 @@ void backwardB() ; void backwardB(byte speedB) ; void stopB() ; -void turnDX() ; -void turnSX() ; -void turnMiddle() ; +// Entrambi i motori +void avanti(); +void indietro(); +void giraSX(); +void giraDX() ; +void stop() ; + + +void servoDX() ; +void servoSX() ; +void servoMiddle() ; #endif diff --git a/prototypes/motor/drive_lib/drive_lib.ino b/prototypes/motor/drive_lib/drive_lib.ino new file mode 100644 index 0000000..c50da62 --- /dev/null +++ b/prototypes/motor/drive_lib/drive_lib.ino @@ -0,0 +1,47 @@ +/* L298n motor + +Inclusione delle funzioni nella libreria rover. + +Guida 2WD composta da 2 motori + +- 2 motori DC +- L298n module +- Batteria > 6v + +*/ + +#include +#include + +void setup() { + abilita(); +} + + +void loop() { +// Avanti + avanti(); + delay(2000); +// Stop + stop(); + delay(1000); + +// TurnSX + giraSX(); + delay(1000); + +// Avanti + avanti(); + delay(2000); +// Stop + stop(); + delay(1000); + +// TurnDX + giraDX(); + delay(1000); + +// Stop + stop(); + delay(1000); +} diff --git a/prototypes/servo/rotation_lib/rotation_lib.ino b/prototypes/servo/rotation_lib/rotation_lib.ino index fd3bd12..3aef389 100644 --- a/prototypes/servo/rotation_lib/rotation_lib.ino +++ b/prototypes/servo/rotation_lib/rotation_lib.ino @@ -35,18 +35,18 @@ void setup() void loop() { - // Turn DX - turnDX(); + // servo DX + servoDX(); delay(1000); - turnMiddle(); + servoMiddle(); delay(1000); - // Turn SX - turnSX(); + // servo SX + servoSX(); delay(1000); - turnMiddle(); + servoMiddle(); delay(1000); } -- 2.39.2