Բովանդակություն:

Սուզվող մեքենա `5 քայլ
Սուզվող մեքենա `5 քայլ

Video: Սուզվող մեքենա `5 քայլ

Video: Սուզվող մեքենա `5 քայլ
Video: 5 մթերքներ, որոնք կտրականապես արգելվում է տալ մինչև 2 տարեկան երեխաներին 2024, Նոյեմբեր
Anonim
Սուզվող մեքենա
Սուզվող մեքենա
Սուզվող մեքենա
Սուզվող մեքենա

**************** ԱՅՍ ՀԱՍՈUCTՍԱԿԱԼԸ ԴԵՌ ԱՇԽԱՏԱՆՔԱՅԻՆ GRԱՐԳԱՄԱՆ Է ****************

Այս հրահանգը ստեղծվել է Հարավային Ֆլորիդայի համալսարանի Makecourse- ի նախագծի պահանջի կատարման համար (www.makecourse.com):

Այս Instructable- ը կլինի հակիրճ պատկերացում այն սուզվող մեքենայի ստեղծման մասին, որը ես նախագծել և կառուցել եմ Հարավային Ֆլորիդայի համալսարանի Makecourse դասի համար: Այս Ուղեցույցում ես կտրամադրեմ նյութերի օրինագիծ, իմ օգտագործած Arduino Uno- ի կառավարման ծածկագիրը և ակնարկ, թե ինչպես հավաքել սուզվողը:

Քայլ 1: Նյութեր

Նյութեր
Նյութեր
Նյութեր
Նյութեր
Նյութեր
Նյութեր

Էլեկտրոնիկան օգտագործվում է այնտեղ, երբ.

1x Arduino Uno

1x mobius գործողության տեսախցիկ

1x mobius գործողության տեսախցիկ usb-b to A/V մալուխ

1x դաշտային տեսք 777 ցուցադրման էկրան

1x turnigy marine 50A ESC (էլեկտրոնային արագության կառավարում)

1x turnigy ծովային ծրագրավորման քարտ

1x T-Motor Navigator 400 կՎ

1x YEP 20A BEC (մարտկոցի վերացման միացում)

6x հոբբի արքա HK15139 անջրանցիկ սպասարկողներ

2x զուգահեռ T- միակցիչ y ամրագոտիներ

2x 18 դյույմ servo երկարացման լարեր

6 x 6 դյույմ servo երկարացման լարեր

2x 1300mah 3s Lipo մարտկոցներ

2x 2500mah 4s Lipo մարտկոցներ

1x էներգաբաշխիչ տախտակ ՝ 5 վ և 12 վ ֆիքսված ելքերով

Շինանյութեր, որտեղ `

Նրբատախտակի 1x 3/16 դյույմ թերթիկ

1x 6 դյույմ ID ABS առաքման խողովակ

1x սիլիկոնե խողովակ

Ճկուն կնիքի 1 x տարա

ABS 3D տպիչի թելիկի 4 անգամ պտուտակ

1x 24 դյույմ գզրոցի սահիկ

Heերմային նեղացման խողովակ

1x 10 ոտնաչափ շոտլանդական ապրանքանիշի duraloc velcro

1x JB Weld պլաստիկ էպոքսիդ

1x 6,2 դյույմ տրամագծով ակրիլային անվտանգության տեսախցիկի գմբեթ

2x IP68 Ethernet անցում

2x 24 դյույմ cat6 ethernet մալուխ

1x 200 ոտնաչափ cat6 ethernet մալուխ

Օգտագործված սարքավորումն էր.

24x 1/2 դյույմ փողային փայտի պտուտակներ

24x ------ պտուտակներ (ներառված են սերվերի հետ)

Օգտագործված գործիքները.

Philip's և Flat head պտուտակահաններ

Ալենի բանալիների հավաքածու

Oldոդման երկաթ

Heերմային ատրճանակ

3D տպիչ (ես օգտագործել եմ Monoprice Maker Select Plus)

Քայլ 2: mingրագրավորում

Ծրագրավորում
Ծրագրավորում
Ծրագրավորում
Ծրագրավորում
Ծրագրավորում
Ծրագրավորում
Ծրագրավորում
Ծրագրավորում

Ստորև բերված է ծածկագիրը, որը ստեղծվել է սուզվողը կառավարելու համար: Ես նաև կցել եմ.ino ֆայլը, որպեսզի այն ներբեռնվի:

Այս կոդը ստեղծվել է Arduino Uno- ի համար ՝ օգտագործելով Arduino կոմպիլյատորը:

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

Հեղինակ ՝ Jonah Powers Ամսաթիվ ՝ 11/9/2018 Նպատակ ՝ Հեռակառավարվող ստորջրյա տրանսպորտային միջոցի կառավարման կոդ **************************** *********************************************** *********************************************** ********************************** # #ներառել // Ներառյալ Servo Library Servo roll1; // Roll1- ը սերվո Servo roll2 հռչակելը; // roll2- ը սերվո հայտարարելը Servo lift1; // վերելքը հռչակելով որպես սերվո Servo lift2; // lift2- ը սերվո հայտարարելը Servo yaw1; // yaw1- ին սերվո հայտարարելը Servo yaw2; // yaw2- ին servo Servo esc հայտարարելը; // esc- ի սերվո հայտարարելը

int pot1 = 0; // Փոփոխական pot1- ի ինտիտալացում որպես ամբողջ թիվ և այն հավասար 0 int pot2 = 1; // Փոփոխական pot2- ի ինտիտալացում որպես ամբողջ թիվ և այն հավասար 2 int pot3 = 2; // Փոփոխական pot3- ի ինտերիլիզացում որպես ամբողջ թիվ և այն հավասար 4 int pot4 = 3; // Փոփոխական pot4- ի ինտերիլիզացում որպես ամբողջ թիվ և այն հավասար 5 int val1; // փոփոխական արժեքի intitializing որպես integer int val2; // Val2 փոփոխականի ինտիտալիզացում ՝ որպես ամբողջական int val3; // փոփոխական արժեքի intitializing որպես ամբողջական int val4; // փոփոխական արժեքի intitializing որպես integer int val5; // փոփոխականի ինտիտալիզացիա ՝ որպես ամբողջական int val6; // փոփոխական միջամտություն val6 որպես ամբողջություն int val7; // փոփոխականի ինտիտալիզացիա որպես ամբողջական int val8; // փոփոխականի ինտիտալիզացիա ՝ որպես ամբողջական int mspeed; // փոփոխական mspeed- ի ինտիտալիզացիա որպես ամբողջ թիվ

void setup () {// Arduino- ի սկզբնավորման փուլ Serial.begin (9600); // Սերիական մոնիտորի roll1.attach- ի մեկնարկավորում (կցել (2); // servo roll1- ի ամրացում թվային կապում 2 roll2.attach (3); // servo roll2- ի ամրացում թվային 3 -րդ pin1 lift1.attach (5); // servo lift1- ի ամրացում թվային 5 -րդ pin2 lift2.attach (6); // servo lift2- ի ամրացում թվային փին 6 yaw1.attach (8); // servo yaw1- ի ամրացում 8 yaw2.attach թվային կապին (9); // servo yaw2- ի ամրացում թվային 9 -րդ կապին esc.attach (11); // servo esc- ի ամրացում թվային քորոց 11 roll1.write (90); // servo roll1 գրել կենտրոնացված դիրքում roll2.write (90); // servo roll2 գրելը իր կենտրոնացված դիրքում lift1.write (90); // servo lift1 գրել իր կենտրոնացված դիրքում lift2.write (90); // servo lift2 գրել կենտրոնացված դիրքում yaw1.write (90); // servo yaw1 գրել կենտրոնացված դիրքում yaw2.write (90); // servo yaw2 գրել կենտրոնացված դիրքում esc.write (180); // servo esc գրել կենտրոնացված դիրքի ուշացմանը (2500); // Սպասում է 2 վայրկյան esc.write (90); ուշացում (5000); }

void loop () {// Հիմնական ծածկագիր ՝ անվերջ շրջափակման համար, եթե (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// Ստուգում ՝ արդյոք «oyոյստիկ» (պոտենցիոմետր) կենտրոնացած է roll1.write (90); // servo roll1 գրել կենտրոնական դիրքում roll2.write (90); // servo roll2 գրել կենտրոնական դիրքի վրա} այլ {{ինչ անել, եթե «oyոյստիկը» կենտրոնացված չէ val1 = քարտեզ (val1, 0, 1023, 10, 170); // val1 քարտեզագրում 10 -ից 170 -ի և val1 roll1.write- ին նշանակելը (val1); // գրել servo roll1- ին val1 roll2.- ով սահմանված պոզիտոնի վրա; գրել (val1); // գրել servo roll2 դեպի poziton, որը սահմանվում է val1} - ով

val2 = analogRead (pot2); // Կարդում ենք pot2 (անալոգային քորոց 2) և պահում արժեքը որպես val2, եթե (val2> = 485 && val2 <= 540) {// Ստուգում ՝ տեսնելու, թե արդյոք «oyոյստիկ» (պոտենցիոմետր) կենտրոնացած է բարձր1.գրեք (90); // servo lift1 գրել կենտրոնական դիրքի lift2.write (90); // servo lift2 գրել կենտրոնական դիրքի վրա} else {// Ինչ անել, եթե «oyոյստիկը» կենտրոնացված չէ val3 = քարտեզ (val2, 0, 1023, 10, 170); // val2 քարտեզագրում 10 -ից 170 -ի և val3 val4- ին նշանակել = քարտեզ (val2, 0, 1023, 170, 10); // val2 քարտեզագրումը 170 -ից 10 -ը և val4 lift1.- ին նշանակելը (val3); // գրել servo lift1 դեպի poziton, որը սահմանվում է val3 lift2.write- ով (val4); // գրել servo lift2- ին valit- ով սահմանված poziton- ին

val5 = analogRead (pot3); // Կարդում ենք pot3 (անալոգային քորոց 4) և պահում արժեքը որպես val5, եթե (val5> = 485 && val5 <= 540) {// Ստուգում ՝ արդյոք «oyոյստիկ» (պոտենցիոմետր) կենտրոնացած է yaw1.write (90); // servo yaw1 գրել կենտրոնական դիրքի yaw2.write (90); // servo yaw2 գրել կենտրոնական դիրքին} else {// Ինչ անել, եթե «oyոյստիկ» -ը կենտրոնացված չէ val6 = քարտեզ (val5, 0, 1023, 10, 170); // val5- ի քարտեզագրում 10 -ից 170 -ի և val6- ի համար val7 = քարտեզի (val5, 0, 1023, 170, 10); // val5 քարտեզագրում 10 -ից 170 -ի համար և val7 yaw1.write- ին նշանակելը (val6); // servo yaw1 գրել valit ya62.write (val7) սահմանած դիրքի վրա; // servo yaw2 գրել val7- ով սահմանված դիրքի վրա

val8 = analogRead (pot4); // Կարդում ենք pot4 (անալոգային փին 5) և պահում արժեքը որպես val8, եթե (val8> 470 && val8 80 && val8 <80) || (mspeed80)) {// Ստուգում ՝ տեսնելու, թե արդյոք շարժիչը պատրաստվում է փոխել ուղղությունը esc.write (80); ուշացում (1000); // Սպասում է 1000 միլիվայրկյան} esc.write (val8); // servo esc գրել val8 mspeed = val8- ով սահմանված արագությամբ; // Համեմատության համար ընթացիկ արագության պահպանում}} Serial.print («շնչափող»); // Օգտագործելով Serial Print- ը «Throttle» բառը ցուցադրելու համար Serial.println (val8); // Օգտագործելով Serial Print ՝ ցուցադրելու այն արժեքը, որը շնչափողը սահմանում է Serial.print («գլորում»); // Օգտագործելով Serial Print ՝ «Roll» բառը ցուցադրելու համար Serial.println (val1); // Օգտագործելով Serial Print ՝ ցուցադրելու այն արժեքը, որը գլանված է Serial.print («սկիպիդար»); // Օգտագործելով Serial Print ՝ «Pitch» բառը ցուցադրելու համար Serial.println (val3); // Օգտագործելով Serial Print ՝ ցույց տալու արժեքը, որը pitch1- ը սահմանել է Serial.println (val4); // Օգտագործելով Serial Print ՝ ցույց տալու արժեքը, որը pitch2- ը սահմանել է Serial.print («yaw»); // Օգտագործելով Serial Print ՝ «Yaw» բառը ցուցադրելու համար Serial.println (val6); // Օգտագործելով Serial Print ՝ ցույց տալու արժեքը, որը yaw1- ը սահմանել է Serial.println (val7); // Serial Print- ի օգտագործումը `yaw2- ի սահմանած արժեքը ցույց տալու համար}

Քայլ 3: Շղթա

Կից տեղադրված է սուզվող նավի վրա գտնվող շղթայի լուսանկարը:

Ես Arduino- ի համար ստեղծեցի հատուկ վահան `իմ էլեկտրագծերը պարզեցնելու համար: Ես վերբեռնել եմ Eagle Schematic & Board ֆայլերը վահանի համար: Ես օգտագործել եմ LPKF S63 տախտակը ֆրեզերելու համար: առջևի Servos- ը, որը վերահսկում է գլանը, միացված կլինի Arduino- ին

կցված է հսկիչի ներսում շղթայի լուսանկարը:

Քայլ 4: 3D տպագիր մասեր

Այս բոլոր ֆայլերը ես տպել եմ Monoprice Maker Select Plus- ում: Ես օգտագործել եմ Esun ABS 1.75 մմ թել: Տպման իմ կարգավորումները 105 աստիճան C էին `տպագիր մահճակալի ջերմաստիճանի և 255 աստիճան C, արտամղիչ ջերմաստիճանի համար: Յուրաքանչյուր մասից միայն 1 -ն է անհրաժեշտ, բացի այն, որ ձեզ հարկավոր է առջևի թևի 6 օրինակ: Ուշադրություն դարձրեք, որ այս մասերը տպագրվել են 1000 մմ պատի հաստությամբ: Դա արվել է այնպես, որ մասերը տպվեն 100% լցվածով, որպեսզի դրանք բացասական լիցքավորվեն:

Քայլ 5: Հավաքում

********************************* ՇՈՒՏՈՎ *************** *******************

Խորհուրդ ենք տալիս: