Բովանդակություն:

Estեստերով վերահսկվող ռովեր արագաչափի և ՌԴ հաղորդիչ-ընդունիչ զույգի միջոցով ՝ 4 քայլ
Estեստերով վերահսկվող ռովեր արագաչափի և ՌԴ հաղորդիչ-ընդունիչ զույգի միջոցով ՝ 4 քայլ

Video: Estեստերով վերահսկվող ռովեր արագաչափի և ՌԴ հաղորդիչ-ընդունիչ զույգի միջոցով ՝ 4 քայլ

Video: Estեստերով վերահսկվող ռովեր արագաչափի և ՌԴ հաղորդիչ-ընդունիչ զույգի միջոցով ՝ 4 քայլ
Video: Угрюм-река (1969) (1 серия) фильм 2024, Հուլիսի
Anonim
Gեստերով վերահսկվող ռովեր արագաչափի և ՌԴ հաղորդիչ-ընդունիչ զույգի միջոցով
Gեստերով վերահսկվող ռովեր արագաչափի և ՌԴ հաղորդիչ-ընդունիչ զույգի միջոցով

Ողջույն, Երբևէ ցանկացել եք ստեղծել մի ռովեր, որը կարողանաք ուղղորդել ձեռքի պարզ շարժումներով, բայց երբեք քաջություն չստանաք մտնել պատկերի մշակման և վեբ-տեսախցիկը ձեր միկրոկառավարիչի հետ ինտերֆեյսի մեջ դնելու, չհաշված աղքատ տիրույթը և սահմանագիծը հաղթահարելու դժվարին մարտը: տեսողության խնդիրներ? Դե, մի վախեցեք… քանի որ հեշտ ելք կա: Ահա, ինչպես ես ձեզ եմ ներկայացնում հզոր ԱԿՍԵԼՈՄԵՏՐՈՄԸ: *բա դում տսսս*

Արագացուցիչը իսկապես զով սարք է, որը չափում է գրավիտացիոն արագացումը գծային առանցքի երկայնքով: Այն ներկայացնում է որպես լարման մակարդակ, որը տատանվում է գետնի և մատակարարման լարման միջև, որը մեր միկրոկոնտրոլերը կարդում է որպես անալոգային արժեք: Եթե մենք մի փոքր կիրառենք մեր ուղեղը (ընդամենը մի փոքր մաթեմատիկա և որոշ նյուտոնական ֆիզիկա), ոչ միայն կարող ենք այն օգտագործել առանցքի երկայնքով գծային շարժումը չափելու համար, այլև կարող ենք այն օգտագործել թեքության անկյունը որոշելու և թրթռումները զգալու համար: Մի՛ տխրիր! Մեզ անհրաժեշտ չեն լինի մաթեմատիկա կամ ֆիզիկա. մենք պարզապես գործ կունենանք հում արժեքների հետ, որոնցից արագացուցիչը թքում է: Փաստորեն, իրականում կարիք չունեք շատ մտահոգվելու այս նախագծի արագացուցիչի տեխնիկական բնութագրերի վերաբերյալ: Ես ուղղակի կանդրադառնամ մի քանի առանձնահատկությունների և կմանրամասնեմ այնքան, որքան անհրաժեշտ է ընդհանուր պատկերը հասկանալու համար: Չնայած, եթե դուք հետաքրքրված եք դրա ներքին մեխանիկաների ուսումնասիրությամբ, ապա նայեք այստեղ:

Առայժմ պարզապես պետք է դա նկատի ունենալ. Արագացուցիչը այն gizmo- ն է (որը հաճախ զուգորդվում է գիրոսկոպի հետ), որը դռներ է բացում բոլոր այն շարժումների սենսորային խաղերի համար, որոնք մենք խաղում ենք մեր սմարթֆոններում. օրինակ ՝ ավտոարշավային խաղ, որտեղ մենք մեքենան ուղղորդում ենք ՝ պարզապես թեքելով մեր սարքերը երկու ուղղությամբ: Եվ, մենք կարող ենք նմանակել էֆեկտը ՝ ձեռնոցին կպցնելով արագացուցիչը (իհարկե մի քանի օժանդակ սարքերով): Մենք պարզապես դնում ենք մեր կախարդական ձեռնոցները և թեքում մեր ձեռքերը ձախ կամ աջ, առաջ կամ հետ և տեսնում ենք, թե ինչպես են մեր արևորդները պարում մեր մեղեդու ներքո: Այն ամենը, ինչ մեզանից պահանջվում է անել, դա արագացուցիչի ընթերցումները թարգմանելն է թվային ազդանշանների, որպեսզի արբանյակային շարժիչով շարժիչները կարողանան մեկնաբանել և մշակել մեխանիզմ ՝ այս ազդանշանները թռչող սարքին փոխանցելու համար: Դա իրականացնելու համար մենք կանչում ենք Արդուինոյի և նրա այսօրվա փորձի լավ օգնականներին ՝ 434 ՄՀց հաճախականությամբ աշխատող ՌԴ հաղորդիչ-ընդունիչ զույգ, որը բաց տարածության վրա տալիս է մոտ 100-150 մ հեռավորություն, ինչը նաև մեզ փրկում է գծերից: տեսողության հետ կապված խնդիրներ:

Բավականին սրամիտ հաք, հա՞: Սուզվենք…

Քայլ 1: Հավաքեք ձեր պարագաները

Հավաքեք ձեր պաշարները
Հավաքեք ձեր պաշարները
Հավաքեք ձեր պաշարները
Հավաքեք ձեր պաշարները
Հավաքեք ձեր պաշարները
Հավաքեք ձեր պաշարները
Հավաքեք ձեր պաշարները
Հավաքեք ձեր պաշարները
• Արդուինո Նանո x1
• Արագացուցիչ (ADXL335) x1
• 5V DC շարժիչ + անիվներ x2 յուրաքանչյուրը
• խոշոր եղջերավոր անիվ* x1
• L293D Motor Driver + 16 պին IC վարդակից x1 յուրաքանչյուրը
• 434 ՄՀց ՌԴ հաղորդիչ x1
• 434 ՄՀց ՌԴ ընդունիչ x1
• HT-12E կոդավորիչ IC + 18 փին IC վարդակից x1 յուրաքանչյուրը
• HT-12D ապակոդավորիչ IC + 18 փին IC վարդակից x1 յուրաքանչյուրը
• LM7805 Լարման կարգավորիչ x1
• Pushbutton անջատիչ x2
• Կարմիր LED + 330O դիմադրություն x2 յուրաքանչյուրը
• Դեղին LED + 330O դիմադրություն x1 յուրաքանչյուրը
• Կանաչ LED + 330O դիմադրություն (ըստ ցանկության) x4 յուրաքանչյուրը
• 51kO և 1MO դիմադրիչներ x1 յուրաքանչյուրը
• 10µF ճառագայթային կոնդենսատորներ x2
Մարտկոցներ, մարտկոցի միակցիչներ, USB մալուխ, Jumper լարեր, կանացի վերնագրեր, պտուտակային պտուտակների 2-պինալ տերմինալներ, PCB, Chasis և ձեր սովորական զոդման պարագաներ

Եթե ձեզ հետաքրքրում է, թե ինչու ենք մենք օգտագործում խոշոր եղջերավոր անիվ, բանն այն է, որ ՌԴ հաղորդիչի և ընդունիչի մոդուլներն ունեն ընդամենը 4 տվյալների կապ, ինչը նշանակում է, որ մենք կարող ենք քշել միայն 2 շարժիչ և, հետևաբար, խոշոր եղջերավոր անիվի օգտագործումը աջակցել կառուցվածքին: Այնուամենայնիվ, եթե կարծում եք, որ ձեր ռովերվերը չորս անիվներով ավելի զով տեսք կունենա, մի անհանգստացեք, շուրջը աշխատանք կա: Այս դեպքում պարզապես քերծեք եղջերավոր անիվը ցուցակից և ավելացրեք ևս մեկ զույգ 5V DC շարժիչներ, յուրաքանչյուրը անիվի հետ միասին և սպասեք 3 -րդ քայլի վերջում քննարկված պարզ կոտրմանը:

Ի վերջո, համարձակ մարդկանց համար դիզայնի մեկ այլ փոքր փոփոխության հնարավորություն կա, որը ենթադրում է ձեր սեփական Arduino- ի ինժեներացում: Հաջորդ քայլին անցեք բոնուսային բաժին և ինքներդ համոզվեք: Ձեզ նույնպես կպահանջվեն մի քանի լրացուցիչ պաշարներ ՝ ATmega328P, 28 պին IC վարդակից, 16 ՄՀց բյուրեղային տատանում, երկու 22pF կերամիկական կափարիչ, ևս 7805 լարման կարգավորիչ, ևս 10 μF ճառագայթային կափարիչներ և 10kΩ, 680Ω, 330Ω ռեզիստորներ և այո, մինուս Արդուինոն:

Քայլ 2: Լարացրեք հաղորդիչը

Լարացրեք հաղորդիչը
Լարացրեք հաղորդիչը
Լարացրեք հաղորդիչը
Լարացրեք հաղորդիչը
Լարացրեք հաղորդիչը
Լարացրեք հաղորդիչը
Լարացրեք հաղորդիչը
Լարացրեք հաղորդիչը

Մենք նախագիծը կբաժանենք երկու բաղադրիչի ՝ հաղորդիչի և ստացողի սխեմաների: Հաղորդիչը բաղկացած է արագացուցիչից, Arduino- ից և RF հաղորդիչ մոդուլից, որը զուգորդված է HT-12E կոդավորող IC- ով, բոլորը միացված են ըստ կցված սխեմայի:

Արագացուցիչը, ինչպես ավելի վաղ ներկայացվեց, ծառայում է մեր ձեռքի ժեստերը ճանաչելու համար: Մեր կարիքները բավարարելու համար մենք կօգտագործենք երեք առանցքի արագացուցիչ (հիմնականում երեք մեկ առանցքի արագացուցիչ): Այն կարող է օգտագործվել բոլոր երեք հարթություններում արագացումը չափելու համար, և ինչպես երևի կռահեցիք, այն տալիս է ոչ թե մեկ, այլ երեք անալոգային արժեքների հավաքածու ՝ համեմատած իր երեք առանցքների (x, y և z): Իրականում, մեզ անհրաժեշտ է միայն արագացում x և y առանցքների երկայնքով, քանի որ մենք կարող ենք ռովեր վարել միայն չորս ուղղություններով ՝ հետամնաց կամ հետընթաց (այսինքն ՝ y առանցքի երկայնքով) և ձախ կամ աջ (այսինքն ՝ x առանցքի երկայնքով): Եթե մենք անօդաչու թռչող սարք կառուցեինք, մեզ անհրաժեշտ կլիներ z առանցքը, որպեսզի ժեստերի միջոցով կարողանայինք նաև վերահսկել դրա վերելքն ու իջնելը: Ամեն դեպքում, այս անալոգային արժեքները, որոնք տալիս է արագացուցիչը, պետք է փոխակերպվեն թվային ազդանշանների, որպեսզի կարողանան շարժիչները շարժել: Այս մասին հոգ է տանում Arduino- ն, որը նաև այդ ազդանշանները փոխանցումից հետո ռովեր է փոխանցում ՌԴ հաղորդիչ մոդուլի միջոցով:

ՌԴ հաղորդիչն ունի միայն մեկ աշխատանք. Փոխանցել «սերիական» տվյալները, որոնք առկա են 3-րդ կապում `ալեհավաքից 1-ին: Սա պաշտպանում է HT-12E- ի օգտագործումը ՝ 12 բիթանոց սերիական տվյալների զուգահեռ ծածկագրիչ, որը հավաքում է Arduino- ից մինչև 4 բիթ զուգահեռ տվյալներ AD8- ից AD11 տողերում ՝ դրանով իսկ մեզ հնարավորություն տալով մինչև 24 = 16 տարբեր I/O տարբեր համակցությունների տեղ, ի տարբերություն ՌԴ հաղորդիչի տվյալների մեկ քորոցի: Մնացած 8 բիթերը ՝ կազմված A0- ից A7 տողերից ՝ ծածկագրիչի վրա, կազմում են հասցեի բայթ, ինչը հեշտացնում է ՌԴ հաղորդիչի համապատասխանեցումը ՌԴ համապատասխան ստացողի հետ: Այնուհետև 12 բիթերը հավաքվում և սերիալիզացվում են, և փոխանցվում են ՌԴ հաղորդիչի տվյալների քորոցին, որն էլ իր հերթին տվյալները փոխակերպում է 434 ՄՀց կրիչի ալիքի վրա և դրանք դուրս է հանում ալեհավաքի միջոցով 1-ին կապում:

Կոնցեպտուալ կերպով, 434 ՄՀց հաճախականությամբ լսող ՌԴ ընդունիչ պետք է կարողանա ընդհատել, վերափոխել և վերծանել այս տվյալները: Այնուամենայնիվ, HT-12E- ի և HT-12D- ի գործընկերների (12 բիթանոց սերիալ-զուգահեռ տվյալների ապակոդավորիչ) հասցեների տողերը մեզ թույլ են տալիս ՌԴ հաղորդիչ-ընդունիչ զույգը դարձնել եզակի ՝ տվյալները ուղղելով միայն դեպի նախատեսված ընդունիչ, դրանով իսկ սահմանափակելով հաղորդակցությունը բոլոր մյուսների հետ: Մեզանից պահանջվում է միայն միացնել երկու ճակատների հասցեների տողերը: Օրինակ, քանի որ մենք հիմնավորել ենք մեր HT-12E- ի հասցեների բոլոր տողերը, նույնը պետք է անենք ստացողի վերջում գտնվող HT-12D- ի դեպքում, հակառակ դեպքում ռովերը չի կարողանա ազդանշաններ ստանալ: Այս կերպ, մենք կարող ենք նաև վերահսկել բազմաթիվ ռովերներ մեկ հաղորդիչով ՝ միատեսակ կազմաձևելով ընդունիչներից յուրաքանչյուրի HT-12Ds հասցեների տողերը: Կամ, մենք կարող ենք հագնել երկու ձեռնոց, որոնցից յուրաքանչյուրը կցված է հաղորդիչային շղթայով, որը պարունակում է հասցեի գծի հստակ կազմաձև (ասենք, մեկը հասցեի բոլոր գծերը հիմնավորված են, իսկ մյուսը `բոլորը բարձր պահած, կամ մեկը` մեկ տողը հիմնավորված, իսկ մնացած յոթը պահված են) բարձր, իսկ մյուսը ՝ երկու գծերով հիմնավորված, իսկ մնացած վեցը բարձր պահած կամ դրա ցանկացած այլ համադրություն) և յուրաքանչյուրը մի քանի նույնական կազմաձևված ռովերներ ղեկավարող: Խաղացեք մաեստրո android սիմֆոնիայում:

Շրջանակը հավաքելիս պետք է նշել մի կարևոր բան `Rosc- ի արժեքը: HT-12E- ն 15-րդ և 16-րդ կապերի միջև ունի ներքին տատանման միացում, որը միացված է այդ կապանքների միջև Rosc կոչվող դիմադրիչը միացնելու միջոցով: Rosc- ի համար ընտրված արժեքը իրականում որոշում է տատանումների հաճախականությունը, որը կարող է տարբեր լինել `կախված մատակարարման լարումից: Rosc- ի համար համապատասխան արժեք ընտրելը շատ կարևոր է HT-12E- ի աշխատանքի համար: Իդեալում, HT-12E- ի տատանումների հաճախականությունը պետք է լինի 1/50 անգամ HT-12D- ի գործընկերից: Հետևաբար, քանի որ մենք աշխատում ենք 5V- ով, մենք ընտրեցինք 1MΩ և 51kΩ ռեզիստորներ ՝ որպես Rosc համապատասխանաբար HT-12E և HT-12D սխեմաների համար: Եթե դուք նախատեսում եք միացնել սխեմաները մատակարարման այլ լարման վրա, դիմեք «Օսիլյատոր հաճախականություն ընդդեմ մատակարարման լարման» գրաֆիկին `կցված HT-12E տվյալների թերթի 11-րդ էջում` որոշելու տատանման ճշգրիտ հաճախականությունը և օգտագործվող դիմադրությունը:

Բացի այդ, որպես կողմնակի նշում, մենք այստեղ կօգտագործենք կին վերնագրեր (որոնք ծառայում են նույն նպատակին, ինչպիսին է IC վարդակները) արագացուցիչը, ՌԴ հաղորդիչը և Arduino- ն միացնելու համար, դրանք ուղղակիորեն PCB- ին զոդելու փոխարեն: Մտադրությունը `մի փոքր բաղադրիչի բազմակի օգտագործման տեղավորում: Ասա, որոշ ժամանակ է, ինչ դու նախագծել ես քո ժեստերով կառավարվող ռովերը և այն պարզապես նստած է ՝ կիսով չափ փոշով պատված, քո գավաթի դարակի վերևում, և դու ընկնում ես մեկ այլ հիանալի ուսանելի բանի վրա, որը խթանում է արագացուցիչի արդյունավետությունը: Այսպիսով, ինչ ես դու անում? Դուք պարզապես այն դուրս եք մղում ձեր ռովերից և մղում այն դեպի ձեր նոր միացում: Կարիք չկա կանչել «ամազոնացիներին» ՝ ձեզ նորը ձեռք բերելու համար.- p

Բոնուս. Հեռացրեք Arduino- ից, իսկ մի՛ արեք:

Եթե դուք մի փոքր ավելի արկածախնդիր եք զգում, և հատկապես, եթե կարծում եք, որ այս գեղեցիկ ձևավորված հրաշքը (Arduino- ն, իհարկե) նման չնչին գործի համար ծախսելը մի փոքր ավելորդ է, համբերեք ինձ մի փոքր ավելի:; իսկ եթե ոչ, ազատ զգացեք անցնել հաջորդ քայլին:

Մեր նպատակն է Arduino- ն (իրականում Arduino- ի ուղեղը. Այո, ես խոսում եմ ATmega IC- ի մասին) թիմի մշտական անդամ դարձնելը: ATmega- ն ծրագրված կլինի անընդհատ կատարել միայն մեկ ուրվագիծ, որպեսզի այն կարողանա ծառայել որպես շրջանի հավերժական մաս, ճիշտ այնպես, ինչպես HT-12E- ը ՝ պարզապես IC, պարզապես այնտեղ նստած ՝ անելով այն, ինչ ենթադրվում է: Մի՞թե սա այնպիսին չէ, ինչպիսին պետք է լինի իրական ներդրված համակարգը:

Համենայն դեպս, այս արդիականացումն իրականացնելու համար պարզապես փոփոխեք սխեման ՝ համաձայն երկրորդ կցված սխեմատիկայի: Այստեղ մենք պարզապես Arduino- ի իգական վերնագրերը փոխարինում ենք ATmega- ի համար նախատեսված IC վարդակով, IC- ի վերականգնման քորոցին (PIN 1) ավելացնում ենք 10K քաշող դիմադրող և այն 9-րդ և 10-րդ կապերի միջև դրսում արտաքին ժամացույցով պոմպում: Unfortunatelyավոք, եթե մենք վերացնենք Arduino- ն, մենք նույնպես բաց կթողնենք նրա ներկառուցված լարման կարգավորիչները. ergo, մենք պետք է կրկնօրինակենք LM7805 միացումը, որը մենք օգտագործել էինք ստացողի համար այստեղ: Բացի այդ, մենք նաև օգտագործում ենք լարման բաժանարար ՝ արագացուցիչը սնուցելու համար պահանջվող 3.3 Վ -ը գծելու համար:

Այժմ, այստեղ միակ մյուս գրավումը ATmega- ի ծրագրավորումն է `իր աշխատանքը կատարելու համար: Այնուամենայնիվ, դուք պետք է սպասեք դրան մինչև 4 -րդ քայլը: Ուրեմն, մնացեք լարված…

Քայլ 3: Եվ, Ստացողը

Եվ, Ստացողը
Եվ, Ստացողը
Եվ, Ստացողը
Եվ, Ստացողը
Եվ, Ստացողը
Եվ, Ստացողը
Եվ, Ստացողը
Եվ, Ստացողը

Ստացողը բաղկացած է ՌԴ ստացողի մոդուլից, որը զուգորդված է HT-12D ապակոդավորող IC- ով և մի զույգ DC շարժիչներով, որոնք աշխատում են L293D շարժիչի վարորդի օգնությամբ, բոլորը միացված են ըստ կցված սխեմայի:

ՌԴ ստացողի միակ գործը կրիչի ալիքի ապամոդուլացումն է (ստացված է իր ալեհավաքի միջոցով 1-ին կապում) և ստացված «սերիական» տվյալները 7-րդ կապում, որտեղից այն վերցվում է HT-12D- ի կողմից ապազերծման համար: Այժմ, ենթադրելով, որ HT-12D- ի հասցեական տողերը (A0- ից մինչև A7) կազմաձևված են իր HT-12E- ի նույնականին, տվյալների 4 զուգահեռ բիթերը հանվում և փոխանցվում են տվյալների գծերի (D8- ից D11) միջոցով HT-12D, շարժիչի վարորդին, որն իր հերթին մեկնաբանում է այս ազդանշանները շարժիչները վարելու համար:

Կրկին ուշադրություն դարձրեք Rosc- ի արժեքին: HT-12D- ն նույնպես ունի ներքին տատանումների միացում 15-րդ և 16-րդ կապերի միջև, ինչը միացված է այդ կապանքների միջև Rosc կոչվող դիմադրիչը միացնելով: Rosc- ի համար ընտրված արժեքը իրականում որոշում է տատանումների հաճախականությունը, որը կարող է տարբեր լինել `կախված մատակարարման լարումից: Rosc- ի համար համապատասխան արժեք ընտրելը շատ կարևոր է HT-12D- ի աշխատանքի համար: Իդեալում, HT-12D- ի տատանումների հաճախականությունը պետք է 50 անգամ գերազանցի HT-12E- ի գործընկերին: Հետևաբար, քանի որ մենք աշխատում ենք 5V- ով, մենք ընտրեցինք 1MΩ և 51kΩ ռեզիստորներ ՝ որպես Rosc համապատասխանաբար HT-12E և HT-12D սխեմաների համար: Եթե դուք նախատեսում եք միացնել սխեմաները մատակարարման այլ լարման վրա, դիմեք «Օսիլյատոր հաճախականություն ընդդեմ մատակարարման լարման» գրաֆիկին ՝ կցված HT-12D տվյալների թերթի 5-րդ էջում, որոշելու համար օգտագործվող տատանումների ճշգրիտ հաճախականությունը և դիմադրությունը:

Բացի այդ, մի մոռացեք ՌԴ ստացողի կին վերնագրերը:

Ptionանկության դեպքում LED- ը կարող է միացվել 330Ω ընթացիկ սահմանափակող դիմադրության միջոցով HT-12D- ի տվյալների 4 կապումներից յուրաքանչյուրին, որպեսզի օգնի որոշել այդ կապում ստացված բիթը: LED- ը լուսավորվում է, եթե ստացված բիթը ԲԱՐՁՐ է (1) և մարում է, եթե ստացված բիտը OWԱOWՐ է (0): Այլապես, մեկ LED- ը կարող է կապված լինել HT-12D- ի VT կապին (կրկին 330Ω հոսանքի սահմանափակող դիմադրության միջոցով), որը լուսավորվելու է վավեր փոխանցման դեպքում:

Հիմա, եթե դուք փնտրում եք կոտրում այն շարժիչներով, որոնց մասին ես խոսում էի առաջին քայլում, դա անիմանալի հեշտ է: Պարզապես միացրեք երկու շարժիչները յուրաքանչյուր հավաքածուի զուգահեռ, ինչպես ցույց է տրված երկրորդ սխեմատիկայում: Սա աշխատում է այնպես, ինչպես ենթադրվում էր, քանի որ յուրաքանչյուր հավաքածուի շարժիչները (առջևի և հետևի շարժիչները ձախից և առջևի և հետևի շարժիչները աջից) երբեք չեն շարժվում հակառակ ուղղություններով: Այսինքն ՝ ռովերը ճիշտ թեքելու համար ձախ և առջևի և հետևի շարժիչները պետք է երկուսն էլ առաջ մղվեն, իսկ աջից ՝ առջևի և հետևի շարժիչները երկուսն էլ պետք է քշվեն հետ: Նմանապես, մարագնացը ձախ թեքելու համար ձախ և առջևի և հետևի շարժիչները պետք է երկուսն էլ հետ մղվեն, իսկ աջից ՝ առջևի և հետևի շարժիչները, երկուսն էլ պետք է առաջ շարժվեն: Հետևաբար, անվտանգ է մի զույգ լարումներով սնվել մի շարք երկու շարժիչներին: Եվ դրա լուծման ճանապարհը պարզապես զուգահեռաբար նրանց շարժիչները միացնելն է:

Քայլ 4: Անցեք օրենսգրքին

Անցնել օրենսգրքին
Անցնել օրենսգրքին

Մնում է ընդամենը մեկ բան անել, որպեսզի սարքը գործի դրվի: Այո, ճիշտ կռահեցիք: (Հուսով եմ, որ դա արեցիք) Մենք դեռ պետք է արագացուցիչի ցուցանիշները թարգմանենք այնպիսի ձևի, որը կարող է մեկնաբանել վարորդը `շարժիչները վարելու ունակություն ունենալու համար: Եթե մտածում եք, որ քանի որ արագացուցիչի ընթերցումները անալոգային են, և շարժիչն ակնկալում է թվային ազդանշաններ, մենք ստիպված կլինենք ինչ -որ ADC իրականացնել, լավ, ոչ տեխնիկապես, բայց դա այն է, ինչ մենք պետք է անենք: Եվ դա բավականին պարզ է:

Մենք գիտենք, որ արագացուցիչը չափում է գրավիտացիոն արագացումը գծային առանցքի երկայնքով, և որ այս արագացումը ներկայացված է որպես գետնի և մատակարարման լարման միջև տատանվող լարման մակարդակ, որը մեր միկրոկառավարիչը կարդում է որպես 0 -ից մինչև 1023 -ի միջև ընկած անալոգային արժեք: 3.3V- ով աշխատելով արագացուցիչը, նպատակահարմար է, որ 10-բիթանոց ADC- ի (որը ինտեգրված է Armeino- ի ATmeaga- ում) անալոգային հղումը սահմանենք 3.3V: Դա պարզապես ավելի պարզ կդարձնի հասկանալը. չնայած, դա շատ կարևոր չէ մեր փոքրիկ փորձի համար, նույնիսկ եթե դա չանենք (մենք պարզապես պետք է մի փոքր շտկենք ծածկագիրը): Այնուամենայնիվ, դա անելու համար մենք պարզապես Arduino- ի (PIN 21 -ը ATmega- ի վրա) կապում ենք 3.3V- ի հետ և նշում ենք կոդի այս փոփոխությունը `analogReference (EXTERNAL) զանգահարելով:

Այժմ, երբ մենք արագացուցիչը հարթ և անալոգային ենք դնում: Կարդացեք արագացումը x և y առանցքների երկայնքով (հիշեք. Մեզ միայն այս երկու առանցքն է պետք), մենք ստանում ենք մոտ 511 արժեք (այսինքն ՝ 0 -ից 1023 -ի միջև կես ճանապարհ), ինչը պարզապես ասելով, որ այս առանցքների երկայնքով 0 արագացում կա: Փաստի մանրամասները չփորփրելու փոխարեն, պարզապես պատկերացրեք սա որպես գրաֆիկի x և y առանցքներ, որոնց արժեքը 511 -ը նշանակում է սկզբնաղբյուրը և 0 և 1023 վերջնակետերը, ինչպես պատկերված է նկարում. կողմնորոշեք արագացուցիչը այնպես, որ նրա կապումներն ուղղված լինեն ներքև և պահվեն ձեզ ավելի մոտ, այլապես կարող եք շրջել/փոխանակել առանցքները: Սա նշանակում է, որ եթե մենք արագացուցիչը թեքում ենք աջ, ապա պետք է կարդալ 511-ից մեծ արժեք x առանցքի երկայնքով, իսկ եթե արագաչափը թեքենք ձախ, ապա պետք է ստանանք 511-ից ցածր արժեք x- առանցքի երկայնքով:. Նմանապես, եթե մենք արագացուցիչը թեքում ենք առաջ, ապա y առանցքի երկայնքով պետք է կարդալ 511-ից մեծ արժեք, իսկ եթե արագացուցիչը հետ ենք թեքում, y- առանցքի երկայնքով պետք է կարդալ 511-ից ցածր արժեք: Եվ այսպես, մենք կոդով եզրակացնում ենք, թե որ ուղղությամբ պետք է շարժվի արբանյակը: Բայց սա նաև նշանակում է, որ մենք պետք է արագացուցիչը իսկապես կայուն և հարթ հարթ մակերեսին զուգահեռ պահենք, որպեսզի կարողանանք կարդալ 511 -ը երկու առանցքների երկայնքով: որպեսզի մարսագնացը դեռ կայանած լինի: Այս առաջադրանքը մի փոքր թեթևացնելու համար մենք սահմանում ենք սահմաններ կազմող որոշակի շեմեր, ինչպես պատկերված է նկարում, այնպես որ արբանյակը մնում է անշարժ այնքան ժամանակ, քանի դեռ x և y ընթերցումները գտնվում են սահմաններում, և մենք հաստատ գիտենք, որ այն պետք է տեղադրվի շարժումը, երբ շեմը գերազանցվի:

Օրինակ, եթե y- առանցքը կարդում է 543-ը, մենք գիտենք, որ արագացուցիչը թեքված է առաջ, հետևաբար մենք պետք է քշենք առաջ շարժիչը: Մենք դա անում ենք ՝ սահմանելով D2 և D4 HIGH կապերը և D3 և D5 OWԱՐ կապերը: Այժմ, քանի որ այս կապումներն ուղղակիորեն միացված են HT-12E- ին, ազդանշանները սերիալացվում են և դուրս են մղվում ՌԴ հաղորդիչից, որպեսզի որսան միայն ռովերի վրա նստած ՌԴ ընդունիչից, որը HT-12D- ի օգնությամբ ապազերայնացնում է ազդանշանները և դրանք փոխանցում է L293D- ին, որն իր հերթին մեկնաբանում է այս ազդանշանները և շարժիչներն առաջ մղում

Թերևս գուցե ցանկանաք փոխել այս շեմերը ՝ զգայունությունը չափագրելու համար: Դա անելու ամենահեշտ ձևն այն է, որ պարզապես արագացուցիչը միացնեք ձեր Arduino- ին և կատարեք էսքիզ, որը x և y ընթերցումները թքում է սերիական մոնիտորին: Այժմ պարզապես մի փոքր շարժեք արագացուցիչը, նայեք ընթերցումներին և որոշեք շեմերը:

Եվ, վերջ! Վերբեռնեք կոդը ձեր Arduino- ում և վայելեք !! Կամ, գուցե ոչ այնքան շուտ.

Տարբերակ Ա. Օգտագործեք USB սերիական սարք, ինչպիսին է FTDI FT232 հիմնական բեկման տախտակը: Պարզապես անցեք լարերը TTL վերնագրից մինչև ATmega- ի համապատասխան կապում ՝ ստորև բերված քարտեզագրման համաձայն.

Կապեր Breakout Board- ում Քորոցներ միկրոկոնտրոլերի վրա
DTR/GRN RST/Վերականգնել (Pin 1) 0.1 μF կափարիչի միջոցով
Rx Tx (PIN 3)
Tx Rx (PIN 2)
Vcc +5 վ ելք
CTS (չօգտագործված)
Գնդ Գետնին

Այժմ միացրեք USB մալուխի մի ծայրը ճեղքման տախտակին, իսկ մյուսը ՝ ձեր համակարգչին և վերբեռնեք կոդը, ինչպես սովորաբար անում եք. Գործարկեք Arduino IDE- ն, ընտրեք համապատասխան սերիական նավահանգիստ, սահմանեք տախտակի տեսակը, կազմեք ուրվագիծը և սեղմեք վերբեռնումը:.

Տարբերակ B. Օգտագործեք UNO, եթե ինչ -որ մեկը պառկած է ինչ -որ տեղ: Պարզապես միացրեք ձեր ATmega- ն UNO- ին, վերբեռնեք կոդը, ինչպես սովորաբար կանեիք, դուրս հանեք IC- ն և այն հետ մղեք հաղորդիչի շղթայի մեջ: Նույնքան հեշտ, որքան կարկանդակը:

Այս տարբերակներից որևէ մեկը պետք է աշխատի ՝ ենթադրելով, որ դուք բավական խելացի եք, որ նախքան ձեր ATmega- ն ձեռքով այրեք բեռնախցիկը, կամ, եթե նույնիսկ ավելի խելացի լինեք, առաջին հերթին արդեն տեղադրված բեռնիչով ATmega գնելու դեպքում: Եթե ոչ, ապա առաջ գնացեք և դա արեք ՝ հետևելով այստեղ նկարագրված քայլերին:

Ավելին, մենք պաշտոնապես ավարտեցինք: Հուսով եմ, որ ձեզ դուր եկավ այս տարօրինակ երկար ուսանելի ծրագիրը: Շարունակեք, ավարտեք ձեր ռովերի ստեղծումը, եթե դեռ ավարտված չեք, որոշ ժամանակ խաղացեք դրա հետ և վերադառնաք ներքևում գտնվող մեկնաբանությունների հատվածը ողողելով հարցադրումներով և (կամ) կառուցողական քննադատություններով:

Շնորհակալություն

Պ. Ս. Պատճառը, որ ես չեմ վերբեռնել ավարտված նախագծի որևէ լուսանկար, այն է, որ ես ինքս չեմ ավարտել այն: Այն կառուցելու կես ճանապարհին ես մտածեցի մի քանի հավելումների մասին, ինչպիսիք են արագության կառավարումը, խոչընդոտներից խուսափելը և գուցե թռիչքի վրա LCD- ը, որն իրականում այնքան էլ դժվար չէ, եթե միկրոկոնտրոլեր օգտագործենք և՛ հաղորդիչ, և՛ ընդունիչ ծայրերում: Բայց ինչու՞ դա չանել դժվար ճանապարհով: Այսպիսով, ես այժմ աշխատում եմ այդ ուղղությամբ և թարմացում կներկայացնեմ, երբ այն որևէ պտուղ տա: Այնուամենայնիվ, ես փորձարկեցի ծածկագիրը և դիզայնը `իմ նախնական նախագծերից մեկի մոդուլների միջոցով կառուցված արագ նախատիպի օգնությամբ. կարող եք դիտել տեսանյութը այստեղ:

Խորհուրդ ենք տալիս: