Stap 9: Elektronica en macht
Wij geprogrammeerd onze onderwater zweefvliegtuig met behulp van een Arduino UNO en de vele Arduino libraries. Bovendien moesten we twee micro stuurprogramma's om te controleren de stappenmotoren die zou duwen en te trekken onze voorschakelapparaten, een servo om het gewicht en de 10 DOF Adafruit versnellingsmeter te controleren. Voor het aandrijven van onze apparaat gebruikten we een 9 volt-batterij, en voor de extra spanning die nodig zijn voor de stappenmotoren gebruikten we een 14.8V LiPo accu.
Voor de programmering van het apparaat gebruikte we 6 bibliotheken in totaal:
AccelStepper.h Metro.h Wire.h Servo.h Adafruit_Sensor.h Adafruit_LSM303_U.h
Na het instellen van de verschillende apparaten en motoren hebben we een enkele hoofdlus waarmee het algoritme voor het zweefvliegtuig. Hieronder hebben we pseudocode voor deze lus opgenomen.
void loop (){ swing(); if still traveling{ drop(); stopANDtake(); rise(); finish(); } }
De swing-functie van onze code neemt de gegevens van de versnellingsmeter en wijzigt de positie van de servo volgens de lezing. Dit deel van de code heet telkens door de lus zodat de servo en het gewicht constant in beweging zijn als het zweefvliegtuig door het water reizen. We hebben onze volledige code hieronder opgenomen. Wij hebben de poorten voor de uitersten verleden -10 en 10 zodat voor de berekening voor de servo te schrijven.
void swing(){<br> /* Get a new sensor event */ sensors_event_t event; accel.getEvent(&event); double ycomp = event.acceleration.y; if(ycomp <= -10) ycomp = -10; if(ycomp >= 10) ycomp = 10; myservo.write(180-(ycomp+10)*9); }
De sub komt het nog steeds reizen lus, en dit is waar de voorschakelapparaten verplaatst tijdens de verschillende stadia van beweging. De eerste fase die het binnenkomt is de daling van de fase. Tijdens deze fase worden de voorschakelapparaten getrokken in het gebruik van onze stappenmotor. De tweede fase is de fase van de stopANDtake tijdens deze etappe de van de ontwerpresolutie de voorschakelapparaten stoppen met trekken en het zweefvliegtuig is toegestaan om een beetje te zinken. Dit is ook de fase in de volgende generatie van de sub wanneer de reageerbuis in monsters vindt. Tot slot hebben wij een opkomst-functie. Hiermee schakelt u de richting van de stepper motor rond zodat het duwt de voorschakelapparaten en het water weer uit. Dit maakt de sub als meer veerkrachtige en wordt een zwevende werkbalk terug naar de oppervlakte. De opdracht voltooien gewoon uitschakelt als de motoren, en zorgt voor de veilige ophalen van het vaartuig.