Përmbajtje:

Automjeti i zhytur: 5 hapa
Automjeti i zhytur: 5 hapa

Video: Automjeti i zhytur: 5 hapa

Video: Automjeti i zhytur: 5 hapa
Video: Кораблекрушение американского океанского лайнера Morro Castle 2024, Korrik
Anonim
Automjet zhytës
Automjet zhytës
Automjet zhytës
Automjet zhytës

**************** KJO UDHUCTZUES ISSHTILL PILLRFUNDIM PILLR PUN ****************

Ky udhëzues u krijua në përmbushje të kërkesës së projektit të Makecourse në Universitetin e Floridës së Jugut (www.makecourse.com).

Ky udhëzues do të jetë një pasqyrë e shkurtër e krijimit të automjetit zhytës që kam projektuar dhe ndërtuar për klasën time Makecourse në Universitetin e Floridës së Jugut. Në këtë Instructable unë do të siguroj një faturë të materialeve, kodin e kontrollit që kam krijuar për Arduino Uno që kam përdorur, dhe një përmbledhje se si të montoni zhytësin.

Hapi 1: Materialet

Materiale
Materiale
Materiale
Materiale
Materiale
Materiale

Elektronika përdoret kur:

1x Arduino Uno

1x kamerë veprimi mobius

1x kamera mobius aksioni usb-b në kabllo A/V

1x pamje fushore 777 ekran i ekranit

1x turnigy marine 50A ESC (kontroll elektronik i shpejtësisë)

1x kartë programimi detare turnigy

1x T-Motor Navigator 400kv

1x YEP 20A BEC (qark eleminimi i baterisë)

Servis i papërshkueshëm nga uji 6x hobi king HK15139

2x parzmore paralele T lidhëse y

Tela 2x 18 inç zgjatues servo

Tela zgjatimi servo 6x 6 inç

Bateri 2x 1300mah 3s Lipo

Bateri 2x 2500mah 4s 4s Lipo

Bordi i shpërndarjes së energjisë 1x me dalje fikse 5v dhe 12v

Materialet e ndërtimit ku:

1x fletë kompensatë 3/16 inç

Tub transporti 1x 6 inç ID ABS

1 x tub silikoni

1 x kanaçe me vulë fleksibël

4 x mbështjellje të filamentit të printerit 3D ABS

Rrëshqitje sirtari 1x 24 inç

Tub i tkurrjes së nxehtësisë

1x 10 këmbë të markës skoceze duraloc velcro

1x epoksi plastike JB Weld

Kupola e kamerës së sigurisë akrilike me diametër 6x2,2 inç

2x kalime IP68 ethernet

2x kabllo ethernet 24 inç cat6

Kabllo Ethernet 1x 200 këmbë cat6

Hardueri i përdorur ishte:

Vida druri prej bronzi 24x 1/2 inç

24x ------ vida (të përfshira me servos)

Mjetet e përdorura:

Vidhosësit e kokës Philip dhe Flat

Seti i çelësit Allen

Makine per ngjitjen e metalit

Armë e nxehtë

Printer 3D (kam përdorur një Monoprice Maker Select Plus)

Hapi 2: Programimi

Programimi
Programimi
Programimi
Programimi
Programimi
Programimi
Programimi
Programimi

Më poshtë është kodi që është krijuar për të kontrolluar zhytësin. Unë gjithashtu kam bashkangjitur skedarin.ino në mënyrë që të mund të shkarkohet.

Ky kod u krijua për Arduino Uno duke përdorur përpiluesin Arduino.

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

Autori: Jonah Powers Data: 11/9/2018 Qëllimi: Kodi i Kontrollit për Automjetin e Zhytur me Largësi **************************** ********************************************** ********************************************** *********************************/#include // Përfshirë Bibliotekën Servo Servo roll1; // Deklarimi i roll1 si servo servo roll2; // Deklarimi i roll2 si një servo Servo lift1; // Deklarimi i lift1 si një servo Servo lift2; // Deklarimi i lift2 si një servo Servo yaw1; // Deklarimi i yaw1 të jetë një servo Servo yaw2; // Deklarimi i yaw2 të jetë një servo Servo esc; // Deklarimi i esc si servo

int pot1 = 0; // Fillimi i ndryshores pot1 si numër i plotë dhe vendosja e saj e barabartë me 0 int pot2 = 1; // Fillimi i ndryshores pot2 si një numër i plotë dhe vendosja e saj e barabartë me 2 int pot3 = 2; // Fillimi i ndryshores pot3 si një numër i plotë dhe vendosja e saj e barabartë me 4 int pot4 = 3; // Fillimi i ndryshores pot4 si një numër i plotë dhe vendosja e saj e barabartë me 5 int val1; // Intitalizimi i ndryshores val1 si një numër i plotë int val2; // Intitalizimi i ndryshores val2 si një numër i plotë int val3; // Intitalizimi i ndryshores val3 si një numër i plotë int val4; // Intitalizimi i ndryshores val4 si një numër i plotë int val5; // Intitalizimi i ndryshores val5 si një numër i plotë int val6; // Intitalizimi i ndryshores val6 si një numër i plotë int val7; // Intitalizimi i ndryshores val7 si një numër i plotë int val8; // Intitalizimi i ndryshores val8 si një numër i plotë int mspeed; // Intializimi i ndryshores mspeed si numër i plotë

void setup () {// Faza e fillimit të Arduino Serial.begin (9600); // Fillimi i rrotullës së serisë së monitrit 1. bashkëngjit (2); // Bashkimi i servo roll1 në pin dixhital 2 roll2.attach (3); // Lidhja e servo roll2 në pinin dixhital 3 lift1.attach (5); // Lidhja e servo lift1 me pinin dixhital 5 lift2.attach (6); // Lidhja e servo lift2 me pinin dixhital 6 yaw1.attach (8); // Bashkimi i servo yaw1 në pinin dixhital 8 yaw2.attach (9); // Lidhja e servo yaw2 me pinin dixhital 9 esc.attach (11); // Lidhja e servo esc me pinin dixhital 11 roll1.write (90); // Shkrimi i servo roll1 në pozicionin e tij në qendër roll2.write (90); // Shkrimi i servo roll2 në pozicionin e tij të përqendruar në lartësinë 1. shkruaj (90); // Shkrimi i servo lift1 në pozicionin e tij të përqendruar në lartësi2.shkruaj (90); // Shkrimi i servo lift2 në pozicionin e tij në qendër yaw1.write (90); // Shkrimi i servo yaw1 në pozicionin e tij në qendër yaw2.write (90); // Shkrimi i servo yaw2 në pozicionin e tij të përqendruar esc.write (180); // Shkrimi i servo esc në vonesën e pozicionit të tij në qendër (2500); // Duke pritur 2 sekonda esc.shkruaj (90); vonesa (5000); }

lak void () {// Kodi kryesor për tu lakuar pafund nëse (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Kontrollimi për të parë nëse "Joystick" (potenciometër) është i përqëndruar në roll1.write (90); // Shkrimi i servo roll1 në pozicionin qendror roll2.write (90); // Shkrimi i servo roll2 në pozicionin qendror} tjetër {// Çfarë të bëni nëse "Joystick" nuk është në qendër val1 = hartë (val1, 0, 1023, 10, 170); // Hartëzimi i val1 nga 10 në 170 dhe caktimi i val1 roll1.write (val1); // Shkrimi i servo roll1 te pozitoni i përcaktuar nga val1 roll2.write (val1); // Shkrimi i servo roll2 në poziton i përcaktuar nga val1}

val2 = analogRead (pot2); // Leximi i pot2 (kunja analoge 2) dhe ruani vlerën si val2 nëse (val2> = 485 && val2 <= 540) {// Kontrolli për të parë nëse "Joystick" (potenciometri) është i përqëndruar në lartësinë 1. shkruaj (90); // Shkrimi i servo lift1 në pozicionin qendror lift2.shkruaj (90); // Shkrimi i servo lift2 në pozicionin qendror} tjetër {// Çfarë të bëni nëse "Joystick" nuk është në qendër val3 = hartë (val2, 0, 1023, 10, 170); // Hartëzimi i val2 nga 10 në 170 dhe caktimi në val3 val4 = harta (val2, 0, 1023, 170, 10); // Hartëzimi i val2 nga 170 në 10 dhe caktimi në val4 lift1.write (val3); // Shkrimi i servo lift1 në poziton i përcaktuar nga val3 lift2. Shkrim (val4); // Shkrimi i servo lift2 në poziton i përcaktuar nga val4}

val5 = analogRead (pot3); // Leximi i pot3 (kunja analoge 4) dhe ruani vlerën si val5 nëse (val5> = 485 && val5 <= 540) {// Kontrolli për të parë nëse "Joystick" (potenciometri) është i përqëndruar në yaw1.shkruani (90); // Shkrimi i servo yaw1 në pozicionin qendror yaw2.write (90); // Shkrimi i servo yaw2 në pozicionin qendror} tjetër {// Çfarë të bëni nëse "Joystick" nuk është në qendër val6 = hartë (val5, 0, 1023, 10, 170); // Hartëzimi i val5 nga 10 në 170 dhe caktimi në val6 val7 = harta (val5, 0, 1023, 170, 10); // Hartëzimi i val5 nga 10 në 170 dhe caktimi i val7 yaw1.write (val6); // Shkrimi i servo yaw1 në poziton i përcaktuar nga val6 yaw2.write (val7); // Shkrimi i servo yaw2 te pozitoni i përcaktuar nga val7}

val8 = analogRead (pot4); // Leximi i pot4 (pin analoge 5) dhe ruani vlerën si val8 nëse (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Kontrolli për të parë nëse motori është gati të ndryshojë drejtim esc.write (80); vonesa (1000); // Duke pritur 1000 milisekonda} esc.write (val8); // Shkrimi i servo esc me shpejtësinë e përcaktuar nga val8 mspeed = val8; // Ruajtja e shpejtësisë aktuale për krahasim}} Serial.print ("mbyt"); // Përdorimi i Serial Print për të treguar fjalën "Throttle" Serial.println (val8); // Përdorimi i Serial Print për të treguar vlerën që mbytja është vendosur në Serial.print ("roll"); // Përdorimi i Serial Print për të treguar fjalën "Roll" Serial.println (val1); // Përdorimi i Serial Print për të treguar vlerën që rrotullimi është vendosur në Serial.print ("katran"); // Përdorimi i Serial Print për të treguar fjalën "Pitch" Serial.println (val3); // Përdorimi i Serial Print për të treguar vlerën që pitch1 është vendosur në Serial.println (val4); // Përdorimi i Serial Print për të treguar vlerën që pitch2 është vendosur në Serial.print ("yaw"); // Përdorimi i Serial Print për të treguar fjalën "Yaw" Serial.println (val6); // Përdorimi i Serial Print për të treguar vlerën që yaw1 është vendosur në Serial.println (val7); // Përdorimi i Serial Print për të treguar vlerën që yaw2 është vendosur në}

Hapi 3: Qarku

Bashkangjitur është një fotografi e qarkut në bordin e zhytësit.

Kam krijuar një mburojë me porosi për Arduino për të thjeshtuar instalimet e mia. Unë kam ngarkuar skedarët Eagle Schematic & Board për mburojën. Kam përdorur një LPKF S63 për të bluar bordin. Servos në pjesën e përparme të rrotullës së kontrollit do të lidhen me Arduino

bashkangjitur është një fotografi e qarkut brenda kontrolluesit.

Hapi 4: Pjesët e printuara në 3D

I Shtypi të gjitha këto Skedarë në Monoprice Maker Select Plus. Kam përdorur fije Esun ABS 1.75mm. Cilësimet e mia të printimit ishin 105 gradë C për temperaturën e shtratit të printimit dhe dhe 255 gradë C për temperaturën e ekstruderit. Vetëm 1 nga secila pjesë është e nevojshme, përveç se do t'ju duhen 6 kopje të krahut të përparmë. Vini re se këto pjesë u shtypën me trashësi muri të vendosur në 1000mm. Kjo është bërë në mënyrë që pjesët të printohen me mbushje 100% në mënyrë që të jenë negativisht lundruese.

Hapi 5: Asambleja

********************************* VJEN SË SHPEJTI *************** *******************

Recommended: