top up prepare for oct fundraise
This commit is contained in:
parent
014121fcb7
commit
2617231d9e
168
ArduTracker.ino
Normal file
168
ArduTracker.ino
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
// Sweep
|
||||||
|
// by BARRAGAN <http://barraganstudio.com>
|
||||||
|
// This example code is in the public domain.
|
||||||
|
|
||||||
|
|
||||||
|
#include <Servo.h>
|
||||||
|
|
||||||
|
Servo pan; // pan servo
|
||||||
|
Servo tilt; // tilt servo
|
||||||
|
|
||||||
|
// Pin 13 has an LED connected on most Arduino boards.
|
||||||
|
int led = 13;
|
||||||
|
long lastTilt = 65L;
|
||||||
|
long lastPan = 50L;
|
||||||
|
int dir = 1;
|
||||||
|
int pos = 0;
|
||||||
|
int tiltDelay = 15;
|
||||||
|
long minPWM = 1000L;
|
||||||
|
long maxPWM = 2000L;
|
||||||
|
long panVal = 0L;
|
||||||
|
long tiltVal = 0L;
|
||||||
|
long interpVal = 0L;
|
||||||
|
|
||||||
|
String cmd = "";
|
||||||
|
String panStr = "";
|
||||||
|
String tiltStr = "";
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
pan.attach(9);
|
||||||
|
tilt.attach(10);
|
||||||
|
|
||||||
|
Serial.begin(57600);
|
||||||
|
|
||||||
|
pinMode(led, OUTPUT);
|
||||||
|
|
||||||
|
// Origin for both servos
|
||||||
|
tilt.write(lastTilt);
|
||||||
|
pan.write(lastPan);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
if (Serial.available())
|
||||||
|
{
|
||||||
|
char ch = Serial.read();
|
||||||
|
|
||||||
|
if (ch == 10)
|
||||||
|
{
|
||||||
|
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
|
||||||
|
|
||||||
|
// Line feed is the command char
|
||||||
|
if (cmd.startsWith("!!!PAN:"))
|
||||||
|
{
|
||||||
|
panStr = cmd.substring(7,11);
|
||||||
|
|
||||||
|
if (cmd.substring(12,16) == "TLT:")
|
||||||
|
{
|
||||||
|
tiltStr = cmd.substring(16,20);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (panStr != "")
|
||||||
|
{
|
||||||
|
panVal = panStr.toInt();
|
||||||
|
if (panVal < minPWM)
|
||||||
|
{
|
||||||
|
panVal = minPWM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (panVal > maxPWM)
|
||||||
|
{
|
||||||
|
panVal = maxPWM;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpVal = ((panVal-minPWM) * 360) / (maxPWM-minPWM);
|
||||||
|
|
||||||
|
if (interpVal > 360)
|
||||||
|
{
|
||||||
|
interpVal = 360;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (interpVal < 0)
|
||||||
|
{
|
||||||
|
interpVal = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Serial.print("Pan=");
|
||||||
|
//Serial.println(interpVal);
|
||||||
|
|
||||||
|
// This is the calibration constant for the pan which has a gear ratio
|
||||||
|
interpVal = ((interpVal * 10) / 37) + 50;
|
||||||
|
pan.write(interpVal);
|
||||||
|
lastPan = interpVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tiltStr != "")
|
||||||
|
{
|
||||||
|
tiltVal = tiltStr.toInt();
|
||||||
|
if (tiltVal < minPWM)
|
||||||
|
{
|
||||||
|
tiltVal = minPWM;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tiltVal > maxPWM)
|
||||||
|
{
|
||||||
|
tiltVal = maxPWM;
|
||||||
|
}
|
||||||
|
|
||||||
|
interpVal = ((tiltVal-minPWM) * 90) / (maxPWM-minPWM);
|
||||||
|
|
||||||
|
if (interpVal > 90)
|
||||||
|
{
|
||||||
|
interpVal = 90;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (interpVal < 0)
|
||||||
|
{
|
||||||
|
interpVal = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Serial.print("Tilt=");
|
||||||
|
//Serial.println(interpVal);
|
||||||
|
|
||||||
|
// This is the calibration constant
|
||||||
|
interpVal = 150 - interpVal;
|
||||||
|
|
||||||
|
dir = 1;
|
||||||
|
if (interpVal < lastTilt)
|
||||||
|
{
|
||||||
|
dir = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tiltDelay > 0)
|
||||||
|
{
|
||||||
|
// Slow down tilt by stepping to it's destination
|
||||||
|
for (pos = lastTilt; pos != interpVal; pos += dir)
|
||||||
|
{
|
||||||
|
tilt.write(pos);
|
||||||
|
delay(tiltDelay);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tilt.write(interpVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
lastTilt = interpVal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (cmd.startsWith("!!!TLTDLY:"))
|
||||||
|
{
|
||||||
|
cmd = cmd.substring(10,14);
|
||||||
|
tiltDelay = cmd.toInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
panStr = "";
|
||||||
|
tiltStr == "";
|
||||||
|
cmd = "";
|
||||||
|
|
||||||
|
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cmd += ch;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
EZ_Antenna_Tracker___Ground_Station_EZtracker_Immersion_RC.zip
Normal file
BIN
EZ_Antenna_Tracker___Ground_Station_EZtracker_Immersion_RC.zip
Normal file
Binary file not shown.
859
WrittenGS-Orbit-PayloadSpecNotes.PDF
Normal file
859
WrittenGS-Orbit-PayloadSpecNotes.PDF
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user