Բովանդակություն:

Ավագ ռադիո - Ազնվամորի Պի. 8 քայլ
Ավագ ռադիո - Ազնվամորի Պի. 8 քայլ

Video: Ավագ ռադիո - Ազնվամորի Պի. 8 քայլ

Video: Ավագ ռադիո - Ազնվամորի Պի. 8 քայլ
Video: Համերգ ՏԱՆԿԻՍՏԻ օրը ★ Օդուժի և ՀՕՊ ուժերի համերգային խումբը երգում է 2024, Հուլիսի
Anonim
Ավագ ռադիո - Raspberry Pi
Ավագ ռադիո - Raspberry Pi

Ավագ ռադիոյի նախագիծը բաց կոդով հասանելի նախագծված ինտերնետային ռադիո սարք է `ինչպես ապարատային, այնպես էլ ծրագրային բաղադրիչներով: Այն նախատեսված է օգտագործել այն գրպանային ռադիոյի վերահսկողությանը ծանոթ օգտվողների համար, որտեղ հավաքողները վերահսկում են ձայնը և ընտրված ռադիոկայանը: Նախագիծը պատրաստված է օգտագործողի վրա հիմնված դիզայնով, որը կենտրոնացած է այն օգտվողի վրա, ով ցանկանում է ունենալ նույն չափսերը և վերահսկում է որպես ստանդարտ ձեռքի ռադիո:

Այն կառուցվել է այն կարիքները բավարարելու համար, որոնք թույլ են տալիս հաշմանդամություն ունեցող անձանց կարողանալ լսել հազարավոր տարբեր ինտերնետային հոսքային բովանդակություն, որը սովորաբար սովորաբար հասանելի է ինտերնետ դիտարկիչի միջոցով: Շատերը նման սարքը հեշտությամբ օգտագործելու ունակություն չունեն, ուստի այս դիզայնը նպատակ ունի ժամանակակից տեխնոլոգիայի համար ծանոթ ինտերֆեյս դարձնել:

Հիմնական ֆունկցիոնալությունը Github- ում է ՝ պահված python 3.7.3 ծրագրում, որը կոչվում էeniorRadio.py: Այն կարդում և գրում է json ֆայլ ՝ ռադիոյի վիճակը պահելու համար, այնպես որ այն անջատելիս կհիշի ընթացիկ ձայնի մակարդակը և ընտրված կայանը: Բացի այդ, այն կարդում է առցանց տեղակայված json ֆայլ, որը կարող եք փոխել: Սա թույլ է տալիս հեռակա կարգով թարմացնել ռադիոկայանները, եթե դա տալիս եք մեկ ուրիշին:

Այն ներկայումս ստեղծվել է bluetooth բարձրախոսին միանալու համար, բայց հեշտությամբ կարող է ստեղծվել նաև ինքնաթիռի բարձրախոսը նվագարկելու համար:

Այս սարքի ստեղծողը, ամենայն հավանականությամբ, օգտագործողը չէ, և կարիք ունի էլեկտրոնիկայի և ծրագրավորման հիմնական գիտելիքների առնվազն որոշակի փորձի: Linux- ի փորձը նույնպես շատ օգտակար է:

Օգտվողի համար գործառույթը պարզ է.

Միացման դեպքում այն կհնչի լռելյայն ձայնային սարքի վրա ընտրված վերջին կայանը: Ձախ հավաքիչը վերահսկում է կայանը, որտեղ հավաքիչի մի քանի կտտոցը փոխվում է նոր URL- ի: Այն կշրջվի վերջին կամ առաջին մուտքից հետո: Աջ հավաքիչը վերահսկում է ձայնի մակարդակը: LED- ը ցույց է տալիս, որ ծրագիրը միացված է: Իսկ սեղմման կոճակը դադար է տալիս կամ «անջատում» ռադիոն: Այսպիսով, միացնելուց հետո օգտվողը կարող է պարզապես սեղմել կոճակը ՝ դադար տալու/նվագարկելու համար, կամ «անջատելու/միացնելու», ռադիոն և այն երկու հսկիչ ՝ այն կառավարելու համար:

Պարագաներ

Յուրաքանչյուր նյութի հետ կապված է այն, ինչ ես օգտագործել եմ: Ինձ համար ընդհանուր առմամբ ծախսվեց մոտ $ 60 ՝ պաշարների ավելցուկով:

Էլեկտրոնային և linux հիմնական գիտելիքներ `հավաքման և կարգաբերման համար

Raspberry Pi Zero W (Zero WH- ի վերնագրերը նախապես զոդված են և, ամենայն հավանականությամբ, օգտակար)

MicroSD քարտ-8 ԳԲ+ և ունակություն o

MicroUSB 5V հոսանքի ադապտեր - հղումը ներառում է նաև microHDMI ադապտեր և microUSB OTG դեպի USB A ադապտեր, եթե դրանք ձեզ անհրաժեշտ են

Bluetooth բարձրախոս

M/F և M/M jumper մալուխներ

2 Պտտվող կոդավորիչ - նույն հղումը, ինչպես վերևում

Փոքր հացաթուղթ

Pushbutton

LED (ըստ ցանկության) - գնեց LED + կոճակը վերևում

Տուփ փաթեթավորման համար

Քայլ 1. Կարգավորում (անգլուխ) Raspberry Pi W

Կարգավորում (անգլուխ) Raspberry Pi W
Կարգավորում (անգլուխ) Raspberry Pi W

Մենք պետք է կարգավորենք օպերացիոն համակարգը ազնվամորու pi- ի վրա, որը կաշխատի ծրագրակազմը: Սրանցից ոչ մեկը հատուկ չէ այս նախագծին: Վրիպազերծման համար խորհուրդ կտամ կարգավորել այն, որպեսզի կարողանաք մուտք գործել նաև անգլուխ ռեժիմով: Սա նշանակում է, որ ձեր WiFi ցանցի pi- ին մուտք եք գործում GUI կամ SSH տերմինալի միջոցով և ամեն անգամ այն օգտագործելու համար անհրաժեշտ չէ ստեղնաշար, մկնիկ և մոնիտոր: Դուք կարող եք դա անել ՝ առանց որևէ մոնիտորի/մկնիկի/ստեղնաշարի միանալու, եթե ավելի տեխնիկապես գիտեք: Որոշ հրահանգների օրինակ այստեղ: Այնուամենայնիվ, այն ավելի քիչ ուղիղ է առաջ, իսկ ներքևում `դրա ստեղծման այլ եղանակ:

Այս առաջին անգամ, ամենայն հավանականությամբ, ձեզ հարկավոր կլինի.

  • Ազնվամորի Պի Վ
  • MicroSD- ից SD քարտի ադապտեր [OS- ն SD քարտի վրա գրելու համար]
  • MicroSD քարտ (~ 8 ԳԲ+) [OS և մեր ծրագիրը պահելու համար]
  • MicroUSB հզորություն (5 Վ)
  • MicroUSB դեպի USB A [մկնիկի/ստեղնաշարի համար]
  • Մինի HDMI- ից HDMI ադապտեր [ցուցադրման ելքի համար]
  • Ստեղնաշար
  • Մուկ
  • Մոնիտոր

Նախ, դուք պետք է օպերացիոն համակարգը միացնեք rPi միկրո SD քարտի վրա:

Ես օգտագործել եմ raspian buster, դուք սա ներբեռնում եք SD քարտ կարդալու/գրող համակարգչի վրա, այնուհետև raspian OS- ն տեղադրում SD քարտի վրա: BalenaEtcher- ը դա անելու հեշտ ծրագիր է

Հաջորդը տեղադրեք SD քարտը pi բնիկի մեջ, միացրեք մոնիտորը, ստեղնաշարը և հոսանքը: Շարունակեք կարգաբերման այն քայլերը, որոնք ձեզ հուշում է raspian- ը, ներառյալ այն ձեր WiFi ցանցին միացնելը և Bluetooth- ի խոսնակի զուգավորումը GUI- ի միջոցով: Լավ պրակտիկա կլինի այն թարմացնել ՝ օգտագործելով հետևյալ հրամանները

sudo apt-get թարմացում

sudo apt-get բարելավում

Եթե ցանկանում եք ներառել ձեր pi- ի անգլխավոր նշումը, ապա մենք պետք է նախ գրավենք pi- ի IP հասցեն: Տերմինալի միջոցով կարող եք գտնել այն միջոցով

ifconfig

հրաման. Դրանից հետո դուք պետք է միացնեք SSH- ն և VNC- ն ՝ միջերեսային տարբերակների վրա

sudo raspi-config

Վերագործարկվելուց հետո այժմ կարող եք ստուգել pi- ի հասանելիությունը SSH- ով կամ VNC- ով: SSH- ն պարզապես տերմինալային ինտերֆեյս է, և գուցե ձեզ համար ավելի հեշտ լինի GUI- ն օգտագործել Bluetooth բարձրախոսը զուգակցելու համար: Դուք կարող եք օգտագործել այնպիսի ծրագիր, ինչպիսին է VNC connect- ը, ձեր ցանցի առանձին համակարգչից ձեր pi- ին հեշտությամբ մուտք գործելու համար: Դրա մեջ կարող եք օգտագործել SSH- ի նման ծեփամածիկ ծրագիր:

Ավելին, կարող եք ստեղծել VNC ամպային հաշիվ, որպեսզի անհրաժեշտության դեպքում կարողանաք սարքից մուտք գործել ցանց

Քայլ 2: Տեղադրեք ավագ ռադիոյի ծրագրակազմ

Տեղադրեք ավագ ռադիոյի ծրագրակազմ
Տեղադրեք ավագ ռադիոյի ծրագրակազմ

Դա կարելի է անել ազնվամորու pi- ի տերմինալային պատուհանից: Նախ համոզվեք, որ git- ը տեղադրված է

sudo apt-get install git

Կախված նրանից, թե որ օպերացիոն համակարգն եք տեղադրել, այս քայլերը կարող են տարբեր լինել, քանի որ ձեզ կարող են անհրաժեշտ լինել լրացուցիչ փաթեթներ տեղադրել, համակարգը ձեզ կասի, եթե այդպես է: Նախ անհրաժեշտ է ներբեռնել ավագ ռադիո կոդը github- ից: https://github.com/Bunborn/seniorRadio Իդեալում, դուք մեր սեփական ռեպո եք պատրաստում, որպեսզի կարողանաք փոփոխություններ կատարել և հեշտությամբ փոխել ռադիոկայանները այնպես, ինչպես ես եմ անում: Պատառաքաղի ռեպոն, եթե այո

Այնուամենայնիվ, դուք կարող եք օգտագործել նույնը, ինչ իմն է: Խնդիր չկա, եթե ցանկանում եք ձեր ռադիո json ֆայլը տեղակայել մեկ այլ վայրում

Այնուհետև կլոնավորեք ռեպոն ցանկացած վայրում, որտեղ ցանկանում եք, որ այն լինի: Լռելյայն գրացուցակը լավ է: Ստացեք URL- ը, որի համար ցանկանում եք github ռեպո, սեղմելով կանաչ կլոնը կամ ներբեռնման կոճակը:

Վերադառնալով տերմինալի պատուհանում, git կլոնավորել

Այժմ ls- ի միջոցով փնտրելիս պետք է տեսնեք լրացուցիչ գրացուցակ ՝ անունովeniorRadio: Ֆանտաստիկ!

Codeածկագիրը նախատեսված է ինքնավերագրման համար, օգտակար կլինի դրան ծանոթանալը: Հատկապես վրիպազերծման նպատակների համար և եթե փոխում եք համակարգը:

Քայլ 3: Տեղադրեք լրացուցիչ ծրագրակազմ

Տեղադրեք լրացուցիչ ծրագրակազմ
Տեղադրեք լրացուցիչ ծրագրակազմ

Նախքան շղթային անցնելը և այն փորձարկելը, մենք նաև պետք է ներբեռնենք դրա համար VLC և python api ֆայլերը: Դուք կարող եք արդեն տեղադրել VLC: Առաջին երկու հրամանները կթարմացնեն pi- ն, իսկ ներքևի վերջին երկու հրամանները կտեղադրեն VLC, այնուհետև python api

sudo apt-get թարմացում

sudo apt-get բարելավում

sudo snap տեղադրել VLC

sudo apt-get տեղադրել vlc-python

Բացի այդ, տեղադրեք նաև gpiozero- ն, որը մենք կօգտագործենք pi- ի GPIO կապումներին միանալու համար: Դուք կարող եք արդեն տեղադրել այն ՝ կախված ձեր օպերացիոն համակարգից:

sudo apt-get տեղադրել gpiozero

Քայլ 4: Գտեք ռադիոկայանների հոսքեր

Գտեք ռադիոկայանների հոսքեր
Գտեք ռադիոկայանների հոսքեր

Հաջորդը, ամենազվարճալի մասերից մեկը: Timeամանակն է ընտրել ցանկացած հոսք, որը ցանկանում եք:

Իմ internetStations.json ֆայլում կարող եք տեսնել իմ հոսքի հղումները ՝ հիմնականում նորությունների և երաժշտության համար: Բայց այնտեղ կա մի տոննա հյուրընկալված բովանդակություն: Այստեղ բանալին ուղիղ հոսքի URL հասցեն գտնելն է: Օրինակ, BBC- ի լրատվական և երաժշտական կայանները կարելի է գտնել այստեղ ՝ այս բլոգում: Այս ուղիղ հոսքերը չեն ունենա որևէ գրաֆիկական ինտերֆեյս և ինքնաբերաբար կհեռարձակեն հոսքը ձեր դիտարկիչի մեդիա նվագարկիչի միջոցով: Սրանք մեզ անհրաժեշտ URL- ներ են, որպեսզի VLC- ն կարողանա դրանք կարդալ: Դուք կարող եք արագ ստուգել ցանկացած հղում ձեր վեբ դիտարկիչում կամ ձեր սովորական համակարգչի VLC- ի միջոցով `համոզվելու համար, որ այն կաշխատի pi- ի վրա:

Այս կայանները գտնելու համար կարող եք առցանց ուղիղ որոնել, եթե ծառայությունը այն ընդունում է: Արագ եղանակը կարող է լինել նաև հոսքը նվագարկելը, դիտարկիչի վրա աջ սեղմելով և «ստուգել տարրը»: Գնացեք դեպի ցանցի ներդիր և այնտեղ պետք է նշվի հոսքի «ուղիղ» հասցեն: Այս youtube- ի տեսանյութը ցույց է տալիս դա: Բաց էջանիշով էջի թարմացումը պետք է օգնի:

Ձեր կայաններն ունենալուց հետո ցանկանում եք դրանք տեղադրել առցանց, որպեսզի ձեր ավագ ռադիո Python ծրագիրը կարողանա դրանք գրավել: Դա անելու շատ տարբերակներ կան, կարող եք օգտագործել այնպիսի կայքեր, ինչպիսիք են Github- ը, bitbucket- ը կամ նույնիսկ sourceforge- ը: Այս ցուցակը առցանց հյուրընկալելու հիմնական նպատակն այն է, որ այն ստեղծող օգտվողը կարողանա հեռակա կարգով փոխել հոսքի ցուցակը առցանց:

Պիթոնի ծրագրի սկզբում կա փոփոխական, որը կոչվում է url, պարզապես փոխեք այն ձեր json ֆայլի URL- ը `կայանի URL- ի հղումներով:

Կարող եք հետևել նույն ձևաչափին, ինչ իմ internetStation.json ֆայլը: Եթե ցանկանում էիք նաև օգտագործել github- ը, կարող եք պարզապես պատառաքաղել իմeniorRadio պահոցը և խմբագրել ձեր սեփական internetStation.json ֆայլը և մատնանշել այն այդ «հում» URL- ին: Դա կարող եք գտնել ստորև Github GUI- ում ՝ ֆայլը սեղմելուց հետո:

Քայլ 5: Ստեղծեք սխեմաներ

Ստեղծեք սխեմաներ
Ստեղծեք սխեմաներ

Այժմ մենք պետք է կարգավորենք միացումը: Սա կփոխվի ՝ հիմնվելով ձեր սարքավորումների վրա, բայց ստորև ներկայացված է, թե ինչպես եմ ես սարքել իմը:

pinout.xyz/ տեղեկանքի համար, թե որ քորոցներն են: Քանի որ մենք օգտագործում ենք gpiozero գրադարանը, մեզ մտահոգում է միայն BCM կապի համարակալումը: Ուշադրություն դարձրեք, որ ես գնել եմ մի քանի լրացուցիչ KY040 պտտվող կոդավորիչներ `թվերը` դրանք փորձարկելու համար, քանի որ բոլորն էլ նույն ճշգրտությունը չունեն: Նրանցից յուրաքանչյուրը կունենար որոշակի «ցատկում», կամ պարզապես սխալ արդյունք, այնպես որ ես ընտրեցի իմ ունեցած երկուսից լավագույնը: Կոդում կնշեք, որ կան որոշ քայլեր ՝ այս ցատկումը նույնպես սահմանափակելու համար:

Ես միացրեցի իմ կոճակը BCM կապիչ 17 -ին և գետնին

Իմ LED- ը 1k ohm ռեզիստորին, այնուհետև BCM կապում 27 և գետնին

Իմ KY040 պտտվող կոդավորիչներն ունեին + հոսանք դեպի 5 Վ, GND- ը ՝ գետնին և SW- ն անջատված: Սրանք միացված էին մինի տախտակի վրա

Կայանի պտտվող կոդավորիչ dt կապը միացված է BCM կապին 21 -ին

Կայանի պտտվող կոդավորիչ clk կապը միացված է BCM կապին 20 -ին

Աուդիո մակարդակի պտտվող կոդավորիչ dt կապ, որը միացված է BCM կապին 19 -ին

Աուդիո մակարդակի պտտվող կոդավորիչ clk կապ, որը միացված է BCM կապին 16 -ին

Եթե դուք փոխում եք այս կապերը, պարզապես թարմացրեք համարը Python ծրագրի մեջ, ինչպես նաև այն, որտեղ այն կարգավորում է մշակողները

Ես օգտագործեցի մինի հացահատիկ `դա ավելի հեշտ դարձնելու համար: Ես օգտագործեցի M/M և M/F jumper լարերը, ինչպես նաև ինտերֆեյսը հեշտացնելու համար: Ես միացրեցի թռիչքային մետաղալարեր ՝ ավելի վաղ ձեռք բերած կոճակի/LED- ի կապում: Erոդման համար դուք կարող եք ձեռք բերել կոճակներ և լուսադիոդներ, որոնք արդեն ունեն jumper մետաղալարեր կամ հեշտությամբ միանում են մեկին:

Քայլ 6: Փորձարկիր այն:

Այժմ դուք պետք է ունենաք գործող համակարգ: Եկեք փորձարկենք այն: Գնացեք պիտոնի ծրագրով պանակ, ամենայն հավանականությամբ.

cd ավագ Ռադիո

python3eniorRadio.py

Ներկայումս ծրագրի սկզբում կա 45 վայրկյան ուշացում, որը հնարավորություն կտա ժամանակին գտնել Bluetooth բարձրախոսը միացված ռեժիմին: Դուք կարող եք մեկնաբանել այս տողը, եթե դրա կարիքը չունեք փորձարկման ընթացքում: Mayրագիրը կարող է ձեզ ասել, որ անհրաժեշտ է տեղադրել լրացուցիչ փաթեթներ, եթե այդպես է, շարունակեք: Կարող է նաև անհրաժեշտ լինել տեղադրել Python- ի ավելի նոր տարբերակ:

sudo apt-get տեղադրել python3.7

Որոշ հնարավոր խնդիրներ, նույնիսկ եթե ծրագիրը գործում է.

Ոչ մի ձայն չեմ լսում

Համոզվեք, որ բարձրախոսը միացված է և ընտրված է ձեր ազնվամորի պի մեջ: GUI- ի միջոցով դուք պետք է կարողանաք զուգավորել այն, այնուհետև ընտրել այն որպես ձայնային ելքի սարք: Բացի այդ, ստուգեք ձեր աուդիո վարորդները: Ընդհանուր խնդիրն այն է, որ գուցե անհրաժեշտ լինի նորից տեղադրել pulseaudio փաթեթը

Ձայնը կտրուկ կամ կտրում է ներս և դուրս

Փորձեք սարքը մոտեցնել ձեր WiFi երթուղիչին: Բացի այդ, համոզվեք, որ bluetooth բարձրախոսը մոտ է: Կարող է լինել նաև աուդիո վարորդի խնդիր

Քայլ 7: Ներդրեք մշտական պատյան

Տեղադրեք մշտական պատյան
Տեղադրեք մշտական պատյան

Հաջորդը, այն դնել տուփի կամ նմանատիպ սարքի մեջ, որպեսզի այն մշտապես ապրի: Խորհուրդ եմ տալիս ունենալ մեկը, որին կարող եք ավելի ուշ մուտք գործել ՝ վրիպազերծման համար: Այս փոքրիկ փայտե տուփը ձեռք բերեցի արհեստագործական խանութում 2 դոլարով և կապեցի այն մատակարարման էջում: Իմ ընկերներից մեկը խորհուրդ տվեց սիգարի տուփ:

Այնուհետև ես առջևի հատվածում կտրեցի կոճակը և պտտվող անջատիչները, իսկ տուփի հետևի մասում անցք բացեցի microUSB հոսանքի լարի համար:

Ես փորձեցի լեռը և համոզվեցի, որ այն աշխատում է, և voilà!

Ի վերջո, ես սուպեր սոսինձ օգտագործեցի ՝ կոճակը սեղմելու համար: Իմ գրատախտակին ներքևում կար սոսինձ, որը ես միացրել էի տուփի մի մասի: Ես օգտագործեցի կպչուն ժապավենի մի փոքր շերտ ՝ պիի հետևի մասը տուփին ամրացնելու համար, ուստի այն անհրաժեշտության դեպքում հետագայում կարող էր տեղափոխվել:

Քայլ 8: Գործարկման ժամանակ գործարկեք ծրագիր

Ի վերջո, դուք, ամենայն հավանականությամբ, կցանկանաք, որ այս python ծրագիրը գործի ազնվամորի pi- ի գործարկման ժամանակ, այնպես որ կարիք չկա դա անել ձեռքով: Դա անելու բազմաթիվ եղանակներ կան, որոնք կարող եք գտնել առցանց:

Անձամբ ես այն ստեղծեցի ՝ օգտագործելով SparkFun- ի ձեռնարկի երկրորդ ուղին ՝

Այստեղ այն սպասում է, մինչև համակարգը մտնի գրաֆիկական աշխատասեղան ՝ ծրագիրը գործարկելուց առաջ: Այնուհետև այն հետաձգվում է python ծրագրի կողմից 45 վայրկյանով ՝ համակարգին ժամանակ տալով կրկին միանալու bluetooth բարձրախոսին: Եթե դուք օգտագործում եք ինտեգրված բարձրախոս, կարող եք հեռացնել այս ուշացումը: Ուշադրություն դարձրեք, որ առաջինը պետք է միացված լինի Bluetooth խոսնակին: (bluetooth լուծույթի համար)

Այժմ կարող եք փորձել անջատել և նորից միացնել ձեր pi- ն: Մոտ 90 վայրկյան հետո ձեր pi- ն պետք է նորից սկսի նվագարկել ռադիոհաղորդումները: Երբ սեղմում եք կոճակը, այն կդադարի/կխաղա: Նշեք այս վերաբեռնումների մասին, այն նորից կարդում է, որ InternetStations json ֆայլը, այնպես որ, եթե փոխեք կայանները, անհրաժեշտ է վերագործարկել սարքը, որպեսզի դրանք աշխատեն: Շնորհավորում եմ:

Եթե դուք դա արել եք կամ փոփոխություններ եք կատարել նախագծում, խնդրում եմ ինձ տեղյակ պահեք:

Github էջ ՝

Խորհուրդ ենք տալիս: