Мазмуну:
- 1 -кадам: материалдар
- 2 -кадам: Программалоо
- 3 -кадам: Circuitry
- 4 -кадам: 3D басылган бөлүктөр
- 5 -кадам: Ассамблея
Video: Сууга чөгүүчү унаа: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
**************** БУЛ КӨРСӨТҮЛГӨН ДАГЫ ИШТЕГИ ИШ
Бул Нускамалык Түштүк Флорида Университетиндеги Маккурстун долбоорунун талабын аткаруу үчүн түзүлгөн (www.makecourse.com).
Бул көрсөтмө Түштүк Флорида университетинин Макекурс классы үчүн мен иштеп чыккан жана чөгүп бара жаткан унаанын түзүлүшү жөнүндө кыскача маалымат болот. Бул Нускамада мен эсеп -кысап материалдарын, мен колдонгон Arduino Uno үчүн башкаруучу кодду жана суу астын кантип чогултуу керектигин берем.
1 -кадам: материалдар
Мында колдонулган электроника:
1x Arduino Uno
1x mobius экшн камерасы
A/V кабелине 1x mobius аракет камерасы usb-b
1x талаа көрүнүшү 777 дисплей экраны
1x turnigy marine 50A ESC (электрондук ылдамдыкты көзөмөлдөө)
1x turnigy деңиз программалоо картасы
1x T-Motor Navigator 400kv
1x YEP 20A BEC (батареяны жок кылуу схемасы)
6x хобби падышасы HK15139 суу өткөрбөөчү серво
2x параллелдүү T-туташтыргычы ж
2x 18 дюймдук servo узартуу зымдары
6x 6 дюймдук servo узартуу зымдары
2x 1300mah 3s Lipo батареялары
2x 2500mah 4s Lipo батареялары
5x жана 12v туруктуу чыгуулары бар 1x электр бөлүштүрүү тактасы
Мында курулуш материалдары:
1х 3/16 дюйм фанера барагы
1x 6 дюймдук ID ABS жеткирүү түтүгү
1х силикон түтүк
1x банка ийкемдүү мөөр
ABS 3D принтеринин 4x катушкалары
1х 24 дюймдук суурма слайд
Жылуулукту кыскартуучу түтүк
1x 10 фут скотч бренди duraloc velcro
1x JB Weld пластикалык эпокси
1х 6,2 дюймдук диаметри акрил коопсуздук камерасынын куполу
2x IP68 ethernet өтмөктөрү
2x 24 дюймдук cat6 ethernet кабели
1x 200 фут cat6 ethernet кабели
Колдонулган аппараттык жабдыктар:
24x 1/2 дюйм жез жыгач бурамалары
24x ------ бурамалар (servo менен кошо)
Колдонулган куралдар:
Филипптин жана жалпак баштын бурагычтары
Аллен ачкыч топтому
Кандооч
Жылуулук курал
3D принтери (мен Monoprice Maker Select Plus колдондум)
2 -кадам: Программалоо
Төмөндө суу астын көзөмөлдөө үчүн жаратылган код. Мен дагы.ino файлын жүктөп алам деп тиркелдим.
Бул код Arduino Uno үчүн Arduino компиляторун колдонуу менен түзүлгөн.
/**********************************************************************************************************************************************************************
Автор: Жунус Пауэрс Дата: 11/9/2018 Максаты: Алыстан башкарылуучу суу астында жүрүүчү транспорт каражатынын көзөмөл коду ****************************** ************************************************ ************************************************ **********************************/#include // Анын ичинде Servo Library Servo roll1; // роллду servo түрмөк деп жарыялоо2; // ролл2ди servo servvo elev1 деп жарыялоо; // elev1ти servo elev2 деп жарыялоо; // elev2ди servo servo деп жарыялоо yaw1; // yaw1ди servo yaw2 деп жарыялоо; // yaw2ди servo esc деп жарыялоо 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 өзгөрмөсүн бүтүн сан intitializing int val4; // val4 өзгөрмөсүн бүтүн сан intitializing int val5; // val5 өзгөрмөсүн Int val6 бүтүн сан катары баштоо; // val6 өзгөрмөсүн Int val7 бүтүн сан катары баштоо; // val7 өзгөрмөсүн Int val8 бүтүн сан катары баштоо; // val8 өзгөрмөсүн Int mspeed бүтүн сан катары баштоо; // mspeed өзгөрмөсүн бүтүн сан катары баштоо
void setup () {// Arduino инициализация этапы Serial.begin (9600); // Serial moniter 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) тиркөө; // yaw2 servo цифралык пинге 9 тиркөө esc.attach (11); // Servo escти цифралык пин 11ге тиркөө roll1.write (90); // Серво түрмөгүн1 анын борборлоштурулган абалына жазуу2.write (90); // Серво түрмөктүн2 анын борборлоштурулган абалына жазуу elev1.write (90); // Серво көтөрүү1 анын борбордук абалына жазуу elev2.write (90); // servo elev2ди борборлоштурулган абалына жазуу yaw1.write (90); // Сервис yaw1ди анын борборлоштурулган абалына жазуу yaw2.write (90); // Servo yaw2 борборлоштурулган абалына жазуу esc.write (180); // Серво esc жазуу, анын борборлоштурулган абалына кечигүү (2500); // 2 секунд esc.write күтүлүүдө (90); кечигүү (5000); }
void loop () {// Негизги код чексиз болсо, анда (analogRead (pot1) <1 && analogRead (pot2) <1 && analogRead (pot3) <1 && analogRead (pot4) = 485 && val1 <= 540) {// "Джойстиктин" (потенциометрдин) борборлошконун текшерүү roll1.write (90); // Серво түрмөгүн жазуу1 борбордук позицияга roll2.write (90); // Серво ролл2 жазуу борбордук позицияга} else {// "Джойстик" борборлошпосо эмне кылуу керек val1 = карта (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 катары маанини сактоо // Серво көтөрүү1 борбордук позицияга жазуу elev2.write (90); // servo elev2 борбордук позицияга жазуу} else {// "Джойстик" борборлошпосо эмне кылуу керек val3 = карта (val2, 0, 1023, 10, 170); // 10дон 170ке чейин val2 картага түшүрүү жана val3 val4 = картага дайындоо (val2, 0, 1023, 170, 10); // 170тен 10го чейин val2 картага түшүрүү жана val4 көтөрүү1.write (val3); // val2 elev2.write (val4) менен аныкталган позитонго servo elev1 жазуу; // val4 тарабынан аныкталган позитонго servo elev2 жазуу}
val5 = analogRead (pot3); // Окуу pot3 (аналогдук пин 4) жана val5 катары маанини сактоо (val5> = 485 && val5 <= 540) {// "Джойстиктин" (потенциометрдин) yaw1.write (90) борборунда экендигин текшерүү; // yaw1 борбордук абалына yaw1 жазуу yaw2.write (90); // Сервис yaw2 борбордук позицияга жазуу} else {// "Джойстик" борборлошпосо эмне кылуу керек val6 = карта (val5, 0, 1023, 10, 170); // Val5ти 10дон 170ке чейин картага алуу жана val6 val7 = 7ге дайындоо (карта (val5, 0, 1023, 170, 10); // 10дан 170ке чейин val5 картасын түзүү жана val7 yaw1.write (val6) дайындоо; // Жазуу servo yaw1 val6 yaw2.write (val7) менен аныкталган позитонго. // val7 тарабынан аныкталган позитонго yaw2 servo жазуу}
val8 = analogRead (pot4); // Окуу казаны4 (аналогдук пин 5) жана val8 катары маанини сактоо 80) кечигүү (1000); // 1000 миллисекунд күтүүдө} esc.write (val8); // val8 mspeed = val8 тарабынан аныкталган ылдамдыкка servo esc жазуу; // Салыштыруу үчүн учурдагы ылдамдыкты сактоо}} Serial.print ("дроссель"); // "Throttle" сөзүн көрсөтүү үчүн Serial Printти колдонуу Serial.println (val8); // Serial Printти колдонуу, дроссель Serial.print ("түрмөк") деп коюлганын көрсөтүү үчүн; // "Roll" сөзүн көрсөтүү үчүн Serial Printти колдонуу Serial.println (val1); // Serial Printти колдонуу, роллдун Serial.print ("кадам") коюлганын көрсөтүү үчүн; // "Pitch" сөзүн көрсөтүү үчүн Serial Printти колдонуу Serial.println (val3); // Serial Printти колдонуу pitch1дин Serial.println (val4) деп коюлган маанисин көрсөтүү үчүн; // Serial Printти колдонуу pitch2дин Serial.print ("yaw") деп коюлган маанисин көрсөтүү үчүн; // "Yaw" сөзүн көрсөтүү үчүн Serial Printти колдонуу Serial.println (val6); // Serial Printти колдонуу yaw1дин Serial.println (val7) деп коюлган маанисин көрсөтүү үчүн; // Serial Printти колдонуу yaw2 коюлган маанини көрсөтүү үчүн}
3 -кадам: Circuitry
Сууга чөмүлүүчү аппараттын айланасындагы фото тиркелет.
Мен зымымды жөнөкөйлөтүү үчүн Arduino үчүн атайын калкан жасадым. Мен Eagle Schematic & Board файлдарын калканга жүктөдүм. Мен тактаны тегирмендөө үчүн LPKF S63 колдондум. көзөмөлдөөчү роллдун маңдайындагы серволор Arduinoго туташтырылат
контроллердин ичиндеги схеманын сүрөтү тиркелет.
4 -кадам: 3D басылган бөлүктөр
Мен бул файлдардын бардыгын Monoprice Maker Select Plusке басып чыгардым. Мен Esun ABS 1.75mm жипчесин колдондум. Менин басып чыгаруу жөндөөлөрүм басып чыгаруу температурасы үчүн 105 градус жана экструдердин температурасы үчүн 255 градус С. Ар бир бөлүктөн бирөө гана керек, болгону алдыңкы канаттын 6 нускасы керек болот. Белгилей кетсек, бул бөлүктөр дубалдын калыңдыгы 1000 ммге чейин басылган. Бул бөлүктөр 100% толтуруу менен басып чыгарылышы үчүн жасалды, андыктан алар терс калкып чыгат.
5 -кадам: Ассамблея
********************************* КЕЛЕ ЖАКЫНДА *************** *******************
Сунушталууда:
Биометрикалык унаа кирүүсү - Чыныгы ачкычсыз унаа: 4 кадам
Биометрикалык унаа кирүүсү - Чыныгы ачкычсыз унаа: Бир нече ай мурун кызым менден сурады, эмне үчүн заманбап унаалар уюлдук телефонго ээ болгондо биометрикалык кирүү системасы менен жабдылган эмес. Ошондон бери ушул нерсени ишке ашыруу үстүндө иштеп, акыры менин Т -ге бир нерсени орнотуп, сынап көрдүм
Сууга секирүүчү каска Touch Lamp: 5 кадам
Дайвинг каскасынын тийүү чырагы: Бул көрсөтмөдө сизге Дайвинг каскасы же эквиваленттүү неопикселдүү LED шакеги керек болот (мен 38 LED менен шакек колдондум) Wemos ESP32 такта (же эквиваленти) 3D принтери
Сууга түшүүчү 2017: 95 кадам
Сууга түшүүчү 2017: Сууга түшүүчү 2017
FinduCar: Акылдуу унаа ачкычы Элди унаа токтоп турган жерге жетелейт: 11 кадам (Сүрөттөр менен)
FinduCar: Акылдуу унаа ачкычы Элди унаа токтоп турган жерге жетелейт: Жогорудагы көйгөйлөрдү чечүү үчүн бул долбоор адамдарды машинаны токтоткон жерге багыттоочу акылдуу унаа ачкычын иштеп чыгууну сунуштайт. Ал эми менин планым - GPS ачкычын машинанын ачкычына киргизүү. Смартфондун колдонмосун колдонуунун кажети жок
BTS - 33 - Сууга чөгүүчү: 11 кадам
BTS - 33 - Сууга чөмүлүүчү: Бул инструкция сизге 3 коммутатору менен чумкуучу жасоону үйрөтөт