Sei sulla pagina 1di 1

#include <Servo.

h>
#define
STX
#define
ETX

0x02
0x03

byte cmd[8] = {0, 0, 0, 0, 0, 0, 0, 0};


Servo panServo;
Servo tiltServo;
void setup() {
Serial.begin(9600);
panServo.attach(6);
tiltServo.attach(9);
}
void loop() {
if(Serial.available()) {
rtphone
delay(2);
cmd[0] = Serial.read();
if(cmd[0] == STX) {
int i=1;
while(Serial.available()) {
delay(1);
cmd[i] = Serial.read();
if(cmd[i]>127 || i>7)
if((cmd[i]==ETX) && (i==2 || i==7))
ta
i++;
}
if(i==7)
setServoPosition(cmd);
}
}
}

// data received from sma

break;
break;

// Communication error
// Button or Joystick da

void setServoPosition(byte data[8])


{
int joyX = (data[1]-48)*100 + (data[2]-48)*10 + (data[3]-48);
he Int from the ASCII representation
int joyY = (data[4]-48)*100 + (data[5]-48)*10 + (data[6]-48);
joyX = joyX - 200;
o avoid
joyY = joyY - 200;
ting negative numbers
if(joyX<-100 || joyX>100 || joyY<-100 || joyY>100)
cation error
joyX = map(joyX, -100, 100, 0, 180);
joyY = map(joyY, -100, 100, 0,180);
panServo.write(joyX);
tiltServo.write(joyY);
}

return;

// obtain t
// Offset t
// transmit
// commmuni

Potrebbero piacerti anche