Sisällysluettelo:

Upotettava ajoneuvo: 5 vaihetta
Upotettava ajoneuvo: 5 vaihetta

Video: Upotettava ajoneuvo: 5 vaihetta

Video: Upotettava ajoneuvo: 5 vaihetta
Video: Робокар Поли - ТОП-5 серий! - Мультики про машинки | The best of Robocar Poli 2024, Marraskuu
Anonim
Upotettava ajoneuvo
Upotettava ajoneuvo
Upotettava ajoneuvo
Upotettava ajoneuvo

**************** TÄMÄ OHJE ON VÄLILLÄ KÄYTÖSSÄ ****************

Tämä ohje on luotu täyttämään Etelä -Floridan yliopiston Makecourse -projektin vaatimus (www.makecourse.com).

Tämä Instructable on lyhyt katsaus sukellusajoneuvon luomiseen, jonka suunnittelin ja rakensin Makecourse -luokkaani Etelä -Floridan yliopistossa. Tässä opetusohjelmassa annan materiaaliluettelon, käyttämäni Arduino Uno -laitteelle luomani ohjauskoodin ja yleiskatsauksen upotettavan veden kokoamiseen.

Vaihe 1: Materiaalit

Materiaalit
Materiaalit
Materiaalit
Materiaalit
Materiaalit
Materiaalit

Käytetty elektroniikka, kun:

1x Arduino Uno

1x mobius toimintakamera

1x mobius-toimintakamera usb-b-A/V-kaapeli

1x kenttänäkymä 777 -näyttö

1x turnigy marine 50A ESC (elektroninen nopeudensäätö)

1x turnigy marine -ohjelmointikortti

1x T-Motor Navigator 400kv

1x YEP 20A BEC (akun poistopiiri)

6x harrastus kuningas HK15139 vedenpitävät servot

2x rinnakkainen T-liitin ja valjaat

2x 18 tuuman servo -jatkojohdot

6x 6 tuuman servo -jatkojohdot

2x 1300mah 3s Lipo -akut

2x 2500mah 4s Lipo -akut

1x jakelukortti, jossa on sekä 5v että 12v kiinteät lähdöt

Rakennusmateriaalit, joissa:

1x 3/16 tuuman vanerilevy

1x 6 tuuman ID -ABS -kuljetusputki

1x silikoniputki

1x tölkki joustavaa tiivistettä

4x kelat ABS 3D -tulostuslankaa

1x 24 tuuman laatikon liukumäki

Lämpökutistuva putki

1 x 10 jalkaa skotlantilaista duraloc -tarranauhaa

1x JB Hitsausmuovi epoksi

1x halkaisijaltaan 6,2 tuuman akryylivalvontakamerakupu

2x IP68 -ethernet -läpivienti

2x 24 tuuman cat6 -ethernet -kaapeli

1 x 200 -jalka cat6 -ethernet -kaapeli

Käytetty laitteisto oli:

24x 1/2 tuuman messinkipuuruuvit

24x ------ ruuvit (servojen mukana)

Käytetyt työkalut:

Philipin ja litteäpäiset ruuvimeisselit

Kuusiokoloavain

Juotin

Kuuma pyssy

3D -tulostin (käytin Monoprice Maker Select Plus)

Vaihe 2: Ohjelmointi

Ohjelmointi
Ohjelmointi
Ohjelmointi
Ohjelmointi
Ohjelmointi
Ohjelmointi
Ohjelmointi
Ohjelmointi

Alla on koodi, joka luotiin ohjaamaan upotettavaa. Olen myös lisännyt.ino -tiedoston, jotta se voidaan ladata.

Tämä koodi luotiin Arduino Unolle Arduino -kääntäjää käyttäen.

/**********************************************************************************************************************************************************************

Kirjoittaja: Jonah Powers Päivämäärä: 11.9.2018 Tarkoitus: Kauko -ohjattavan upotettavan ajoneuvon ohjauskoodi ****************************** ************************************************** ************************************************** ************************************/#include // Sisältää servokirjaston servorullan1; // Rullan1 julistaminen servoservoksi2; // Rullan2 ilmoittaminen servo Servo elev1; // Elev1: n julistaminen servoksi Servo elev2; // Elev2: n julistaminen servoksi Servo yaw1; // Yaw1: n julistaminen servoksi Servo yaw2; // Yaw2: n julistaminen servoksi Servo esc; // Esc: n julistaminen servoksi

int pot1 = 0; // Alustetaan muuttuja pot1 kokonaislukuna ja asetetaan sen arvoksi 0 int pot2 = 1; // Alustetaan muuttuja pot2 kokonaislukuna ja asetetaan se arvoksi 2 int pot3 = 2; // Muuttujan pot3 alustaminen kokonaislukuna ja sen asettaminen 4 int pot4 = 3; // Alustetaan muuttuja pot4 kokonaislukuna ja asetetaan sen arvoksi 5 int val1; // Alustetaan muuttuja val1 kokonaislukuna int val2; // Alustetaan muuttuja val2 kokonaislukuna int val3; // Alustetaan muuttuja val3 kokonaislukuna int val4; // Alustetaan muuttuja val4 kokonaislukuna int val5; // Alustetaan muuttuja val5 kokonaislukuna int val6; // Alustetaan muuttuja val6 kokonaislukuna int val7; // Alustetaan muuttuja val7 kokonaislukuna int val8; // Alustetaan muuttuja val8 kokonaislukuna int mspeed; // Alustetaan muuttuja mspeed kokonaislukuna

void setup () {// Arduinon alustusvaihe Serial.begin (9600); // Sarjamonitorin alustaminen roll1.attach (2); // Servorullan1 kiinnittäminen digitaaliseen nastaan 2 roll2.attach (3); // Servorullan2 kiinnittäminen digitaaliseen nastaan 3 elev1.attach (5); // Servo elev1: n kiinnittäminen digitaaliseen nastaan 5 elev2.attach (6); // Servo elev2: n kiinnittäminen digitaaliseen nastaan 6 yaw1.attach (8); // Servo yaw1: n kiinnittäminen digitaaliseen nastaan 8 yaw2.attach (9); // Servo yaw2: n kiinnittäminen digitaaliseen nastaan 9 esc. Kiinnitys (11); // Servo esc: n kiinnittäminen digitaaliseen nastaan 11 roll1.write (90); // Servorullan1 kirjoittaminen keskiasentoon roll2.write (90); // Servorullan2 kirjoittaminen keskiasentoon elev1.write (90); // Servo elev1: n kirjoittaminen keskiasentoon elev2.write (90); // Servo elev2: n kirjoittaminen keskiasentoon yaw1.write (90); // Servo yaw1: n kirjoittaminen keskiasentoon yaw2.write (90); // Servo yaw2: n kirjoittaminen keskiasentoon esc.write (180); // Servo esc: n kirjoittaminen keskiasentoon (2500); // Odotetaan 2 sekunnin esc -kirjoitusta (90); viive (5000); }

void loop () {// Pääkoodi jatkuvaan silmukkaan, jos (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Tarkistetaan onko "Joystick" (potentiometri) keskitetty roll1.write (90); // Servorullan 1 kirjoittaminen keskiasentoon roll2.write (90); // Servorullan2 kirjoittaminen keskiasentoon} else {// Mitä tehdä, jos "Joystick" ei ole keskellä val1 = kartta (val1, 0, 1023, 10, 170); // val1: n kartoitus 10: stä 170: een ja määrittäminen val1: lle roll1.write (val1); // Servorullan1 kirjoittaminen positoniksi, jonka määrittelee val1 roll2.write (val1); // Servorullan2 kirjoittaminen val1: n määrittämään positoniin}

val2 = analoginenLue (pot2); // Pot2: n lukeminen (analoginen nasta 2) ja arvon tallentaminen val2: ksi, jos (val2> = 485 && val2 <= 540) {// Tarkistetaan onko "Joystick" (potentiometri) keskitetty elev1.write (90); // Servo elev1: n kirjoittaminen keskiasentoon elev2.write (90); // Servo elev2: n kirjoittaminen keskiasentoon} else {// Mitä tehdä, jos "Joystick" ei ole keskellä val3 = kartta (val2, 0, 1023, 10, 170); // val2: n kartoitus 10: stä 170: een ja val3: lle osoittaminen val4 = kartta (val2, 0, 1023, 170, 10); // Val2: n kartoitus 170: stä 10: een ja val4: lle osoittaminen elev1.write (val3); // Servo elev1: n kirjoittaminen positoniksi, jonka määrittelee val3 elev2.write (val4); // Servo elev2: n kirjoittaminen val4: n määrittämään positoniin}

val5 = analoginenLue (pot3); // Pot3: n lukeminen (analoginen nasta 4) ja arvon tallentaminen arvoksi val5 if (val5> = 485 && val5 <= 540) {// Tarkistetaan onko "Joystick" (potentiometri) keskitetty yaw1.write (90); // Servo yaw1: n kirjoittaminen keskiasentoon yaw2.write (90); // Servo yaw2: n kirjoittaminen keskiasentoon} else {// Mitä tehdä, jos "Joystick" ei ole keskellä val6 = kartta (val5, 0, 1023, 10, 170); // val5: n kartoitus 10: stä 170: een ja sen määrittäminen val6: lle val7 = kartta (val5, 0, 1023, 170, 10); // val5: n kartoitus 10: stä 170: een ja määrittäminen val7: lle yaw1.write (val6); // Servo yaw1: n kirjoittaminen positoniksi, jonka määrittelee val6 yaw2.write (val7); // Servo yaw2: n kirjoittaminen val7: n määrittämään positoniin}

val8 = analoginenLue (pot4); // Pot4: n lukeminen (analoginen nasta 5) ja arvon tallentaminen arvoksi val8 if (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Tarkistetaan, onko moottori muuttamassa suuntaa esc.write (80); viive (1000); // Odotetaan 1000 millisekuntia} esc.write (val8); // Servo esc: n kirjoittaminen nopeuteen, jonka määrittelee val8 mspeed = val8; // Nykyisen nopeuden tallentaminen vertailua varten}} Serial.print ("kaasu"); // Sarjaprintin avulla sana "Throttle" Serial.println (val8); // Sarjatulostimen avulla näytetään arvo, jonka mukaan kaasu on asetettu sarjaan.print ("roll"); // Sarjaprintin avulla sanan "Roll" näyttäminen Serial.println (val1); // Sarjatulostuksen avulla näytetään arvo, jonka rullalle on asetettu Serial.print ("pitch"); // Sarjaprintin avulla sanan "Pitch" näyttäminen Serial.println (val3); // Sarjatulostuksen avulla näytetään arvo, jonka pitch1 -arvoksi on asetettu Serial.println (val4); // Sarjatulostuksen avulla näytetään arvo, jonka nousu on asetettu arvoon Serial.print ("yaw"); // Sarjatulostimen käyttäminen sanan "Yaw" näyttämiseen Serial.println (val6); // Sarjatulostus näyttää arvon, jonka yaw1 arvo on Serial.println (val7); // Sarjatulostimen käyttäminen arvon näyttämiseen, jonka yaw2 arvoksi on asetettu}

Vaihe 3: Piirit

Liitteenä on kuva upotettavan laitteen piiristä.

Luin Arduinolle mukautetun kilven johdotuksen yksinkertaistamiseksi. Olen ladannut kilven Eagle Schematic & Board -tiedostot. Jyrsin levyn LPKF S63: lla. edessä olevat servot, jotka ohjaavat rullaa, kytketään Arduinoon

liitteenä on kuva ohjaimen sisällä olevasta piiristä.

Vaihe 4: 3D -tulostetut osat

Tulostin kaikki nämä tiedostot Monoprice Maker Select Plus -laitteellani. Käytin Esun ABS 1.75mm -lankaa. Tulostusasetukseni olivat 105 astetta tulostusalustan lämpötilassa ja 255 astetta suulakepuristimen lämpötilassa. Vain 1 kutakin osaa tarvitaan, paitsi että tarvitset 6 kopiota etusivusta. Huomaa, että nämä osat on painettu seinän paksuuden ollessa 1000 mm. Tämä tehtiin niin, että osat painettiin 100% täytteellä, jotta ne olisivat negatiivisesti kelluvia.

Vaihe 5: Kokoonpano

********************************* TULOSSA PIAN *************** *******************

Suositeltava: