From 5e3313a18b950f3fe00fef820a0c697316e37826 Mon Sep 17 00:00:00 2001 From: Andrea Manni Date: Thu, 30 Mar 2017 14:24:35 +0200 Subject: [PATCH] Servo --- prototypes/servo/README | 10 ++++ prototypes/servo/{servo.ino => base/base.ino} | 0 prototypes/servo/rotation/rotation.ino | 50 +++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 prototypes/servo/README rename prototypes/servo/{servo.ino => base/base.ino} (100%) create mode 100644 prototypes/servo/rotation/rotation.ino diff --git a/prototypes/servo/README b/prototypes/servo/README new file mode 100644 index 0000000..1b38c0e --- /dev/null +++ b/prototypes/servo/README @@ -0,0 +1,10 @@ +ToDO +==== + + +Vedere come implemetare il controllo di presenza di ostacoli laterali: + +* Un funzione "check" type boolean per l'ultrasuoni che riotorna 0/1 per la presenza di un oggetto +* due funzione turnSX / turnDX che ruotano il servo, eseguono check, ritornano +se libero +* Nella FSM decidere / prevedere da che parte controllare (es spigolo, due rotazioni consecutive che si annullano). diff --git a/prototypes/servo/servo.ino b/prototypes/servo/base/base.ino similarity index 100% rename from prototypes/servo/servo.ino rename to prototypes/servo/base/base.ino diff --git a/prototypes/servo/rotation/rotation.ino b/prototypes/servo/rotation/rotation.ino new file mode 100644 index 0000000..62e3b85 --- /dev/null +++ b/prototypes/servo/rotation/rotation.ino @@ -0,0 +1,50 @@ +/* Rotazione + + Rotazione di un servomotore tramite la librerio Servo.h . + +L'utilizzo della libreria Servo rende inutilizzabile analogWrite() +sui pin 9 e 10 dato che utilizza i timer associati a questi PIN. + +Power: un servo da 9g puo' arrivare ad impegnare 750mA sotto carico +(se viene opposta resistenza al movimento del servo), un SG90 prende +~52mA se il movimento e' libero. Quindi in fase di test il servo puo' +essere alimentato direttamente da una scheda Arduino (200ma dal PIN 5v) +ma per l'uso finale dovra' essere alimentato autonomamente. + + +Rotazione a SX di 90' +Rotazione a DC di 90' + +Schema: https://www.arduino.cc/en/uploads/Tutorial/sweep_bb.png + http://microbotlabs.com/images/mearm-uno-servo-1.jpg + */ + +#include + +Servo myservo; // create servo object to control a servo + // a maximum of eight servo objects can be created + +// Servo vars +int pos = 0; // variable to store the servo position +const byte servo =9 ; +conts byte middle = 90; // Centratura servo + +void setup() +{ + myservo.attach(servo); // attaches the servo on pin 9 to the servo object + myservo.write(middle); // tell servo to go to position in variable 'pos' + delay(2000); +} + + +void loop() +{ +// Turn DX + myservo.write(160); + delay(35); + myservo.write(middle); +// Turn SX + myservo.write(20); + delay(35); + myservo.write(middle); +} -- 2.39.2