Усанд шумбагч машин: 5 алхам
Усанд шумбагч машин: 5 алхам
Anonim
Усанд шумбагч машин
Усанд шумбагч машин
Усанд шумбагч машин
Усанд шумбагч машин

************

Энэхүү зааварчилгаа нь Өмнөд Флоридагийн их сургуулийн Макекурсын төслийн шаардлагыг биелүүлэх зорилгоор бүтээгдсэн болно (www.makecourse.com).

Энэхүү зааварчилгаа нь Өмнөд Флоридагийн их сургуулийн Макекурс ангидаа зориулан бүтээсэн, шумбагч машин бүтээсэн тухай товч танилцуулга болно. Энэхүү гарын авлагад би нэхэмжлэх материал, өөрийн ашиглаж байсан Arduino Uno -д зориулж хийсэн хяналтын код, гүний төхөөрөмжийг хэрхэн угсрах талаархи тоймыг өгөх болно.

Алхам 1: Материал

Материал
Материал
Материал
Материал
Материал
Материал

Электроникийг дараах тохиолдолд ашигладаг.

1 удаа Arduino Uno

1х mobius үйлдлийн камер

1х mobius үйлдлийн камер usb-b to A/V кабель

1х талбар харах 777 дэлгэц

1х турник далайн 50А ESC (электрон хурдны хяналт)

1x turnigy далайн програмчлалын карт

1х T-Motor Navigator 400kv

1x YEP 20A BEC (батерейг арилгах хэлхээ)

6x хобби хаан HK15139 ус нэвтэрдэггүй servos

2 удаа зэрэгцээ T холбогч у бэхэлгээ

2х18 инчийн servo өргөтгөлийн утас

6х6 инчийн servo өргөтгөлийн утас

2x 1300mah 3s Lipo батерей

2x 2500mah 4s Lipo батерей

5х ба 12в тогтмол гаралттай 1х цахилгаан хуваарилах самбар

Барилгын материалууд:

1х 3/16 инчийн фанер хуудас

1x 6 инчийн ID ABS тээврийн хоолой

1х силикон хоолой

1х лааз уян тамга

ABS 3D принтерийн 4 ширхэг дамар

1х24 инчийн шургуулгын шураг

Дулаан багасгах хоолой

1х 10 фут скотч брэнд duraloc velcro

1x JB Weld хуванцар эпокси

1x 6.2 инчийн диаметр бүхий нийлэг хамгаалалтын камерын бөмбөгөр

2 удаа IP68 ethernet дамжуулалт

2х24 инчийн cat6 ethernet кабель

1x 200 фут cat6 ethernet кабель

Хэрэглэсэн тоног төхөөрөмж нь:

24x 1/2 инчийн гуулин модон эрэг

24x ------ эрэг (servos багтсан)

Хэрэглэсэн хэрэгслүүд:

Филип ба Хавтгай толгойтой шураг жолооч

Аллен түлхүүрийн багц

Гагнуурын төмөр

Дулааны буу

3D принтер (Би Monoprice Maker Select Plus ашигласан)

Алхам 2: Програмчлал

Програмчлал
Програмчлал
Програмчлал
Програмчлал
Програмчлал
Програмчлал
Програмчлал
Програмчлал

Усанд шумбагчийг хянахын тулд бүтээсэн кодыг доор харуулав. Би бас.ino файлыг татаж аваад татаж авлаа.

Энэ кодыг Arduino Uno -д зориулж Arduino хөрвүүлэгч ашиглан бүтээсэн болно.

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

Зохиогч: Жона Пауэрс Огноо: 11/9/2018 Зорилго: Алсын удирдлагатай гүний тээврийн хэрэгслийн хяналтын код ****************************** ************************************************ ************************************************ **********************************/#include // Servo Library Servo roll1 багтсан болно; // Roll1 -ийг servo Servo roll2 гэж зарлаж байна; // Roll2 -ийг servo Servo elev1 гэж зарлаж байна; // elev1 -ийг servo Servo elev2 гэж зарлах; // elev2 -ийг servo Servo yaw1 гэж тунхаглах; // yaw1 -ийг servo Servo yaw2 гэж тунхаглах; // yaw2 -ийг servo Servo esc гэж тунхаглах; // esc -ийг servo гэж тунхаглаж байна

int pot1 = 0; // pot1 хувьсагчийг бүхэл тоо болгон эхлүүлж, 0 int pot2 = 1; // pot2 хувьсагчийг бүхэл тоо болгон эхлүүлж, 2 int pot3 = 2; // pot3 хувьсагчийг бүхэл тоогоор эхлүүлж, 4 int pot4 = 3; // pot4 хувьсагчийг бүхэл тоо болгон эхлүүлж, 5 int val1 -тэй тэнцүү болгох; // val1 хувьсагчийг int val2 бүхэл тоо болгон эхлүүлэх; // val2 хувьсагчийг int val3 бүхэл тоо болгон эхлүүлэх; // val3 хувьсагчийг int val4 бүхэл тоо болгон эхлүүлэх; // val4 хувьсагчийг int val5 бүхэл тоо болгон эхлүүлэх; // val5 хувьсагчийг int val6 бүхэл тоо болгон эхлүүлэх; // val6 хувьсагчийг int val7 бүхэл тоо болгон эхлүүлэх; // val7 хувьсагчийг int val8 бүхэл тоо болгон эхлүүлэх; // val8 хувьсагчийг int mspeed бүхэл тоо болгон эхлүүлэх; // mspeed хувьсагчийг бүхэл тоо болгон эхлүүлэх

void setup () {// Arduino эхлүүлэх үе шат Serial.begin (9600); // Цуваа мониторыг эхлүүлэх roll1.attach (2); // Servo roll1 -ийг дижитал зүү 2 roll2.attach (3) -д холбох; // Servo roll2 -ийг дижитал зүү 3 elev1.attach (5) -д холбох; // Servo elev1 -ийг дижитал зүү 5 elev2.attach (6) -д холбох; // Servo elev2 -ийг тоон зүү 6 yaw1.attach (8) -д холбох; // Servo yaw1 дижитал зүү 8 yaw2.attach (9) -д холбох; // Servo yaw2 -ийг тоон зүү 9 -д залгах esc.attach (11); // Servo esc -ийг дижитал зүү 11 өнхрөхөд залгах1.write (90); // Servo roll1 -ийг түүний төвлөрсөн байрлалд бичих2.write (90); // Servo roll2 -ийг төв байрлал руу бичих elev1.write (90); // Servo elev1 -ийг төв байрлал руу бичих elev2.write (90); // Servo elev2 -ийг төв байрлал руу бичих 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) {// "Joystick" (потенциометр) төвд өнхрөх эсэхийг шалгах1.write (90); // Servo roll1 -ийг төв байрны өнхрүүлэгт бичих2.write (90); // Servo roll2 -ийг төв байрлалд бичих} өөр {// "Joystick" төвгүй бол яах вэ val1 = map (val1, 0, 1023, 10, 170); // val1 -ийг 10 -аас 170 хүртэл зурж, val1 roll1.write (val1) руу хуваарилах; // val1 roll2.write (val1) -ээр тодорхойлогдсон позитон руу servo roll1 бичих. // val1 тодорхойлсон позитон руу servo roll2 бичих

val2 = analogRead (pot2); // pot2 унших (аналог 2 -р зүү) ба хэрэв утгыг val2 гэж хадгалвал (val2> = 485 && val2 <= 540) {// "Joystick" (потенциометр) нь elev1.write (90) төвтэй эсэхийг шалгаж байна. // Servo elev1 -ийг төвийн байрлал руу бичих2. Бичих (90); // Servo elev2 -ийг төв байрлалд бичих} өөр {// "Joystick" төвгүй бол яах вэ val3 = map (val2, 0, 1023, 10, 170); // val2 -ийг 10 -аас 170 хүртэл зурж, val3 -д шилжүүлэх val4 = газрын зураг (val2, 0, 1023, 170, 10); // val2 -ийг 170 -аас 10 хүртэл зурж, val4 -д хуваарилах elev1.write (val3); // val3 elev2 тодорхойлсон позитон руу servo elev1 бичих. Бичих (val4); // val4 тодорхойлсон позитон руу servo elev2 бичих

val5 = analogRead (pot3); // Унших pot3 (аналог 4 -р зүү) ба val5 гэж хадгалсан тохиолдолд val5 гэж хадгална уу (val5> = 485 && val5 <= 540) {// "Joystick" (потенциометр) yaw1.write (90) төвтэй эсэхийг шалгаж байна. // Seraw yaw1 -ийг төв байр руу бичих yaw2.write (90); // Servo yaw2 -ийг төв байрлалд бичих} өөр {// "Joystick" төвд ороогүй бол яах вэ val6 = map (val5, 0, 1023, 10, 170); // val5 -ийг 10 -аас 170 хүртэл зурж, val6 -д хуваарилах val7 = газрын зураг (val5, 0, 1023, 170, 10); // val5 -ийг 10 -аас 170 хүртэл зурж, val7 -д хуваарилах yaw1.write (val6); // val6 yaw2.write (val7) -ээр тодорхойлогдсон позитонд yaw1 servo бичих. // val7 тодорхойлсон позитонд yaw2 servo бичих

val8 = analogRead (pot4); // Pot4 унших (5 -р аналог зүү) ба хэрэв val8> 470 && val8 80 && val8 <80) байвал val8 болгон хадгална уу || 80); саатал (1000); // 1000 миллисекунд хүлээж байна} esc.write (val8); // Val8 mspeed = val8 тодорхойлсон хурд руу servo esc бичих. // Харьцуулахын тулд одоогийн хурдыг хадгалах}} Serial.print ("тохируулагч"); // Serial.println (val8) "Throttle" гэсэн үгийг харуулахын тулд Serial Print ашиглан; // Serial.print ("өнхрөх") тохируулагчийн утгыг харуулахын тулд Serial Print -ийг ашиглах; // "Roll" Serial.println (val1) гэсэн үгийг харуулахын тулд Serial Print ашиглан; // Цуваа хэвлэхийг ашиглан өнхрүүлгийг Serial.print ("давирхай") болгож тохируулсан утгыг харуулах; // Serial.println (val3) "Pitch" гэсэн үгийг харуулахын тулд Serial Print ашиглан; // Serial Print ашиглан pitch1 -ийг Serial.println (val4) болгож тохируулсан утгыг харуулна. // pitch2 -ийг Serial.print ("yaw") болгож тохируулсан утгыг харуулахын тулд Serial Print -ийг ашиглах; // "Yaw" Serial.println (val6) гэсэн үгийг харуулахын тулд Serial Print ашиглан; // Serial Print ашиглан yaw1 -ийг Serial.println (val7) болгож тохируулсан утгыг харуулна. // yaw2 -ийг тохируулсан утгыг харуулахын тулд Serial Print -ийг ашиглана уу}

Алхам 3: Цахилгаан хэлхээ

Усанд шумбагч онгоцны тойрог замын зургийг хавсаргав.

Би Arduino -д утсаа хялбарчлах зориулалттай бамбай хийсэн. Би Eagle Schematic & Board файлуудыг бамбайнд байршуулсан. Би самбарыг тээрэмдэхийн тулд LPKF S63 ашигласан. Хяналтын өнхрөх урд талын servos Arduino -д залгагдах болно

хянагчийн доторх хэлхээний зургийг хавсаргав.

Алхам 4: 3D хэвлэсэн эд анги

Би эдгээр бүх файлыг Monoprice Maker Select Plus дээрээ хэвлэсэн. Би Esun ABS 1.75mm судалтай утас ашигласан. Миний хэвлэх тохиргоо нь хэвлэх орны температур 105 градус, экструдерийн температур 255 градус байв. Хэсэг тус бүрээс зөвхөн 1 ширхэг хэрэгтэй бөгөөд зөвхөн урд далавчны 6 хувь хэрэгтэй болно. Эдгээр хэсгүүдийг ханын зузаан нь 1000 мм байхаар хэвлэсэн болохыг анхаарна уу. Энэ нь эд ангиудыг 100% дүүргэгчээр хэвлэхийн тулд сөрөг хөвөх чадвартай байхаар хийгдсэн юм.

Алхам 5: Чуулган

********************************* ТУН УДАХГҮЙ *************** *******************

Зөвлөмж болгож буй: