
Բովանդակություն:
- Քայլ 1. Երաժշտական ստեղծագործությունը փոխակերպեք թվային նշումների `ուշացման արժեքների
- Քայլ 2. Երաժշտական ստեղծագործությունը փոխակերպեք թվային նշումների. Հերց արժեքներ
- Քայլ 3: Շղթայի ձևավորում
- Քայլ 4: Կոդի վերբեռնում. Ինչպես անել
- Քայլ 5. Կոդի վերբեռնում. Ի՞նչ է նշանակում այդ ամենը:
- Քայլ 6: Ավարտվեց !
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48

Ես ուզում էի ստեղծել մի նախագիծ, որը միավորում էր իմ ամենասիրած երկու առարկաները ՝ գիտություն և երաժշտություն: Ես մտածեցի այս երկու տիրույթների համատեղման բոլոր եղանակների մասին և մտածեցի, որ հետաքրքիր կլինի Arduino- ի մորթե Elise պիես պատրաստել, երբ նոտայի սկիպիդարը ցուցադրում եմ Հերցում: Հիմա եկեք սկսենք կառուցել:
Ձեզ կպահանջվի մեկ Arduino Uno կամ Mega, շատ ցատկող մալուխներ, Piezo ազդանշան, տախտակ, 16*2 LCD էկրան ՝ բոլոր մաքրիչով ամրակներով տեղում և 10k Potentiometer (դուք կարող եք լսել, որ դրանք կոչվում են նաև չափիչ սարքեր)): Ավելի լավ է այս բոլոր պաշարները հավաքել նախքան շինարարությունը սկսելը:
Քայլ 1. Երաժշտական ստեղծագործությունը փոխակերպեք թվային նշումների `ուշացման արժեքների

Գոյություն ունի նոտայից միավորից թվային տառադարձման թվային համարժեքի երկու քայլ: Նախ, մենք պետք է գրենք այն ժամանակը, երբ գրառումը տևում է միլիվայրկյաններով: Այս առաջադրանքի համար ես օգտագործել եմ գծապատկեր, որը գտնվել է առցանց: Ելնելով նրանից, թե արդյոք նոտան կիսով չափ էր, քառորդ նոտա, ութերորդ նոտա և այլն, ես նոտայի երկարությունը փոխանցեցի միլիվայրկյանների: Այս համարները կարող եք տեսնել իմ ծածկագրում որպես ուշացում (); գործառույթը և փակագծերում եղած թիվը կլինի ուշացման արժեքը միլիվայրկյաններում, որը մենք որոշեցինք այս քայլում:
Քայլ 2. Երաժշտական ստեղծագործությունը փոխակերպեք թվային նշումների. Հերց արժեքներ

Նախքան այս քայլը սկսելը, թույլ տվեք որոշ տեխնիկական տերմիններ սահմանել: Նոտայի «արժեքը» կարող է փոխարինելիորեն օգտագործվել «բարձրություն», «արժեք» և «նշում» բառերի հետ: Այժմ, դուք պետք է կարդաք երգի յուրաքանչյուր նոտա պարտիտուրայից: Այնուհետև ստիպված կլինեք յուրաքանչյուր նոտա թարգմանել Հերց ՝ օգտագործելով երաժշտություն Հերցի սեղանին, որը հեշտությամբ կարող եք գտնել առցանց: Մի բան պետք է հիշել, որ միջին C- ն սեղանի վրա նշված է որպես C4, իսկ օկտավայից բարձր C5 և այլն: Երբ այս նշումները բոլորը տառադարձվեն Հերցի վրա, դուք արժեքները կդնեք գործառույթի տոնով (x, y, z); որտեղ X- ը փին համարն է կամ const int- ը, փոփոխականների սահմանման եղանակ, որը ես ավելի ուշ կբացատրեմ: Y- ը կլինի Հերցի արժեքը, որը դուք պարզապես արտագրել եք, իսկ Z- ը կլինի նոտայի տևողությունը միլիվայրկյաններով ՝ կլորացված մինչև հարյուրերորդ հարյուրերորդական: Հետաձգում (); արժեքները կլինեն նոտայի տևողությունը: Այժմ, եկեք նախագծենք այն շրջանը, որը կարող է նվագել երաժշտությունը:
Քայլ 3: Շղթայի ձևավորում

Այժմ, երբ մենք բոլոր նշումները թարգմանել ենք թվային արժեքների, որոնք համակարգիչը կարող է հասկանալ, ժամանակն է կառուցել շրջանը: Սկսեք տախտակ վերցնելուց և LCD էկրանը տեղադրել առաջին շարասյունով (GND) տողում 14. Տեղադրեք ազդանշանը ցանկացած վայրում, որտեղ ցանկանում եք, և դրա կողքին տեղադրեք պոտենցիոմետր: Նպատակն է ամեն ինչ շարել, նվազագույնի հասցնել լարերի խառնաշփոթությունը: Տեղադրեք Arduino- ն սեղանի կողքին և միացրեք 5v կապը հացահատիկի դրական ռելսին, իսկ աղացած քորոցը `բացասական: Այժմ մենք պատրաստ ենք թռիչքները միացնել Arduino- ի և բաղադրիչների միջև:
Այժմ, եկեք խոսենք LCD- ի կապում և ինչպես դրանք միացնել:
GND- ը նշանակում է հող, սա ուղիղ հոսանքի բացասական մետաղալարն է: Հաղորդալար GND- ը դեպի տախտակի բացասական երկաթուղին:
VCC- ն նշանակում է Լարման ընդհանուր կոլեկտորում, և այստեղ դուք միացնում եք ձեր 5 վոլտ էներգիայի աղբյուրը (դրական էներգիայի ռելս):
VO- ն նշանակում է հակադրություն, միացրեք այն պոտենցիոմետրի միջին քորոցին: Միացրեք պոտենցիոմետրի ձախ քորոցը դրական հզորության ռելսին, իսկ աջը ՝ գետնի հոսանքի ռելսին:
RS- ը նշանակում է Register Select, և դա օգտագործվում է Arduino- ի կողմից ՝ էկրանին տեղեկացնելու համար, թե որտեղ պետք է պահել տվյալները: Միացրեք այս կապը Arduino- ի 12 -րդ կապին:
RW- ը նշանակում է Read/Write pin, որը Arduino- ն օգտագործում է ՝ ստուգելու համար, թե արդյոք էկրանը ցուցադրու՞մ է այն, ինչ ծրագրել եք ցուցադրել: Միացրեք այս քորոցը բացօթյա սեղանի բացասական ռելսին:
E- ն նշանակում է Միացնել, որը LCD- ին ասում է, թե որ պիքսելներն է միացնել (միացնել) կամ անջատել (անջատել): Միացրեք այս կապը Arduino- ի 11 -րդ կապին:
D4, D5, D6 և D7- ը ցուցադրման կապում են, որոնք վերահսկում են ցուցադրվող տառերն ու տառերը: Միացրեք դրանք համապատասխանաբար Arduino- ի 5, 4, 3 և 2 կապումներին:
Pin A- ն, երբեմն պիտակավորված LED- ն, լուսադիոդային լուսադիոդային անոդն է: Միացրեք սա դրական էներգիայի ռելսին մետաղալարով կամ 220 օմ դիմադրիչով: Ռեզիստորն ավելի լավ է ավելի երկար օգտագործելու համար, քանի որ այն խնայում է LCD- ը, բայց եթե սարքը չի օգտագործվելու օր ու գիշեր, ապա ձեզ դիմադրության կարիք չկա:
Pin K- ը, երբեմն նաև (շփոթեցնող) պիտակավորված LED- ն, LED լուսադիոդային քորոցն է: Միացրեք սա ստորգետնյա էլեկտրակայանին:
Քայլ 4: Կոդի վերբեռնում. Ինչպես անել
Միացրեք ձեր Arduino- ն ձեր համակարգչի USB- ին: Վերբեռնեք հետևյալ կոդը ՝ օգտագործելով Arduino IDE ծրագրավորողը:
#ներառում
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);
void setup () {
// կարգավորել LCD- ի սյունակների և տողերի քանակը. lcd.begin (16, 2); // Տպել հաղորդագրություն LCD- ին: lcd.print («Hertz Pitch:!»); ուշացում (1000); void loop () {// նվագարկել e4 հետաձգում (600); // դադար 0,6 վայրկյան տոնով (10, 329.63, 300); // նվագարկել e ազդանշանին ազդանշան 10 -ում, վերջին.3 վայրկյան lcd.print (" 329.63 "); // ցուցադրել հաղորդագրություն LCD- ում" 329.63"
ուշացում (350); //.35 վայրկյան հետաձգում
lcd.clear (); // մաքրել LCD և զրոյացնել հաջորդ հաղորդագրության համար // նվագարկել d4# տոնով (10, 311.13, 300); lcd.print ("311.13"); ուշացում (350); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (350); lcd. հստակ (); // նվագարկել d4# տոնով (10, 311.13, 300); lcd.print ("311.13"); ուշացում (350); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (350); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 300); lcd.print ("246.94"); ուշացում (400); lcd. հստակ (); // նվագարկել d4 տոնով (10, 293.66, 300); lcd.print ("293.66"); ուշացում (400); lcd. հստակ (); // նվագել c4 տոնով (10, 261.63, 300); lcd.print ("261.63"); ուշացում (400); lcd. հստակ (); // նվագել a3 տոնով (10, 220, 900); lcd.print ("220.0"); ուշացում (1000); lcd.clear (); // line60 // helpsave // avrdude.failure.eeprom // նվագարկել d3 տոնով (10, 146.83, 300); lcd.print ("146.63"); ուշացում (350); lcd. հստակ (); // նվագարկել f3 տոնով (10, 174.61, 300); lcd.print ("174.61"); ուշացում (400); lcd. հստակ (); // նվագել a3 տոնով (10, 220, 300); lcd.print ("220"); ուշացում (400); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 900); lcd.print ("246.94"); ուշացում (1000); lcd. հստակ ();
// խաղալ e3
տոնայնություն (10, 164.81, 300); lcd.print ("164.81"); ուշացում (400); lcd. հստակ (); // նվագել g3# տոնով (10, 207.65, 300); lcd.print ("207.65"); ուշացում (400); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 300); lcd.print ("246.94"); ուշացում (400); lcd. հստակ (); // նվագել c4 տոնով (10, 261.63, 900); lcd.print ("261.63"); ուշացում (1000); lcd. հստակ (); // նվագել e տոնով (10, 164.81, 300); lcd.print ("164.81"); ուշացում (400); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (400); lcd. հստակ (); // նվագարկել d4# տոնով (10, 311.13, 300); lcd.print ("311.13"); ուշացում (400); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (400); lcd. հստակ (); // նվագարկել d4# տոնով (10, 311.13, 300); lcd.print ("311.13"); ուշացում (400); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (400); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 300); lcd.print ("246.94"); ուշացում (400); lcd. հստակ (); // նվագարկել d4 տոնով (10, 293.66, 300); lcd.print ("293.66"); ուշացում (400); lcd. հստակ (); // նվագել c4 տոնով (10, 261.63, 300); lcd.print ("261.63"); ուշացում (400); lcd. հստակ (); // նվագել a3 տոնով (10, 220, 900); lcd.print ("220.0"); ուշացում (1000); lcd. հստակ (); // նվագել d3 տոնով (10, 146.83, 300); lcd.print ("146.83"); ուշացում (400); lcd. հստակ (); // նվագարկել f3 տոնով (10, 174.61, 300); // eeprom 20–6 yesno, flash 65–0 noyes lcd.print («174.61»); ուշացում (400); lcd. հստակ (); // նվագել a3 տոնով (10, 220, 300); lcd.print ("220.0"); ուշացում (400); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 900); lcd.print ("246.94"); ուշացում (1000); lcd. հստակ (); // նվագարկել f3 տոնով (10, 174.61, 300); lcd.print ("174.61"); ուշացում (400); lcd. հստակ (); // նվագել c4 տոնով (10, 261.63, 300); lcd.print ("261.63"); ուշացում (400); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 300); lcd.print ("246.94"); ուշացում (400); lcd. հստակ (); // նվագել a3 տոնով (10, 220, 900); lcd.print ("220.0"); ուշացում (1000); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 300); lcd.print ("246.94"); ուշացում (400); lcd. հստակ (); // նվագել c4 տոնով (10, 261.63, 300); lcd.print ("261.63"); ուշացում (400); lcd. հստակ (); // նվագարկել d4 տոնով (10, 293.66, 300); lcd.print ("293.66"); ուշացում (400); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 900); lcd.print ("329.63"); ուշացում (1000); lcd. հստակ (); // նվագել g3 տոնով (10, 196, 300); lcd.print ("196.0"); ուշացում (400); lcd. հստակ (); // նվագել f4 տոնով (10, 349.23, 300); lcd.print ("349.23"); ուշացում (400); lcd. հստակ (); // նվագել e4 տոնով (10, 329.23, 300); lcd.print ("329.23"); ուշացում (400); lcd. հստակ (); // նվագարկել d4 տոնով (10, 293.63, 900); lcd.print ("293.63"); ուշացում (1000); lcd. հստակ (); // նվագել e3 տոնով (10, 164.81, 300); lcd.print ("164.81"); ուշացում (400); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (400); lcd. հստակ (); // նվագարկել d4 տոնով (10, 293.63, 300); lcd.print ("293.63"); ուշացում (400); lcd. հստակ (); // նվագել c4 տոնով (10, 261.63, 900); lcd.print ("261.63"); ուշացում (1000); lcd. հստակ (); // նվագել d3 տոնով (10, 146.83, 300); lcd.print ("146.83"); ուշացում (400); lcd. հստակ (); // նվագարկել d4 տոնով (10, 293.63, 300); lcd.print ("293.63"); ուշացում (400); lcd. հստակ (); // նվագել c4 տոնով (10, 261.63, 300); lcd.print ("261.63"); ուշացում (400); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 900); lcd.print ("246.94"); ուշացում (1000); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (400); lcd. հստակ (); // նվագարկել d4# տոնով (10, 311.13, 300); lcd.print ("311.13"); ուշացում (350); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (350); lcd. հստակ (); // նվագարկել d4# տոնով (10, 311.13, 300); lcd.print ("311.13"); ուշացում (350); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (350); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 300); lcd.print ("246.94"); ուշացում (400); lcd. հստակ (); // նվագարկել d4 տոնով (10, 293.66, 300); lcd.print ("293.66"); ուշացում (400); lcd. հստակ (); // նվագել c4 տոնով (10, 261.63, 300); lcd.print ("261.63"); ուշացում (400); lcd. հստակ (); // նվագել a3 տոնով (10, 220, 900); lcd.print ("220.0"); ուշացում (1000); lcd. հստակ (); // նվագել d3 տոնով (10, 146.83, 300); lcd.print ("146.83"); ուշացում (350); lcd. հստակ (); // նվագարկել f3 տոնով (10, 174.61, 300); lcd.print ("174.61"); ուշացում (400); lcd. հստակ (); // նվագել a3 տոնով (10, 220, 300); lcd.print ("220.0"); ուշացում (400); // խաղալ b3 lcd.clear (); տոն (10, 246.94, 900); lcd.print ("246.94"); ուշացում (1000); lcd. հստակ (); // նվագել e3 տոնով (10, 164.81, 300); lcd.print ("164.81"); ուշացում (400); lcd. հստակ (); // նվագել g#3 տոնով (10, 207.65, 300); lcd.print ("207.65"); ուշացում (400); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 300); lcd.print ("246.94"); ուշացում (400); lcd. հստակ (); // նվագել c4 տոնով (10, 261.63, 900); lcd.print ("261.63"); ուշացում (1000); ուշացում (300); lcd. հստակ (); // նվագել e3 տոնով (10, 164.81, 300); lcd.print ("164.81"); ուշացում (400); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (400); lcd. հստակ (); // նվագարկել d4# տոնով (10, 311.13, 300); lcd.print ("311.13"); ուշացում (400); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (400); lcd. հստակ (); // նվագարկել d4# տոնով (10, 311.13, 300); lcd.print ("311.13"); ուշացում (400); lcd. հստակ (); // նվագել e4 տոնով (10, 329.63, 300); lcd.print ("329.63"); ուշացում (400); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 300); lcd.print ("246.94"); ուշացում (400); lcd. հստակ (); // նվագարկել d4 տոնով (10, 293.66, 300); lcd.print ("293.66"); ուշացում (400); lcd. հստակ (); // նվագել c4 տոնով (10, 261.63, 300); lcd.print ("261.63"); ուշացում (400); lcd. հստակ (); // նվագել a3 տոնով (10, 220, 900); lcd.print ("220.0"); ուշացում (1000); lcd. հստակ (); // նվագել d3 տոնով (10, 146.83, 300); lcd.print ("146.83"); ուշացում (400); lcd. հստակ (); // նվագարկել f3 տոնով (10, 174.61, 300); lcd.print ("174.61"); ուշացում (400); lcd. հստակ (); // նվագել a3 տոնով (10, 220, 300); lcd.print ("220.0"); ուշացում (400); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 900); lcd.print ("246.94"); ուշացում (1000); lcd. հստակ (); // նվագարկել f3 տոնով (10, 174.61, 300); lcd.print ("174.61"); ուշացում (400); lcd. հստակ (); // նվագել c4 տոնով (10, 261.63, 300); lcd.print ("261.63"); ուշացում (400); lcd. հստակ (); // նվագել b3 տոնով (10, 246.94, 300); lcd.print ("246.94"); ուշացում (400); lcd. հստակ (); // նվագել a3 տոնով (10, 220, 900); lcd.print ("220.0"); ուշացում (1000); lcd. հստակ (); }
Քայլ 5. Կոդի վերբեռնում. Ի՞նչ է նշանակում այդ ամենը:
Եկեք որոշ գործառույթներ սահմանենք անգլերենով, այնպես որ կարող եք հասկանալ ծածկագիրը:
տոնայնություն (x, y, z); = նվագել հնչերանգ y Hertz- ի ձայնով, ազդանշանի վրա ՝ x pin- ում, z միլիվայրկյաններով:
lcd.print («XYZ»); = տպեք հաղորդագրություն XYZ նիշերով LCD էկրանին: (օրինակ ՝ ցուցադրել Հերցի սկիպիդարը)
ուշացում (x); = դադար x միլիվայրկյան:
const int X = Y = սահմանել X հաստատուն փոփոխական Y- ի համար, և օգտագործել X- ը կամ Y- ը `սարքին առաջադրանքներ նշանակելու համար:
lcd. հստակ (); = մաքրել LCD էկրանը և վերականգնել նոր ցուցադրման համար
pinMode (X, OUTPUT); = սահմանել P X- ը ելքային ռեժիմի համար
Այս բոլոր գործառույթները հասկանալուց հետո կարող եք հեշտությամբ փոփոխականները փոխարինել այն երգերով, որոնք հավաքում եք երգ թարգմանելիս, այնուհետև կարող եք կոդավորել ձեր սեփական երգը:
Քայլ 6: Ավարտվեց !


Դուք կամ ունեք Arduino, որը խաղում է Fur Elise- ը և ցուցադրում է նոտայի արժեքները Հերցում, կամ դուք պատրաստել եք Arduino, որը նվագում է ձեր ընտրած երգի մեղեդին և ցուցադրում է տեքստ, որը ցանկանում էիք ցուցադրել: Շնորհակալություն այս ձեռնարկը այցելելու համար, և ես հույս ունեմ ձեզ, որ այս նախագիծը Arduino- ում է:
Խորհուրդ ենք տալիս:
Արդուինոյի պատրաստած տնային աշխատանքի ժամաչափ. 5 քայլ

Արդուինոյի պատրաստած տնային առաջադրանքների ժամաչափ. Ձեր երեխան ժամեր շարունակ գրում է իր տնային աշխատանքը: Արդյո՞ք ձեր երեխան հեշտությամբ շեղվում է ուրիշներից, երբ նա տնային աշխատանք է կատարում: Այսօր ես փորձեցի անել այս հակամարտության լավագույն լուծումը `Arduino- ի կողմից պատրաստված ժամաչափ: Ինչու՞ եմ փորձում այս ժամաչափը պատրաստել փոխարեն
Թվայնացրեք ձեր Hi-Fi համակարգը. 6 քայլ (նկարներով)

Թվայնացրեք ձեր Hi-Fi համակարգը. Այս հրահանգում ես կցանկանայի ցույց տալ ձեզ, թե ինչպես եմ թվայնացրել իմ անալոգային Hi-fi համակարգը և դրանով իսկ իրականացրել վեբ ռադիոն, մուտք դեպի իմ ԳԱԱ-ում պահվող երաժշտական հավաքածու և այլն: Իրականացումը հիմնականում հիմնված է Raspberry Pi, Hifiberry HAT և հպում
Ինչպես կոդավորել երգը Sonic Pi- ում ՝ օգտագործելով թերթիկ ՝ 5 քայլ

Ինչպես կոդավորել երգը Sonic Pi- ում ՝ օգտագործելով թերթիկ. Կա մեկ միլիոն այլ կտոր կոդ, որը փորձում է համը հաղորդել ձեր պատրաստի կտորին, այնպես որ համոզվեք, որ նաև խաղալու եք
Sonic Pi «Twinkle Twinkle Little Star» կոդավորված երգը Mac- ի համար ՝ 6 քայլ

Sonic Pi "Twinkle Twinkle Little Star" կոդավորված երգ Mac- ի համար. Սրանք հիմնական հրահանգներն են, թե ինչպես կոդավորել " Twinkle Twinkle Little Star " Sonic Pi- ի վրա Mac- ում
ԻՆՉՊԵՍ ԿԱՐՈ ԵՆ ՀԵՏ ՀԵՏ ՀԵՏ չորության չորացման սենսոր `4 քայլ

ՈՐՊԵՍ ԿԱՐՈ ԵՆՔ ՀԵՏ ՀԵՏ ՀԱՎԱՔԱՈ ՍԵՆՍՈՐ. Ողջույն, այս ուսանելի ծրագրում ես ձեզ ցույց կտամ, թե ինչպես պատրաստել մի պարզ «ՀՈ DRՅԱՆ ՉՈՐՈ SԹՅԱՆ ՍԵՆՍՈՐ»: Սա իմ առաջին ուսանելի ներողությունն է իմ ծիծաղելի անգլերենի համար: Հողի չորությունը որոշվում է led ցուցիչով: led լույսը wi