Բովանդակություն:
- Քայլ 1. Իմպուլսի լայնության մոդուլյացիա (PWM)
- Քայլ 2: Սարքավորումներ
- Քայլ 3: Bluetooth մոդուլ
- Քայլ 4: Softwareրագրակազմ
Video: Arduino 2-in-1 գնացքի մոդել ՝ 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Քառասուն տարի առաջ ես նախագծեցի op-amp- ի վրա հիմնված գնացքի շարժիչ ՝ մի քանի ընկերների համար, այնուհետև մոտ չորս տարի առաջ ես այն վերստեղծեցի ՝ օգտագործելով PIC միկրոկոնտրոլեր: Arduino- ի այս նախագիծը վերստեղծում է PIC- ի տարբերակը, բայց նաև ավելացնում է Bluetooth- ի միացում օգտագործելու հնարավորությունը `մեխանիկական անջատիչների փոխարեն` շնչափողի, արգելակի և ուղղության կառավարման համար: Թեև իմ ներկայացրած դիզայնը նախատեսված է 12 վոլտ մոդելի երկաթուղային շարժիչի համար, այն հեշտությամբ կարող է փոփոխվել մի շարք այլ DC շարժիչների կառավարման ծրագրերի համար:
Քայլ 1. Իմպուլսի լայնության մոդուլյացիա (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 մոդուլներին: Երբ գնում եք փնտրում, կարող եք որոնել «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
Խորհուրդ ենք տալիս:
Գնացքի նստատեղի ցուցիչ `6 քայլ
Գնացքի նստատեղերի ցուցիչ. Դա ձեզ հետ պատահու՞մ է: Գնացքի առջևի մասում մարդիկ պետք է կանգնեն, մինչդեռ գնացքի վերջին մասում բազում աթոռներ կան `չզբաղված: Ի՞նչ կլիներ, եթե գնացքի դրսից մի ցուցանակ լիներ, որը ձեզ կասեր, թե քանի տեղ ազատ է
Ավտոմատացված մոդել գնացքի դասավորություն (տարբերակ 1.0). 12 քայլ
Մոդելի գնացքների դասավորությունը (տարբերակ 1.0). Մոդելային գնացքները միշտ հաճելի են ունենալ և վազել: Բայց երբեմն ձեռքով դրանք վերահսկելը մի փոքր ձանձրալի է թվում: Այսպիսով, այս ուսանելիում ես ձեզ ցույց կտամ, թե ինչպես կարող եք ավտոմատացնել ձեր մոդելի երկաթգծի դասավորությունը, որպեսզի կարողանաք հանգիստ նստել և հանգստանալ ՝ դիտելով ձեր
Վերահսկեք ձեր գնացքի մոդելի դասավորությունը ձեր ստեղնաշարի միջոցով: 12 քայլ
Վերահսկեք ձեր մոդելային գնացքի դասավորությունը ձեր ստեղնաշարի միջոցով. Կարող եք ստուգել նաև արդիականացված տարբերակը: Այս Ուղեցույցում ես ձեզ ցույց կտամ, թե ինչպես կառավարել գնացքի մոդելի դասավորությունը ստեղնաշարի միջոցով
Կառավարեք ձեր մոդելային գնացքի դասավորությունը ձեր բջջային հեռախոսով: 11 քայլ (նկարներով)
Վերահսկեք ձեր մոդելների գնացքների դասավորությունը ձեր բջջային հեռախոսով. Բացի այդ, անլար կարգավորիչները, որոնք գալիս են շուկայում, կարող են կամ վերահսկել միայն որոշ շոգեքարշ
Arduino- ի միջոցով գնացքի ավտոմատ հակադարձ օղակ. 10 քայլ (նկարներով)
Arduino- ի միջոցով գնացքների ավտոմատ հակադարձ օղակ. Հակադարձ հանգույցների պատրաստումը կարող է օգնել գնացքների մոդելների ձևավորմանը `փոխելու գնացքների ուղղությունը, ինչը հնարավոր չէ անել պտտվող սարքերով: Այս կերպ, դուք կարող եք ստեղծել միակողմանի դասավորություններ ՝ յուրաքանչյուր ծայրում հակառակ հանգույցով ՝ գնացքներ վարելու համար ՝ առանց որևէ դադար կամ ընդմիջում