Բովանդակություն:
- Քայլ 1: Բաղադրությունը
- Քայլ 2. Միացրեք Ուլտրաձայնային տվիչները Octasonic Board- ին
- Քայլ 3. Միացրեք տրամաբանական մակարդակի փոխարկիչը Octasonic տախտակին
- Քայլ 4. Տրամաբանական մակարդակի փոխարկիչը միացրեք Raspberry Pi- ին
- Քայլ 5. Միացրեք Raspberry Pi 5V- ը Octasonic 5V- ին
- Քայլ 6: Տեղադրեք ծրագրակազմ
- Քայլ 7: Ստեղծեք երաժշտություն:
- Քայլ 8: Gեստերի վերահսկում
- Քայլ 9: Պատյան պատրաստելը
- Քայլ 10: Խնդիրների վերացում և հաջորդ քայլեր
Video: Ուլտրաձայնային Pi դաշնամուր `ժեստերի վերահսկմամբ: 10 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Այս նախագիծը որպես էժան օգտագործում է էժան HC-SR04 ուլտրաձայնային տվիչներ և առաջացնում MIDI գրառումներ, որոնք բարձրորակ ձայնի համար կարող են հնչել Raspberry Pi- ի սինթեզատորով:
Նախագիծը նաև օգտագործում է ժեստերի կառավարման հիմնական ձևը, որտեղ երաժշտական գործիքը կարող է փոխվել ՝ ձեռքերը մի քանի վայրկյան պահելով երկու ծայրահեղ սենսորների վրա: Մեկ այլ ժեստ կարող է օգտագործվել Raspberry Pi- ն ավարտելուց հետո փակելու համար:
Վերոնշյալ տեսանյութը ցույց է տալիս պատրաստի արտադրանքը լազերային կտրված պարզ պատյանում: Ավելի ուշ այս ուսանելի նյութում կա ավելի խորը տեսանյութ, որը բացատրում է, թե ինչպես է աշխատում նախագիծը:
Ես ստեղծեցի այս նախագիծը The Gizmo Dojo- ի (Broomfield, CO) իմ տեղական արտադրողի հետ համատեղ `որոշ ինտերակտիվ ցուցանմուշներ պատրաստելու համար, որոնք մենք կարող ենք տանել տեղական STEM/STEAM միջոցառումներին և Maker Faires- ին:
Խնդրում ենք նաև ծանոթանալ վերջին փաստաթղթերին և ձեռնարկներին ՝ https://theotherandygrove.com/octasonic/, որը այժմ պարունակում է տեղեկատվություն այս նախագծի Python տարբերակի վերաբերյալ (այս հրահանգը գրվել է Rust տարբերակի համար):
Քայլ 1: Բաղադրությունը
Այս հրահանգի համար ձեզ հարկավոր են հետևյալ բաղադրիչները.
- Raspberry Pi (2 կամ 3) SD քարտով
- 8 HC-SR04 ուլտրաձայնային տվիչներ
- Octasonic Breakout տախտակ
- Երկկողմանի տրամաբանական մակարդակի փոխարկիչ
- 32 x 12 "Իգական-իգական Jumper լարեր` ուլտրաձայնային տվիչների միացման համար
- 13 x 6 "Իգական-իգական Jumper լարեր` Raspberry Pi, Octasonic և Logic Level Converter միացնելու համար
- Հարմար սնուցման աղբյուր Raspberry Pi- ի համար
- ԱՀ բարձրախոսներ կամ նմանատիպ
Ես խորհուրդ կտամ հնարավորության դեպքում օգտագործել Raspberry Pi 3 -ը, քանի որ այն ունի ավելի շատ հաշվողական հզորություն, ինչը կհանգեցնի ավելի արձագանքող և հաճելի ձայնի: Այն կարող է լավ աշխատել Raspberry Pi 2 -ի հետ ՝ մի փոքր շտկելով, բայց ես չէի փորձի օգտագործել բնօրինակ Raspberry Pi- ն այս նախագծի համար:
HC -SR04 ուլտրաձայնային տվիչները ունեն 4 միացում `5V, GND, Trigger և Echo: Սովորաբար, Trigger- ը և Echo- ն միացված են միկրոկառավարիչի կամ Raspberry Pi- ի առանձին կապում, բայց դա նշանակում է, որ 8 սենսոր միացնելու համար անհրաժեշտ կլինի օգտագործել 16 կապում, և դա գործնական չէ: Այստեղ է, որ գալիս է Octasonic breakout տախտակը: Այս տախտակը միանում է բոլոր տվիչներին և ունի հատուկ միկրոկոնտրոլեր, որը վերահսկում է սենսորները, այնուհետև շփվում է Raspberry Pi- ի հետ SPI- ով:
HC-SR04- ը պահանջում է 5V, իսկ Raspberry Pi- ն ՝ ընդամենը 3.3V, ուստի դրա համար մեզ նաև տրամաբանական մակարդակի փոխարկիչ է պետք, որը Raspberry Pi- ին կմիացնի Octasonic breakout տախտակին:
Քայլ 2. Միացրեք Ուլտրաձայնային տվիչները Octasonic Board- ին
Յուրաքանչյուր ուլտրաձայնային տվիչ տախտակին միացնելու համար օգտագործեք 4 կին-կին թռիչքային լարեր, զգույշ եղեք դրանք ճիշտ շրջելիս: Տախտակը նախագծված է այնպես, որ քորոցները նույն կարգի են, ինչպես ուլտրաձայնային տվիչի քորոցները: Տախտակի վրա ձախից աջ, կապում են GND, Trigger, Echo, 5V:
Քայլ 3. Միացրեք տրամաբանական մակարդակի փոխարկիչը Octasonic տախտակին
Raspberry Pi- ն և Octasonic Board- ը շփվում են SPI- ի միջոցով: SPI- ն օգտագործում է 4 լար:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Սերիական ժամացույց (SCK)
- Ստրուկի ընտրություն (SS)
Բացի այդ, մենք պետք է միացնենք հոսանքը (5V և GND):
Տրամաբանական մակարդակի փոխարկիչն ունի երկու կողմ `ցածր լարման (LV) և բարձր լարման (HV): Ազնվամորին կկապվի LV կողմին, քանի որ այն 3.3 Վ է: Octasonic- ը միանալու է HV կողմին, քանի որ այն 5V է:
Այս քայլը նախատեսված է Octasonic- ը տրամաբանական մակարդակի փոխարկիչի HV կողմին միացնելու համար:
Տեսեք այս քայլին կցված լուսանկարը, որը ցույց է տալիս, թե որ կապերն են պետք միացված լինել տրամաբանական մակարդակի փոխարկիչին:
Octasonic- ից Logic Level փոխարկիչին միացումները պետք է լինեն հետևյալը.
- 5V դեպի HV
- SCK- ից HV4
- MISO- ից HV3- ին
- MOSI- ից HV2- ին
- SS- ից HV1
- GND- ից GND
Քայլ 4. Տրամաբանական մակարդակի փոխարկիչը միացրեք Raspberry Pi- ին
Raspberry Pi- ն և Octasonic Board- ը շփվում են SPI- ի միջոցով: SPI- ն օգտագործում է 4 լար:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Սերիական ժամացույց (SCK)
- Ստրուկի ընտրություն (SS)
Բացի այդ, մենք պետք է միացնենք հոսանքը (3.3V և GND): Տրամաբանական մակարդակի փոխարկիչն ունի երկու կողմ `ցածր լարման (LV) և բարձր լարման (HV): Ազնվամորին կկապվի LV կողմին, քանի որ այն 3.3 Վ է: Octasonic- ը միանալու է HV կողմին, քանի որ այն 5V է:
Այս քայլը նախատեսված է Raspberry Pi- ն տրամաբանական մակարդակի փոխարկիչի LV կողմին միացնելու համար:
Raspbery Pi- ից Logic Level փոխարկիչին միացումները պետք է լինեն հետևյալը.
- 3.3V դեպի LV
- GPIO11 (SPI_SCLK) դեպի LV4
- GPIO09 (SPI_MISO) դեպի LV3
- GPIO10 (SPI_MOSI) դեպի LV2
- GPIO08 (SPI_CE0_N) SS- ից LV1
- GND- ից GND
Օգտագործեք այս քայլին կցված դիագրամը ՝ Raspberry Pi- ի ճիշտ կապերը գտնելու համար:
Քայլ 5. Միացրեք Raspberry Pi 5V- ը Octasonic 5V- ին
Կա մեկ վերջնական մետաղալար ավելացնելու համար: Մենք իրականում պետք է սնուցենք Octasonic տախտակը 5V- ով, այնպես որ մենք դա անում ենք ՝ միացնելով Raspberry Pi 5V կապումներից մեկը Octasonic AVR վերնագրի 5V կապին: Սա AVR վերնագրի բլոկի ներքևի ձախ կապն է (սա 2 x 3 բլոկն է տախտակի վերևի աջ մասում): Տեսեք կից լուսանկարը, որը ցույց է տալիս, թե որտեղ է գտնվում AVR բլոկը:
Տես Raspberry Pi- ի 5V կապը գտնելու համար տես մյուս կցված դիագրամը:
Քայլ 6: Տեղադրեք ծրագրակազմ
Տեղադրեք Raspian- ը
Սկսեք Raspbian Jessie- ի մաքուր տեղադրմամբ, այնուհետև թարմացրեք այն վերջին տարբերակին.
sudo apt-get թարմացում
sudo apt-get բարելավում
Միացնել SPI- ն
Այս նախագծի աշխատանքի համար դուք պետք է միացնեք SPI- ն Raspberry Pi- ի վրա: Դա անելու համար օգտագործեք Raspberry Pi Configuration ծրագիրը:
Կարևոր է նաև, որ SPI- ն ուժի մեջ մտնելուց հետո վերագործարկեք Pi- ն:
Տեղադրեք FluidSynth- ը
Fluidsynth- ը զարմանալի անվճար ծրագրակազմի MIDI սինթեզ է: Դուք կարող եք այն տեղադրել հրամանի տողից այս հրամանով.
sudo apt-get տեղադրել fluidsynth
Տեղադրեք Rust ծրագրավորման լեզուն
Ուլտրաձայնային Pi դաշնամուրն իրականացվում է Mozilla- ի Rust ծրագրավորման լեզվով (այն նման է C ++ - ին, բայց առանց վատ բիթերի): Դա այն է, ինչ այս օրերին օգտագործում են բոլոր զով երեխաները:
Հետևեք https://rustup.rs/ հրահանգներին ՝ Rust- ը տեղադրելու համար: Ձեր ժամանակը խնայելու համար հրահանգներն են `գործարկել այս մեկ հրամանը: Տեղադրման ընթացքում կարող եք ընդունել ցանկացած հարցի կանխադրված պատասխան:
ՈEՇԱԴՐՈԹՅՈՆ. Այս հրահանգը տեղադրելուց հետո, Raspberry Pi- ի վրա Rust- ի տեղադրման հետ կապված որոշ խնդիրներ կան: Վատ ժամանակաշրջան. Հուսանք, որ նրանք շուտով դա կշտկեն: Ես աշխատում եմ պատկերի ստեղծման վրա, որը մարդիկ կարող են ներբեռնել և այրել SD քարտի վրա: Եթե ցանկանում եք դա, խնդրում եմ կապվեք ինձ հետ:
արտահանել RUSTUP_USE_HYPER = 1 պտույտ https://sh.rustup.rs -sSf | շ
Ներբեռնեք ուլտրաձայնային Pi Piano- ի աղբյուրի կոդը
Ուլտրաձայնային Pi Piano աղբյուրի կոդի սկզբնաղբյուրը տեղակայված է github- ում: Կոդ ստանալու երկու տարբերակ կա. Եթե ծանոթ եք git- ին և github- ին, կարող եք կլոնավորել repo- ն ՝
git clone [email protected]: TheGizmoDojo/UltrasonicPiPiano.git
Այլապես, կարող եք ներբեռնել վերջին կոդի փոստային ֆայլ:
Կազմեք աղբյուրի կոդը
cd Ուլտրաձայնային PiPiano
բեռների կառուցում -թողարկում
Փորձարկեք կոդը
Նախքան հաջորդ քայլին երաժշտություն պատրաստելը, եկեք համոզվենք, որ ծրագրակազմն աշխատում է, և որ մենք կարող ենք կարդալ տվիչների վավերական տվյալները:
Օգտագործեք հետևյալ հրամանը `ծրագիրը գործարկելու համար: Սա կարդալու է տվիչների տվյալները և դրանք թարգմանելու է MIDI նշումների, որոնք այնուհետև տպվում են վահանակի վրա: Սենսորների վրա ձեր ձեռքը տեղափոխելիս պետք է տեսնեք, թե ինչպես են տվյալները ստեղծվում: Եթե ոչ, ապա այս հրահանգի վերջում անցեք անսարքությունների վերացման բաժին:
բեռների վազք -թողարկում
Եթե դուք հետաքրքրասեր եք, «-ազատ արձակել» դրոշը Rust- ին ասում է, որ հնարավորինս արդյունավետ կազմի ծածկագիրը ՝ ի տարբերություն «-վրիպազերծման» կանխադրված պարամետրի:
Քայլ 7: Ստեղծեք երաժշտություն:
Համոզվեք, որ դեռ գտնվում եք այն գրացուցակում, որտեղ ներբեռնել եք սկզբնական կոդը և գործարկել հետևյալ հրամանը:
Այս «run.sh» սցենարը համոզվում է, որ ծածկագիրը կազմված է, այնուհետև գործարկում է կոդը ՝ ելքը հոսելով հոսքի մեջ:
./run.sh
Համոզվեք, որ Raspberry Pi- ի 3.5 մմ աուդիո խցիկին միացված ուժեղացված բարձրախոսներ ունեք և պետք է երաժշտություն լսել սենսորների վրա ձեռքերը շարժելիս:
Եթե երաժշտություն չեք լսում և կցված եք HDMI մոնիտոր, ապա դրա փոխարեն, հավանաբար, ձայնի ելքը գնում է այնտեղ: Դա շտկելու համար պարզապես գործարկեք այս հրամանը և նորից վերագործարկեք Pi Piano- ն.
sudo amixer cset numid = 3 1
Ձայնի փոփոխություն
Theավալը (կամ «շահույթը») նշվում է «-g» պարամետրով մինչև fluidsynth: Կարող եք փոփոխել run.sh սցենարը և փոխել այս արժեքը: Խնդրում ենք նկատի ունենալ, որ այս պարամետրի փոքր փոփոխությունները հանգեցնում են ծավալի մեծ փոփոխության, ուստի փորձեք այն փոքր քանակությամբ ավելացնել (օրինակ ՝ 0.1 կամ 0.2):
Քայլ 8: Gեստերի վերահսկում
Stepրագրի ամբողջական ցուցադրման համար տեսեք այս քայլին կից տեսանյութը, ներառյալ, թե ինչպես են աշխատում ժեստերի կառավարման տարրերը:
Հայեցակարգը շատ պարզ է: Softwareրագիրը հետևում է, թե որ սենսորներն են ծածկված (10 սմ -ի սահմաններում), և որոնք `ոչ: Սա թարգմանվում է 8 երկուական թվերի (1 կամ 0): Սա շատ հարմար է, քանի որ 8 երկուական թվերի հաջորդականությունը կազմում է «բայթ», որը կարող է ներկայացնել թվեր 0 -ից 255 -ի միջև: Եթե դեռ չգիտեք երկուական թվերի մասին, ապա խորհուրդ եմ տալիս ձեռնարկ փնտրել: Երկուական թվերը սովորելու հիմնարար հմտություն են, եթե ցանկանում եք ավելին իմանալ ծրագրավորման մասին:
Theրագիրը քարտեզագրում է սենսորների ներկա վիճակը մեկ բայթին, որը ներկայացնում է ընթացիկ ժեստը: Եթե մի շարք ցիկլերի ընթացքում այդ թիվը մնում է նույնը, ապա ծրագրաշարը գործում է այդ ժեստի վրա:
Քանի որ ուլտրաձայնային տվիչները չափազանց հուսալի չեն և կարող են միջամտություն լինել սենսորների միջև, դուք պետք է որոշ համբերություն ցուցաբերեք ժեստերն օգտագործելիս: Փորձեք տարբերել սենսորներից ձեր ձեռքերը պահող հեռավորությունը, ինչպես նաև ձեր ձեռքերը պահելու անկյունը: Դուք նույնպես փորձում եք սենսորների վրա պահել ինչ -որ հարթ և ամուր բան ՝ ձայնն ավելի լավ արտացոլելու համար:
Քայլ 9: Պատյան պատրաստելը
Եթե ցանկանում եք սա դարձնել մշտական ցուցադրություն և կարողանաք այն ցուցադրել մարդկանց, հավանաբար կցանկանաք ինչ -որ պարիսպ պատրաստել: Սա կարող է պատրաստվել փայտից, ստվարաթղթից կամ շատ այլ նյութերից: Ահա մի տեսանյութ, որը ցույց է տալիս այն պարիսպը, որի վրա մենք աշխատում ենք այս նախագծի համար: Սա պատրաստված է փայտից, ուլտրաձայնային տվիչները տեղում պահելու համար բացված անցքերով:
Քայլ 10: Խնդիրների վերացում և հաջորդ քայլեր
Անսարքությունների վերացում
Եթե նախագիծը չի աշխատում, ապա դա սովորաբար կապված է էլեկտրագծերի սխալի հետ: Մի շտապեք կրկնակի ստուգել բոլոր կապերը:
Մեկ այլ ընդհանուր խնդիր է SPI- ի միացումը և pi- ի վերագործարկումը:
Խնդրում ենք այցելել https://theotherandygrove.com/octasonic/ ամբողջական փաստաթղթերի համար, ներառյալ անսարքությունների վերացման խորհուրդները, Rust և Python- ի հատուկ հոդվածներով, ինչպես նաև տեղեկատվություն, թե ինչպես ստանալ աջակցություն:
Հաջորդ քայլերը
Երբ նախագիծն աշխատի, խորհուրդ եմ տալիս փորձարկել ծածկագիրը և փորձել տարբեր երաժշտական գործիքներ: MIDI գործիքի կոդերը 1 -ից 127 են և փաստաթղթավորված են այստեղ:
Wantանկանու՞մ եք մեկ երաժշտական գործիք, որի յուրաքանչյուր սենսոր նվագի տարբեր օկտավա: Գուցե կցանկանայի՞ք, որ յուրաքանչյուր սենսոր դրա փոխարեն առանձին գործիք լիներ: Հնարավորությունները գրեթե անսահմանափակ են:
Հուսով եմ, որ ձեզ դուր եկավ այս ուսանելի ծրագիրը: Հավանեք, եթե հավանեցիք, և անպայման բաժանորդագրվեք ինձ այստեղ և իմ YouTube ալիքին ՝ ապագա նախագծերը տեսնելու համար:
Խորհուրդ ենք տալիս:
Հիմնական պարամետրերի ավտոմատ վերահսկմամբ ակվարիումի ձևավորում. 4 քայլ (նկարներով)
Ակվարիումի դիզայն հիմնական պարամետրերի ավտոմատացված վերահսկմամբ. Ներածություն Այսօր ծովային ակվարիումի խնամքը հասանելի է յուրաքանչյուր ակվարիումի համար: Ակվարիում ձեռք բերելու խնդիրը դժվար չէ: Բայց բնակիչների լիարժեք կենսապահովման, տեխնիկական խափանումներից պաշտպանվելու, հեշտ և արագ սպասարկում և խնամք
24 Վտ հզորությամբ լուսադիոդային լուսավորություն ՝ պայծառության վերահսկմամբ ՝ 8 քայլ (նկարներով)
24 Վտ հզորությամբ լույսը լուսավորում է պայծառության հսկողություն. Սնունդը աճելն իմ ամենասիրած զբաղմունքներից է, քանի որ ես օրգանական սննդի և առողջ սնվելու մեծ երկրպագու եմ: Այս հրահանգը ցույց կտա ձեզ, թե ինչպես կարելի է կառուցել լուսադիոդային լուսավորություն կարմիր/կապույտ պայծառության կարգավորիչներով ՝ ձեր աճող կարիքներին համապատասխան և թույլ կտա ձեզ փորձառու լինել
Neopixel- ի գլխիկով մատանի ժեստերի սենսորով կառավարելը. 3 քայլ (նկարներով)
Neopixel- ի գլխիկով մատանի ժեստերի սենսորով կառավարելը. Այս ձեռնարկում մենք խաղալու ենք ժեստերի ցուցիչով (APDS-9960) և նեոպիքսելային մատանիով `սովորելու համար, թե ինչպես դրանք համատեղել Arduino UNO- ի միջոցով: Վերջնական արտադրանքը կպատասխանի ձախ - աջ ժեստեր ՝ շարժելով առաջ շարժումը աջ կամ ձախ, և դեպի ձեզ
Minecraft ժեստերի վերահսկիչ. 10 քայլ (նկարներով)
Minecraft Gesture Controller. Տեղափոխեք ձեր մարմինը Minecraft խաղալու համար: Ինչ!! Այո Ստուգեք ցուցադրման տեսանյութը. Տեղափոխեք ձեր ձեռքը (ները) քայլելու/վազելու/ցատկելու համար, նայեք արա
Անլար ռոբոտային ձեռքը վերահսկվում է ժեստերի և ձայնի միջոցով. 7 քայլ (նկարներով)
Անլար ռոբոտային ձեռքը վերահսկվում է ժեստերի և ձայնի միջոցով. Հիմնականում սա մեր քոլեջի նախագիծն էր, և այս նախագիծը ներկայացնելու ժամանակի սղության պատճառով մենք մոռացել էինք որոշ քայլերի լուսանկարել: Մենք նաև նախագծեցինք մի կոդ, որի օգնությամբ կարելի է կառավարել այս ռոբոտացված ձեռքը ՝ միաժամանակ ժեստի և ձայնի միջոցով, բայց