This is an old revision of the document!
MM-UAV Arm Bluetooth Operation
Author: <Dongbin Kim> Email: akdba0207@gmail.com
Date: Last modified on <08/01/16>
Keywords: <Arduino, Bluetooth, Serial communication, C, MM-UAV>
\\
<!-- Add a representative photo of your tutorial below. Make it centered in the page -->
{{:bluetooth_operation_2_.jpg?300
servo2.write(ini2 + 35); // 0 deg to 90 deg on Motor 2 is 45 deg to 135 deg servo3.write(ini3 + 35); // 0 deg to 90 deg on Motor 3 is 20 deg to 110 deg servo4.write(ini4 + 35); // 0 deg to 90 deg on Motor 4 is 60 deg to 150 deg //start degree is 35 degree
} void loop() {
while (bluetooth.available()) { char myChar = (char)bluetooth.read(); myString += myChar; delay(5); }
if (!myString.equals("")) { Serial.println("input value: " + myString);
if (myString == "down") //if you click button "down" { int pos1 = servo1.read(); int pos2 = servo2.read(); int pos3 = servo3.read(); int pos4 = servo4.read(); int goal1 = 5; //all motor moves 5 degrees, if you make this number bigger, it moves bigger delay(dly); for (angle1 = 0; angle1 <= goal1; angle1 += 1) { servo1.write(pos1 - angle1); servo2.write(pos2 + angle1); servo3.write(pos3 + angle1); servo4.write(pos4 + angle1); //all motor moves 5 degrees downward delay(dly); } } else if (myString == "up") {
int pos1 = servo1.read(); int pos2 = servo2.read(); int pos3 = servo3.read(); int pos4 = servo4.read(); int goal1 = 5; delay(dly); for (angle1 = 0; angle1 <= goal1; angle1 += 1) { servo1.write(pos1 + angle1); servo2.write(pos2 - angle1); servo3.write(pos3 - angle1); servo4.write(pos4 - angle1); //all motor moves 5 degree upward delay(dly); }
} else if (myString == "go") {
int pos1 = servo1.read(); int pos2 = servo2.read(); int pos3 = servo3.read(); int pos4 = servo4.read(); int goal1 = 5; delay(dly); for (angle1 = 0; angle1 <= goal1; angle1 += 1) { servo1.write(pos1 + angle1); servo2.write(pos2 + angle1); servo3.write(pos3 + angle1); servo4.write(pos4 - angle1); //all motor moves 5 degree forward delay(dly); }
} else if (myString == "back") {
int pos1 = servo1.read(); int pos2 = servo2.read(); int pos3 = servo3.read(); int pos4 = servo4.read(); int goal1 = 5; delay(dly); for (angle1 = 0; angle1 <= goal1; angle1 += 1) { servo1.write(pos1 - angle1); servo2.write(pos2 - angle1); servo3.write(pos3 - angle1); servo4.write(pos4 + angle1); //all motor moves 5 degree backward delay(dly); }
} else if (myString == "left") {
int pos1 = servo1.read(); int pos2 = servo2.read(); int pos3 = servo3.read(); int pos4 = servo4.read(); int goal1 = 5; delay(dly); for (angle1 = 0; angle1 <= goal1; angle1 += 1) { servo1.write(pos1 + angle1); servo2.write(pos2 - angle1); servo3.write(pos3 + angle1); servo4.write(pos4 + angle1); //all motor moves 5 degree left delay(dly); }
} else if (myString == "right") {
int pos1 = servo1.read(); int pos2 = servo2.read(); int pos3 = servo3.read(); int pos4 = servo4.read(); int goal1 = 5; delay(dly); for (angle1 = 0; angle1 <= goal1; angle1 += 1) { servo1.write(pos1 - angle1); servo2.write(pos2 + angle1); servo3.write(pos3 - angle1); servo4.write(pos4 - angle1); //all motor moves 5 degree right delay(dly); }
} else if (myString == "stop") { servo1.detach(); servo2.detach(); servo3.detach(); servo4.detach(); //all motor stop moving } myString = ""; //myString 변수값 초기화 }
}
>
—-
The snippet above serves to <fill in the blank>. It does this by <fill in the blank>.
—-
<!- Insert another snippet of your code here. Try to keep to less than 0.5 page long –>
—-
Next, the code does <fill in the blank>. It does this by <fill in the blank>.
==== Final Words ====
This tutorial's objective was to <fill in the blank>. Complete <choose: construction details, source code and program descriptions> for <fill in the blank>. Once the concepts were conveyed the reader could <fill in the blank>.
Speculating future work derived from this tutorial, includes <fill in the blank>. In the big picture, the problem of <fill in the blank> can be solved with this tutorial.
For questions, clarifications, etc, Email: paul.oh@unlv.edu