Агуулгын хүснэгт:

Хурдасгуур хэмжигч, RF дамжуулагч-хүлээн авагч хос ашиглан дохио зангаагаар удирддаг Rover: 4 алхам
Хурдасгуур хэмжигч, RF дамжуулагч-хүлээн авагч хос ашиглан дохио зангаагаар удирддаг Rover: 4 алхам

Видео: Хурдасгуур хэмжигч, RF дамжуулагч-хүлээн авагч хос ашиглан дохио зангаагаар удирддаг Rover: 4 алхам

Видео: Хурдасгуур хэмжигч, RF дамжуулагч-хүлээн авагч хос ашиглан дохио зангаагаар удирддаг Rover: 4 алхам
Видео: СБОРКА И ЗАПУСК 16-ЛИТРОВОГО V8 ДВИГАТЕЛЯ SCANIA. ПРОБЕГ 1.6 МЛН КМ. DC16 PDE 2024, Долдугаар сарын
Anonim
Хурдасгуур хэмжигч, RF дамжуулагч-хүлээн авагч хос ашиглан дохио зангаагаар удирддаг Rover
Хурдасгуур хэмжигч, RF дамжуулагч-хүлээн авагч хос ашиглан дохио зангаагаар удирддаг Rover

Хөөе, Та энгийн гар дохио зангаагаар жолоодож болох боловч зураг боловсруулах нарийн төвөгтэй байдлыг судалж, микроконтроллертойгоо вэб камертай харилцах зоригтой байж чаддаггүй ровер бүтээхийг хүсч байсан. харааны асуудал? За, бүү ай, учир нь гарах хялбар арга бий! Харагтун, би танд хүчирхэг ACCELEROMETER -ийг танилцуулж байна! *ба дум tsss*

Акселерометр бол шугаман тэнхлэгийн дагуу таталцлын хурдатгалыг хэмждэг үнэхээр гайхалтай төхөөрөмж юм. Энэ нь манай микроконтроллер аналог утга болгон уншдаг газрын болон тэжээлийн хүчдэлийн хооронд хэлбэлздэг хүчдэлийн түвшинг илэрхийлдэг. Хэрэв бид тархиа бага зэрэг ашиглавал (жаахан математик ба Ньютоны физик) үүнийг тэнхлэгийн дагуух шугаман хөдөлгөөнийг хэмжихэд төдийгүй хазайлтын өнцгийг тодорхойлох, чичиргээг мэдрэхэд ашиглаж болно. Санаа зовох хэрэггүй! Бидэнд математик эсвэл физик хэрэггүй болно; Бид зөвхөн хурдатгал хэмжигчийн ялгаруулдаг түүхий үнэт зүйлтэй харьцах болно. Үнэндээ та энэ төслийн хурдатгал хэмжигчийн техникийн талаар санаа зовох хэрэггүй юм. Би хэдхэн нарийн ширийн зүйлийг хөндөж, том зургийг ойлгохын тулд шаардлагатай хэмжээгээр л тайлбарлах болно. Гэсэн хэдий ч хэрэв та түүний дотоод механизмыг судлахыг хүсч байвал эндээс үзээрэй.

Та үүнийг одоохондоо санаж байх хэрэгтэй: акселерометр бол бидний ухаалаг гар утсан дээр тоглодог хөдөлгөөн мэдрэгч тоглоомуудын хаалгыг нээдэг гизмо (ихэвчлэн гироскоптой хамт); Жишээлбэл, бид машинаа аль ч чиглэлд хазайлган машинаа жолооддог машины уралдааны тоглоом юм. Мөн бид хурдасгуур хэмжигчийг (мэдээж хэрэг хэд хэдэн туслах хэрэгсэлтэй) бээлий дээр наах замаар ийм үр нөлөөг дуурайж чадна. Бид зүгээр л шидэт бээлийээ өмсөж, гараа зүүн эсвэл баруун, урагш эсвэл хойшоо хазайлгаж, роверууд маань бидний аялгуунд бүжиглэж байгааг харах болно. Энд хийх ёстой зүйл бол ревер дээрх моторууд эдгээр дохиог роверт дамжуулах механизмыг тайлбарлаж, тоон дохио болгон акселерометрийн заалтыг орчуулах явдал юм. Үүнийг хийхийн тулд бид 434 МГц давтамжтай ажилладаг RF дамжуулагч-хүлээн авагч хосыг өнөөдрийн туршилтын сайн ol 'Arduino болон түүний туслахуудыг дуудаж, улмаар задгай орон зайд ойролцоогоор 100-150 м-ийн зайтай ажиллах боломжийг олгодог. харааны асуудал.

Нэлээд дажгүй шүү, тийм үү? Усанд орцгооё…

Алхам 1: Хангамжаа цуглуул

Хангамжаа цуглуул
Хангамжаа цуглуул
Хангамжаа цуглуул
Хангамжаа цуглуул
Хангамжаа цуглуул
Хангамжаа цуглуул
Хангамжаа цуглуул
Хангамжаа цуглуул
• Ардуино Нано x1
• Хурдасгуур (ADXL335) x1
• 5V DC мотор + дугуй x2 тус бүр
• Үхрийн дугуй* x1
• L293D мотор драйвер + 16 зүү IC сокет x1 тус бүр
• 434 МГц давтамжтай RF дамжуулагч x1
• 434 МГц давтамжтай RF хүлээн авагч x1
• HT-12E кодлогч IC + 18 зүү IC сокет x1 тус бүр
• HT-12D декодер IC + 18 зүү IC сокет x1 тус бүр
• LM7805 хүчдэлийн зохицуулагч x1
• Pushbutton Switch x2
• Улаан LED + 330O эсэргүүцэл x2 тус бүр
• Шар LED + 330O эсэргүүцэл x1 тус бүр
• Ногоон LED + 330O эсэргүүцэл (заавал биш) x4 тус бүр
• 51кО ба 1МО эсэргүүцэл x1 тус бүр
• 10μF радиаль конденсатор x2
Батерей, батерейны холбогч, USB кабель, холбогч утас, эмэгтэй толгой, 2 зүү бүхий шураг терминал, ПХБ, Chasis болон таны ердийн гагнуурын хэрэгслүүд

Хэрэв та яагаад үхрийн дугуй ашиглаж байгааг гайхаж байгаа бол гол зүйл бол RF дамжуулагч ба хүлээн авагчийн модульд зөвхөн 4 өгөгдлийн зүү байгаа бөгөөд энэ нь бид зөвхөн 2 мотор жолоодох боломжтой гэсэн үг юм. бүтцийг дэмжих. Гэсэн хэдий ч хэрэв таны ровер дөрвөн дугуйтай арай илүү гоё харагдана гэж бодож байвал санаа зовох хэрэггүй, энд ажил байна! Энэ тохиолдолд үхрийн дугуйг жагсаалтаас хусаад, тус бүрдээ дугуй дагалдсан 5V тогтмол гүйдлийн өөр нэг хос хөдөлгүүрийг нэмж, 3 -р алхамыг дуустал хэлэлцсэн энгийн хакердахыг анхаарч үзээрэй.

Эцэст нь зоригтой хүмүүсийн хувьд дизайны хувьд бага зэрэг өөрчлөлт хийх боломжтой бөгөөд үүнд өөрийн Arduino инженерчлэл орно. Дараагийн алхамд урамшууллын хэсэг рүү ороод өөрөө үзээрэй. Танд хэд хэдэн нэмэлт хангамж хэрэгтэй болно: ATmega328P, 28 зүү IC сокет, 16Mhz болор осциллятор, 22pF керамик таг, өөр 7805 хүчдэлийн зохицуулагч, хоёр 10μF радиал таг, 10kΩ, 680Ω, 330Ω резистор, тийм ээ, хасах Ардуино!

Алхам 2: Дамжуулагчийг утсаар холбоно уу

Дамжуулагчийг утсаар холбоно уу
Дамжуулагчийг утсаар холбоно уу
Дамжуулагчийг утсаар холбоно уу
Дамжуулагчийг утсаар холбоно уу
Дамжуулагчийг утсаар холбоно уу
Дамжуулагчийг утсаар холбоно уу
Дамжуулагчийг утсаар холбоно уу
Дамжуулагчийг утсаар холбоно уу

Бид төслийг хоёр хэсэгт хуваадаг: дамжуулагч ба хүлээн авагчийн хэлхээ. Дамжуулагч нь хурдасгуур, Arduino, RF дамжуулагч модулийг HT-12E кодлогч IC-тэй холбосон бөгөөд бүгд хавсаргасан бүдүүвчийн дагуу холбосон болно.

Өмнө нь танилцуулсан хурдатгал хэмжигч нь бидний гарын дохиог таних үүргийг гүйцэтгэдэг. Бид өөрсдийн хэрэгцээг хангахын тулд гурван тэнхлэгт акселерометр (үндсэндээ нэг тэнхлэгт гурван хурдасгуурыг нэг дор) ашиглах болно. Энэ нь хурдатгалыг бүх гурван хэмжигдэхүүнээр хэмжихэд ашиглаж болох бөгөөд таны таамаглаж байсанчлан нэг тэнхлэг биш харин гурван тэнхлэгтэйгээ (x, y, z) харьцуулсан гурван аналог утгыг өгдөг. Үнэндээ бидэнд зөвхөн x ба y тэнхлэгийн дагуух хурдатгал хэрэгтэй, учир нь бид роверыг зөвхөн дөрвөн чиглэлд жолоодох боломжтой: урд эсвэл хойд (тэнхлэгийн дагуу), зүүн эсвэл баруун (өөрөөр хэлбэл тэнхлэгийн дагуу). Хэрэв бид нисгэгчгүй онгоц бүтээж байгаа бол z тэнхлэг хэрэгтэй болно, ингэснээр бид дохио зангаагаар түүний өгсөх эсвэл буухыг хянах боломжтой болно. Ямар ч тохиолдолд акселерометрийн гаргадаг эдгээр аналог утгыг хөдөлгүүрийг жолоодохын тулд тоон дохио болгон хөрвүүлэх ёстой. Үүнийг Arduino хариуцдаг бөгөөд эдгээр дохиог хөрвүүлсний дараа RF дамжуулагч модуль ашиглан ровер руу дамжуулдаг.

RF дамжуулагч нь зөвхөн нэг ажилтай: 3-р зүү дээр байгаа "цуваа" өгөгдлийг антеннаас 1-р зүү рүү дамжуулах. Энэ нь цуглуулдаг 12 битийн зэрэгцээ цуваа өгөгдлийн кодлогч HT-12E-ийг ашиглахыг дэмждэг. AD8 -аас AD11 хүртэлх шугамын дагуу Arduino -аас 4 бит хүртэлх зэрэгцээ өгөгдөл дамжуулснаар RF дамжуулагч дээрх нэг өгөгдлийн зүүтэй харьцуулахад 24 = 16 өөр оролт/гаралтын хослол хүртэл зай гаргах боломжийг бидэнд олгож байна. Кодлогч дээрх A0 -аас A7 хүртэлх шугамуудаас авсан үлдсэн 8 бит нь хаягийн байтыг бүрдүүлдэг бөгөөд энэ нь RF дамжуулагчийг холбогдох RF хүлээн авагчтай хослуулах боломжийг олгодог. Дараа нь 12 битийг нэгтгэж, цуваа болгож, RF дамжуулагчийн өгөгдлийн зүү рүү дамжуулдаг бөгөөд энэ нь ASK-ийг өгөгдлийг 434 МГц давтамжтай долгион болгон өөрчилж, 1-р зүү дээрх антенаар дамжуулдаг.

Үзэл баримтлалын хувьд 434 МГц давтамжтай сонсдог аливаа RF хүлээн авагч нь энэ өгөгдлийг таслан зогсоох, загварчлах, декодлох чадвартай байх ёстой. Гэсэн хэдий ч HT-12E болон HT-12D аналог дээрх хаягийн мөрүүд (12 битийн зэрэгцээ параллель өгөгдөл декодлогч) нь өгөгдөл дамжуулах замаар RF дамжуулагч-хүлээн авагч хосыг өвөрмөц болгох боломжийг олгодог. зориулагдсан хүлээн авагч, ингэснээр бусадтай харилцах харилцааг хязгаарладаг. Биднээс шаардагдах зүйл бол хаягийн мөрүүдийг хоёр фронт дээр ижилхэн тохируулах явдал юм. Жишээлбэл, бид HT-12E-ийн бүх хаягийн шугамыг газардуулчихсан тул хүлээн авах цэг дээр HT-12D-ийн хувьд үүнийг хийх ёстой, эс тэгвээс ровер дохиог хүлээн авах боломжгүй болно. Ингэснээр бид хүлээн авагч тус бүрийн HT-12D дээрх хаягийн шугамыг ижилхэн тохируулснаар олон дамжуулагчийг нэг дамжуулагч хэлхээгээр хянах боломжтой болно. Эсвэл бид тус бүрдээ хаягийн шугамын тодорхой тохиргоог агуулсан дамжуулагчийн хэлхээгээр бэхлэгдсэн хоёр бээлий өмсөж болно (нэг нь бүх хаягийн шугамыг газардуулсан, нөгөө нь өндөр байрлалтай, эсвэл нэг шугамыг газардуулсан байхад үлдсэн долоог нь барьж байх ёстой). өндөр, нөгөө нь хоёр шугамтай газардуулгатай, үлдсэн зургаа нь өндөр, эсвэл тэдгээрийн бусад хослолоор), мөн тус бүр нь ижил төстэй тохируулагдсан олон тооны роверыг удирддаг. Android симфони дээр маэстро тоглоорой!

Хэлхээ угсрахдаа анхаарах ёстой нэг чухал зүйл бол Роскийн үнэ цэнэ юм. HT-12E нь 15 ба 16-р тээглүүрүүдийн хоорондох дотоод осциллятор хэлхээтэй бөгөөд эдгээр тээглүүрүүдийн хооронд Роск хэмээх эсэргүүцэл холбож идэвхжүүлдэг. Rosc -ийн сонгосон утга нь тэжээлийн хүчдэлээс хамаарч өөр өөр байж болох осцилляторын давтамжийг тодорхойлдог. Rosc-ийн зохих утгыг сонгох нь HT-12E-ийн үйл ажиллагаанд маш чухал юм! Хамгийн тохиромжтой нь HT-12E-ийн осцилляторын давтамж нь HT-12D-ийнхээс 50 дахин их байх ёстой. Тиймээс, бид 5V дээр ажиллаж байгаа тул HT-12E ба HT-12D хэлхээний хувьд 1MΩ ба 51kΩ эсэргүүцлийг Rosc болгон сонгосон. Хэрэв та хэлхээг өөр тэжээлийн хүчдэл дээр ажиллуулахаар төлөвлөж байгаа бол хавсаргасан HT-12E мэдээллийн хүснэгтийн 11-р хуудсан дээрх "Осцилляторын давтамж ба нийлүүлэлтийн хүчдэл" графикийг үзээд яг тохирох осцилляторын давтамж, резисторыг тодорхойлно уу.

Нэмж дурдахад бид энд эмэгтэй толгойнуудыг (IC залгууртай ижил үүргийг гүйцэтгэдэг) ашиглан хурдатгал хэмжигч, RF дамжуулагч, Arduino -ийг хэлхээнд залгахын тулд ПХБ -д шууд гагнахын оронд ашиглах болно. Бага зэргийн бүрэлдэхүүн хэсгүүдийг дахин ашиглах боломжтой болгох зорилго. Та дохио зангаагаар удирддаг жолоодлогогоо зохион бүтээгээд хагас нь тоосонд дарагдаж, цомын тавиур дээрээ суугаад багагүй хугацаа өнгөрч, хурдатгал хэмжигчийн үр нөлөөг бий болгодог өөр нэгэн гайхалтай заавартай тааралдлаа. Тэгэхээр чи юу хийдэг вэ? Та үүнийг ровероосоо салгаад шинэ тойрог руугаа оруулна уу. Шинээр авахын тулд "Амазон" -ыг дуудах шаардлагагүй:-p

Шагнал: Arduino -г устга, гэхдээ тэгэхгүй

Хэрэв та арай л адал явдалтай байгаа мэт санагдаж магадгүй, ялангуяа хэрэв та энэхүү гайхамшигтай хийц (мэдээж Arduino) -ыг бидний хийх ажил гэх мэт өчүүхэн зүйлд зарцуулах нь арай хэтэрсэн зүйл гэж бодож байгаа бол намайг жаахан тэвчээрэй.; хэрэв үгүй бол дараагийн алхам руу алгасах боломжтой.

Энд бидний зорилго бол Arduino (үнэндээ Arduino -ийн тархи; тийм ээ, би ATmega IC -ийн тухай ярьж байна!) Багийн байнгын гишүүн болгох явдал юм. ATmega нь зөвхөн нэг ноорогыг дахин дахин ажиллуулахаар програмчлагдсан байх бөгөөд энэ нь хэлхээний мөнхийн хэсэг болж, яг л HT-12E-а IC шиг, зүгээр сууж байгаад хийх ёстой зүйлээ хийх болно. Бодит суулгагдсан систем ийм байх ёстой юм биш үү?

Ямар ч байсан энэхүү шинэчлэлтийг үргэлжлүүлэхийн тулд хавсаргасан хоёр дахь схемийн дагуу хэлхээг өөрчилнө үү. Энд бид Arduino-ийн эмэгтэй толгойнуудыг ATmega-ийн IC залгуураар сольж, IC-ийн дахин тохируулах зүү (1-р зүү) дээр 10K татах эсэргүүцэл нэмж, 9 ба 10-р зүү хооронд гадаад цаг ашиглан шахна. Харамсалтай нь, хэрэв бид Arduino-г устгах юм бол бид түүний хүчдэлийн зохицуулагчийг суллах болно. Тиймээс бид хүлээн авагчдаа ашиглаж байсан LM7805 хэлхээг энд хуулбарлах ёстой. Нэмж дурдахад бид хурдатгал хэмжигчийг асаахад шаардлагатай 3.3V хүчдэлийг хуваахын тулд хүчдэл хуваагч ашигладаг.

Одоо энд байгаа цорын ганц зүйл бол ATmega -г ажлаа хийх програмчлах явдал юм. Гэсэн хэдий ч та үүнийг 4 -р алхам хүртэл хүлээх хэрэгтэй болно. Тиймээс, хүлээж байгаарай …

Алхам 3: Хүлээн авагч

Тэгээд, хүлээн авагч
Тэгээд, хүлээн авагч
Тэгээд, хүлээн авагч
Тэгээд, хүлээн авагч
Тэгээд, хүлээн авагч
Тэгээд, хүлээн авагч
Тэгээд, хүлээн авагч
Тэгээд, хүлээн авагч

Хүлээн авагч нь RF хүлээн авагчийн модулийг HT-12D декодер IC-тэй хослуулсан бөгөөд L293D мотор драйверын тусламжтайгаар ажилладаг тогтмол гүйдлийн хос хөдөлгүүрийг хавсаргасан схемийн дагуу холбосон болно.

RF хүлээн авагчийн цорын ганц ажил бол зөөгч долгионыг (1-р зүү дээр антенаараа дамжуулан хүлээн авдаг) демодуляц хийх, 7-р зүү дээр авсан "цуваа" өгөгдлийг HT-12D-ээс хасах зорилгоор гаргах явдал юм. HT-12D дээрх хаягийн шугамууд (A0-аас A7 хүртэл) нь HT-12E-тэй ижилхэн тохируулагдсан гэж үзвэл 4 параллел өгөгдлийг өгөгдлийн шугамаар (D8-аас D11 хүртэл) гаргаж, дамжуулдаг. HT-12D нь мотор жолоочид зориулагдсан бөгөөд энэ нь хөдөлгүүрийг жолоодохын тулд эдгээр дохиог тайлбарладаг.

Дахин хэлэхэд Роскийн үнэ цэнэд анхаарлаа хандуулаарай. HT-12D нь мөн 15 болон 16-р шонгуудын хоорондох дотоод осциллятор хэлхээтэй бөгөөд эдгээр тээглүүрүүдийн хооронд Rosc хэмээх эсэргүүцэл холбож идэвхжүүлдэг. Rosc -ийн сонгосон утга нь тэжээлийн хүчдэлээс хамаарч өөр өөр байж болох осцилляторын давтамжийг тодорхойлдог. Rosc-ийн зохих утгыг сонгох нь HT-12D-ийн үйл ажиллагаанд маш чухал юм! Хамгийн тохиромжтой нь HT-12D-ийн осцилляторын давтамж нь HT-12E-ийнхээс 50 дахин их байх ёстой. Тиймээс, бид 5V дээр ажиллаж байгаа тул HT-12E ба HT-12D хэлхээний хувьд 1MΩ ба 51kΩ эсэргүүцлийг Rosc болгон сонгосон. Хэрэв та хэлхээг өөр тэжээлийн хүчдэл дээр ажиллуулахаар төлөвлөж байгаа бол хавсрагдсан HT-12D мэдээллийн хүснэгтийн 5-р хуудсан дээрх "Осцилляторын давтамж ба хангамжийн хүчдэл" графикийг үзээд осцилляторын давтамж, резисторыг яг нарийн тодорхойлох боломжтой.

Түүнчлэн, RF хүлээн авагчийн эмэгтэй толгойнуудыг бүү мартаарай.

Нэмэлт байдлаар LED-ийг 330 Ом гүйдлийн хязгаарлах резистороор HT-12D-ийн 4 өгөгдлийн зүү тус бүрт холбож болох бөгөөд ингэснээр уг зүү дээр хүлээн авсан битийг тодорхойлох боломжтой болно. Хүлээн авсан бит нь HIGH (1) байвал LED асах бөгөөд хэрэв хүлээн авсан бит нь LOW (0) байвал унтрах болно. Эсвэл HT-12D-ийн VT зүү дээр ганц LED холбож болно (дахин 330Ω гүйдэл хязгаарлах резистороор дамжуулан), энэ нь хүчинтэй дамжуулалт хийх үед асах болно.

Одоо, хэрэв та миний эхний алхам дээр хэлсэн мотортой хакердахыг хайж байгаа бол энэ нь үнэхээр амархан! Хоёр дахь схемд үзүүлсэн шиг багц тус бүрийн хоёр моторыг зэрэгцээ холбоно уу. Багц бүрийн мотор (зүүн ба урд, хойд, баруун урд талын мотор) хэзээ ч эсрэг чиглэлд хөдөлдөггүй тул энэ нь ийм байх ёстой. Өөрөөр хэлбэл, роверыг баруун тийш эргүүлэхийн тулд зүүн талын урд болон хойд хөдөлгүүрийг хоёуланг нь урагш, баруун талын урд болон хойд моторыг хоёуланг нь жолоодох ёстой. Үүнтэй адил роверыг зүүн тийш эргүүлэхийн тулд зүүн талын урд болон хойд хөдөлгүүрийг хоёуланг нь арагш, баруун талын урд болон хойд хөдөлгүүрийг урагш чиглүүлэх ёстой. Тиймээс иж бүрдэлд байгаа хоёр хөдөлгүүрт ижил хос хүчдэлээр тэжээх нь аюулгүй юм. Үүнийг хийх арга бол хөдөлгүүрийг зэрэгцээ холбох явдал юм.

Алхам 4: Код руу орно уу

Код руу оръё
Код руу оръё

Роверыг ажиллуулахын тулд хийх ганц л зүйл үлдлээ. Тийм ээ, та үүнийг зөв таасан! (Та хийсэн гэж найдаж байна) Бид одоо ч гэсэн акселерометрийн заалтыг хөдөлгүүр жолоочийн тайлбарлаж болохуйц хэлбэрээр орчуулах ёстой. Хэрэв та акселерометрийн уншилт нь аналог бөгөөд мотор драйвер нь дижитал дохиог хүлээж байгаа гэж бодож байгаа бол бид техникийн хувьд бус харин ямар нэгэн ADC -ийг хэрэгжүүлэх шаардлагатай болно, гэхдээ бид үүнийг хийх хэрэгтэй байна. Мөн энэ нь маш ойлгомжтой юм.

Акселерометр нь шугаман тэнхлэгийн дагуу таталцлын хурдатгалыг хэмждэг бөгөөд энэ хурдатгал нь газар болон тэжээлийн хүчдэлийн хооронд хэлбэлздэг хүчдэлийн түвшинг илэрхийлдэг бөгөөд үүнийг манай микроконтроллер нь 0 -ээс 1023 хооронд хэлбэлздэг аналог утга болгон уншдаг. Акселерометрийг 3.3 В хүчдэлд ажиллуулж байгаа тул 10 битийн ADC-ийн аналог лавлагаа (энэ нь Arduino дээр ATmeaga-д багтсан болно) -ийг 3.3 В болгож тохируулахыг зөвлөж байна. Энэ нь аливаа зүйлийг ойлгоход хялбар болгоно; Хэдийгээр бид үүнийг хийгээгүй байсан ч гэсэн бидний жижиг туршилтын хувьд тийм ч чухал биш байх болно (бид кодыг жаахан өөрчлөх хэрэгтэй болно). Гэсэн хэдий ч үүнийг хийхийн тулд бид Arduino дээрх AREF зүүг (ATmega дээрх 21 -р зүү) 3.3V -т холбож, кодын өөрчлөлтийг analogReference (EXTERNAL) руу залгаж тэмдэглэнэ.

Одоо хурдатгал хэмжигчийг хавтгай болон аналог дээр тавих үед x ба y тэнхлэгийн дагуух хурдатгалыг уншаарай (санаж байна уу, бидэнд зөвхөн эдгээр хоёр тэнхлэг хэрэгтэй болно), бид ойролцоогоор 511 утгыг авдаг (өөрөөр хэлбэл 0 -ээс 1023 хооронд хагас зам). Эдгээр тэнхлэгийн дагуу 0 хурдатгал байна гэж хэлэх арга. Баримтыг нарийвчлан судлахын оронд үүнийг график дээрх x ба y тэнхлэгүүд гэж төсөөлөөд үзээрэй, 511 утга нь гарал үүслийг, 0 ба 1023 -ийг зураг дээр дүрсэлсэн байдлаар илэрхийлнэ. хурдатгал хэмжигчийг тээглүүрээ доош харуулан өөрт ойрхон байрлуулна уу, эс тэгвээс та тэнхлэгээ эргүүлж/сольж болно. Энэ нь хэрэв бид хурдатгал хэмжигчийг баруун тийш хазайсан бол x тэнхлэгийн дагуу 511-ээс их утгыг унших ёстой бөгөөд хэрэв хурдатгал хэмжигчийг зүүн тийш хазайлгах юм бол тэнхлэгийн дагуу 511-ээс бага утгыг авах ёстой гэсэн үг юм.. Үүний нэгэн адил, хэрэв бид хурдатгал хэмжигчийг урагш хазайлгах юм бол y тэнхлэгийн дагуу 511-ээс их утгыг унших ёстой бөгөөд хэрэв хурдатгал хэмжигчийг арагш хазайлгах юм бол y тэнхлэгийн дагуу 511-ээс доош утгыг унших ёстой. Ровер явах ёстой чиглэлийг бид кодоор ингэж тодорхойлдог. Гэхдээ энэ нь бид хоёр тэнхлэгийн дагуу 511 -ийг уншихын тулд хурдасгуур хэмжигчийг хавтгай гадаргуутай зэрэгцүүлж, жигд байлгаж байх ёстой гэсэн үг юм. роверыг зогсоолгүй байлгахын тулд. Энэ даалгаврыг бага зэрэг хөнгөвчлөхийн тулд бид зураг дээр дүрсэлсэн шиг хил хязгаарыг тогтоодог бөгөөд ингэснээр ровер нь x ба y -ийн уншилтууд хязгаарлагдмал байх үед хөдөлгөөнгүй хэвээр байх болно. босгыг давсны дараа хийх хөдөлгөөн.

Жишээлбэл, хэрэв y тэнхлэг нь 543 гэж уншвал хурдасгуур хэмжигчийг урагш хазайсан гэдгийг бид мэднэ. Бид үүнийг D2 ба D4 HIGH зүү, D3 ба D5 LOW зүүгээр тохируулна. Одоо эдгээр тээглүүрийг шууд HT-12E руу холбосон тул дохиог цуваа болгож, RF дамжуулагчийг ажиллуулж, зөвхөн хөтөч дээр сууж буй RF хүлээн авагч барьж авах боломжтой бөгөөд энэ нь HT-12D-ийн тусламжтайгаар дохиог цуцалдаг. тэдгээрийг L293D руу дамжуулдаг бөгөөд энэ нь эдгээр дохиог тайлбарлаж, моторыг урагшлуулдаг

Мэдрэмжийг тохируулахын тулд та эдгээр босгыг өөрчлөхийг хүсч магадгүй юм. Үүнийг хийх хамгийн хялбар арга бол хурдатгал хэмжигчээ Arduino руу залгаж, x ба y -ийн уншилтыг цуваа дэлгэц дээр буулгах ноорог ажиллуулах явдал юм. Одоо хурдатгал хэмжигчийг бага зэрэг хөдөлгөж, уншилтыг хараад босгыг нь шийдээрэй.

Тэгээд, тэгээд л боллоо! Кодыг Arduino руугаа оруулаад сайхан өнгөрүүлээрэй !! Эсвэл удахгүй биш байж магадгүй:-(Хэрэв та урамшууллын хэсгийг алгасаагүй бол кодыг ATmega дээрээ байршуулах нь арай илүү ажиллах болно гэсэн үг юм. Танд хоёр сонголт байна:

Сонголт А: FTDI FT232 үндсэн таслах самбар гэх мэт USB -ээс Цуваа төхөөрөмж ашиглана уу. Доорх зураглалын дагуу TTL толгойноос ATmega дээрх харгалзах зүү рүү утас ажиллуулна уу.

Таслах самбар дээрх зүү Микроконтроллер дээрх зүү
DTR/GRN RST/Reset (Pin 1) 0.1µF тагтай
Rx Tx (Pin 3)
Tx Rx (Pin 2)
Vcc +5V гаралт
CTS (ашиглагдаагүй)
Gnd Газар

USB кабелийн нэг үзүүрийг таслагч самбар руу, нөгөө үзүүрийг компьютерт холбоод кодыг ердийн байдлаар оруулна уу: Arduino IDE -ийг ажиллуулж, тохирох цуваа портыг сонгож, самбарын төрлийг тохируулж, ноорогоо эмхэтгэж, байршуулаарай..

Сонголт В: Хэрэв та хаа нэгтээ хэвтэж байвал НҮБ -ыг ашиглаарай. ATmega -гээ НҮБ -д залгаад кодоо ердийнх шигээ оруулаад IC -ээ сугалаад дамжуулагчийн хэлхээнд буцааж оруулна уу. Бялуу шиг амархан!

Эдгээр сонголтуудын аль аль нь ажиллах ёстой, хэрэв та ачаалагчийг ATmega дээр гараасаа шатаах хангалттай ухаалаг байсан, эсвэл хэрэв та аль хэдийн суулгасан ачаалагчтай ATmega худалдаж авах нь илүү ухаалаг байсан бол. Үгүй бол энд тайлбарласан алхмуудыг дагана уу.

Энддд, бид албан ёсоор бэлэн боллоо! Энэхүү хачин урт зааварчилгаа танд таалагдсан гэж найдаж байна. Одоо үргэлжлүүлээрэй, хэрвээ та дуусаагүй бол ровероо барьж дуусгаад хэсэг хугацаанд тоглоод, доорхи сэтгэгдлүүдийг асуух болон/эсвэл бүтээлч шүүмжлэлээр дүүргэхийн тулд буцаж ирээрэй.

Баярлалаа

P. S. Дууссан төслийн ямар ч зургийг байршуулаагүй шалтгаан нь би өөрөө бөглөөгүйтэй холбоотой юм. Барилгынхаа дундуур би хурдны хяналт, саад бэрхшээлээс зайлсхийх, магадгүй ровер дээрх LCD гэх мэт нэмэлт төхөөрөмжүүдийн талаар бодож үзсэн бөгөөд хэрэв бид дамжуулагч болон хүлээн авах төгсгөлд микроконтроллер ашиглавал тийм ч хэцүү биш юм. Гэхдээ яагаад үүнийг хэцүү аргаар хийж болохгүй гэж?! Тиймээс, би одоогоор энэ чиглэлээр ажиллаж байгаа бөгөөд ямар ч үр дүн гарсан даруйд би шинэчлэлтийг оруулах болно. Гэсэн хэдий ч би өмнөх төслүүдийнхээ модулийг ашиглан бүтээсэн хурдан загварыг ашиглан код, дизайныг туршиж үзсэн. та видеог эндээс үзэх боломжтой.

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