]> git.piffa.net Git - rover/commitdiff
Servo
authorAndrea Manni <andrea@piffa.net>
Thu, 30 Mar 2017 12:24:35 +0000 (14:24 +0200)
committerAndrea Manni <andrea@piffa.net>
Thu, 30 Mar 2017 12:24:35 +0000 (14:24 +0200)
prototypes/servo/README [new file with mode: 0644]
prototypes/servo/base/base.ino [new file with mode: 0644]
prototypes/servo/rotation/rotation.ino [new file with mode: 0644]
prototypes/servo/servo.ino [deleted file]

diff --git a/prototypes/servo/README b/prototypes/servo/README
new file mode 100644 (file)
index 0000000..1b38c0e
--- /dev/null
@@ -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/base/base.ino b/prototypes/servo/base/base.ino
new file mode 100644 (file)
index 0000000..2a1b3f2
--- /dev/null
@@ -0,0 +1,47 @@
+/* Sweep
+
+   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.
+
+Schema: https://www.arduino.cc/en/uploads/Tutorial/sweep_bb.png
+        http://microbotlabs.com/images/mearm-uno-servo-1.jpg
+   */
+
+#include <Servo.h> 
+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 ;
+void setup() 
+{ 
+  myservo.attach(servo);  // attaches the servo on pin 9 to the servo object 
+    myservo.write(90);              // tell servo to go to position in variable 'pos' 
+    delay(2000);
+} 
+void loop() 
+{ 
+  for(pos = 20; pos < 160; pos += 1)  // goes from 0 degrees to 180 degrees 
+  {                                  // in steps of 1 degree 
+    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
+    delay(15);                       // waits 15ms for the servo to reach the position 
+  } 
+  for(pos = 160; pos>=20; pos-=1)     // goes from 180 degrees to 0 degrees 
+  {                                
+    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
+    delay(15);                       // waits 15ms for the servo to reach the position 
+  } 
+} 
diff --git a/prototypes/servo/rotation/rotation.ino b/prototypes/servo/rotation/rotation.ino
new file mode 100644 (file)
index 0000000..62e3b85
--- /dev/null
@@ -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.h> 
+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);              
+} 
diff --git a/prototypes/servo/servo.ino b/prototypes/servo/servo.ino
deleted file mode 100644 (file)
index 2a1b3f2..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Sweep
-
-   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.
-
-Schema: https://www.arduino.cc/en/uploads/Tutorial/sweep_bb.png
-        http://microbotlabs.com/images/mearm-uno-servo-1.jpg
-   */
-
-#include <Servo.h> 
-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 ;
-void setup() 
-{ 
-  myservo.attach(servo);  // attaches the servo on pin 9 to the servo object 
-    myservo.write(90);              // tell servo to go to position in variable 'pos' 
-    delay(2000);
-} 
-void loop() 
-{ 
-  for(pos = 20; pos < 160; pos += 1)  // goes from 0 degrees to 180 degrees 
-  {                                  // in steps of 1 degree 
-    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
-    delay(15);                       // waits 15ms for the servo to reach the position 
-  } 
-  for(pos = 160; pos>=20; pos-=1)     // goes from 180 degrees to 0 degrees 
-  {                                
-    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
-    delay(15);                       // waits 15ms for the servo to reach the position 
-  } 
-}