ebbits/AdvancedServo-simple/Program.cs
2015-12-01 15:58:07 +00:00

98 lines
3.1 KiB
C#

/*- AdvancedServo simple -
0****************************************************************************************
* This example simply displays the Phidget AdvancedServo serial number when it is
* attached and sets the servo positions, velocity, and acceleration to 0. Then we will
* do a simple simulation of a basic movement of a servo motor at 100.00 velocity and
* 100.00 Acceleration. I decided to leave out the current change event handler for
* easier readability. For a more detailed example, see the Servo-full example.
*
* Please note that this example was designed to work with only one Phidget AdvanceServo
* connected.
* For an example showing how to use two Phidgets of the same time concurrently, please see the
* Servo-multi example in the Servo Examples.
* Copyright 2007 Phidgets Inc. All rights reserved.*/
using System;
using System.Collections.Generic;
using System.Text;
//Needed for the AdvancedServo class, phidget base classes, and PhidgetException class
//Needed for the event handling classes
using Phidgets.Events;
//Using this simply for the sleep() method so that the for loop will wail for the motor
//to finish moving to the previous new position before setting a new position
using System.Threading;
using ebbits.Robots;
using ebbits.Arduino;
namespace ebbits {
class Program {
static void Main(string[] args) {
Logger.LogSerial = false;
MainArduino a = new MainArduino("COM50");
AbstractRobot l = new LaserBot(169861, a);
AbstractRobot p = new PaintBot(169889, a);
AbstractRobot g = new GlassBot(169887);
Console.WriteLine("All Engaged. Press Key to Start.");
Console.ReadLine();
while(true) {
a.clearStack();
a.trainOn(1);
if(a.whereRead() != 5) {
Logger.Warn("Achtung! Steht nicht auf Start!");
//Console.ReadLine();
if(!a.findStart()) {
Logger.Warn("ABBRUCH! Konnte die Bahn nicht Finden oder einstellen!");
//Console.ReadLine();
continue;
}
}
Logger.Message("Move from Start to Welding Pos");
a.trainMove();
a.measureAndStop('r', 1);
Logger.Message("Welding");
l.run();
Logger.Message("Move from Welding to Paint Pos");
a.trainMove();
a.measureAndStop('r', 2);
Logger.Message("Paint");
p.run();
Logger.Message("Move from Paint to Glas Pos");
a.trainMove();
a.measureAndStop('r', 3);
Logger.Message("Glas");
g.run();
Logger.Message("Move from Glas to Turn around Pos");
a.trainMove();
a.readStop('r',6);
Logger.Message("Turn aroud and move from Turn around to Waiting Pos");
System.Threading.Thread.Sleep(500);
a.changeDir(0);
a.trainMove();
a.readStop('r',4);
Logger.Message("Move from Waiting Pos to Start Pos");
a.trainMove();
a.readStop('r', 5);
Logger.Info("Runde zuende!");
Console.ReadLine();
}
}
}
}