From 2c8ffcfc2ee7f8c61c1571a817381c028e8b311d Mon Sep 17 00:00:00 2001 From: DanInvents <55188328+DanInvents@users.noreply.github.com> Date: Thu, 14 Mar 2024 13:22:53 +0200 Subject: [PATCH] Add files via upload Upgraded the servo motor control. Now you can rotate an MG90s servo motor 180 degrees. --- .../Rev 2.2/control/SDstartup.ino | 24 ++ .../Rev 2.2/control/batteryStatus.ino | 8 + .../Rev 2.2/control/beepnblink.ino | 76 ++++++ .../Rev 2.2/control/control.ino | 258 ++++++++++++++++++ .../control/dragAndDropComplementary.uf2 | Bin 0 -> 226304 bytes .../Rev 2.2/control/kalmanFilter.ino | 20 ++ .../Rev 2.2/control/preLaunch.ino | 15 + .../Rev 2.2/control/recovery.ino | 52 ++++ .../Rev 2.2/control/rotSwitch.ino | 179 ++++++++++++ 9 files changed, 632 insertions(+) create mode 100644 Firmware/complementary_coded_rotary_switch/Rev 2.2/control/SDstartup.ino create mode 100644 Firmware/complementary_coded_rotary_switch/Rev 2.2/control/batteryStatus.ino create mode 100644 Firmware/complementary_coded_rotary_switch/Rev 2.2/control/beepnblink.ino create mode 100644 Firmware/complementary_coded_rotary_switch/Rev 2.2/control/control.ino create mode 100644 Firmware/complementary_coded_rotary_switch/Rev 2.2/control/dragAndDropComplementary.uf2 create mode 100644 Firmware/complementary_coded_rotary_switch/Rev 2.2/control/kalmanFilter.ino create mode 100644 Firmware/complementary_coded_rotary_switch/Rev 2.2/control/preLaunch.ino create mode 100644 Firmware/complementary_coded_rotary_switch/Rev 2.2/control/recovery.ino create mode 100644 Firmware/complementary_coded_rotary_switch/Rev 2.2/control/rotSwitch.ino diff --git a/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/SDstartup.ino b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/SDstartup.ino new file mode 100644 index 0000000..c44ac91 --- /dev/null +++ b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/SDstartup.ino @@ -0,0 +1,24 @@ +void SDstartup(){ + // This program checks if the card is present and can be initialized: + if (!SD.begin(17)) { + digitalWrite(statusLED, HIGH); //The blue LED turns on if the card cannot be initialized + while(1); + } + + char filename[] = "00.CSV"; //File name + for (uint8_t i = 0; i < 100; i++) { //The SD card can store up to 100 files + filename[0] = i/10 + '0'; + filename[1] = i%10 + '0'; + if (! SD.exists(filename)) { + dataFile = SD.open(filename, O_CREAT | O_WRITE); //Only open a new file if it doesn't exist + break; + } + else if (SD.exists(F("99.CSV"))){ + while(1){ + digitalWrite(statusLED, HIGH); //If there are 100 files, the blue LED turns on + } + } + } + dataFile.println(F("Time (ms), Altitude (m), Filtered altitude (m), Acceleration (g), Perpendicular acceleration (g), Temperature (C)")); //File header + dataFile.flush(); //Writes data to the SD card +} diff --git a/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/batteryStatus.ino b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/batteryStatus.ino new file mode 100644 index 0000000..5c204f5 --- /dev/null +++ b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/batteryStatus.ino @@ -0,0 +1,8 @@ +void batteryStatus(){ + if ((2*analogRead(29)*3.3/(pow(2,12)-1)) < 3.8){ + digitalWrite(batLED, HIGH); + } + else if ((2*analogRead(29)*3.3/(pow(2,12)-1)) > 3.8){ + digitalWrite(batLED, LOW); + } +} diff --git a/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/beepnblink.ino b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/beepnblink.ino new file mode 100644 index 0000000..826c474 --- /dev/null +++ b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/beepnblink.ino @@ -0,0 +1,76 @@ +void beepnblink(){ + if (initVar == true && overtime == false){ + + if (p<30){ + digitalWrite(statusLED, HIGH); + if (piezoEnable == true){ + analogWrite(piezo, 50); //Turn the piezo on for 300ms + } + } + + else if (p == 30){ + digitalWrite(statusLED, LOW); + if (piezoEnable == true){ + analogWrite(piezo, 0); //Turn the piezo off + } + } + + else if (p == 400){ + p = 0; + } + p++; + } + + else if (initVar == false && overtime == false){ //This is necesary because if p<30 after launch is detected the LED and the piezo will be stuck in ON mode. + digitalWrite(statusLED, LOW); + if (piezoEnable == false){ + analogWrite(piezo, 0); + } + } + + else if (initVar == false && overtime == true){ //After timeout blink and beep the maximum altitude in meters + altToDigits(); //Convert the maximum altitude to digits + while(1){ + for (int i=3; i>-1; i--){ + blinknbeep(altMaxDig[i]); //Beep and blink the altitude digits + delay(700); //0.5s pause in between the beeps and blinks + if (i == 0){ + sleep_ms(10000); //Sleep for 10 seconds to save battery + } + } + } + } +} + +void altToDigits(){ //Convert altitude to digits + for (int i=0; i<4; i++){ + rmnd = altMax % 10; //This is the remainder + altMaxDig[i] = rmnd; + altMax = altMax / 10; + } +} + +void blinkLED(int n){ //Blinks the blue LED every 200 ms + for (int i=0; i<=n; i++){ + digitalWrite(statusLED, HIGH); + delay(200); + digitalWrite(statusLED, LOW); + delay(200); + } +} + +void blinknbeep(int n){ //Blinks the blue LED every 300 ms and makes the buzzer beep + for (int i=0; i +#include "SparkFun_MS5637_Arduino_Library.h" +#include +#include +#include +#include +#include +#include +#include +#include "pico/stdlib.h" + +CircularBuffer FilteredAltitudes; +CircularBuffer altitudes; +CircularBuffer accelerations; +CircularBuffer times; + +//Initialization of Kalman Variables +float R = 0.3; //R = measurement noise covariance. Larger R means large measurement uncertainty +float Q = 0.3*1e-2; //Q = process noise covariance. Larger Q means larger estimation uncertainty. Thus increasing Q corrects more +double Xpe0; // Xpe0 = prior estimation of signal X at time t=0 (current state) +double Xe1; //Xe1 = estimation of X at time t=1 (previous state) +double Ppe0; //Ppe0 = prior estimation of "error covariance" at t=0 +double P1,P0; //P1 = error covariance at t=1, P0 = error covariance at t=0 +double K, Xe0, Z; //K = Kalman gain, Xe0 = estimation of signal at t=0, Z = measured signal at t=0 + +//Physical magnitudes +float altold; //Baseline pressure +int altMax; //Rounded maximum altitude +int altMaxDig[4] = {}; //Max altitude digits +int rmnd; //Dummy variable remainder +int dvsr; //Dummy variable for beeping/flasing the altitude +float temp; +float currentPressure; +float altitudeDelta; +float altThreshold = 10; //Altitude threshold for launchd detection in meters +float accelThreshold = 2.0; //Acceleration threshold for launch detection in gs. +float filteredAltitudeDelta; +float rocketAccel; +float startingPressure = 0.0; + +//Definition of time and auxiliary integers +int tconfig, n, q, p = 0, r = 0; +int deltat; //Time step of every loop iteration +long int t1; //Time variables +long int t4, tout = 300000; //Here tout is the timeout variable tout = 300000 equals 5 min of data logging time + +/* Assign a unique ID to this sensor at the same time */ +Adafruit_ADXL343 accel = Adafruit_ADXL343(12345, &Wire1); + +char filename[] = "00.CSV"; //Dummy file name to store flight data. + +//Config. rotary switch. This configuration is for the real-coded rotary switch +byte switchPins[4] = {15, 13, 14, 16}; //Digital pins assigned to the rotary switch +byte rotValue = B0000; // Variable for printing value over serial debug +byte switchPos; // Variable for storing the current switch possition +byte previousValue; //Variable for storing the previous switch possition + +//Boolean variables defining the state of the program +bool initVar = true; +bool launchCondition1 = false; +bool launchCondition2 = false; +bool deploy = false; +bool automatic = false; +bool timer = false; +bool overtime = false; +bool piezoEnable = true; + +//LEDs +int batLED = 2; //Battery indicator LED +int statusLED = 26; //Status LED + +//Servos +int servo1pin = 28; +int servo2pin = 27; +int zeroPos = 540; //These are the pulse widths for an MG90S servo motor +int extendedPos = 2580; + +//Piezo +int piezo = 12; + +MS5637 barometricSensor; //Creates a barometricSensor object +File dataFile; //Creates a dataFile object +Servo servo1; //Creates a servo1 object +Servo servo2; //Creates a servo2 object + +void setup() { + //Serial.begin(9600); //For debugging purposes only + EEPROM.begin(512); //Emulates EEPROM by allocating 512 kB from the flash memory + + //Declaration of the I2C pins + Wire1.setSDA(10); + Wire1.setSCL(11); + + //Declaration of the SPI pins + SPI.setRX(20); + SPI.setTX(19); + SPI.setSCK(18); + SPI.setCS(17); + + //Declaration of the pins for the battery indicator, and status LED as well as the pin for the buzzer + pinMode(batLED, OUTPUT); //Low battery LED + pinMode(statusLED, OUTPUT); //Status LED + pinMode(piezo, OUTPUT); //Piezo buzzer + + //Piezo buzzer PWM settings + analogWriteFreq(4000); //Set the piezo frequency to 4kHz + analogWriteRange(100); //Set the dynamic range of the piezo + + for (int i = 0; i < 4; i = i + 1){ + pinMode(switchPins[i], INPUT_PULLUP); + } + + barometricSensor.begin(Wire1); + barometricSensor.setResolution(ms5637_resolution_osr_1024); + + //Take 16 readings and average them + startingPressure = 0.0; + for (int x = 0 ; x < 16 ; x++) + startingPressure += barometricSensor.getPressure(); + startingPressure /= (float)16; + + accel.begin(); + accel.setRange(ADXL343_RANGE_16_G); + accel.setDataRate(ADXL343_DATARATE_400_HZ); + switchStartup(); + delay(10000); //Wait for 10 seconds to allow the rocketeer to prepare for launch before the flight computer is armed. + preLaunch(); //Here I store the first second of data into the circular buffers + SDstartup(); +} + +void loop() { + batteryStatus(); //Check the battery level + + if (overtime == false){ + currentPressure = barometricSensor.getPressure(); + temp = barometricSensor.getTemperature(); + sensors_event_t event; + accel.getEvent(&event); + rocketAccel = -((event.acceleration.y/9.81)-(event.acceleration.x/9.81))/sqrt(2); + altitudeDelta = barometricSensor.altitudeChange(currentPressure, startingPressure); + filteredAltitudeDelta = kalmanFilter(altitudeDelta); + + + if (altitudeDelta > altThreshold && launchCondition1 == false){ //Threshold condition set to 10 m + launchCondition1 = true; + } + + if (rocketAccel > accelThreshold && launchCondition2 == false){ + q++; + if (q > 10){ //launcCondition2 stablishes the requirement that to detect launch there should be at least an acceleration of 2g for 100 ms + launchCondition2 = true; + } + } + + else if (rocketAccel < accelThreshold && launchCondition2 == false){ + q = 0; + } + + if (initVar == true){ //Store data to the circular buffer + accelerations.push(rocketAccel); + altitudes.push(altitudeDelta); + FilteredAltitudes.push(filteredAltitudeDelta); + times.push(millis()-t4); //Circular buffer for time + + if (launchCondition1 == true && launchCondition2 == true){ + initVar = false; + + for (int i = 0; i<=99; i++){ //Saving the buffer allows me to store the data measured before launch. + dataFile.print(times[i]-times[0]); //Here times[0] sets the time zero for the time variable + dataFile.print(','); + dataFile.print(altitudes.shift()); + dataFile.print(','); + dataFile.print(FilteredAltitudes.shift()); + dataFile.print(','); + dataFile.print(accelerations.shift()); + dataFile.print(','); + dataFile.print(event.acceleration.z/9.81); + dataFile.print(','); + dataFile.println(temp, 1); + } + + dataFile.flush(); //Store data of the 908 ms before launch + } + } + + else if (initVar == false){ + t1 = millis() - t4 - times[0]; + recovery(); + dataFile.print(t1); + dataFile.print(','); + dataFile.print(altitudeDelta); + dataFile.print(','); + dataFile.print(filteredAltitudeDelta); + dataFile.print(','); + dataFile.print(rocketAccel); + dataFile.print(','); + dataFile.print(event.acceleration.z/9.81); + dataFile.print(','); + dataFile.println(temp, 1); + + if (altitudeDelta > altold){ //Here is where I store the maximum altitude value + altMax = round(altitudeDelta); + altold = altMax; + } + + if (r == 200 && overtime == false){ //Here I set the rate at which I send data to the uSD card + r = 0; + dataFile.flush(); + } + r++; + + + if (t1 >= tout){ + overtime = true; + dataFile.flush(); + dataFile.close(); //After timeout flush the data to the microSD card and close the file + } + } + } + beepnblink(); +} diff --git a/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/dragAndDropComplementary.uf2 b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/dragAndDropComplementary.uf2 new file mode 100644 index 0000000000000000000000000000000000000000..8c2102e384ddf367cca3f67835b3a935bbf33a83 GIT binary patch literal 226304 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

+7=?IqNm-lAs{SL7NzI>^34eh|9Ji{ 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ᕞ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 O^Dln2LG>}l|9=A_6*4^l literal 0 HcmV?d00001 diff --git a/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/kalmanFilter.ino b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/kalmanFilter.ino new file mode 100644 index 0000000..740755e --- /dev/null +++ b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/kalmanFilter.ino @@ -0,0 +1,20 @@ +// This program performs a Kalman filter of the flight data. It smoothens the data and ignores transitory events. + +// Q = process noise covariance +// R = measurement noise covariance. Larger R means large measurement uncertainty. Larger Q means larger estimation uncertainty. Thus increasing Q corrects more. +// Xpe0 = prior estimation of signal X at time t=0 (current state) +// Xe1 = estimation of X at time t=1 (previous state) +// Ppe0 = prior estimation of "error covariance" at t=0, +// P1 = error covariance at t=1, P0 = error covariance at t=0 +// K = Kalman gain, Xe0 = estimation of signal at t=0, Z = measured signal at t=0; + +float kalmanFilter(float Z){ + Xpe0 = Xe1; // Assumption of prediction 1 + Ppe0 = P1 + Q; // Update of prior estimation of "error covariance" + K = Ppe0/(Ppe0 + R); // Measurement update or correction of "Kalman gain" + Xe0 = Xpe0 + K * (Z - Xpe0); // Measurement update or correction of "estimated signal" + P0 = (1 - K) * Ppe0; // Measurement update or correction of "error covariance"; + Xe1 = Xe0; + P1 = P0; + return Xe0; +} diff --git a/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/preLaunch.ino b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/preLaunch.ino new file mode 100644 index 0000000..4c09956 --- /dev/null +++ b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/preLaunch.ino @@ -0,0 +1,15 @@ +void preLaunch(){ //This code works great + t4 = millis(); + + for (int i = 0; i<=99; i++){ + currentPressure = barometricSensor.getPressure(); + sensors_event_t event; + accel.getEvent(&event); + rocketAccel = ((event.acceleration.y/9.81+0.01)-(event.acceleration.x/9.81-0.04))/sqrt(2); + accelerations.push(rocketAccel); + altitudeDelta = barometricSensor.altitudeChange(currentPressure, startingPressure)+0.6; + altitudes.push(altitudeDelta); + FilteredAltitudes.push(kalmanFilter(altitudeDelta)); + times.push(millis()-t4); + } +} diff --git a/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/recovery.ino b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/recovery.ino new file mode 100644 index 0000000..1a22c90 --- /dev/null +++ b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/recovery.ino @@ -0,0 +1,52 @@ +void recovery(){ + + if (timer == true && t1 >= (1000*EEPROM.read(1)+908)){ //Here the 908 ms correspond to the time covered by the circular buffer + servo1.write(EEPROM.read(3)); //Move servo1 to the final position EEPROM.read(3); + servo1.attach(servo1pin, zeroPos, extendedPos); + if (timer == true && t1 >= (1000*EEPROM.read(1)+908+2000)){ //We disable the servo after 2 seconds to save power + servo1.detach(); + } + + if (t1 >= (1000*EEPROM.read(1) + 500*EEPROM.read(6) + 908 + 100)){ //The additional 100 ms is to prevent both servos from moving simultaneously. + servo2.write(EEPROM.read(5)); + servo2.attach(servo2pin, zeroPos, extendedPos); + timer = false; + } + + if (t1 >= (1000*EEPROM.read(1) + 500*EEPROM.read(6) + 908 + 100 + 2000)){ //We disable the servo after 2 seconds to save power + servo2.detach(); + timer = false; + } + } + + else if (automatic == true){ + if ((filteredAltitudeDelta - altold) < -0.01){ + n++; + if (n == 4 && deploy == false){ + deploy = true; + tconfig = t1; + } + } + + else if ((filteredAltitudeDelta - altold) >= 0 && deploy == false){ + n = 0; + } + + if (deploy == true && (t1-tconfig) >= 500*EEPROM.read(0)){ + servo1.write(EEPROM.read(3)); + servo1.attach(servo1pin, zeroPos, extendedPos); + if (deploy == true && (t1-tconfig) >= (500*EEPROM.read(0) + 2000)){ //We disable the servo after 2 seconds to save power + servo1.detach(); + } + } + + if (deploy == true && (t1-tconfig) >= (500*(EEPROM.read(0) + EEPROM.read(6)))){ + servo2.write(EEPROM.read(5)); + servo2.attach(servo2pin, zeroPos, extendedPos); + deploy = false; + if (deploy == true && (t1-tconfig) >= (500*(EEPROM.read(0) + EEPROM.read(6)) + 2000)){ //We disable the servo after 2 seconds to save power + servo2.detach(); + } + } + } +} diff --git a/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/rotSwitch.ino b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/rotSwitch.ino new file mode 100644 index 0000000..2b45a55 --- /dev/null +++ b/Firmware/complementary_coded_rotary_switch/Rev 2.2/control/rotSwitch.ino @@ -0,0 +1,179 @@ +// This program reads the rotary switch. + +void readRotSwitch(){ + for (int k = 0; k < 4; k++){ + if (digitalRead(switchPins[k]) == LOW) { + bitClear(rotValue, k); //sets bit k to 1 + } + else { + bitSet(rotValue, k); //sets bit k to 0 + } + } +} + +void switchStartup(){ + readRotSwitch(); + + if (rotValue == 10){ //A Automatic mode + servo1.write(EEPROM.read(2)); //EEPROM.read(2) + servo1.attach(servo1pin, zeroPos, extendedPos); + + delay(100); //It is important to have a delay to reduce the current spike drawn by the motors + servo2.write(EEPROM.read(4)); //EEPROM.read(4) + servo2.attach(servo2pin, zeroPos, extendedPos); + + automatic = true; + delay(300); + blinkLED(EEPROM.read(0)); + delay(500); + blinkLED(EEPROM.read(6)); + servo1.detach(); //I detach the servos to save power + servo2.detach(); + return; + } + + else if (rotValue == 11){ //B Timer mode + servo1.write(EEPROM.read(2)); //EEPROM.read(2) + servo1.attach(servo1pin, zeroPos, extendedPos); + + delay(100); //It is important to have a delay to reduce the current spike drawn by the motors + servo2.write(EEPROM.read(4)); //EEPROM.read(4) + servo2.attach(servo2pin, zeroPos, extendedPos); + + timer = true; + delay(300); + blinkLED(EEPROM.read(1)); + delay(500); + blinkLED(EEPROM.read(6)); + servo1.detach(); //I detach the servos to save power + servo2.detach(); + return; + } + + else if (rotValue == 12){ //C, Configure the time for parachute deployment on automatic mode + while(1){ + readRotSwitch(); + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(0, rotValue); + EEPROM.commit(); + previousValue = rotValue; + } + } + } + + else if (rotValue == 13){ //D, Configure the time for parachute deployment on timer mode. + while(1){ + readRotSwitch(); + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(1, rotValue); + EEPROM.commit(); + previousValue = rotValue; + } + } + } + + + else if (rotValue == 14){ //E, Adjust servo's 1 initial possition + while(1){ + readRotSwitch(); + servo1.write(180*rotValue/15); + servo1.attach(servo1pin, zeroPos, extendedPos); + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(2, 180*rotValue/15); + EEPROM.commit(); + } + previousValue == rotValue; + } + } + + else if (rotValue == 15){ //F, Adjust servo's 1 final possition + while(1){ + readRotSwitch(); + servo1.write(180*rotValue/15); + servo1.attach(servo1pin, zeroPos, extendedPos); + + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(3, 180*rotValue/15); + EEPROM.commit(); + } + previousValue == rotValue; + } + } + + else if (rotValue == 0){ //0, Adjust the servo's 2 initial possition + while(1){ + readRotSwitch(); + servo2.write(180*rotValue/15); + servo2.attach(servo2pin, zeroPos, extendedPos); + + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(4, 180*rotValue/15); + EEPROM.commit(); + } + previousValue == rotValue; + } + } + + else if (rotValue == 1){ //1, Adjust the servo's 2 final possition + while(1){ + readRotSwitch(); + servo2.write(180*rotValue/15); + servo2.attach(servo2pin, zeroPos, extendedPos); + + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(5, 180*rotValue/15); + EEPROM.commit(); + } + previousValue == rotValue; + } + } + + else if (rotValue == 2){ //2, Adjust the deploy time for servo 2 after servo 1 + while(1){ + readRotSwitch(); + blinkLED(1); + if (previousValue != rotValue){ + EEPROM.write(6, rotValue); + EEPROM.commit(); + previousValue = rotValue; + } + } + } + + else if (rotValue == 3){ //3, Test the servo motors + servo1.write(EEPROM.read(2)); //EEPROM.read(2) + servo1.attach(servo1pin, zeroPos, extendedPos); + delay(500); //It is important to have a delay to reduce the current spike drawn by the motors + servo1.detach(); + servo2.write(EEPROM.read(4)); //EEPROM.read(4) + servo2.attach(servo2pin, zeroPos, extendedPos); + delay(500); + servo2.detach(); + blinkLED(2); + delay(2000); + servo1.write(EEPROM.read(3)); //Move servo1 to the final position EEPROM.read(3); + servo1.attach(servo1pin, zeroPos, extendedPos); + blinkLED(2); + delay(2000); + servo1.detach(); + servo2.write(EEPROM.read(5)); + servo2.attach(servo2pin, zeroPos, extendedPos); + delay(500); + servo2.detach(); + while(1){ + sleep_ms(100000); + } + } + + else { + while (true){ + sleep_ms(10000); + } + } +}