Talaan ng mga Nilalaman:

Nailulubog na Sasakyan: 5 Hakbang
Nailulubog na Sasakyan: 5 Hakbang

Video: Nailulubog na Sasakyan: 5 Hakbang

Video: Nailulubog na Sasakyan: 5 Hakbang
Video: ТЕПЕРЬ НЕ ПРОПАДУ 10-ть самоделок ВЫРУЧАТ ГДЕ УГОДНО! 2024, Nobyembre
Anonim
Nailulubog na Sasakyan
Nailulubog na Sasakyan
Nailulubog na Sasakyan
Nailulubog na Sasakyan

***

Ang Instructable na ito ay nilikha bilang pagtupad sa kinakailangan ng proyekto ng Makecourse sa University of South Florida (www.makecourse.com).

Ang Instructable na ito ay magiging isang maikling pagtingin sa paglikha ng submersible na sasakyan na aking dinisenyo at itinayo para sa aking klase sa Makecourse sa University of South Florida. Sa Instructable na ito ay magbibigay ako ng isang bayarin ng mga materyales, ang control code na aking nilikha para sa Arduino Uno na ginamit ko, at isang pangkalahatang ideya kung paano tipunin ang submersible.

Hakbang 1: Mga Kagamitan

Mga Kagamitan
Mga Kagamitan
Mga Kagamitan
Mga Kagamitan
Mga Kagamitan
Mga Kagamitan

Ginamit ang electronics kung saan:

1x Arduino Uno

1x mobius action camera

1x mobius action camera usb-b sa A / V cable

1x view ng patlang na 777 display screen

1x turnigy marine 50A ESC (electronic speed control)

1x turnigy marine programming card

1x T-Motor Navigator 400kv

1x YEP 20A BEC (circuit ng pag-aalis ng baterya)

6x libangan hari HK15139 hindi tinatagusan ng tubig servos

2x parallel T-konektor y harnesses

2x 18 pulgada na mga wire ng extension ng servo

6x 6 pulgada na mga wire ng extension ng servo

2x 1300mah 3s Lipo na mga baterya

2x 2500mah 4s Lipo na mga baterya

1x board ng pamamahagi ng kuryente na may parehong 5v at 12v na nakapirming mga output

Ang mga materyales sa pagbuo kung saan:

1x 3/16 pulgada sheet ng playwud

1x 6 pulgada ID pagpapadala ng tubo

1x silicone tube

1x lata ng flex seal

4x spools ng filament ng printer ng ABS 3D

1x 24 inch drawer slide

Heat shrink tube

1x 10 talampakan ng scotch brand duraloc velcro

1x JB Weld ng plastic epoxy

1x 6.2 pulgada diameter ng acrylic security camera dome

2x IP68 ethernet passthroughs

2x 24 inch cat6 ethernet cable

1x 200 paa cat6 ethernet cable

Ang ginamit na hardware ay:

24x 1/2 inch tanso na kahoy na mga tornilyo

24x ------ mga tornilyo (kasama ang mga servo)

Ang mga gamit na ginamit:

Ang mga driver ng Philip at Flat head screw

Set ng key ni Allen

Panghinang

Mainit na baril

3D printer (Gumamit ako ng Monoprice Maker Select Plus)

Hakbang 2: Programming

Programming
Programming
Programming
Programming
Programming
Programming
Programming
Programming

Nasa ibaba ang code na nilikha upang makontrol ang submersible. Naikabit ko rin ang.ino file upang ma-download ito.

Ang code na ito ay nilikha para sa Arduino Uno gamit ang Arduino compiler.

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

May-akda: Jonah Powers Petsa: 11/9/2018 Layunin: Control Code para sa Malayuan na Pinatatakbo na Sasakyan na ***** ***** ***** ***** // Declaring roll1 to be a servo Servo roll2; // Declaring roll2 to be a servo Servo elev1; // Pagdeklara ng elev1 na maging isang servo Servo elev2; // Declaring elev2 to be a servo Servo yaw1; // Pagdeklara ng yaw1 na maging isang servo Servo yaw2; // Pagdeklara ng yaw2 na maging isang servo Servo esc; // Pagdeklara ng esc na maging isang servo

int pot1 = 0; // Intitializing variable pot1 bilang isang integer at itinatakda itong katumbas ng 0 int pot2 = 1; // Intitializing variable pot2 bilang isang integer at itinatakda itong katumbas ng 2 int pot3 = 2; // Intitializing variable pot3 bilang isang integer at itatakda itong katumbas ng 4 int pot4 = 3; // Intitializing variable pot4 bilang isang integer at itinatakda itong katumbas ng 5 int val1; // Intitializing variable val1 bilang isang integer int val2; // Intitializing variable val2 bilang isang integer int val3; // Intitializing variable val3 bilang isang integer int val4; // Intitializing variable val4 bilang isang integer int val5; // Intitializing variable val5 bilang isang integer int val6; // Intitializing variable val6 bilang isang integer int val7; // Intitializing variable val7 bilang isang integer int val8; // Intitializing variable val8 bilang isang integer int mspeed; // Intitializing variable mspeed bilang isang integer

void setup () {// Arduino initialization yugto Serial.begin (9600); // Initializing the serial moniter roll1.attach (2); // Attaching servo roll1 to digital pin 2 roll2.attach (3); // Attaching servo roll2 to digital pin 3 elev1.attach (5); // Attaching servo elev1 to digital pin 5 elev2.attach (6); // Attaching servo elev2 to digital pin 6 yaw1.attach (8); // Attaching servo yaw1 to digital pin 8 yaw2.attach (9); // Attaching servo yaw2 to digital pin 9 esc.attach (11); // Attaching servo esc to digital pin 11 roll1.write (90); // Writing servo roll1 sa nakasentro nitong posisyon roll2.write (90); // Pagsusulat ng servo roll2 sa nakasentro nitong posisyon na nakakataas1.write (90); // Pagsusulat ng servo elev1 sa nakasentro nitong posisyon na alt2.write (90); // Writing servo elev2 sa nakasentro nitong posisyon na yaw1.write (90); // Writing servo yaw1 sa nakasentro nitong posisyon na yaw2.write (90); // Writing servo yaw2 sa nakasentro nitong posisyon na esc.write (180); // Writing servo esc sa nakasentro nitong posisyon na pagkaantala (2500); // Naghihintay ng 2 segundo esc.write (90); pagkaantala (5000); }

void loop () {// Main Code to loop infininite if (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Sinusuri kung ang "Joystick" (potentiometer) ay nakasentro sa roll1.write (90); // Writing servo roll1 sa gitna ng posisyon roll2.write (90); // Writing servo roll2 to center position} iba pa {// Ano ang gagawin kung ang "Joystick" ay hindi nakasentro val1 = mapa (val1, 0, 1023, 10, 170); // Mapa ng val1 mula 10 hanggang 170 at pagtatalaga sa val1 roll1.write (val1); // Writing servo roll1 to positon na tinukoy ng val1 roll2.write (val1); // Writing servo roll2 to positon na tinukoy ng val1}

val2 = analogRead (pot2); // Pagbasa ng pot2 (analog pin 2) at i-save ang halaga bilang val2 kung (val2> = 485 && val2 <= 540) {// Sinusuri upang makita kung ang "Joystick" (potentiometro) ay nakasentro sa alt1.write (90); // Pagsusulat ng servo elev1 sa gitnang posisyon na nakakataas2.write (90); // Writing servo elev2 to center posisyon} iba pa {// Ano ang gagawin kung ang "Joystick" ay hindi nakasentro val3 = mapa (val2, 0, 1023, 10, 170); // Mapa ng val2 mula 10 hanggang 170 at pagtatalaga sa val3 val4 = mapa (val2, 0, 1023, 170, 10); // Mapa ng val2 mula 170 hanggang 10 at pagtatalaga sa val4 elev1.write (val3); // Writing servo elev1 to positon na tinukoy ng val3 elev2.write (val4); // Writing servo elev2 to positon na tinukoy ng val4}

val5 = analogRead (pot3); // Pagbasa ng pot3 (analog pin 4) at i-save ang halaga bilang val5 kung (val5> = 485 && val5 <= 540) {// Sinusuri upang makita kung ang "Joystick" (potentiometer) ay nakasentro sa yaw1.write (90); // Writing servo yaw1 to center posisyon yaw2.write (90); // Writing servo yaw2 to center position} iba pa {// Ano ang gagawin kung ang "Joystick" ay hindi nakasentro val6 = mapa (val5, 0, 1023, 10, 170); // Mapa val5 mula 10 hanggang 170 at pagtatalaga sa val6 val7 = mapa (val5, 0, 1023, 170, 10); // Mapa ng val5 mula 10 hanggang 170 at pagtatalaga sa val7 yaw1.write (val6); // Writing servo yaw1 to positon na tinukoy ng val6 yaw2.write (val7); // Writing servo yaw2 to positon na tinukoy ng val7}

val8 = analogRead (pot4); // Pagbasa ng pot4 (analog pin 5) at i-save ang halaga bilang val8 kung (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Sinusuri kung babago ang motor sa direksyon esc.write (80); pagkaantala (1000); // Naghihintay ng 1000 milliseconds} esc.write (val8); // Writing servo esc sa bilis na tinukoy ng val8 mspeed = val8; // Pag-iimbak ng kasalukuyang bilis para sa paghahambing}} Serial.print ("throttle"); // Paggamit ng Serial Print upang maipakita ang salitang "Throttle" Serial.println (val8); // Paggamit ng Serial Print upang ipakita ang halaga na ang throttle ay nakatakda sa Serial.print ("roll"); // Paggamit ng Serial Print upang maipakita ang salitang "Roll" Serial.println (val1); // Paggamit ng Serial Print upang ipakita ang halaga na ang rolyo ay nakatakda sa Serial.print ("pitch"); // Paggamit ng Serial Print upang maipakita ang salitang "Pitch" Serial.println (val3); // Paggamit ng Serial Print upang maipakita ang halagang itinatakda ang pitch1 sa Serial.println (val4); // Paggamit ng Serial Print upang maipakita ang halagang itinatakda ang pitch2 sa Serial.print ("yaw"); // Paggamit ng Serial Print upang maipakita ang salitang "Yaw" Serial.println (val6); // Paggamit ng Serial Print upang maipakita ang halagang itinatakda ang yaw1 sa Serial.println (val7); // Paggamit ng Serial Print upang maipakita ang halagang itinatakda sa yaw2}

Hakbang 3: Circuitry

Nakalakip ay isang larawan ng circuit on-board na nakalubog.

Lumikha ako ng isang pasadyang kalasag para sa Arduino na gawing simple ang aking mga kable. Na-upload ko ang mga file ng Eagle Schematic & Board para sa kalasag. Gumamit ako ng isang LPKF S63 upang gilingan ang board. ang Servos sa harap na ang control roll ay mai-plug sa Arduino

nakalakip ay isang larawan ng circuit sa loob ng controller.

Hakbang 4: Mga Naka-print na Bahaging 3D

Nai-print ko ang lahat ng mga File na ito sa aking Monoprice Maker Select Plus. Ginamit ko ang Esun ABS 1.75mm Filament. Ang aking mga setting ng pag-print ay 105 degree C para sa print bed temp at at 255 degree C para sa extruder na temperatura. 1 lamang sa bawat bahagi ang kinakailangan maliban sa kakailanganin mo ng 6 na kopya ng front wing. Tandaan na ang mga bahaging ito ay naka-print na may kapal ng pader na nakatakda sa 1000mm. Ginawa ito upang ang mga bahagi ay mai-print na may 100% infill upang sila ay maging negatibong buoyant.

Hakbang 5: Assembly

********************************* MALAPIT NA *************** ***** *****

Inirerekumendang: