From 370c3dce08210c3c953b9b0011628d01a266445a Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 22 Mar 2011 18:25:12 +0000 Subject: Many chnages, added TODO list, slightly inproved servo handling. Still need to determine if speed handling for the servos is possible? --- SnakeMaster.pde | 104 -------------------------------------------------------- 1 file changed, 104 deletions(-) delete mode 100644 SnakeMaster.pde diff --git a/SnakeMaster.pde b/SnakeMaster.pde deleted file mode 100644 index ae29b5d..0000000 --- a/SnakeMaster.pde +++ /dev/null @@ -1,104 +0,0 @@ -#include - - - -TimedAction regulateServos = TimedAction(2,regulator); - -/* -Snake Sections Snake Servos - -Head -Section 1 Servo 1 - Servo 2 -Section 2 Servo 3 - Servo 4 -Section 3 Servo 5 - On Slave Board One - Servo 6 - On Slave Board Two -*/ - -Servo servo1; int servo1RequiredAngle; -Servo servo2; int servo2RequiredAngle; -Servo servo3; int servo3RequiredAngle; -Servo servo4; int servo4RequiredAngle; - -#define servoSpeed = 60/0.4 -int sectionLength = 10; // Length of snake section in centimeters -int firstServoInSectionInX = true // Assuming the first servo in each section is in the horizontal plane - -void moveServoTo(byte servoNum, int angle) { - switch (servoNum) { - case 1: - servo1.write(angle); - servo1. - break: - case 2: - servo2.write(angle); - break: -} - -/* - - servo The servo to be moved - - smoothMovement Use smooth movement? - - angle The angle to move the servo to 90 = centre - - time The time to spend moving in milliseconds -*/ -void moveServoTo(byte servoNum, boolean smoothMovement, int angle, int time) { - int startPos = servo.read(); - int moveAngle = abs(angle - startPos); - int delayAmount = time - (abs(angle - startPos)/ servoSpeed); // The time the servo must waste if it is to get to the angle on time - // WARNING, if this is negitive the servo cant make the movement in time - - if (delayAmount <= 0) { // If cant make the movement just try anyway, else move in increments of 1 degree while taking breaks - moveServoTo(servoNum,angle); - } else if (smoothMovement) { - // TODO - } else { - int wasteTimePerDegree = moveAngle/delayAmount; - if (angle > startPos) { - for (int i=0; i