From 7ee821461501a1b8c2f5e6272f59df80a9168641 Mon Sep 17 00:00:00 2001 From: Persephone Bubblegum-Holiday Date: Mon, 5 May 2025 19:08:45 -0700 Subject: [PATCH] update firmwares to send info to controlling computer --- .../Firmware-8Valve.ino} | 16 ++- ...nkConnection2-Firmware-Servo-GuestStar.ino | 104 ------------------ .../Firmware-Servo-ChuckEHelenGuestStar.ino | 61 ++++++++++ .../Firmware-Servo-HelenMitzi.ino} | 14 ++- .../{ => Servo}/ServoWorker/ServoWorker.ino | 0 Future Goals.md | 2 +- 6 files changed, 84 insertions(+), 113 deletions(-) rename Arduino Firmware/{PinkConnection2-Firmware-8Valve/PinkConnection2-Firmware-8Valve.ino => Firmware-8Valve/Firmware-8Valve.ino} (81%) delete mode 100644 Arduino Firmware/PinkConnection2-Firmware-Servo-GuestStar/PinkConnection2-Firmware-Servo-GuestStar.ino create mode 100644 Arduino Firmware/Servo/Firmware-Servo-ChuckEHelenGuestStar/Firmware-Servo-ChuckEHelenGuestStar.ino rename Arduino Firmware/{PinkConnection2-Firmware-Servo-HelenMitzi/PinkConnection2-Firmware-Servo-HelenMitzi.ino => Servo/Firmware-Servo-HelenMitzi/Firmware-Servo-HelenMitzi.ino} (95%) rename Arduino Firmware/{ => Servo}/ServoWorker/ServoWorker.ino (100%) diff --git a/Arduino Firmware/PinkConnection2-Firmware-8Valve/PinkConnection2-Firmware-8Valve.ino b/Arduino Firmware/Firmware-8Valve/Firmware-8Valve.ino similarity index 81% rename from Arduino Firmware/PinkConnection2-Firmware-8Valve/PinkConnection2-Firmware-8Valve.ino rename to Arduino Firmware/Firmware-8Valve/Firmware-8Valve.ino index 2de1ab0..e86b46c 100644 --- a/Arduino Firmware/PinkConnection2-Firmware-8Valve/PinkConnection2-Firmware-8Valve.ino +++ b/Arduino Firmware/Firmware-8Valve/Firmware-8Valve.ino @@ -1,9 +1,10 @@ -// PINKCONNECTION2 Client Program for Valve Systems +// PINKCONNECTION2 Client Program for 8 Valve Systems int byte1 = 0; int byte2 = 0; -void setup() { +void setup() +{ pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); @@ -13,13 +14,18 @@ void setup() { pinMode(8, OUTPUT); pinMode(9, OUTPUT); Serial.begin(9600); + Serial.write("PC2,8,Universal"); } -void loop() { - if (Serial.available() > 1) { +void loop() +{ + if (Serial.available() > 1) + { byte1 = Serial.read(); byte2 = Serial.read(); - if ((byte1 & 64) && (byte2 & 64)) { + + if ((byte1 & 64) && (byte2 & 64)) + { if (byte1 & 1) digitalWrite(2, 1); else digitalWrite(2, 0); diff --git a/Arduino Firmware/PinkConnection2-Firmware-Servo-GuestStar/PinkConnection2-Firmware-Servo-GuestStar.ino b/Arduino Firmware/PinkConnection2-Firmware-Servo-GuestStar/PinkConnection2-Firmware-Servo-GuestStar.ino deleted file mode 100644 index c24303c..0000000 --- a/Arduino Firmware/PinkConnection2-Firmware-Servo-GuestStar/PinkConnection2-Firmware-Servo-GuestStar.ino +++ /dev/null @@ -1,104 +0,0 @@ -// PINKCONNECTION2 Client Program for Helen Henny/Chuck E./Guest Star Cyberamic Servo - -#include -#include - -Servo servoChannel[8]; -byte onDegrees[8] = { 90, 0, 0, 0, 45, 135, 0, 0 }; // these are incomplete, i need to tune them when i get the servos in -byte offDegrees[8] = { 0, 0, 0, 0, 90, 90, 0, 0 }; - -int byte1 = 0; -int byte2 = 0; - -void setup() { - servoChannel[0].attach(2); - servoChannel[1].attach(3); - servoChannel[2].attach(4); - servoChannel[3].attach(5); - servoChannel[4].attach(6); - servoChannel[5].attach(7); - servoChannel[6].attach(8); - servoChannel[7].attach(9); - pinMode(A0, OUTPUT); - pinMode(A1, OUTPUT); - pinMode(A2, OUTPUT); - pinMode(A3, OUTPUT); - pinMode(A4, OUTPUT); - pinMode(A5, OUTPUT); - pinMode(10, OUTPUT); - pinMode(11, OUTPUT); - for (int i = 0; i < 8; i++) servoChannel[i].write(offDegrees[i]); - Serial.begin(9600); -} - -void loop() { - if (Serial.available() > 1) { - byte1 = Serial.read(); - byte2 = Serial.read(); - if ((byte1 & 64) && (byte2 & 64)) - if (byte1 & 1) { - servoChannel[0].write(onDegrees[0]); - digitalWrite(A0, 1); - } else { - servoChannel[0].write(offDegrees[0]); - digitalWrite(A0, 0); - } - - if (byte1 & 2) { - servoChannel[1].write(onDegrees[1]); - digitalWrite(A1, 1); - } else { - servoChannel[1].write(offDegrees[1]); - digitalWrite(A1, 0); - } - - if (byte1 & 4) { - servoChannel[2].write(onDegrees[2]); - digitalWrite(A2, 1); - } else { - servoChannel[2].write(offDegrees[2]); - digitalWrite(A2, 0); - } - - if (byte1 & 8) { - servoChannel[2].write(onDegrees[3]); - digitalWrite(A3, 1); - } else { - //servoChannel[2].write(offDegrees[3]); dont - digitalWrite(A3, 0); - } - - if (byte2 & 1) { - servoChannel[4].write(onDegrees[4]); - digitalWrite(A4, 1); - } else { - servoChannel[4].write(offDegrees[4]); - digitalWrite(A4, 0); - } - - if (byte2 & 2) { - servoChannel[4].write(onDegrees[5]); - digitalWrite(A5, 1); - } else { - //servoChannel[4].write(offDegrees[5]); dont - digitalWrite(A5, 0); - } - - if (byte2 & 4) { - servoChannel[6].write(onDegrees[6]); - digitalWrite(10, 1); - } else { - servoChannel[6].write(offDegrees[6]); - digitalWrite(10, 0); - } - - if (byte2 & 8) { - servoChannel[7].write(onDegrees[7]); - digitalWrite(11, 1); - } else { - servoChannel[7].write(offDegrees[7]); - digitalWrite(11, 0); - } - - } -} diff --git a/Arduino Firmware/Servo/Firmware-Servo-ChuckEHelenGuestStar/Firmware-Servo-ChuckEHelenGuestStar.ino b/Arduino Firmware/Servo/Firmware-Servo-ChuckEHelenGuestStar/Firmware-Servo-ChuckEHelenGuestStar.ino new file mode 100644 index 0000000..deffabd --- /dev/null +++ b/Arduino Firmware/Servo/Firmware-Servo-ChuckEHelenGuestStar/Firmware-Servo-ChuckEHelenGuestStar.ino @@ -0,0 +1,61 @@ +// PINKCONNECTION2 Client Program for Helen Henny/Chuck E./Guest Star Cyberamic Servo + +#include + +Servo servoChannel[6]; +byte onDegrees[8] = { 90, 0, 0, 0, 45, 135, 0, 0 }; // these are incomplete +byte offDegrees[8] = { 0 , 0, 0, 0, 90, 90 , 0, 0 }; +byte mapping[8] = { 0 , 1, 1, 2, 3 , 3 , 4, 5 }; + +int byte1 = 0; +int byte2 = 0; + +void setup() +{ + servoChannel[0].attach(2); + servoChannel[1].attach(3); + servoChannel[2].attach(4); + servoChannel[3].attach(5); + servoChannel[4].attach(6); + servoChannel[5].attach(7); + for (int i = 0; i < 8; i++) servoChannel[mapping[i]].write(offDegrees[i]); + Serial.begin(9600); + Serial.write("PC2,8,Helen/Guest Star"); +} + +void loop() +{ + if (Serial.available() > 1) + { + byte1 = Serial.read(); + byte2 = Serial.read(); + + if ((byte1 & 64) && (byte2 & 64)) + { + if (byte1 & 1) servoChannel[mapping[0]].write(onDegrees[0]); + else servoChannel[mapping[0]].write(offDegrees[0]); + + if (byte1 & 2) servoChannel[mapping[1]].write(onDegrees[1]); + else servoChannel[mapping[1]].write(offDegrees[1]); + + if (byte1 & 4) servoChannel[mapping[2]].write(onDegrees[2]); + else servoChannel[mapping[2]].write(offDegrees[2]); + + if (byte1 & 8) servoChannel[mapping[3]].write(onDegrees[3]); + else servoChannel[mapping[3]].write(offDegrees[3]); + + + if (byte2 & 1) servoChannel[mapping[4]].write(onDegrees[4]); + else servoChannel[mapping[4]].write(offDegrees[4]); + + if (byte2 & 2) servoChannel[mapping[5]].write(onDegrees[5]); + else servoChannel[mapping[5]].write(offDegrees[5]); + + if (byte2 & 4) servoChannel[mapping[6]].write(onDegrees[6]); + else servoChannel[mapping[6]].write(offDegrees[6]); + + if (byte2 & 8) servoChannel[mapping[7]].write(onDegrees[7]); + else servoChannel[mapping[7]].write(offDegrees[7]); + } + } +} diff --git a/Arduino Firmware/PinkConnection2-Firmware-Servo-HelenMitzi/PinkConnection2-Firmware-Servo-HelenMitzi.ino b/Arduino Firmware/Servo/Firmware-Servo-HelenMitzi/Firmware-Servo-HelenMitzi.ino similarity index 95% rename from Arduino Firmware/PinkConnection2-Firmware-Servo-HelenMitzi/PinkConnection2-Firmware-Servo-HelenMitzi.ino rename to Arduino Firmware/Servo/Firmware-Servo-HelenMitzi/Firmware-Servo-HelenMitzi.ino index aa12af9..a7269e6 100644 --- a/Arduino Firmware/PinkConnection2-Firmware-Servo-HelenMitzi/PinkConnection2-Firmware-Servo-HelenMitzi.ino +++ b/Arduino Firmware/Servo/Firmware-Servo-HelenMitzi/Firmware-Servo-HelenMitzi.ino @@ -1,7 +1,6 @@ // PINKCONNECTION2 Client Program for Helen Henny/Mitzi Mozzarella Servo #include -#include Servo servoChannel[11]; // mouth earL earR eyelidL eyelidR eyeL eyeR headR headL headUp armUpL armUpR elbowR elbowL armTwistL armTwistR bodyTwistR bodyTwistL bodyLean byte onDegrees[19] = { 45, 0, 0, 0, 0, 0, 0, 45, 135, 135, 90, 90, 90, 90, 90, 90, 0, 0, 0 }; @@ -13,8 +12,12 @@ int byte2 = 0; int byte3 = 0; int byte4 = 0; int byte5 = 0; +int byte6 = 0; +int byte7 = 0; +int byte8 = 0; -void setup() { +void setup() +{ servoChannel[0].attach(2); servoChannel[1].attach(3); servoChannel[2].attach(4); @@ -26,15 +29,20 @@ void setup() { servoChannel[8].attach(10); for (int i = 0; i < 19; i++) servoChannel[mapping[i]].write(offDegrees[i]); Serial.begin(9600); + Serial.write("PC2,32,Mitzi/Helen"); } void loop() { - if (Serial.available() > 4) { + if (Serial.available() > 7) + { byte1 = Serial.read(); byte2 = Serial.read(); byte3 = Serial.read(); byte4 = Serial.read(); byte5 = Serial.read(); + byte6 = Serial.read(); + byte7 = Serial.read(); + byte8 = Serial.read(); if ((byte1 & 64) && (byte2 & 64) && (byte3 & 64) && (byte4 & 64) && (byte5 & 64)) { diff --git a/Arduino Firmware/ServoWorker/ServoWorker.ino b/Arduino Firmware/Servo/ServoWorker/ServoWorker.ino similarity index 100% rename from Arduino Firmware/ServoWorker/ServoWorker.ino rename to Arduino Firmware/Servo/ServoWorker/ServoWorker.ino diff --git a/Future Goals.md b/Future Goals.md index 55e623f..fe0777e 100644 --- a/Future Goals.md +++ b/Future Goals.md @@ -14,4 +14,4 @@ ## Firmwares - - Send controlling computer information about the number of outputs and which character it is set up for + - ~~Send controlling computer information about the number of outputs and which character it is set up for~~ Done!