Bluetooth- ով միացված անալոգային VU հաշվիչ ՝ 6 քայլ
Bluetooth- ով միացված անալոգային VU հաշվիչ ՝ 6 քայլ
Anonim
Bluetooth- ով միացված անալոգային VU հաշվիչ
Bluetooth- ով միացված անալոգային VU հաշվիչ

Սա իմ նախագիծն էր իմ համալսարանական դասերից մեկի համար, որը կոչվում էր SMP: Քանի որ մենք օգտագործում էինք STM32F103RB զարգացման տախտակը, ես հիմնեցի իմ նախագիծը դրա վրա ՝ սկսած պարզ VU հաշվիչից: Այնուհետև ես ավելացրեցի որոշ լրացուցիչ հնարավորություններ, ինչպիսիք են Bluetooth- ի աջակցությունը ՝ ADC- ից արժեքները Android ծրագրին փոխանցելու համար ՝ պարզ դԲ գրաֆիկ ստեղծելու համար:

Քայլ 1: Օգտագործված բաղադրիչներ

  • STM32F103RB զարգացման տախտակ
  • HC-05 zs040 bluetooth մոդուլ
  • Անալոգային VU հաշվիչի վահանակ (հղում)
  • Էլեկտրիկ խոսափող
  • LM324N քառակի op-amp
  • 2 տրանզիստոր TIP120
  • 3 1N4148 դիոդ
  • Տարբեր կոնդենսատորներ և դիմադրիչներ

Չնայած դուք կարող եք այս սխեման քշել տախտակի 5 Վ ռելսից, ես նաև օգտագործել եմ արտաքին 5 Վ էլեկտրամատակարարում:

Քայլ 2: Enրարի հետևորդ

Enրարի հետևորդ
Enրարի հետևորդ
Enրարի հետևորդ
Enրարի հետևորդ

Այս դիզայնի հիմնական մասը ծրարի հետևորդն է, որը վերցնում է ազդանշանը էլեկտրոֆոնի խոսափողից և թողարկում միկրոֆոնի ազդանշանի ամպլիտուդային համաչափ լարման:

Խոսափողից չմշակված ազդանշանն առաջին հերթին անցնում է ուժեղացուցիչի միջոցով ՝ 150 շահույթով:

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

Վերջին մասը ծրարի հետևորդի ելքից հանում է 1.65 Վ լարման անջատումը `0 Վ առանց ազդանշանի, 1.65 Վ միջին ձայնի և 3.3 Վ բարձր ձայնի ազդանշան ապահովելու համար, որը պետք է համատեղելի լինի ներկառուցվածի հետ: Խորհրդի ADC.

Այս ծրարի հետևորդն իրականացվում է StackExchange- ի այս հիանալի պատասխանից:

Քայլ 3. PWM անալոգային հաշվիչի համար

Չափիչի ասեղն աշխատեցնելու համար ես կարգավորել եմ միկրոկառավարիչի տախտակի TIM4 ժմչփը `մոտ 500 Հց հաճախականությամբ:

Հաջորդաբար փորձելով տարբեր աշխատանքային ցիկլեր, ես հաստատվել եմ որոշ արժեքներով, որոնք բավական էին ասեղը 0 -ից 100 -ի հասցնելու համար:

Ես մանրամասն կներկայացնեմ հաջորդ քայլին ճշգրիտ արժեքը ցուցադրելու գործընթացը ՝ կիրառելով որոշ մաթեմատիկա:

Քայլ 4. Խոսափողի ստուգաչափում

Խոսափողի տրամաչափում
Խոսափողի տրամաչափում
Խոսափողի տրամաչափում
Խոսափողի տրամաչափում

Havingրարի հետևորդը պատրաստ լինելով ՝ ես այնուհետև գրեցի մի քանի պարզ կոդ ՝ ADC- ն օգտագործելու համար և ստուգեցի, որ կարդալու արժեքը իսկապես փոխվում է սենյակի ներսում հնչող բարձրությանը համապատասխան:

Այս արժեքը փաստացի dB- ի ընթերցման «թարգմանելու» համար ես օգտագործել եմ 550 Հց հաճախականությամբ տոնայնության առցանց գեներատոր և իմ Android- ը `հղումային ընթերցում ապահովելու համար:

Ես գծել եմ այդ արժեքները և օգտագործել MatLAB- ի Curve Fit Tool- ը, որպեսզի ստանամ մի գործառույթ, որը քարտեզագրում է ADC- ի ընթերցումները dB մակարդակների իրական մոտարկումների (կամ գոնե բավականաչափ մոտ իմ հեռախոսի ընթերցումներին):

Մենք տեսնում ենք, որ սա հետևում է խոսափողի լոգարիթմիկ սանդղակին:

Նույնը ես արեցի ՝ ասեղի դիրքը քարտեզագրելու PWM արժեքներին: Ես հավաքեցի այդ արժեքները ՝ հաջորդաբար ավելացնելով PWM արժեքը 10 -ով, մինչև կարիքը հասավ ընթերցման իր մասշտաբի վրա:

Համատեղելով այդ 2 գործառույթը, ես ստացա հեշտ տարբերակ ՝ ADC- ից ընթերցումը ցուցադրելու չափիչի ցուցիչի իրական արժեքին:

Քայլ 5: Android հավելված

Հավելվածն օգտագործում է այս հիանալի գրադարանը ՝ Bluetooth սերիայի միջոցով հաղորդակցվելու համար ՝ բայթ տեղեկատվությունը փոխանակելու համար:

Այս համակարգի հիմնական նախազգուշացումն այն է, որ Bluetooth- ով ուղարկված բառի առավելագույն երկարությունը 8 բիթ է, իսկ ADC արժեքը ներկայացված է 12 բիթ: Այս խնդիրը հաղթահարելու համար ես մեկ ADC արժեքը բաժանեցի 2 առանձին 6 բիթանոց արժեքների (MSB և LSB), իսկ մնացած 2 բիթերը, որոնք օգտագործվում են հաղորդագրության տեսակը նույնականացնելու համար (MSB, LSB, CHK):

Հետևաբար, մեկ ADC արժեքի համար, որը մենք ցանկանում ենք հեռարձակել, մենք իրական արժեքը բաժանում ենք 2 հաղորդագրության: Այդ հաղորդագրությունների ամբողջականությունը ստուգելու համար ես ուղարկեցի երրորդ հաղորդագրությունը առաջին 2 հաղորդագրությունների XOR- ով:

Արժեքի ամբողջականության ստուգումից հետո մենք կարող ենք կիրառել նույն գործառույթը ՝ dB մակարդակը ստանալու և այն գծելու համար մեր կենդանի գծապատկերում:

Քայլ 6: Ամփոփում

Մինչ ես այս նախագծի միկրոհսկիչ մասը բավականին լավ եմ ցուցադրում սենյակի ներսում բարձրությունը, փաթեթների կորստի պատճառով Bluetooth- ով տվյալներ ուղարկելիս ես որոշ խնդիրների հանդիպեցի:

Այս նախագծի աղբյուրի կոդը կարելի է գտնել այստեղ ՝

  • Android ուղեկից ծրագիր - repo
  • Միկրոհսկիչի կոդ - ռեպո

Ազատ զգացեք ձեր ներդրումը, եթե դա ինչ -որ կերպ օգտակար եք համարում:

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