Mundarija:

Tezlik o'lchagich va chastotali uzatuvchi-qabul qiluvchi jufti yordamida imo-ishorali boshqariladigan Rover: 4 qadam
Tezlik o'lchagich va chastotali uzatuvchi-qabul qiluvchi jufti yordamida imo-ishorali boshqariladigan Rover: 4 qadam

Video: Tezlik o'lchagich va chastotali uzatuvchi-qabul qiluvchi jufti yordamida imo-ishorali boshqariladigan Rover: 4 qadam

Video: Tezlik o'lchagich va chastotali uzatuvchi-qabul qiluvchi jufti yordamida imo-ishorali boshqariladigan Rover: 4 qadam
Video: TELEFONINGIZ ORQALI MASHINA VA VELOSIPED TEZLIGINI ANIQLASH SPIDOMETR 2024, Iyul
Anonim
Tezlik o'lchagich va RF uzatuvchi-qabul qiluvchi jufti yordamida imo-ishorali boshqariladigan Rover
Tezlik o'lchagich va RF uzatuvchi-qabul qiluvchi jufti yordamida imo-ishorali boshqariladigan Rover

Salom, Siz hech qachon qo'lda imo-ishoralar bilan boshqariladigan, lekin tasvirni qayta ishlash va mikrokontrolderingiz bilan veb-kamerani bog'lashning murakkab jihatlariga kirishga jur'at topolmaydigan rover qurishni xohlagan edingiz. ko'rish muammolari? Xo'sh, qo'rqmang … chunki chiqishning oson yo'li bor! Mana, men sizga qudratli ACCELEROMETERni taqdim qilyapman! *ba dum tsss*

Akselerometr - bu chiziqli o'q bo'ylab tortishish tezlanishini o'lchaydigan chindan ham ajoyib qurilma. Bu yer va besleme zo'riqishida o'zgarib turadigan kuchlanish darajasini ifodalaydi, uni bizning mikrokontrolerimiz analog qiymat sifatida o'qiydi. Agar biz miyamizni bir oz qo'llasak (ozgina matematika va ba'zi Nyuton fizikasi), biz undan nafaqat o'q bo'ylab chiziqli harakatni o'lchash uchun, balki egilish burchagini aniqlash va tebranishlarni sezish uchun ham foydalanishimiz mumkin. Xafa bo'lmang! Bizga matematika yoki fizika kerak bo'lmaydi; biz faqat akselerometr chiqib ketadigan xom qiymatlar bilan shug'ullanamiz. Aslida, siz ushbu loyiha uchun akselerometrning texnik xususiyatlari haqida ko'p qayg'urmasligingiz kerak. Men faqat bir nechta tafsilotlarga to'xtalib o'taman va faqat siz rasmni tushunishingiz kerak bo'ladigan darajada batafsilroq gapirib beraman. Agar siz uning ichki mexanikasini o'rganmoqchi bo'lsangiz, bu erga qarang.

Siz buni hozircha yodda tutishingiz kerak: akselerometr - bu bizning smartfonlarimizda o'ynaydigan barcha harakat sensori o'yinlariga eshiklarni ochadigan gizmo (ko'pincha giroskop bilan birlashtiriladi); masalan, avtomobil poygasi o'yini, bu erda biz qurilmamizni har ikki tomonga burish orqali boshqaramiz. Va biz akselerometrni (albatta, bir nechta yordamchi) qo'lqopga yopishtirib, bu ta'sirga taqlid qilishimiz mumkin. Biz shunchaki sehrli qo'lqoplarimizni kiyib, qo'llarimizni chapga yoki o'ngga, oldinga yoki orqaga egamiz va roverlarimizning ohangimizga raqs tushayotganini ko'ramiz. Bu erda bizdan talab qilinadigan narsa, akselerometr ko'rsatkichlarini raqamli signallarga tarjima qilishdir, shunda dvigatellar bu signallarni roverga etkazish mexanizmini tushunishi va o'ylab topishi mumkin. Buni amalga oshirish uchun biz yaxshi tajribali Arduino va uning yordamchilarini, 434MGts chastotada ishlaydigan RF uzatuvchi-qabul qiluvchi juftligini chaqiramiz va shu bilan ochiq maydonda taxminan 100-150m oralig'ini hosil qilamiz, bu ham bizni chiziqdan qutqaradi. ko'rish muammolari.

Juda zo'r hack, to'g'rimi? Keling sho'ng'iymiz …

1 -qadam: Materiallaringizni yig'ing

Ta'minotlaringizni yig'ing
Ta'minotlaringizni yig'ing
Ta'minotlaringizni yig'ing
Ta'minotlaringizni yig'ing
Ta'minotlaringizni yig'ing
Ta'minotlaringizni yig'ing
Ta'minotlaringizni yig'ing
Ta'minotlaringizni yig'ing
• Arduino Nano x1
• Akselerometr (ADXL335) x1
• 5V DC vosita + g'ildiraklar har biri x2
• Sigir g'ildiragi* x1
• L293D dvigatel drayveri + 16 pinli IC soket har biri x1
• 434 MGts chastotali RF uzatuvchi x1
• 434 MGts chastotali RF qabul qiluvchisi x1
• HT-12E kodlovchi IC + 18 pinli IC soket har biri x1
• HT-12D dekoder IC + 18 pinli IC soket har biri x1
• LM7805 kuchlanish regulyatori x1
• Tugma tugmasi x2
• Qizil LED + 330O qarshilik har biri x2
• Sariq LED + 330O qarshilik har biri x1
• Yashil LED + 330O qarshilik (ixtiyoriy) har biri x4
• 51kO va 1MO rezistorlar har biri x1
• 10 mF radial kondansatkichlar x2
Batareyalar, batareya ulagichlari, USB kabeli, o'tish simlari, ayol boshlari, 2-pinli vintli terminallar, tenglikni, chasis va sizning odatiy lehim aksessuarlari

Agar siz nega biz sigir g'ildiragidan foydalanayotganimizni bilmoqchi bo'lsangiz, gap shundaki, chastotali uzatuvchi va qabul qiluvchi modullarda atigi 4 ta ma'lumotlar pimi bor, ya'ni biz faqat 2 ta dvigatelni haydashimiz mumkin va shuning uchun sigir g'ildiragidan foydalanishimiz mumkin. tuzilmani qo'llab -quvvatlash. Ammo, agar siz mashinangiz to'rt g'ildirak bilan biroz zo'r ko'rinishini his qilsangiz, xavotir olmang, bu erda ish bor! Bunday holda, ro'yxatdagi sigir g'ildiragini qirib tashlang va har biriga g'ildirak bilan birga 5V doimiy zaryadlovchi dvigatellarini qo'shing va 3 -qadamning oxirigacha muhokama qilingan oddiy buzilishlarga e'tibor bering.

Nihoyat, jasur yurganlar uchun, dizayndagi ozgina o'zgartirish mumkin, bu o'z Arduino muhandisligini o'z ichiga oladi. Keyingi bosqichda bonuslar bo'limiga o'ting va o'zingiz ko'ring. Bundan tashqari, sizga bir nechta qo'shimcha materiallar kerak bo'ladi: ATmega328P, 28 pinli IC soket, 16 MGtsli kristall osilator, ikkita 22pF sopol qopqoq, yana 7805 kuchlanish regulyatori, yana 10 mF radial qopqoq va 10kΩ, 680Ω, 330Ω rezistorlar va ha, minus Arduino!

2 -qadam: Transmitterni ulang

Transmitterni ulang
Transmitterni ulang
Transmitterni ulang
Transmitterni ulang
Transmitterni ulang
Transmitterni ulang
Transmitterni ulang
Transmitterni ulang

Biz loyihani ikkita tarkibiy qismga ajratamiz: uzatuvchi va qabul qiluvchi davrlari. Transmitter akselerometr, Arduino va RF uzatuvchi modulidan iborat bo'lib, ular HT-12E kodlovchi IC bilan biriktirilgan bo'lib, ularning hammasi biriktirilgan sxemaga muvofiq ulangan.

Akselerometr, ilgari kiritilganidek, qo'l harakatlarimizni aniqlashga xizmat qiladi. Biz ehtiyojlarimizni qondirish uchun uch o'qli akselerometrdan (asosan bitta bitta eksa akselerometridan) foydalanamiz. U tezlikni har uch o'lchovda o'lchash uchun ishlatilishi mumkin va siz taxmin qilganingizdek, u bitta o'qni emas, balki uning uchta o'qiga (x, y va z) nisbatan uchta analog qiymatlar to'plamini beradi. Aslida, biz faqat x va y o'qlari bo'ylab tezlashtirishga muhtojmiz, chunki biz roverni faqat to'rt yo'nalishda haydashimiz mumkin: oldinga yoki orqaga (ya'ni y o'qi bo'ylab) va chapga yoki o'ngga (ya'ni x o'qi bo'ylab). Agar biz dron qurayotgan bo'lsak, z o'qi kerak bo'lardi, biz uning ko'tarilishini nazorat qila olamiz yoki imo -ishoralar yordamida tusha olamiz. Qanday bo'lmasin, dvigatellarni boshqarish uchun akselerometrning analog qiymatlari raqamli signallarga aylantirilishi kerak. Bu Arduino tomonidan nazorat qilinadi, u ham signallarni konvertatsiya qilinganida RF uzatuvchi moduli orqali roverga uzatadi.

RF uzatgichida faqat bitta vazifa bor: 3-pinda mavjud bo'lgan "ketma-ket" ma'lumotlarni uzatish 1-gachasi antennadan. Bu 12-bitli parallel ketma-ket ma'lumotlarni kodlovchi HT-12E-ni ishlatishni qo'llab-quvvatlaydi. AD8 va AD11 chiziqlaridagi Arduino -dan 4 bitgacha parallel ma'lumotlar, bu bizga RF transmitteridagi bitta ma'lumot pinidan farqli o'laroq, 24 = 16 xil kirish -chiqish kombinatsiyasiga joy ajratish imkonini beradi. Qolgan 8 bit, kodlovchi ustidagi A0 dan A7 gacha bo'lgan chiziqlardan olingan, baytni tashkil qiladi, bu RF uzatuvchi mos keladigan RF qabul qilgich bilan bog'lanishini osonlashtiradi. Keyin 12 bit birlashtiriladi va ketma-ket yig'iladi va RF uzatgichining piniga uzatiladi, bu esa o'z navbatida ASK ma'lumotlarini 434 MGts chastotali uzatuvchi to'lqinga o'zgartiradi va 1-pinli antenna orqali chiqaradi.

Kontseptual ravishda, 434 MGts chastotada eshitiladigan har qanday RF qabul qiluvchisi bu ma'lumotlarni ushlab turishi, demodulyatsiya qilishi va dekodlanishi mumkin. Biroq, HT-12E va HT-12D hamkasbidagi (12-bitli ketma-ketlikdagi ma'lumotlar dekoderi) manzil satrlari, ma'lumotlarni uzatuvchi qabul qiluvchilarga yagona chastotali uzatuvchi-qabul qiluvchi juftligini ko'rsatishga imkon beradi. mo'ljallangan qabul qiluvchi, shu bilan boshqalar bilan aloqani cheklaydi. Bizdan talab qilinadigan narsa - bu har ikkala jabhada ham manzillar qatorini bir xil sozlash. Misol uchun, biz HT-12E uchun barcha manzil satrlarini o'rnatganimiz uchun, biz qabul qilayotgan joyda HT-12D uchun ham shunday qilishimiz kerak, aks holda rover signallarni qabul qila olmaydi. Shunday qilib, biz har bir qabul qilgichdagi HT-12D-lardagi manzil satrlarini bir xil konfiguratsiya qilib, bitta transmitter sxemasi bilan bir nechta roverlarni boshqarishimiz mumkin. Yoki biz ikkita qo'lqop kiyishimiz mumkin edi, ularning har biri aniq manzil konfiguratsiyasini o'z ichiga olgan transmitter sxemasi bilan o'ralgan bo'lishi mumkin (masalan, bittasi barcha manzil liniyalari erga ulangan, ikkinchisi hammasi baland yoki bitta chiziq topraklangan, qolgan ettitasi ushlab turilgan). baland va ikkinchisi ikkita chiziqli, qolgan oltitasi balandlikda yoki ularning har qanday kombinatsiyasi) va har biri bir xil konfiguratsiyalangan bir nechta roverlarni boshqaradi. Maestroni Android simfoniyasida o'ynang!

Zanjirni yig'ishda e'tiborga olish kerak bo'lgan muhim narsa bu Rosc qiymati. HT-12E 15 va 16-pinlar orasidagi ichki osilator sxemasiga ega, bu pinlar orasiga Rosc deb nomlangan rezistorni ulash orqali yoqiladi. Rosc uchun tanlangan qiymat, aslida, kuchlanish kuchlanishiga qarab o'zgarishi mumkin bo'lgan osilator chastotasini aniqlaydi. Rosc uchun mos qiymatni tanlash HT-12E ishlashi uchun hal qiluvchi ahamiyatga ega! Ideal holda, HT-12E osilatorining chastotasi HT-12D analogidan 1/50 marta ko'p bo'lishi kerak. Shuning uchun, biz 5Vda ishlayotganimiz uchun, biz mos ravishda HT-12E va HT-12D sxemalari uchun 1MΩ va 51kΩ rezistorlarni Rosc sifatida tanladik. Agar siz zanjirlarni boshqa besleme zo'riqishida ishlatishni rejalashtirmoqchi bo'lsangiz, aniq osilator chastotasi va rezistorini aniqlash uchun biriktirilgan HT-12E ma'lumotlar jadvalining 11-sahifasidagi "Osilator chastotasi va besleme zo'riqishida" grafikasiga qarang.

Bundan tashqari, biz akselerometrni, RF transmitterini va Arduino -ni to'g'ridan -to'g'ri PCB ga lehimlash o'rniga, kontaktlarning zanglashiga olib kelish uchun bu erda ayol sarlavhalarini ishlatamiz (IC rozetkalari kabi). Niyat kichik tarkibiy qismlarni qayta ishlatish imkoniyatidir. Aytaylik, siz imo-ishorali boshqariladigan roverni yaratganingizdan ko'p vaqt o'tdi, u kubok javonida yarim chang bilan qoplangan, siz akselerometrning samaradorligini ta'minlaydigan boshqa buyuk ko'rsatmaga duch keldingiz. Xo'sh, nima qilasiz? Siz uni roverdan chiqarib, yangi sxemangizga bosasiz. Sizga yangisini olish uchun "Amazonlar" ni chaqirishga hojat yo'q:-p

Bonus: Arduino -ni yo'q qiling, lekin baribir

Agar siz o'zingizni biroz sarguzashtli his qilayotgan bo'lsangiz va ayniqsa, agar biz o'ylab ko'rsak, bu ajoyib dizaynni (albatta, Arduino) bizniki kabi arzimas vazifaga sarflash ortiqcha ish bo'lsa, men bilan biroz ko'proq sabr qiling.; va bo'lmasa, keyingi bosqichga o'tishdan o'zingizni erkin his qiling.

Bizning bu erdagi maqsadimiz - Arduinoni (aslida Arduino miyasi; ha, men ATmega IC haqida gapirayapman!) Jamoaning doimiy a'zosiga aylantirish. ATmega faqat bitta eskizni qayta-qayta ishga tushirish uchun dasturlashtirilgan bo'lardi, shunda u xuddi HT-12E kabi oddiy IC kabi, zanjirning abadiy qismi bo'lib xizmat qilishi mumkin edi, u erda o'tirib, nima qilsa bo'ladi. Haqiqiy o'rnatilgan tizim shunday bo'lishi kerak emasmi?

Qanday bo'lmasin, ushbu yangilanishni davom ettirish uchun, sxemani biriktirilgan ikkinchi sxemaga muvofiq o'zgartiring. Bu erda biz faqat Arduino uchun ayol sarlavhalarni ATmega uchun IC rozetkasi bilan almashtiramiz, ICning tiklash piniga (1-pin) 10K tortish qarshiligini qo'shamiz va 9 va 10-pinlar orasidagi tashqi soat bilan pompalaymiz. Afsuski, agar biz Arduino-ni yo'q qilsak, uning o'rnatilgan voltaj regulyatorlarini ham qo'yib yuboramiz; Shunday qilib, biz bu erda qabul qilgich uchun ishlatgan LM7805 sxemasini takrorlashimiz kerak. Bundan tashqari, biz akselerometrni ishga tushirish uchun zarur bo'lgan 3,3V ni chizish uchun kuchlanish taqsimlagichidan ham foydalanamiz.

Endi bu erda ATmega -ni o'z ishini bajarish uchun dasturlash. Siz buni 4 -bosqichgacha kutishingiz kerak bo'ladi. Shunday ekan, bizni kuzatishda davom eting …

3 -qadam: Qabul qilgich

Va, qabul qiluvchi
Va, qabul qiluvchi
Va, qabul qiluvchi
Va, qabul qiluvchi
Va, qabul qiluvchi
Va, qabul qiluvchi
Va, qabul qiluvchi
Va, qabul qiluvchi

Qabul qilgich HT-12D dekoder IC bilan birlashtirilgan RF qabul qilish moduli va L293D dvigatelining yordami bilan ishlaydigan bir juft shahar motoridan iborat bo'lib, ularning hammasi ilova qilingan sxemaga muvofiq ulangan.

RF qabul qiluvchining yagona vazifasi-tashuvchi to'lqinni demodulyatsiya qilish (1-pinli uning antennasi orqali qabul qilingan) va 7-pinda "ketma-ket" ma'lumotni HT-12D tomonidan deserializatsiya uchun olingan joydan ko'rsatish. Endi, HT-12D manzil satrlari (A0 dan A7 gacha) HT-12E hamkasbi bilan bir xil konfiguratsiya qilingan deb faraz qilinsa, 4 parallel ma'lumotlar bitlari ma'lumotlar uzatish liniyalari (D8 dan D11 gacha) orqali uzatiladi. HT-12D, dvigatel haydovchisiga, bu esa o'z navbatida dvigatellarni boshqarish uchun bu signallarni izohlaydi.

Shunga qaramay, Rosc qiymatiga e'tibor bering. HT-12D, shuningdek, 15 va 16-pinlar orasidagi ichki osilator sxemasiga ega, bu pinlar orasiga Rosc deb nomlangan rezistorni ulash orqali yoqiladi. Rosc uchun tanlangan qiymat, osilator chastotasini aniqlaydi, bu besleme zo'riqishiga qarab o'zgarishi mumkin. Rosc uchun mos qiymatni tanlash HT-12D ishlashi uchun juda muhim! Ideal holda, HT-12D osilatorining chastotasi HT-12E analogidan 50 baravar ko'p bo'lishi kerak. Shuning uchun, biz 5Vda ishlayotganimiz uchun, biz mos ravishda HT-12E va HT-12D sxemalari uchun Rosc sifatida 1MΩ va 51kΩ rezistorlarni tanladik. Agar siz zanjirlarni boshqa besleme zo'riqishida ishlatishni rejalashtirmoqchi bo'lsangiz, aniq osilator chastotasi va rezistorini aniqlash uchun biriktirilgan HT-12D ma'lumotlar jadvalining 5-betidagi "Osilator chastotasi va besleme zo'riqishida" grafikasiga qarang.

Bundan tashqari, RF qabul qilgichining ayol sarlavhalarini unutmang.

Ixtiyoriy ravishda, LEDni 330Ω oqim cheklovli rezistor orqali HT-12D-ning 4 ta ma'lumot piniga ulanishi mumkin, bu esa pinni qabul qilingan bitni aniqlashga yordam beradi. Qabul qilingan bit YUQORI (1) bo'lsa, LED yonadi va qabul qilingan bit LOW (0) bo'lsa, o'chadi. Shu bilan bir qatorda, bitta LEDni HT-12D VT piniga ulash mumkin (yana 330Ω oqim cheklovli rezistor orqali), u uzatish to'g'ri bo'lganda yonadi.

Endi, agar siz birinchi bosqichda men aytgan dvigatellar bilan hackni qidirsangiz, bu juda oson! Ikkinchi sxemada ko'rsatilganidek, har bir to'plamdagi ikkita dvigatelni parallel ulang. Bu kerak bo'lganidek ishlaydi, chunki har bir to'plamdagi dvigatellar (chapda old va orqa motorlar, o'ngda old va orqa motorlar) hech qachon qarama -qarshi yo'nalishda harakatlanmaydi. Ya'ni, roverni o'ngga burish uchun chapdagi old va orqa dvigatellarni oldinga, o'ngdagi old va orqa motorlarni esa orqaga haydash kerak. Xuddi shunday, roverni chapga burish uchun chap va old dvigatellarni ham orqaga, ham o'ngdagi old va orqa motorlarni oldinga haydash kerak. Shunday qilib, har ikkala dvigatelni bir xil kuchlanishli juftlikda yig'ish xavfsiz. Va bu yo'l - bu motorlarni parallel ravishda ulash.

4 -qadam: Kodeksga o'ting

Kodeksga o'tish
Kodeksga o'tish

Roverni ishga tushirish uchun faqat bitta narsa qoldi. Ha, siz to'g'ri taxmin qildingiz! (Umid qilamanki, siz shunday qildingiz) Biz hali ham akselerometr ko'rsatkichlarini motor haydovchisi dvigatellarni boshqarish uchun talqin qiladigan shaklga tarjima qilishimiz kerak. Agar siz akselerometr ko'rsatkichlari analog va dvigatel haydovchisi raqamli signallarni kutayotgan bo'lsa, biz qandaydir ADCni texnik jihatdan emas, balki amalga oshirishimiz kerak, deb o'ylasangiz. Va bu juda sodda.

Biz bilamizki, akselerometr chiziqli o'q bo'ylab tortishish tezlanishini o'lchaydi va bu tezlanish er bilan besleme zo'riqishida o'zgarib turadigan kuchlanish darajasi sifatida ifodalanadi, uni bizning mikrokontrolerimiz 0 dan 1023 gacha o'zgaruvchan analog qiymat sifatida o'qiydi. Akselerometrni 3,3 V da ishlayotganingizda, 10-bitli ADC (Arduino bortidagi ATmeaga-ga o'rnatilgan) uchun analog ma'lumotnomani 3,3 V ga o'rnatganimiz ma'qul. Bu shunchaki narsalarni tushunishni osonlashtiradi; garchi, biz qilmagan bo'lsak ham, bizning kichik tajribamiz uchun bu juda muhim emas (biz kodni biroz o'zgartirishga to'g'ri keladi). Ammo buning uchun biz Arduino -dagi AREF pinini (ATmega -dagi 21 -pin) 3.3V ga ulab, analog o'zgaruvchiga (EXTERNAL) qo'ng'iroq qilib kodning o'zgarishini bildiramiz.

Endi, biz akselerometrni tekis va analog qilib qo'yganimizda, tezlikni x va y o'qlari bo'ylab o'qing (esda tuting, bizga faqat bu ikkita o'q kerak), biz taxminan 511 qiymatini olamiz (ya'ni, 0 dan 1023 gacha bo'lgan yarim yo'l), bu shunchaki bu o'qlar bo'ylab 0 tezlashtirish borligini aytish usuli. Haqiqatning tafsilotlarini o'rganishdan ko'ra, buni grafikdagi x va y o'qlari sifatida tasavvur qiling, 511 qiymati kelib chiqishi va 0 va 1023 rasmda tasvirlangan oxirgi nuqtalarini bildiradi; akselerometrni uning pimlari pastga qaragan va sizga yaqinroq ushlab turadigan qilib yo'naltiring, aks holda siz o'qlarni teskari burishingiz/almashtirishingiz mumkin. Bu shuni anglatadiki, agar biz akselerometrni o'ngga egsak, biz x o'qi bo'ylab 511 dan katta qiymatni o'qishimiz kerak, va agar akselerometrni chapga egsak, x o'qi bo'ylab 511dan pastroq qiymatni olishimiz kerak.. Xuddi shunday, agar biz akselerometrni oldinga egsak, y o'qi bo'ylab 511 dan katta qiymatni o'qishimiz kerak, va akselerometrni orqaga egsak, y o'qi bo'ylab 511dan past bo'lgan qiymatni o'qish kerak. Shunday qilib, biz kodda rover qanday yo'nalishda harakatlanishi kerakligini aniqlay olamiz. Lekin bu shuni anglatadiki, biz har ikki o'qda ham 511 ni o'qish uchun akselerometrni tekis yuzaga parallel ravishda tekislab turishimiz kerak. roverni to'xtab turish uchun. Bu vazifani biroz yengillashtirish uchun biz rasmda ko'rsatilgandek, chegarani tashkil etuvchi chegaralarni belgilaymiz, shunda rover x va y ko'rsatkichlari chegaralar ichida turguncha harakatsiz qoladi va biz aniq bilamizki, rover o'rnatilgan bo'lishi kerak. chegara oshib ketganda harakat.

Masalan, agar y o'qi 543 ni o'qisa, biz bilamizki, akselerometr oldinga egilgan, biz aylanani oldinga yo'naltirishimiz kerak. Biz buni D2 va D4 HIGH va D3 va D5 LOW pinlarini o'rnatish orqali qilamiz. Endi, bu pinlar to'g'ridan-to'g'ri HT-12E ga ulanganligi sababli, signallar ketma-ketlikda uzatiladi va chastotali uzatgichni o'chiriladi, faqat Roverda o'tirgan RF qabul qiluvchisi tomonidan ushlanadi, HT-12D yordamida signallarni o'chiradi va ularni L293D ga uzatadi, bu esa o'z navbatida bu signallarni izohlaydi va motorlarni oldinga siljitadi

Siz sezgirlikni sozlash uchun bu chegaralarni o'zgartirishni xohlashingiz mumkin. Buning oson yo'li - akselerometrni Arduino -ga ulash va ketma -ket monitorda x va y o'qilishini ajratadigan eskizni ishga tushirish. Endi akselerometrni bir oz aylantiring, o'qishni ko'rib chiqing va ostonalarni tanlang.

Va, bu ham! Kodni Arduino -ga yuklang va zavqlaning !! Yoki, ehtimol, yaqinda emas:-(Agar siz bonuslar bo'limini o'tkazib yubormagan bo'lsangiz, ATmega-ga kodni yuklash biroz ko'proq ish demakdir. Sizda ikkita variant bor:

Variant: FTDI FT232 asosiy uzilish taxtasi kabi USB -dan seriyali qurilmadan foydalaning. Simlarni TTL sarlavhasidan ATmega -dagi mos keladigan pinlarga o'tkazib, quyidagi xaritaga muvofiq:

Ajralish taxtasidagi pinlar Mikrokontroller pinlari
DTR/GRN 0,1 mF qopqoq orqali RST/Reset (1 -pin)
Rx Tx (3 -pin)
Tx Rx (2 -pin)
Vcc +5v chiqish
CTS (ishlatilmagan)
Gnd Zamin

Endi USB kabelining bir uchini ajratuvchi taxtaga, ikkinchisini shaxsiy kompyuteringizga ulang va odatdagidek kodni yuklang: Arduino IDE -ni ishga tushiring, mos keladigan ketma -ket portni tanlang, taxta turini o'rnating, eskizni tuzing va yuklashni bosing..

V variant: Agar sizda biror joyda yotgan bo'lsa, UNOdan foydalaning. ATmega -ni UNO -ga ulang, kodni odatdagidek yuklang, ICni chiqarib oling va uni yana uzatuvchi pallasiga qaytaring. Pirog kabi oson!

Agar siz ATmega -da yuklash qurilmasini qo'lda yoqish uchun aqlli bo'lsangiz yoki, agar siz avvalroq o'rnatilgan bootloader bilan ATmega -ni sotib olmoqchi bo'lsangiz, bu variantlardan hech biri ishlamasligi kerak. Agar yo'q bo'lsa, davom eting va bu erda ko'rsatilgan qadamlarni bajaring.

Andddd, biz rasman tugatdik! Umid qilamanki, sizga bu g'aroyib uzoq ko'rsatma yoqdi. Endi, davom eting, roverni qurishni tugatmang, agar siz hali tugatmagan bo'lsangiz, u bilan bir oz o'ynang va orqaga qaytib, sharhlar bo'limiga so'rovlar va/yoki konstruktiv tanqidlar soling.

Rahmat

P. S. Men tugallangan loyihaning hech qanday rasmini yuklamaganimning sababi, chunki men buni o'zim tugatmaganman. Yarim yo'lda men tezlikni boshqarish, to'siqlarni chetlab o'tish va, ehtimol, roverda LCD displey kabi ba'zi qo'shimcha qurilmalar haqida o'yladim, agar biz ham uzatuvchi, ham qabul qiluvchi uchida mikrokontrolrordan foydalansak, unchalik qiyin emas. Lekin, nima uchun buni qiyin yo'l bilan qilmasligingiz kerak ?! Shunday qilib, men hozirda shu yo'nalishda ishlayapman va u har qanday meva berishi bilanoq yangilanishlarni joylashtiraman. Biroq, men oldingi loyihalarimdan birining modullari yordamida tuzilgan tezkor prototip yordamida kod va dizaynni sinab ko'rdim; bu erdagi videoni ko'rishingiz mumkin.

Tavsiya: