Mundarija:

Arduino 2-in-1 model poezd boshqaruvchisi: 4 qadam
Arduino 2-in-1 model poezd boshqaruvchisi: 4 qadam

Video: Arduino 2-in-1 model poezd boshqaruvchisi: 4 qadam

Video: Arduino 2-in-1 model poezd boshqaruvchisi: 4 qadam
Video: ТЙФИБ 6 маъруза 4 сем 2024, Noyabr
Anonim
Arduino 2-in-1 model poezd boshqaruvchisi
Arduino 2-in-1 model poezd boshqaruvchisi

Qirq yil oldin men bir nechta do'stlar uchun op-ampli poezdli gaz kelebeği dizaynini yaratdim, keyin esa taxminan to'rt yil oldin uni PIC mikrokontroller yordamida qayta yaratdim. Bu Arduino loyihasi PIC versiyasini qayta yaratadi, lekin gaz kelebeği, tormoz va yo'nalishni boshqarish uchun qo'lda kalitlar o'rniga Bluetooth ulanishidan foydalanish imkoniyatini qo'shadi. Bu erda men taqdim etadigan dizayn 12 voltli temir yo'l dvigateliga mo'ljallangan bo'lsa -da, uni boshqa shahar motorini boshqarishning boshqa dasturlari uchun osongina o'zgartirish mumkin.

1 -qadam: Puls kengligi modulyatsiyasi (PWM)

Puls kengligi modulyatsiyasi (PWM)
Puls kengligi modulyatsiyasi (PWM)

PWM bilan tanish bo'lmaganlar uchun bu ko'rinadigan darajada qo'rqinchli emas. Dvigatelni boshqarishning oddiy qo'llanmasi uchun biz shuni anglatadiki, biz bir necha chastotali kvadrat to'lqinni yaratamiz, keyin esa ish aylanishini o'zgartiramiz. Ish tsikli to'lqin shakli davriga nisbatan chiqishning mantiqiy yuqori bo'lgan vaqtga nisbati sifatida aniqlanadi. Buni yuqori to'lqin shakli 10% ish tsiklida, o'rta to'lqin shakli 50% ish aylanishida va pastki to'lqin shakli 90% ish tsikli bilan yuqoridagi diagrammada aniq ko'rish mumkin. Har bir to'lqin shaklidagi chiziqli chiziq dvigatel tomonidan ko'riladigan ekvivalent shahar kuchlanishini ko'rsatadi. Arduino PWM -ga ega ekanligini hisobga olsak, bu turdagi shahar motorini boshqarish juda oson. PWM -ni ishlatishning yana bir afzalligi shundaki, bu dvigatelni to'g'ridan -to'g'ri shaharni ishlatganda sodir bo'lishi mumkin bo'lgan ishlamay qolishdan saqlaydi. PWMning bir kamchiligi shundaki, ba'zida dvigateldan PWM chastotasida eshitiladigan shovqin bo'ladi.

2 -qadam: Uskuna

Uskuna
Uskuna
Uskuna
Uskuna
Uskuna
Uskuna

Birinchi rasmda kalitlar va LM298 dvigatel drayveri moduli uchun Arduino ulanishlari ko'rsatilgan. Arduino-da zaif tortishish qarshiliklari mavjud, shuning uchun kalitlarga tortish rezistorlari kerak emas. Yo'nalish tugmasi - bu oddiy SPST (bitta qutbli bitta otish) kaliti. Gaz va tormoz kalitlari odatda ochiq, bir lahzali aloqa tugmachalari sifatida ko'rsatiladi.

Ikkinchi rasmda Bluetooth moduli va LM298 dvigatel drayveri moduli uchun Arduino ulanishlari ko'rsatilgan. Bluetooth TXD chiqishi to'g'ridan -to'g'ri Arduino RX ketma -ket kirishiga ulanadi.

Uchinchi rasm-L298N ikkita H-ko'prikli modul. LM298 modulida 5 voltli regulyator o'rnatilgan, uni o'tish moslamasi yoqishi mumkin. Bizga Arduino va Bluetooth uchun +5 volt kerak, lekin biz +12 voltli dvigatelni boshqarishni xohlaymiz. Bu holda biz +12 voltni L298N ning " +12V quvvat" kirishiga qo'llaymiz va biz "5V yoqish" o'tish joyini qoldiramiz. Bu 5 voltli regulyatorga moduldagi "+5 quvvat" ulanishiga chiqish imkonini beradi. Buni Arduino va Bluetooth -ga ulang. +12 kirish va +5 chiqish uchun topraklama simlarini "quvvat GND" moduliga ulashni unutmang.

Biz dvigatelning chiqish voltaji Arduino tomonidan ishlab chiqarilgan PWM asosida o'zgarib turishini xohlaymiz, faqat to'liq yoki to'liq emas. Buning uchun biz "ENA" va "ENB" dan o'tish moslamalarini olib tashlaymiz va Arduino PWM chiqishini moduldagi "ENA" ga ulaymiz. Shuni yodda tutingki, haqiqiy yoqish pimi taxtaning chetiga eng yaqin ("kirish" pinlari yonida). Har bir yoqish uchun orqa pin +5 volt, shuning uchun biz unga ulanmaganligimizga ishonch hosil qilishni xohlaymiz.

Moduldagi "IN1" va "IN2" pinlari tegishli Arduino pinlariga ulangan. Bu pinlar dvigatel yo'nalishini boshqaradi va ha, Arduino modulga kalitni ulash o'rniga ularni boshqarishga ruxsat berish uchun yaxshi sabab bor. Buning sababini dasturiy ta'minot muhokamasida ko'ramiz.

3 -qadam: Bluetooth moduli

Bluetooth moduli
Bluetooth moduli

Bu erda ko'rsatilgan rasm mavjud Bluetooth modullariga xosdir. Sotib olayotganda, siz "HC-05" va "HC-06" so'zlarini qidirishingiz mumkin. Ularning orasidagi farq dasturiy ta'minotda va odatda bortdagi pinlar sonida. Yuqoridagi rasm HC-06 modulidan iborat bo'lib, soddalashtirilgan dasturiy ta'minot bilan ta'minlangan bo'lib, u faqat juda oddiy konfiguratsiyaga imkon beradi. Bundan tashqari, u faqat "qul" Bluetooth qurilmasi sifatida o'rnatiladi. Oddiy qilib aytganda, u faqat "Master" qurilmasining buyruqlariga javob bera oladi va o'z -o'zidan buyruq bera olmaydi. HC-05 moduli ko'proq konfiguratsiya imkoniyatlariga ega va ularni "usta" yoki "qul" qurilmasi sifatida sozlash mumkin. HC-05 odatda HC-06 uchun yuqorida ko'rsatilgan to'rtta o'rniga oltita pinli bo'ladi. Shtat PIN -kodi unchalik muhim emas, lekin har qanday konfiguratsiyani xohlasangiz, kalit pin (ba'zan "EN" kabi boshqa nomlar bilan ataladi) talab qilinadi. Umuman olganda, modullar hech qanday konfiguratsiyaga muhtoj emas, agar siz standart uzatish tezligi 9600 ga to'g'ri kelsangiz va modulga aniq nom berishni xohlamasangiz. Menda ulardan foydalanadigan bir nechta loyihalarim bor, shuning uchun ularni shunga mos ravishda nomlashni yaxshi ko'raman.

Bluetooth modullarini sozlash uchun siz RS-232 ketma-ket portiga yoki USB portiga interfeys sotib olishingiz yoki qurishingiz kerak. Men bu maqolada qanday qilib uni qurish haqida gaplashmayman, lekin siz Internetda ma'lumot topishingiz kerak. Yoki shunchaki interfeys sotib oling. Konfiguratsiya buyruqlari AT -buyruqlarini telefon modemlari bilan ilgari ishlatilgan kabi ishlatadi. Men bu erda har bir modul turi uchun AT buyruqlarini o'z ichiga olgan foydalanuvchi qo'llanmasini biriktirdim. Shuni ta'kidlash kerakki, HC-06 UPPERCASE buyruqlarini talab qiladi va buyruq qatori 1 soniya ichida bajarilishi kerak. Bu shuni anglatadiki, uzatish tezligini o'zgartirish kabi ba'zi uzunroq satrlarni terminal dasturingizga kesib yoki joylashtirishingiz yoki yuborish uchun matnli fayllarni sozlashingiz kerak bo'ladi. UPPERCASE talabi faqat konfiguratsiya buyruqlarini yuborishga urinayotganingizda bo'ladi. Oddiy aloqa rejimi har qanday 8 bitli ma'lumotlarni qabul qilishi mumkin.

4 -qadam: dasturiy ta'minot

Dastur qo'lda ham, Bluetooth versiyasida ham juda oddiy. Bluetooth versiyasini tanlash uchun "#define BT_Ctrl" so'zini qoldiring.

Men PIC kodini yozganimda, PWM chastotasini sinab ko'rdim va nihoyat 500 Gts chastotaga joylashdim. Agar chastota juda yuqori bo'lsa, LM298N moduli pulslarga etarlicha tez ta'sir qila olmasligini aniqladim. Bu shuni anglatadiki, kuchlanish chiqishi chiziqli emas va katta sakrashlarga olib kelishi mumkin edi. Arduino -da PWM buyruqlari o'rnatilgan, lekin ular sizga faqat chastotani emas, balki ish aylanishini o'zgartirishga imkon beradi. Yaxshiyamki, chastota taxminan 490-Gts, shuning uchun men PICda ishlatilgan 500-Gts ga etarlicha yaqin.

Poyezdlar gaz o'tkazgichlarining "xususiyatlaridan" biri - bu haqiqiy poezd qanday ishlashini simulyatsiya qilish uchun tezlashuv va tormozlanish uchun momentum hissi. Buni amalga oshirish uchun dasturiy ta'minotning qo'lda versiyasi uchun oddiy kechikish kiritiladi. Ko'rsatilgan qiymat bilan 0 dan 12 voltgacha yoki 12 voltdan nolga qaytish uchun taxminan 13 soniya kerak bo'ladi. Kechiktirishni uzoqroq yoki qisqaroq vaqtga o'zgartirish mumkin. Yurish yo'nalishi tugmachasi o'zgartirilganda, impuls kuchga kirmaydi. Himoya maqsadida, PWM ish aylanishi, bu kalit o'zgartirilganda, darhol 0% ga o'rnatiladi. Bu, aslida, yo'nalish tugmachasini favqulodda tormoz sifatida ikki baravar oshiradi.

Yo'nalish tugmachasini zudlik bilan ishlatilishini ta'minlash uchun men uning kodini uzilish ishlovchisiga qo'ydim. Bu, shuningdek, "o'zgarishni to'xtatish" funktsiyasidan foydalanishga imkon beradi, shuning uchun o'zgarish pastdan yuqoriga yoki balanddan pastgacha bo'lishi muhim emas.

Dasturning Bluetooth versiyasi oldinga, teskari, tormoz va gazni boshqarish funktsiyasini ishga tushirish uchun bitta harfli buyruqlardan foydalanadi. Aslida, qabul qilingan buyruqlar qo'lda kalitlarni almashtiradi, lekin bir xil javob beradi. Men Bluetooth -ni boshqarish uchun ishlatadigan ilova keyingi prototiplar tomonidan "Bluetooth ketma -ket boshqaruvchisi" deb nomlanadi. Bu sizga virtual klaviaturani sozlash va har bir tugma uchun o'z buyruq satrlari va nomlarini o'rnatish imkonini beradi. Bu sizga takrorlanish tezligini o'rnatishga imkon beradi, shuning uchun men 14 soniya tezlikni berish uchun tormoz va gaz tugmachalarini 50ms ga o'rnatdim. Oldinga va orqaga tugmalari uchun takrorlash funksiyasini o'chirib qo'ydim.

Mana bu post uchun. Boshqa ko'rsatmalarni ko'rib chiqing. Agar siz PIC mikrokontroller loyihalariga qiziqsangiz, mening veb -saytimni www.boomerrules.wordpress.com saytida tekshiring

Tavsiya: