Բովանդակություն:
- Քայլ 1: Պահանջվում են բաղադրիչներ
- Քայլ 2: Տեխնիկական բնութագրեր:
- Քայլ 3: Շղթայի դիագրամներ:
- Քայլ 4: Անհրաժեշտ դիմումներ և IDE- ներ:
- Քայլ 5: Համապատասխան կոդեր ամեն ինչի համար:
- Քայլ 6: Կարգավորել այն:
- Քայլ 7: Արդյունքներ/տեսանյութեր:
Video: Իրական ժամանակի աուդիո MIDI փոխարկիչ. 7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Namaste մարդիկ! Սա նախագիծ է, որի վրա ես աշխատել եմ իմ դասընթացներից մեկի համար (Իրական ժամանակի թվային ազդանշանի մշակում) բակալավրիատում: Նախագիծը նպատակ ունի ստեղծել DSP համակարգ, որը «լսում է» աուդիո տվյալները և դուրս է բերում համապատասխան գրառումների MIDI հաղորդագրություններ UART- ի միջոցով: Այդ նպատակով օգտագործվել է Arduino Nano- ն: Կարճ ասած, միկրոհսկիչը FFT է կատարում մուտքային աուդիո տվյալների վերաբերյալ և կատարում է գագաթների որոշակի վերլուծություն և ուղարկում համապատասխան MIDI հաղորդագրություն: Մի անհանգստացեք MOSFET- երը, քանի որ դրանք այլ նախագծերի համար են (որոնք հետագայում նույնպես տեղադրվելու են հրահանգների վրա) և պարտադիր չեն այս նախագծի համար: Այսպիսով, եկեք սկսենք արդեն !!
Քայլ 1: Պահանջվում են բաղադրիչներ
Այս նախագիծը կառուցելու համար մեզ անհրաժեշտ կլինեն հետևյալ բաղադրիչները, չնայած դրանցից շատերը ընդհանուր են և կարող են փոխարինվել դրանց համարժեքներով: Նաև ուղղեք սխեմայի դիագրամը `ավելի լավ իրականացում մշակելու և որսալու համար:
Բաղադրիչի քանակը
1. Էլեկտրետ խոսափող: 1
2. 30 կիլո Օմ դիմադրություն: 1
3. 150 Կիլո Օմ դիմադրություն: 1
4. 100 օմ դիմադրություն: 1
5. 2.2 Կիլո Օմ դիմադրիչներ: 3
6. 10 Kilo Ohm կանխադրված կաթսա: 1
7. 10 կիլո Օհմ զարդարող կաթսա: 1
8. 47 Kilo Ohm ստերեո կաթսա: 1
9. 470 Օմ ռեզիստորներ: 2
10. 0.01uF կոնդենսատորներ: 2
11. 2.2uF կոնդենսատորներ: 3
12. 47uF կոնդենսատորներ: 2
13. 1000uF կոնդենսատոր: 1
14. 470uF կոնդենսատոր: 1
15. 7805 լարման կարգավորիչ: 1
16. Իգական և արական վերնագրերի ժապավեն: 1 -ական հատ
17. Barrel Jack միակցիչ: 1
18. 12 V 1 Amp DC ադապտեր: 1
19. SPST անջատիչ: (Ըստ ցանկության) 1
20. Պերֆորդ. 1
Քայլ 2: Տեխնիկական բնութագրեր:
Նմուշառման հաճախականությունը `3840 նմուշ/վրկ
Նմուշների քանակը մեկ FFT- ի համար `256
Հաճախականության թույլատրելիություն `15 Հց
Թարմացման արագությունը `մոտ 15 Հց
Երաժշտական նոտաների ստորին և բարձր մասշտաբները ճիշտ չեն գրված: Ստորին նոտաները տառապում են ցածր հաճախականության թույլատրելիությամբ, երբ ավելի բարձր հաճախականությունները տառապում են նմուշառման ցածր տեմպերից: Արդուինոն արդեն հիշողությունից դուրս է, ուստի ավելի լավ լուծման հնարավորություն չկա: Եվ ավելի լավ լուծում կտրվի թարմացման նվազեցված գնով, այնպես որ փոխզիջումն անխուսափելի է: Հայզենբերգի անորոշության սկզբունքի լեյմանական տարբերակը:
Առաջնային դժվարությունը նոտաների միջև էքսպոնենցիալ տարածությունն է (ինչպես երևում է նկարում: Հաճախականության առանցքի յուրաքանչյուր ազդակ երաժշտական նոտա է): LFT- ի նման ալգորիթմները կարող են օգնել, բայց դա մի փոքր առաջադեմ է և մի փոքր բարդ սարքի համար, ինչպիսին է arduino Nano- ն:
Քայլ 3: Շղթայի դիագրամներ:
Նշում. Մի անհանգստացեք նկարների երեք MOSFET- երից և պտուտակավոր տերմինալներից: Նրանք չեն պահանջվում այս նախագծի համար: Ուշադրություն դարձրեք, որ խոսափողի մուտքի տախտակը շարժական է կամ ինչպես իրենք են անվանում Մոդուլային: Ստորև բերված է տարբեր բլոկների փոքր նկարագրություն:
1) Երկու 470 օհմ ռեզիստորները համատեղում են ստերեո աուդիո ազդանշանը մոնո աուդիո ազդանշանի հետ: Համոզվեք, որ ազդանշանի հիմքը անցնում է վիրտուալ գետնին (vg սխեմայի գծապատկերում) և ոչ թե սխեմայի գետնին:
2) Հաջորդ բլոկը 2-րդ կարգի սալեն-բանալին ցածր անցնող զտիչ է, որը պատասխանատու է մուտքի ազդանշանը սահմանափակելու համար ՝ այլանունությունից խուսափելու համար: Քանի որ մենք աշխատում ենք միայն +12 վ լարման հետ, մենք կողմնակալ ենք op-amp- ին ՝ RC լարման բաժանարար սարքելով: դա հիմարացնում է op -amp- ը `մտածելով, որ սնուցումը 6 0 -6 վոլտ մատակարարում է (երկակի երկաթուղի), որտեղ vg- ը op amp- ի հիմնական աղբյուրն է:
3) Այնուհետև ելքը ցածր զտված է `զտված 6 վոլտ DC օֆսեթը և զուգակցված մոտ 0.55 վոլտ DC- ի հետ, քանի որ ADC- ն կազմաձևված կլինի ներքին 1.1 v- ն որպես Vref օգտագործելու համար:
Նշում. Էլեկտրական խոսափողի համար նախնական ուժեղացուցիչը ինտերնետի լավագույն միացումը չէ: Ավելի լավ ընտրություն կլիներ միացում, որը ներառում էր op-amp- ը: Մենք ցանկանում ենք, որ հաճախականության պատասխանը լինի հնարավորինս հարթ: 47 կիլոգրամանոց ստերեո կաթսան օգտագործվում է կտրման հաճախականությունը որոշելու համար, որը սովորաբար պետք է լինի նմուշառման հաճախականության կեսը: 10 կիլոգրամանոց նախադրյալը (Սպիտակ գլխիկով փոքր կաթսան) օգտագործվում է զտիչի շահույթը և Q արժեքը կարգավորելու համար: 10 կիլոգրամանոց օմ հարմարվողական կաթսան (մեկը ՝ մետաղական թյունինգի բռնակով, որը կարծես փոքր հարթ գլխի պտուտակ ունի) օգտագործվում է լարումը մոտ Vref- ի չափ մոտ լինելու համար:
Նշում. Երբ դուք միացնում եք Nano- ն P. C. SPST անջատիչը փակ պահեք: Keepգուշացեք, որ դա չկատարելը կարող է վնասել միացում/համակարգիչ/լարման կարգավորիչին կամ վերը նշվածի ցանկացած համադրությանը:
Քայլ 4: Անհրաժեշտ դիմումներ և IDE- ներ:
- Arduino Nano- ի կոդավորման համար ես գնացի պարզունակ AVR ստուդիայի 5.1 հետ, որովհետև ինձ թվում է, որ դա աշխատում է: Տեղադրիչը կարող եք գտնել այստեղ:
- Arduino Nano- ի ծրագրավորման համար ես օգտագործել եմ Xloader- ը: Դա իրոք հեշտ է օգտագործել թեթև քաշի գործիքը: Դուք կարող եք այն ստանալ այստեղ:
- Փոքր բոնուսային մինի նախագծի և միացման սխեմայի համար ես օգտագործեցի մշակում: Դուք կարող եք այն ստանալ այստեղից, չնայած որ ամեն փոփոխության մեջ կան լուրջ փոփոխություններ, այնպես որ ուրվագիծը գործի գցելու համար գուցե ստիպված լինեք հնացած գործառույթներով զբաղվել:
- FL ստուդիա կամ MIDI մշակման այլ ծրագրակազմ: Դուք կարող եք անվճար ստանալ FL studio սահմանափակ մուտքի տարբերակ այստեղից:
- Loop MIDI- ն ստեղծում է վիրտուալ MIDI նավահանգիստ և հայտնաբերվում է FL ստուդիայի կողմից, կարծես դա MIDI սարք է: Ստացեք նույնի պատճենը այստեղից:
- Մազազուրկ MIDI- ն օգտագործվում է COM պորտից MIDI հաղորդագրություններ կարդալու և այն հանգույց MIDI նավահանգստին ուղարկելու համար: Այն նաև կարգաբերում է MIDI հաղորդագրությունները իրական ժամանակում, ինչը կարգաբերումը հարմար է դարձնում: Ձեռք բերեք անմազ MIDI այստեղից:
Քայլ 5: Համապատասխան կոդեր ամեն ինչի համար:
Ես կցանկանայի շնորհակալություն հայտնել Electronic Lifes MFG (Վեբ կայք այստեղ !!) FFT գրադարանի ֆիքսված կետի համար, որն օգտագործել եմ այս նախագծում: Գրադարանը օպտիմիզացված է մեգա AVR ընտանիքի համար: Սա հղում է դեպի գրադարանային ֆայլեր և ծածկագրեր, որոնք նա օգտագործել է: Ստորև կցում եմ իմ ծածկագիրը: Այն ներառում է նաև մշակման ուրվագիծը և AVR C ծածկագիրը: Խնդրում ենք նկատի ունենալ, որ սա այն կոնֆիգուրացիան է, որն աշխատել է ինձ համար, և ես որևէ պատասխանատվություն չեմ կրում, եթե այս կոդերի պատճառով որևէ բան վնասեք: Բացի այդ, ես շատ խնդիրներ ունեի ՝ փորձելով այնպես անել, որ ծածկագիրը գործի: Օրինակ, DDRD- ում (Տվյալների ուղղությունների գրանցամատյան) սովորական DDRDx- ի փոխարեն (x = 0-7) որպես բիտ դիմակներ կա DDDx (x = 0-7): Կազմելիս ուշադրություն դարձրեք այս սխալներին: Նաև միկրոկառավարիչի փոփոխությունը ազդում է այս սահմանումների վրա, ուստի հետևեք դրան նաև կազմման սխալների հետ աշխատելիս: Եվ եթե ձեզ հետաքրքրում է, թե ինչու է ծրագրի թղթապանակը կոչվում DDT_Arduino_328p.rar, դե եկեք ասենք, որ երեկոյան, երբ ես սկսեցի, շատ մութ էր, և ես այնքան ծույլ էի, որ լույսերը չեմ միացնում:: P
Գալով մշակման ուրվագծին ՝ ես այս ուրվագիծը գրելու համար օգտագործեցի 3.3.6 մշակումը: Էսքիզում ձեռքով պետք է սահմանեք COM պորտի համարը: Մեկնաբանությունները կարող եք ստուգել ծածկագրում:
Եթե որևէ մեկը կարող է օգնել ինձ կոդերը փոխանցել Arduino IDE և մշակման վերջին տարբերակին, ես ուրախ կլինեմ և վարկեր կտրամադրեմ նաև մշակողներին / ներդրողներին:
Քայլ 6: Կարգավորել այն:
- Բացեք ծածկագիրը և կազմեք ծածկագիրը #սահմանեք pcvisual uncommented- ով և #սահմանեք midi_out մեկնաբանության միջոցով:
- Բացեք xloader- ը և կոդով անցեք գրացուցակին, դիտեք.hex ֆայլը և այրեք այն nano- ին ՝ ընտրելով համապատասխան տախտակ և COM պորտ:
- Բացեք մշակման ուրվագիծը և գործարկեք այն համապատասխան COM նավահանգստի ինդեքսով: Եթե ամեն ինչ լավ է ընթանում, դուք պետք է կարողանաք տեսնել ազդանշանի սպեկտրը A0 կապում:
- Վերցրեք պտուտակահան և պտտեք հարմարվողական կաթսան մինչև սպեկտրը հարթ լինի (DC բաղադրիչը պետք է մոտ լինի զրոյին): Այդ դեպքում մի ազդանշան մի՛ տվեք տախտակին: (Մի ամրացրեք խոսափողի մոդուլը):
- Այժմ օգտագործեք այսպիսի ավլող գեներատորի ցանկացած գործիք `միկրո հեռախոսից տախտակին մուտք գործելու և սպեկտրը դիտելու համար:
- Եթե դուք չեք տեսնում հաճախությունների մաքրում, նվազեցրեք անջատման հաճախականությունը `փոխելով 47 կիլոգրամ դիմադրությունը: Նաև ավելացրեք շահույթը ՝ օգտագործելով 10 կիլոգրամանոց նախնական կաթսա: Փորձեք ձեռք բերել հարթ և նշանավոր մաքրման արդյունք ՝ փոխելով այս պարամետրերը: Սա զվարճալի մասն է (փոքրիկ բոնուս), նվագեք ձեր նախընտրած երգերը և վայելեք դրանց իրական ժամանակի սպեկտրը: (Դիտեք տեսանյութը)
- Այժմ կրկին կազմեք ներկառուցված C կոդը այս անգամ # #սահմանեք pcvisual մեկնաբանությամբ և #սահմանեք midi_out- ը `առանց մեկնաբանության:
- Վերբեռնեք նոր կազմված կոդը arduino Nano- ի վրա:
- Բացեք LoopMidi- ն և ստեղծեք նոր նավահանգիստ:
- Բացեք FL ստուդիան կամ MIDI ինտերֆեյսի այլ ծրագրակազմ և համոզվեք, որ հանգույցի midi նավահանգիստը տեսանելի է MIDI նավահանգստի կարգավորումներում:
- Բացեք մազազուրկ MIDI- ն միացված arduino- ով: Ընտրեք ելքային պորտը, որը կլինի LoopMidi նավահանգիստը: Գնացեք կարգավորումներ և Baud- ի արագությունը սահմանեք 115200: Այժմ ընտրեք Arduino Nano- ին համապատասխան COM նավահանգիստը և բացեք նավահանգիստը:
- Խոսափողի մոտ մի քանի «մաքուր» հնչերանգներ հնչեցրեք, և համապատասխան գրառումը պետք է լսեք նաև MIDI ծրագրաշարում: Եթե պատասխան չկա, փորձեք իջեցնել C կոդով սահմանված up_threshold- ը: Եթե նշումները սկսվում են պատահականորեն, ապա ավելացրեք վերին շեմը:
- Ձեռք բերեք ձեր դաշնամուրը և փորձեք, թե որքան արագ է ձեր համակարգը !! Ամենալավն այն է, որ նոտաների ոսկեգույն կողպեքի գոտում այն կարող է հարմարավետորեն հեշտությամբ հայտնաբերել մի քանի միաժամանակյա սեղմումներ:
Նշում. Երբ COM պորտին հասանելի է մի ծրագիր, այն չի կարող ընթերցվել մյուսի կողմից: Օրինակ, եթե Մազազուրկ MIDI- ն կարդա COM նավահանգիստ, Xloader- ը չի կարողանա բռնկել տախտակը:
Քայլ 7: Արդյունքներ/տեսանյութեր:
Այսքանը առայժմ տղերք: Հուսով եմ, ձեզ դուր է գալիս. Եթե ունեք որևէ առաջարկ կամ բարելավում նախագծում, տեղեկացրեք ինձ մեկնաբանությունների բաժնում: Խաղաղություն:
Խորհուրդ ենք տալիս:
Ինչպես օգտագործել իրական ժամանակի ժամացույցի մոդուլ (DS3231) ՝ 5 քայլ
Ինչպես օգտագործել իրական ժամանակի ժամացույցի մոդուլ (DS3231). DS3231- ը էժան, չափազանց ճշգրիտ I2C իրական ժամանակի (RTC) ժամացույց է (RTC) `ինտեգրված ջերմաստիճանի փոխհատուցվող բյուրեղային տատանումով (TCXO) և բյուրեղով: Սարքը ներառում է մարտկոցի մուտք և պահպանում է ժամանակի ճշգրիտ հաշվարկում, երբ հիմնական էներգիան
Արագ փոխարկիչ մինչև $ 50! Kazeshifter Arduino կարգավորելի արագ փոխարկիչ ՝ 7 քայլ
Արագ փոխարկիչ մինչև $ 50! Kazeshifter Arduino կարգավորելի արագ փոխարկիչ. Ողջույն Superbike կամ մոտոցիկլետի սիրահարներ: Այս հրահանգով ես ձեզ կասեմ, թե ինչպես պատրաստել ձեր սեփական արագ փոխարկիչը էժան գնով: Այն մարդկանց համար, ովքեր ծույլ են կարդալ այս հրահանգը, պարզապես դիտեք իմ տեսանյութը: Նշում. արդեն օգտագործում են Վառելիքի ներարկման համակարգ, ինչ -որ
Իրական ժամանակի ջրհորի մակարդակի հաշվիչ `6 քայլ (նկարներով)
Իրական ժամանակի ջրհորի ջրի մակարդակի հաշվիչ. Այս հրահանգները նկարագրում են, թե ինչպես կարելի է կառուցել ցածրարժեք, իրական ժամանակի ջրի մակարդակի հաշվիչ `փորված հորերում օգտագործելու համար: Levelրի մակարդակի հաշվիչը նախատեսված է փորված ջրհորի ներսում կախված լինելու համար, ջրի մակարդակը չափելու համար օրական մեկ անգամ և տվյալները ուղարկելու WiFi- ով կամ բջջային կապով
Ինչպես կատարել խոնավության և ջերմաստիճանի իրական ժամանակի տվյալների գրանցիչ Arduino UNO- ի և SD- քարտի միջոցով: - DHT11 Տվյալների գրանցման մոդելավորում Proteus- ում. 5 քայլ
Ինչպես կատարել խոնավության և ջերմաստիճանի իրական ժամանակի տվյալների գրանցիչ Arduino UNO- ի և SD- քարտի միջոցով DHT11 Տվյալների գրանցման մոդելավորում Proteus- ում. Ներածություն. Բարև, սա Liono Maker- ն է, ահա YouTube- ի հղումը: Մենք ստեղծում ենք ստեղծագործական նախագիծ Arduino- ի հետ և աշխատում ներկառուցված համակարգերի վրա: Data-Logger: Տվյալների գրանցիչ (նաև տվյալների գրանցիչ կամ տվյալների գրանցիչ) էլեկտրոնային սարք է, որը ժամանակի ընթացքում գրանցում է տվյալները
Wiggly Wobbly - Տեսեք Ձայնային ալիքները !! Իրական ժամանակի աուդիո վիզուալիզատոր !!: 4 քայլ
Wiggly Wobbly - Տեսեք Ձայնային ալիքները !! Իրական ժամանակի աուդիո վիզուալիզատոր !!: Երբևէ մտածե՞լ եք, թե ինչ տեսք ունեն Բզեզի երգերը: Թե՞ պարզապես ուզում եք տեսնել, թե ինչպիսի տեսք ունի ձայնը: Հետո մի անհանգստացեք, ես այստեղ եմ, որպեսզի օգնեմ ձեզ դարձնել այն: