diff --git a/buoyfly/src/main.cpp b/buoyfly/src/main.cpp
index 6b2d858..64a4b87 100644
--- a/buoyfly/src/main.cpp
+++ b/buoyfly/src/main.cpp
@@ -43,7 +43,7 @@
//====================
//========================
-#define BUOYFLY_KEY 101
+#define BUOYFLY_KEY 110
//=======================
//========================
diff --git a/gastank/src/main.cpp b/gastank/src/main.cpp
index 0f8435e..d0bbb9d 100644
--- a/gastank/src/main.cpp
+++ b/gastank/src/main.cpp
@@ -43,7 +43,8 @@
//====================
//========================
-#define GASTANK_KEY 100
+#define GASTANK_SIDE_KEY 100
+#define GASTANK_HEAD_KEY 101
//=======================
//========================
@@ -153,31 +154,64 @@ void nothappyalone() {
Task nothappyalone_task(100, TASK_FOREVER, ¬happyalone); // by default, ENABLED.
// servo
-#define SERVO_PIN D6
#include
-static Servo myservo;
// my tasks
-// ringring.
-extern Task servo_release_task;
-void ringring() {
+
+// ring_side.
+static Servo side;
+extern Task side_release_task;
+void ring_side() {
int angle = random(80, 125);
//
- Serial.print("ringring go -> ");
+ Serial.print("ring_side go -> ");
Serial.print(angle);
Serial.println(" deg.");
//
- myservo.attach(D6);
- myservo.write(angle);
- servo_release_task.restartDelayed(100);
+ side.attach(D6);
+ side.write(angle);
+ side_release_task.restartDelayed(100);
}
-Task ringring_task(0, TASK_ONCE, &ringring);
+Task ring_side_task(0, TASK_ONCE, &ring_side);
+void side_release() {
+ side.detach();
+}
+Task side_release_task(0, TASK_ONCE, &side_release);
-// servo release
-void servo_release() {
- myservo.detach();
+// ring_head.
+static Servo head;
+extern Task head_release_task;
+extern Task ring_head_task;
+// ring_head!
+void ring_head() {
+ static int count = 0;
+ if (ring_head_task.isFirstIteration()) {
+ count = 0;
+ Serial.println("ring_head! start.");
+ }
+ if (count % 3 == 0) {
+ //
+ head.attach(D5);
+ head.write(170);
+ //
+ } else if (count % 3 == 1) {
+ //
+ head.detach();
+ //
+ } else {
+ //
+ head.attach(D5);
+ head.write(100);
+ head_release_task.restartDelayed(100);
+ }
+ //
+ count++;
}
-Task servo_release_task(0, TASK_ONCE, &servo_release);
+Task ring_head_task(100, 3, &ring_head);
+void head_release() {
+ head.detach();
+}
+Task head_release_task(0, TASK_ONCE, &head_release);
// mesh callbacks
void receivedCallback(uint32_t from, String & msg) { // REQUIRED
@@ -209,8 +243,11 @@ void receivedCallback(uint32_t from, String & msg) { // REQUIRED
int gate = str_gate.toInt();
//is it for me, the gastank?
- if (key == GASTANK_KEY && gate == 1) {
- ringring_task.restartDelayed(10);
+ if (key == GASTANK_SIDE_KEY && gate == 1) {
+ ring_side_task.restartDelayed(10);
+ }
+ if (key == GASTANK_HEAD_KEY && gate == 1) {
+ ring_head_task.restartDelayed(10);
}
}
void changedConnectionCallback() {
@@ -322,8 +359,11 @@ void setup() {
Wire.begin();
//tasks
- runner.addTask(servo_release_task);
- runner.addTask(ringring_task);
+ runner.addTask(ring_side_task);
+ runner.addTask(side_release_task);
+ //
+ runner.addTask(ring_head_task);
+ runner.addTask(head_release_task);
}
void loop() {