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

Arduino 2-in-1 գնացքի մոդել ՝ 4 քայլ
Arduino 2-in-1 գնացքի մոդել ՝ 4 քայլ

Video: Arduino 2-in-1 գնացքի մոդել ՝ 4 քայլ

Video: Arduino 2-in-1 գնացքի մոդել ՝ 4 քայլ
Video: REAL RACING 3 LEAD FOOT EDITION 2024, Նոյեմբեր
Anonim
Arduino 2-in-1 մոդելային գնացքի վերահսկիչ
Arduino 2-in-1 մոդելային գնացքի վերահսկիչ

Քառասուն տարի առաջ ես նախագծեցի op-amp- ի վրա հիմնված գնացքի շարժիչ ՝ մի քանի ընկերների համար, այնուհետև մոտ չորս տարի առաջ ես այն վերստեղծեցի ՝ օգտագործելով PIC միկրոկոնտրոլեր: Arduino- ի այս նախագիծը վերստեղծում է PIC- ի տարբերակը, բայց նաև ավելացնում է Bluetooth- ի միացում օգտագործելու հնարավորությունը `մեխանիկական անջատիչների փոխարեն` շնչափողի, արգելակի և ուղղության կառավարման համար: Թեև իմ ներկայացրած դիզայնը նախատեսված է 12 վոլտ մոդելի երկաթուղային շարժիչի համար, այն հեշտությամբ կարող է փոփոխվել մի շարք այլ DC շարժիչների կառավարման ծրագրերի համար:

Քայլ 1. Իմպուլսի լայնության մոդուլյացիա (PWM)

Իմպուլսի լայնության մոդուլյացիա (PWM)
Իմպուլսի լայնության մոդուլյացիա (PWM)

Ձեզանից նրանց համար, ովքեր ծանոթ չեն PWM- ին, այն այնքան սարսափելի չէ, որքան թվում է: Այն, ինչ իրականում նշանակում է մեր պարզ շարժիչային հսկողության կիրառման համար, այն է, որ մենք առաջացնում ենք որոշակի հաճախականության քառակուսի ալիք, այնուհետև մենք փոխում ենք աշխատանքային ցիկլը: Պարտական ցիկլը սահմանվում է որպես ժամանակի հարաբերակցություն, երբ ելքը տրամաբանական բարձր է ալիքի ձևի ժամանակաշրջանի համեմատ: Դուք կարող եք դա հստակ տեսնել վերևի գծապատկերում ՝ վերին ալիքի ձևը 10% աշխատանքային ցիկլով, միջին ալիքի ձևը ՝ 50% աշխատանքային ցիկլով, իսկ ներքևի ալիքը ՝ 90% աշխատանքային ցիկլով: Յուրաքանչյուր ալիքի ձևի վրա ծածկված գծանշված գծը ներկայացնում է շարժիչի կողմից դիտվող համարժեք DC լարումը: Հաշվի առնելով, որ Arduino- ն ունի ներկառուցված PWM ունակություն, իրոք բավականին պարզ է այս տեսակի DC շարժիչի կառավարման ստեղծումը: PWM- ի օգտագործման մեկ այլ առավելությունն այն է, որ այն օգնում է շարժիչը զերծ պահել անհանգիստ գործարկումից, որը կարող է տեղի ունենալ ուղիղ DC- ի օգտագործման ժամանակ: PWM- ի թերություններից մեկն այն է, որ երբեմն շարժիչից լսելի աղմուկ է լինում PWM հաճախականությամբ:

Քայլ 2: Սարքավորումներ

Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ

Առաջին նկարը ցույց է տալիս Arduino- ի միացումները անջատիչների և LM298 շարժիչի վարորդի մոդուլի համար: Arduino- ի ներսում կան թույլ ձգվող դիմադրիչներ, այնպես որ անջատիչների համար ձգվող դիմադրիչներ անհրաժեշտ չեն: Ուղղության անջատիչը պարզ SPST (մեկ բևեռ մեկանգամյա նետում) անջատիչ է: Throttle- ի և Brake- ի անջատիչները ցուցադրվում են որպես սովորաբար բաց, ակնթարթային շփման կոճակներ:

Երկրորդ նկարը ցույց է տալիս Arduino- ի միացումները Bluetooth մոդուլի և LM298 շարժիչի շարժիչի մոդուլի համար: Bluetooth TXD ելքը միանում է անմիջապես Arduino RX սերիական մուտքին:

Երրորդ նկարը L298N երկակի H կամուրջի մոդուլ է: LM298 մոդուլն ունի 5 վոլտ կարգավորիչ, որը կարող է միացվել թռիչքի միջոցով: Մեզ անհրաժեշտ է +5 վոլտ Arduino- ի և Bluetooth- ի համար, բայց մենք ցանկանում ենք +12 վոլտ շարժիչը վարելու համար: Այս դեպքում մենք կիրառում ենք +12 վոլտ L298N- ի « +12V հզորության» մուտքի վրա և «5V միացնելու» թռիչքը թողնում ենք տեղում: Սա թույլ է տալիս 5 վոլտ կարգավորիչին դուրս գալ մոդուլի «+5 հզորություն» միացում: Միացրեք այն Arduino- ին և Bluetooth- ին: Մի մոռացեք միացնել գրունտի լարերը +12 մուտքի և +5 ելքի համար «power GND» մոդուլին:

Մենք ցանկանում ենք, որ շարժիչի ելքային լարումը տատանվի ՝ հիմնվելով Arduino- ի կողմից առաջացած PWM- ի վրա, այլ ոչ թե պարզապես միացված կամ լրիվ անջատված լինելու փոխարեն: Դա անելու համար մենք հեռացնում ենք թռիչքները «ՀԷNA» -ից և «ENB» - ից և միացնում ենք մեր Arduino PWM ելքը մոդուլի «ՀԷNA» -ին: Հիշեք, որ փաստացի միացման քորոցը տախտակի եզրին ամենամոտն է («մուտքային» կապում): Յուրաքանչյուր միացման համար հետևի քորոցը +5 վոլտ է, այնպես որ մենք ուզում ենք համոզվել, որ դրան չենք միանում:

Մոդուլի «IN1» և «IN2» կապակցումները միացված են համապատասխան Arduino կապումներին: Այդ կապումներն են վերահսկում շարժիչի ուղղությունը, և, այո, կա մի լավ պատճառ, որը թույլ է տալիս Arduino- ին կառավարել դրանք ՝ պարզապես անջատիչը մոդուլին միացնելու փոխարեն: Թե ինչու, ծրագրային քննարկման ժամանակ կտեսնենք:

Քայլ 3: Bluetooth մոդուլ

Bluetooth մոդուլ
Bluetooth մոդուլ

Այստեղ ցուցադրված պատկերը բնորոշ է առկա Bluetooth մոդուլներին: Երբ գնում եք փնտրում, կարող եք որոնել «HC-05» և HC-06 պայմաններով: Երկուսի միջև եղած տարբերությունները գտնվում են որոնվածի մեջ և սովորաբար տախտակի վրա կապում են: Վերը նկարը HC-06 մոդուլի է և գալիս է պարզեցված որոնվածով, որը թույլ է տալիս միայն շատ հիմնական կազմաձևում: Այն նաև սահմանվում է որպես «Ստրուկ» միայն Bluetooth սարք: Պարզ ասած, դա նշանակում է, որ այն կարող է արձագանքել միայն «Վարպետ» սարքի հրամաններին և չի կարող ինքնուրույն հրաման տալ: HC-05 մոդուլն ունի ավելի շատ կազմաձևման հնարավորություններ և կարող է սահմանվել որպես «Վարպետ» կամ «Ստրուկ» սարք: HC-05- ը սովորաբար ունենում է վեց կապում `HC-06- ի համար վերը նշված չորս քառորդների փոխարեն: Պետական փինն իրականում կարևոր չէ, բայց բանալին (երբեմն այլ անուններով, օրինակ ՝ «EN») անհրաժեշտ է, եթե ցանկանում եք որևէ կազմաձևում կատարել: Ընդհանրապես, մոդուլները որևէ կոնֆիգուրացիայի կարիք չունեն, եթե ձեզ դուր է գալիս 9600 լռելյայն բաուդ արագությունը և ձեզ չի հետաքրքրում մոդուլին հատուկ անուն տալը: Ես ունեմ մի քանի նախագիծ, որտեղ ես օգտագործում եմ դրանք, այնպես որ ես սիրում եմ դրանք համապատասխանաբար անվանել:

Bluetooth մոդուլների կազմաձևման համար անհրաժեշտ է կամ գնել կամ կառուցել ինտերֆեյս RS-232 սերիալային պորտին կամ USB պորտին: Այս գրառման մեջ ես չեմ անդրադառնա, թե ինչպես կարելի է կառուցել մեկը, բայց դուք պետք է կարողանաք տեղեկատվություն գտնել համացանցում: Կամ պարզապես գնեք ինտերֆեյս: Կազմաձևման հրամաններն օգտագործում են AT հրամաններ, ինչպես հին ժամանակներում օգտագործվում էին հեռախոսի մոդեմներով: Ես կցել եմ այստեղ օգտագործողի ձեռնարկ, որը ներառում է AT- ի հրամանները յուրաքանչյուր մոդուլի տեսակի համար: Պետք է նշել, որ HC-06- ը պահանջում է UPPERCASE հրամաններ, և հրամանների տողը պետք է ավարտվի 1 վայրկյանի ընթացքում: Դա նշանակում է, որ որոշ ավելի երկար տողեր այնպիսի բաների համար, ինչպիսիք են բաուդ փոխարժեքները փոխելը, պետք է կտրվեն և տեղադրվեն ձեր տերմինալային ծրագրում, կամ ուղարկելու համար պետք է ստեղծեք տեքստային ֆայլեր: UPPERCASE պահանջը միայն այն դեպքում, եթե փորձում եք ուղարկել կազմաձևման հրամաններ: Կանոնավոր հաղորդակցության ռեժիմը կարող է ընդունել ցանկացած 8 բիթանոց տվյալներ:

Քայլ 4: Softwareրագրակազմ

Softwareրագիրը բավականին պարզ է ինչպես ձեռքով, այնպես էլ Bluetooth տարբերակի համար: Bluetooth տարբերակը ընտրելու համար պարզապես մեկնաբանեք «#define BT_Ctrl» հայտարարությունը:

Երբ ես գրում էի PIC ծածկագիրը, ես փորձարկեցի PWM հաճախականությունը և վերջապես կարգավորեցի 500-Հց հաճախականությունը: Ես հայտնաբերեցի, որ եթե հաճախականությունը չափազանց բարձր էր, ապա LM298N մոդուլը ի վիճակի չէր բավականաչափ արագ արձագանքել իմպուլսներին: Դա նշանակում էր, որ լարման ելքը գծային չէր և կարող էր մեծ թռիչքներ կատարել: Arduino- ում ներկառուցված են PWM հրամաններ, բայց դրանք միայն թույլ են տալիս փոխել աշխատանքային ցիկլը և ոչ թե հաճախականությունը: Բարեբախտաբար, հաճախականությունը մոտ 490 Հց է, այնպես որ բավական մոտ է 500 Հց-ին, որը ես օգտագործել եմ PIC- ում:

Գնացքի շնչափողի «առանձնահատկություններից» մեկը արագացման և արգելակման թափի զգացումն է ՝ նմանակելու, թե ինչպես է աշխատում իրական գնացքը: Դա իրականացնելու համար պարզ ժամանակային հետաձգում է տեղադրվում ծրագրաշարի ձեռնարկի տարբերակի օղակում: Shownուցադրված արժեքով 0 -ից 12 վոլտ կամ 12 վոլտից զրոյին վերադառնալը տևում է մոտ 13 վայրկյան: Հետաձգումը կարող է հեշտությամբ փոփոխվել ավելի երկար կամ կարճ ժամանակով: Միակ դեպքը, երբ թափը ուժի մեջ չէ, այն է, երբ փոխվում է Ուղղության անջատիչը: Պաշտպանության նպատակով PWM- ի աշխատանքային ցիկլը անմիջապես սահմանվում է 0%, երբ այս անջատիչը փոխվի: Դա, ըստ էության, ուղղության անջատիչը դարձնում է նաև կրկնակի արտակարգ արգելակ:

Ուղղության անջատիչի անհապաղ գործարկումն ապահովելու համար ես դրա ծածկագիրը դնում եմ ընդհատումների կարգավորիչի մեջ: Դա նաև թույլ է տալիս մեզ օգտագործել «ընդհատել փոփոխության» գործառույթը, այնպես որ կարևոր չէ ՝ փոփոխությունը ցածրից բարձր է, թե բարձրից ցածր:

Bluetoothրագրաշարի Bluetooth տարբերակը օգտագործում է մեկ տառի հրամաններ ՝ առաջ, հետ, արգելակ և շնչափող գործառույթները գործարկելու համար: Փաստորեն, ստացված հրամանները փոխարինում են ձեռքի անջատիչներին, բայց առաջացնում են նույն պատասխանները: Bluetooth- ի կառավարման համար օգտագործվող ծրագիրը հաջորդ նախատիպերով կոչվում է «Bluetooth սերիական վերահսկիչ»: Այն թույլ է տալիս կարգավորել վիրտուալ ստեղնաշար և սահմանել ձեր սեփական հրամանատարական տողերը և անունները յուրաքանչյուր բանալու համար: Այն նաև թույլ է տալիս սահմանել կրկնելու արագություն, այնպես որ ես Արգելակի և շնչափողի կոճակները դրել եմ 50ms- ի վրա ՝ մոտ 14 վայրկյան թափ հաղորդելու համար: Ես անջատեցի կրկնելու գործառույթը Forward և Reverse կոճակների համար:

Վերջ այս գրառման համար: Ստուգեք իմ մյուս հրահանգները: Եթե դուք հետաքրքրված եք PIC միկրոկառավարիչների նախագծերով, այցելեք իմ կայքը ՝ www.boomerrules.wordpress.com

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