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

Vintage Rotary Phone Dial PC ձայնի կառավարում. 7 քայլ (նկարներով)
Vintage Rotary Phone Dial PC ձայնի կառավարում. 7 քայլ (նկարներով)

Video: Vintage Rotary Phone Dial PC ձայնի կառավարում. 7 քայլ (նկարներով)

Video: Vintage Rotary Phone Dial PC ձայնի կառավարում. 7 քայլ (նկարներով)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Նոյեմբեր
Anonim
Image
Image
Հեռացրեք Dial- ը
Հեռացրեք Dial- ը

Եթե դուք ինձ նման եք, ապա ինքներդ ձեզ հաճախ եք փոխում ձայնը ձեր համակարգչի վրա: Որոշ տեսահոլովակներ ավելի բարձր են, քան մյուսները, երբեմն ուզում եք, որ ձայնը ձեր համակարգչում անջատվի, մինչդեռ փոդքաստեր կամ երաժշտություն եք լսում, և գուցե ձեզ անհրաժեշտ լինի արագ իջեցնել ձայնը, եթե հեռախոսազանգ եք ստանում: Եթե ձեր համակարգչում տեղադրված չեն մեդիա կառավարման տարրեր, ապա կարող եք խաղողի բերքահավաքի պտտվող հավաքիչը վերածել ձեր Windows ԱՀ -ի ձայնի կառավարման:

Ձայնի կառավարման այս սարքը միանում է ձեր համակարգչին USB- ի միջոցով և ավտոմատ կերպով յուրաքանչյուր բաց ծրագրի ծավալը կհամապատասխանի այն համարին, որը դուք հավաքում եք: Եթե հավաքեք «2», ձայնը կկարգավորվի 20%: Հավաքեք «8» և այն կսահմանվի 80%-ի: «0» հավաքելով այն սահմանվում է 0% և գործում է համր: Դա արագ, գոհացուցիչ և ավելի զվարճալի է, քան ձեր առաջադրանքի տողում ձայնի կարգավորիչի վրա սեղմելը:

Պարագաներ

  • Vintage Bell Systems Trimline պտտվող հեռախոս
  • Արդուինո Նանո
  • M3 ակոսավոր ջերմակայման ներդիրներ
  • M3 մեքենայի պտուտակներ
  • Ռեզիստորներ (470 ohm և 10k ohm)
  • Մետաղալար
  • Մատչելիություն 3D տպիչին

Քայլ 1. Գործողության տեսություն

Պտտվող հեռախոսները, ներառյալ այս նախագծում օգտագործվող Bell Systems Trimline- ը, զուտ անալոգային էլեկտրամեխանիկական սարքեր են: Երբ պտտեք հավաքիչը, մի զսպանակ պտտեցրեք հավաքիչը ետ դեպի սկզբնական դիրքը: Յուրաքանչյուր թիվ անցնելիս անջատիչը կարճ ժամանակով անջատված է (կամ միացված) ՝ ստեղծելով զարկերակ: Մեզ մնում է հաշվել այդ զարկերակները, որպեսզի որոշենք, թե ինչ թիվ է հավաքվել:

guidomax- ն ունի ֆանտաստիկ Instructables ձեռնարկ, որը մանրամասնորեն ներկայացնում է, թե ինչպես է դա աշխատում, և ավելի մանրամասն կարող եք գտնել այնտեղ:

Այս նախագծի համար մենք օգտագործում ենք Arduino Nano- ն ՝ իմպուլսները հաշվելու համար: Այնուհետև Arduino- ն համարը համակարգչին է ուղարկում սերիական միացման միջոցով: Ես գրեցի Python- ի հիմնական սցենարը, որն աշխատում է հետին պլանում և վերահսկում է այդ սերիական կապը: Երբ բիթեր է ստանում, վերցնում է համարը և օգտագործում է Python Core Audio Windows գրադարանը `համապատասխան ձայնը սահմանելու համար:

Windows- ի և այդ գրադարանի սահմանափակումների պատճառով սցենարը չի սահմանում համակարգի ընդհանուր ծավալը (ձեր առաջադրանքի հիմնական սահիչը): Փոխարենը, այն սահմանում է անհատական ձայնը յուրաքանչյուր ծրագրի համար, որն այժմ աշխատում է: Էֆեկտը նույնն է, միայն թե ծրագրերի միջև չես կարող պահպանել տարբեր հարաբերական ծավալի մակարդակներ:

Քայլ 2: Հեռացրեք հավաքիչը

Հեռացրեք Dial- ը
Հեռացրեք Dial- ը

Այս քայլը պարզ է. Պարզապես ապամոնտաժեք ձեր Trimline հեռախոսի հեռախոսը ՝ հեռախոսի հավաքման մեխանիզմը հեռացնելու համար: Դա ըստ էության ինքնամփոփ մոդուլ է, այնպես որ պարզապես անհրաժեշտ է այն հեռացնել հեռախոսից:

Այս նախագծի համար ես ընտրեցի Trimline մոդելը, քանի որ այդ հավաքման մոդուլն ավելի կոմպակտ է, քան այն, ինչ կգտնեք այլ պտտվող հեռախոսների մեծ մասում:

Եթե այն տալիս եք մի քանի փորձնական պտույտ, ապա պետք է լսեք, որ անջատիչը սեղմում է, երբ այն վերադառնում է հիմնական դիրքի:

Քայլ 3: Տպեք պատյանը

Տպեք պարիսպը
Տպեք պարիսպը

Օգտագործեք երկու տրամադրված STL ֆայլերը `պարիսպի մասերը տպելու համար: Դուք կարող եք օգտագործել թելերի ցանկացած նյութ, որը նախընտրում եք (ես օգտագործել եմ PLA): Ձեր օգտագործած որոշակի պարամետրերն այնքան էլ կարևոր չեն, բայց ես խորհուրդ տվեցի օգտագործել «Rotary_Top» մասի աջակցություններ: Նախագծի մնացած մասի վրա աշխատելիս կարող եք տպել այս երկու մասերը:

Քայլ 4. Programրագրեք ձեր Arduino- ն

Programրագրեք ձեր Arduino- ն
Programրագրեք ձեր Arduino- ն

Ձեր Arduino Nano- ում ձեր վերբեռնած կոդը վերցված է ուղիղ guidomax- ի ձեռնարկից, քանի որ այն հիանալի աշխատում է այս նախագծի համար.

int needToPrint = 0; int հաշվարկ; int = 2;

int lastState = LOW;

int trueState = OWԱOWՐ;

երկար lastStateChangeTime = 0;

int մաքրված = 0;

// հաստատուններ

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

void setup () {

Serial.begin (9600);

pinMode (in, INPUT); }

դատարկ շրջան () {

int ընթերցում = digitalRead (in);

if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// հավաքիչը չի հավաքվում, կամ նոր է ավարտվել:

if (needToPrint) {// եթե այն պարզապես հավաքված է, մենք պետք է համարը ուղարկենք սերիական // տողից ներքև և վերականգնենք հաշվարկը: Մենք հաշվում ենք 10 -ով, քանի որ «0» -ը կուղարկի 10 իմպուլս:

Serial.print (հաշվիչ % 10, DEC);

needToPrint = 0;

հաշվել = 0;

մաքրված = 0; }}

եթե (կարդում! = lastState) {lastStateChangeTime = millis ();

}

եթե ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - դա տեղի է ունենում այն բանից հետո, երբ այն կայունանում է

եթե (կարդում! = trueState) {// սա նշանակում է, որ անջատիչը կամ պարզապես անցել է փակ-> բաց կամ հակառակը: trueState = ընթերցում; if (trueState == HIGH) {// ավելացրեք իմպուլսների քանակը, եթե այն բարձրացել է:

հաշվել ++;

needToPrint = 1; // մենք պետք է տպենք այս համարը (երբ հավաքիչը ավարտի պտտումը)

}

}

}

lastState = ընթերցում; }

Քայլ 5: Ամրացրեք ամեն ինչ

Լարացրեք ամեն ինչ
Լարացրեք ամեն ինչ
Լարացրեք ամեն ինչ
Լարացրեք ամեն ինչ
Լարացրեք ամեն ինչ
Լարացրեք ամեն ինչ

Այս նախագծի էլեկտրագծերը իսկապես պարզ են: Հավաքման մոդուլը պետք է ունենա երկու վեցանկյուն հենարան հետևի մասում, որոնցում պտուտակներ կան: Դրանք անջատիչի միացումներն են: Բևեռականությունը նշանակություն չունի:

Նշում. Անտեսեք իմ լարերի գույները լուսանկարներում: Ես խառնեցի գետնին և 5 Վ -ին, ուստի դրանք իրականում հակադարձվում են:

Միացրեք A մետաղալարից (GND) մեկ մետաղալար և միացրեք այն Arduino Nano- ի գրունտային քորոցին: Վերցրեք երկրորդ մետաղալարը և կպցրեք այն և երրորդ մետաղալարը 470 օմ դիմադրության մի կողմում: Երկրորդ մետաղալարն անցնելու է հավաքման վրա տեղադրված B (+): Երրորդ մետաղալարերը կպչվեն 10k ohm դիմադրության մի կողմում: Վերցրեք չորրորդ մետաղալարը և այն կպցրեք 470 օմ դիմադրության մյուս կողմից Arduino Nano- ի Pin 2 -ին: Վերջապես, հինգերորդ մետաղալարը պետք է միացնի 10k ohm դիմադրության մյուս կողմը Arduino Nano- ի 5V պինին:

Մենք օգտագործում ենք ռեզիստորները և 5 Վ -ի քորոցը, որպեսզի անջատիչը բաց լինի (այնպես, ինչպես յուրաքանչյուր «զարկերակի» ժամանակ):

Քայլ 6: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով

Դուք պետք է նկատեք, որ պարիսպի Rotary_Top հատվածն ունի վեց փոքր անցք: Դրանք ձեր ակոսավոր ջերմակայուն ներդիրների համար են: Առաջին երեքը (վերին մակերևույթի ներքևի մասում) պետք է ամրացնեն պտտվող հավաքիչը: Ներքևի երեքը պետք է պտտել Rotary_Base- ը Rotary_Top- ին:

Heatերմամեկուսիչ ներդիրները կարելի է տաքացնել եռակցման երկաթով (կամ հատուկ գործիքով), այնուհետև մղել անցքերի մեջ: Theերմությունը կհալեցնի պլաստիկը, որը ջերմության հեռացումից հետո կարծրանալու է, որպեսզի ներդիրներն ապահով պահվեն տեղում: Heatերմամեկուսիչ ներդիրների օգտագործումը շատ ավելի հաճելի է, քան պտուտակները ուղղակիորեն պլաստիկի մեջ ամրացնելը:

Տեղադրեք վեց ջերմակայուն ներդիր: Այնուհետև օգտագործեք մի քանի կարճ (մոտ 10 մմ) M3 մեքենայի պտուտակներ ՝ հավաքեք հավաքիչը: Ուշադրություն դարձրեք կտրվածքի հատվածին, որտեղից կգնա մետաղյա մատի կանգառը: Այնուհետև զգուշորեն տեղադրեք Arduino Nano- ն ՝ USB մալուխով միացված, պարիսպի ներսում (այն թուլացած է, տեղադրված չէ) և ամրացրեք հիմքը տեղում:

Հավանաբար, կցանկանաք օգտագործել երկկողմանի ժապավեն կամ 3M հրամանի ժապավեն ՝ պարիսպը ձեր գրասեղանին ամրացնելու համար, այնպես որ այն չի շարժվի, երբ պտտեք հավաքիչը:

Քայլ 7: Կարգավորեք Python Script- ը

Կարգավորեք Python Script- ը
Կարգավորեք Python Script- ը

Նախ, համոզվեք, որ Python- ը տեղադրված է (օգտագործեք Python 3 -ը, քանի որ Python 2 -ն աստիճանաբար հանվում է):

Այնուհետև ձեզ հարկավոր է տեղադրել երկու պահանջվող գրադարաններ ՝ PyCAW և PySerial:

Օգտագործել:

«pip install pycaw» և «pip install pyserial» (Python պատուհանից կամ Windows Powershell- ից)

Այնուհետև ստուգեք ՝ ձեր Arduino Nano- ի որ նավահանգստին է միացված: Դուք կարող եք դա ստուգել Arduino IDE- ի ներսում: Համոզվեք, որ ընտրել եք այդ նավահանգիստը, այնուհետև բացեք սերիական մոնիտորը: Համոզվեք, որ ձեր բաուդ արագությունը 9600 է, այնուհետև հավաքեք որոշ թվեր `համոզվելու համար, որ դրանք հայտնվում են սերիական մոնիտորում:

Եթե դա այդպես է, խմբագրեք «rotary.py» ծածկագիրը ձեր նավահանգստի համարով: Եթե դուք վարում եք սցենարը, ապա այժմ պետք է կարողանաք փոխել ձայնը ՝ հավաքելով համար:

Վերջնական քայլն այն է, որ համակարգիչը բեռնաթափելիս սցենարը կարգավորվի հետին պլանում:

Դա անելու համար փոխեք «rotary.py» - ն «rotary.pyw» - ով, ինչը թույլ կտա այն գործարկել հետին պլանում: Այնուհետև տեղադրեք այդ սցենարը հետևյալ թղթապանակում ՝ C: / Users / current_user / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup

Ակնհայտ է, որ դուք պետք է փոխեք «current_user» - ը ձեր իրական օգտվողի թղթապանակի անունով:

Վերջ! Երբ ձեր համակարգիչը գործարկվի, այդ Python սցենարը կսկսի գործել: Այն կհսկի Arduino- ի սերիական կապը և ծրագրի բոլոր ծավալը կկարգավորի այն, ինչ հավաքում եք:

Arduino մրցույթ 2020
Arduino մրցույթ 2020
Arduino մրցույթ 2020
Arduino մրցույթ 2020

Երկրորդ տեղը Arduino մրցույթում 2020 թ

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