Բովանդակություն:
- Պարագաներ
- Քայլ 1: Ակնարկ
- Քայլ 2. Շրջանի հավաքում
- Քայլ 3: Ինչպես է աշխատում սխեման
- Քայլ 4: Ինչպես է գործում ծածկագիրը
- Քայլ 5. Երգի ծրագրավորում
- Քայլ 6: Հետադարձ կապ
Video: Arduino- ով և DC շարժիչով երգեր պատրաստելը `6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Օրերս, Arduino- ի մասին որոշ հոդվածներ թերթելիս, ես նկատեցի մի հետաքրքիր նախագիծ, որն օգտագործում էր Arduino- ի կողմից կառավարվող տափաստանային շարժիչները `կարճ մեղեդիներ ստեղծելու համար: Arduino- ն օգտագործեց PWM (Pulse Width Modulation) քորոց ՝ սլաքի շարժիչը որոշակի հաճախականություններով գործարկելու համար ՝ համապատասխան երաժշտական նոտաներին: Timամանակը որոշելով, թե որ հաճախականությունները երբ են նվագում, հստակ մեղեդի էր լսվում սլաքի շարժիչից:
Այնուամենայնիվ, երբ ես ինքս փորձեցի այն, ես գտա, որ իմ ունեցած շարժիչային շարժիչը չի կարող բավական արագ պտտվել ՝ հնչերանգ ստեղծելու համար: Փոխարենը, ես օգտագործեցի DC շարժիչ, որը համեմատաբար պարզ է ծրագրավորել և միացնել Arduino- ին: Սովորական L293D IC- ն կարող է օգտագործվել շարժիչը Arduino PWM քորոցից հեշտությամբ քշելու համար, իսկ Arduino- ում բնիկ տոն () գործառույթը կարող է առաջացնել անհրաժեշտ հաճախականություն: Ի զարմանս ինձ, ես DC- ի շարժիչ օգտագործող ոչ մի օրինակ կամ նախագիծ չգտա առցանց, և այս Instructables- ը դա իմ պատասխանն է `դա շտկելու համար: Եկեք սկսենք!
Պ. Ս. Ենթադրում եմ, որ դուք արդեն որոշակի փորձ ունեք Arduino- ի հետ և ծանոթ եք նրա ծրագրավորման լեզվին և սարքավորմանը: Դուք պետք է իմանաք, թե ինչ են զանգվածները, ինչ է PWM- ը և ինչպես օգտագործել այն, և ինչպես են աշխատում լարումը և հոսանքը, պարզապես մի քանի բան նշելու համար: Եթե դեռ այնտեղ չեք կամ նոր եք սկսել Arduino- ն, մի անհանգստացեք. Փորձեք այս մեկնարկի էջը Arduino- ի պաշտոնական կայքից և վերադառնացեք, երբ պատրաստ լինեք::)
Պարագաներ
- Arduino (ես օգտագործել եմ UNO, բայց եթե ցանկանում եք, կարող եք օգտագործել այլ Arduino)
- Ստանդարտ 5V DC շարժիչ, ցանկալի է, որ կարողանա օդափոխիչ կցել (տես նկարը «Շրջանի հավաքում» բաժնում)
- L293D IC
- Այնքան կոճակ, որքան նշումներ այն երգում, որը ցանկանում եք նվագել
- Breadboard
- Jumper լարերը
Քայլ 1: Ակնարկ
Ահա թե ինչպես է աշխատում նախագիծը. Arduino- ն տվյալ հաճախականությամբ կստեղծի քառակուսի ալիք, որը թողարկում է L293D- ին: L293D- ն միացված է արտաքին սնուցման աղբյուրին, որն օգտագործում է շարժիչը սնուցելու համար Arduino- ի կողմից տրված հաճախականությամբ: Կանխելով DC շարժիչի լիսեռի պտտումը, շարժիչը լսվում է անջատման և միացման հաճախականությամբ, ինչը տալիս է հնչերանգ կամ նոտա: Մենք կարող ենք ծրագրավորել Arduino- ն ՝ կոճակները սեղմելիս նոտաներ նվագարկելու կամ դրանք ինքնաբերաբար նվագարկելու համար:
Քայլ 2. Շրջանի հավաքում
Շղթան հավաքելու համար պարզապես հետևեք վերը նշված Fritzing դիագրամին:
Հուշում. Շարժիչից ստացված գրառումը լավագույնս լսվում է, երբ լիսեռը չի պտտվում: Ես շարժիչով շարժիչի լիսեռի վրա տեղադրեցի օդափոխիչ և մի քանի սոսինձ ժապավենով օդափոխիչը անշարժ պահեցի, մինչ շարժիչը աշխատում էր (տես նկարը): Սա կանխեց լիսեռի շրջվելը և ստեղծեց հստակ, լսելի երանգ: Շարժիչից մաքուր երանգ ստանալու համար գուցե ստիպված լինեք ինչ -որ փոփոխություններ կատարել:
Քայլ 3: Ինչպես է աշխատում սխեման
L293D- ն IC է, որն օգտագործվում է համեմատաբար բարձր լարման, բարձր հոսանքի սարքեր վարելու համար, ինչպիսիք են ռելեները և շարժիչները: Arduino- ն ի վիճակի չէ շարժիչներից շատերին ուղղակիորեն դուրս մղել ելքից (իսկ շարժիչի հետևի EMF- ն կարող է վնասել Arduino- ի զգայուն թվային սխեմաները), ուստի L293D- ի նման IC- ն կարող է օգտագործվել արտաքին սնուցման աղբյուրով `DC շարժիչը հեշտությամբ վարելու համար: L293D- ի մեջ ազդանշան մուտքագրելը նույն ազդանշանը կհանի DC շարժիչին ՝ առանց Arduino- ին վնաս պատճառելու վտանգի:
Վերևում ներկայացված է L293D- ի մատնահետքը/ֆունկցիոնալ սխեման իր տվյալների թերթիկից: Քանի որ մենք վարում ենք միայն 1 շարժիչ (L293D- ն կարող է վարել 2), մեզ անհրաժեշտ է IC- ի միայն մի կողմը: 8 -րդ կապը հզորություն է, 4 -րդ և 5 -րդ կապերը `GND, 1 -ը` Arduino- ից PWM ելք, իսկ 2 -րդ և 7 -րդ կապերը վերահսկում են շարժիչի ուղղությունը: Երբ 2 -րդ կապը ԲԱՐՁՐ է, իսկ 7 -ը ՝ OWԱՐ, շարժիչը պտտվում է մի կողմից, իսկ երբ 2 -րդ LԱOWՐ է, իսկ 7 -ը ՝ ԲԱՐՁՐ, շարժիչը պտտվում է մյուս կողմից: Քանի որ մեզ համար միևնույն է, թե որ ուղղությամբ է պտտվում շարժիչը, կարևոր չէ, որ 2 -րդ և 7 -րդ կապերը OWԱOWՐ են կամ ԲԱՐՁՐ, քանի դեռ դրանք տարբերվում են միմյանցից: 3 -րդ և 6 -րդ կապերը միանում են շարժիչին: Everythingանկության դեպքում կարող եք ամեն ինչ միացնել մյուս կողմին (կապեր 9-16), սակայն տեղյակ եղեք, որ հոսանքի և PWM կապերը փոխում են տեղերը:
Նշում. Եթե դուք օգտագործում եք Arduino, որը չունի յուրաքանչյուր կոճակի համար բավարար կապում, կարող եք օգտագործել ռեզիստորների ցանց `բոլոր անջատիչները մի անալոգային քորոցին միացնելու համար, ինչպես օրինակ այս հրահանգներում: Ինչպես է դա աշխատում, այս նախագծի շրջանակներից դուրս է, բայց եթե երբևէ օգտվել եք R-2R DAC- ից, ապա այն պետք է ծանոթ գտնեք: Նկատի ունեցեք, որ անալոգային քորոցի օգտագործումը կպահանջի ծածկագրի մեծ մասի վերագրանցում, քանի որ կոճակի գրադարանը չի կարող օգտագործվել անալոգային կապում:
Քայլ 4: Ինչպես է գործում ծածկագիրը
Բոլոր կոճակները կառավարելն ավելի հեշտ դարձնելու համար ես օգտագործեցի գրադարան, որը կոչվում էր madleech- ի «Button»: Ես առաջին հերթին ընդգրկեցի գրադարանը: Հաջորդը, 8-22-րդ տողերում ես սահմանեցի Twinkle, Twinkle, Little Star (օրինակ երգը) նվագելու համար անհրաժեշտ նոտաների հաճախականությունները, քորոցը, որը կօգտագործեմ L293D- ը վարելու համար և կոճակները:
Կարգավորման գործառույթում ես նախաստորագրեցի Սերիալը, կոճակները և L293D- ի վարորդի քորոցը դրեցի ելքային ռեժիմի:
Ի վերջո, հիմնական հանգույցում ես ստուգեցի, թե արդյոք կոճակը սեղմված է: Եթե այն ունի, Arduino- ն նվագում է համապատասխան նոտան և տպում նոտայի անունը Սերիական մոնիտորին (օգտակար է իմանալու համար, թե որ գրառումներն են ձեր տախտակի վրա): Եթե նոտա է արձակվում, arduino- ն դադարեցնում է ցանկացած հնչողություն noTone- ով ():
Unfortunatelyավոք, գրադարանի կառուցվածքի ձևի պատճառով ես չկարողացա միջոց գտնել ՝ ստուգելու համար, թե արդյոք կոճակը սեղմված է կամ բաց թողնված է ավելի քիչ պարզ ձևով, քան մեկ գրառման համար 2 պայմանական պայմանների օգտագործումը: Այս ծածկագրի մեկ այլ թերություն այն է, որ եթե դուք միաժամանակ սեղմեք երկու կոճակ, իսկ հետո բացեք դրանցից մեկը, երկու նշումները կդադարեցվեն, քանի որ noTone () - ն դադարեցնում է ցանկացած նշումների ստեղծումը ՝ անկախ նրանից, թե որ նոտան է այն առաջացրել:
Քայլ 5. Երգի ծրագրավորում
Նշումներ նվագարկելու համար կոճակներ օգտագործելու փոխարեն կարող եք նաև ծրագրավորել Arduino- ն ՝ ինքնաբերաբար ձեզ համար մեղեդի նվագելու համար: Ահա առաջին ուրվագծի փոփոխված տարբերակը, որը շարժիչով խաղում է Twinkle, Twinkle, Little Star: Էսքիզի առաջին մասը նույնն է `նշումների հաճախականությունների և տոնային Pin- ի սահմանումը: Մենք հասնում ենք նոր մասի bpm = "100": Ես սահմանում եմ զարկերը մեկ րոպեում (bpm), այնուհետև մաթեմատիկայի միջոցով պարզում եմ, որ րոպեում մեկ զարկի միլիվայրկյանների թիվը հավասար է: Դա անելու համար ես օգտագործեցի մի տեխնիկա, որը կոչվում է ծավալային վերլուծություն (մի անհանգստացեք, դա այնքան էլ դժվար չէ, որքան թվում է): Եթե երբևէ ավագ դպրոցի քիմիայի դասընթաց եք անցել, ապա անպայման չափման վերլուծություն եք օգտագործել միավորների միջև փոխակերպման համար: Լողացողները () կան, որպեսզի հավաստիացնեն, որ հավասարում ոչինչ ոչինչ չի կլորացվում մինչև վերջ:
Երբ մենք ունենք ms/beat- ի թիվը, ես այն համապատասխանաբար բաժանեցի կամ բազմապատկեցի ՝ գտնելու երաժշտության մեջ եղած տարբեր նոտաների տևողության միլիվայրկյան արժեքները: Այնուհետև ես կազմում եմ յուրաքանչյուր գրառման զանգված `ժամանակագրական կարգով, և մեկ այլ` յուրաքանչյուր գրառման տևողությամբ: Կարևոր է, որ յուրաքանչյուր նոտայի ինդեքսը համապատասխանի դրա տևողության ինդեքսին, հակառակ դեպքում ձեր մեղեդին կհնչի: Որպես օրինակ ես այստեղ տեղադրեցի Twinkle, Twinkle, Little Star- ի գրառումները, բայց կարող եք փորձել ցանկացած երգ կամ նշումների հաջորդականություն, որոնք կցանկանայիք:
Իսկական կախարդանքը տեղի է ունենում օղակի գործառույթում: Յուրաքանչյուր նոտայի համար ես նվագում եմ հնչերանգը beat_values զանգվածում նշած ժամանակի ընթացքում: Այստեղ ուշացումն օգտագործելու փոխարեն, որը կհանգեցներ հնչերանգի նվագարկմանը, ես գրանցեցի ծրագիրը սկսած այն պահից, երբ այն սկսվել է millis () գործառույթով և հանել այն ընթացիկ ժամանակից: Երբ ժամանակը գերազանցում է beat_values զանգվածում նշումը նշելու ժամանակը, ես դադարում եմ նոտան: For loop- ից հետո ուշացումն առկա է նշումների միջև բաց ավելացնելու համար ՝ ապահովելով, որ նույն հաճախականությամբ հաջորդ նշումները չմիացվեն միասին:
Քայլ 6: Հետադարձ կապ
Այսքանը այս նախագծի համար է: Եթե կա ինչ -որ բան, որը դուք չեք հասկանում, կամ եթե ունեք որևէ առաջարկ, խնդրում ենք մի հապաղեք կապվել ինձ հետ: Քանի որ սա իմ առաջին հրահանգներն են, ես մեծապես կգնահատեի մեկնաբանություններն ու առաջարկությունները, թե ինչպես բարելավել այս բովանդակությունը: Կտեսնվենք հաջորդ անգամ!
Խորհուրդ ենք տալիս:
Bluetooth ադապտեր պատրաստելը Pt.2 (Համատեղելի խոսնակ պատրաստելը). 16 քայլ
Bluetooth ադապտեր պատրաստելը Pt.2 (Համատեղելի խոսնակ պատրաստելը). Այս ուսանելի ծրագրում ես ձեզ ցույց կտամ, թե ինչպես օգտագործել իմ Bluetooth ադապտերը ՝ հին բարձրախոսը Bluetooth- ի հետ համատեղելի դարձնելու համար:*Եթե դուք չեք կարդացել իմ առաջին հրահանգը " մի Bluetooth ադապտեր " Ես առաջարկում եմ դա անել նախքան շարունակելը: C
Նվագարկեք երգեր Arduino- ի միջոցով ՝ օգտագործելով ADC- ը PWM- ին Flyback Transformer- ի կամ բարձրախոսի վրա. 4 քայլ
Երգեր Arduino- ի միջոցով օգտագործելով ADC- ը PWM- ին Flyback Transformer- ի կամ խոսնակի վրա. Բարև տղերք, սա իմ մյուս ուսանելի (սա շատ դժվար էր) երկրորդ մասն էր: Հիմնականում, այս նախագծում ես օգտագործել եմ ADC- ն և TIMERS- ը իմ Arduino- ում աուդիո ազդանշանը վերածել PWM ազդանշանի: Սա շատ ավելի հեշտ է, քան իմ նախորդ հրահանգը
Նվագարկեք երգեր (MP3) Arduino- ի միջոցով ՝ օգտագործելով PWM խոսափողի կամ թռիչքի տրանսֆորմատորի վրա. 6 քայլ (նկարներով)
Նվագարկեք երգեր (MP3) Arduino- ի հետ ՝ օգտագործելով PWM խոսափողի կամ թռիչքի տրանսֆորմատորի վրա. Բարև տղերք, սա իմ առաջին ուսանելի տարբերակն է, հուսով եմ, որ այն ձեզ դուր կգա: Հիմնականում այս նախագծում ես օգտագործել եմ սերիական հաղորդակցություն իմ Arduino- ի և իմ նոութբուքի միջև, նոութբուքից երաժշտական տվյալներ փոխանցել Arduino- ին: Եվ օգտագործելով Arduino TIMERS t
8bit երգեր ՝ օգտագործելով Arduino / Zelda ավարտական թեման ՝ 4 քայլ
8bit երգեր ՝ օգտագործելով Arduino / Zelda ավարտական թեման. Երբևէ ցանկացե՞լ եք պատրաստել այնպիսի նվեր քարտեր կամ խաղալիքներ, որոնք երգ են խաղում, երբ դրանք բացում կամ սեղմում եք: Ձեր նախընտրած երգո՞վ: Միգուցե նույնիսկ մի երգ, որը դու՞ ես արել: Դե, դա աշխարհի ամենահեշտ բանն է, և այն քեզ ոչինչ չի կարժենա:
Պտտվող լուսադիոդներ `շարժիչով շարժիչով (eVoltis Stirlingmachine). 12 քայլ (նկարներով)
Պտտվող լուսադիոդներ `շարժիչով (eVoltis Stirlingmachine). Այս Stirlingengine- ը (և բոլոր մյուսները նույնպես) աշխատում են տաք ներքևի կողմի ջերմաստիճանի տարբերությամբ (օրինակ ՝ տաքացուցիչով