Orodha ya maudhui:

Sauti ya wakati halisi kwa Converter MIDI. 7 Hatua
Sauti ya wakati halisi kwa Converter MIDI. 7 Hatua

Video: Sauti ya wakati halisi kwa Converter MIDI. 7 Hatua

Video: Sauti ya wakati halisi kwa Converter MIDI. 7 Hatua
Video: Zuchu Amwaga Machozi Baada Ya kupewa Kiss Na Diamond Platinumz 2024, Julai
Anonim
Sauti ya wakati halisi kwa Converter ya MIDI
Sauti ya wakati halisi kwa Converter ya MIDI

Watu wa Namaste! Huu ni mradi ambao nilifanya kazi kwa moja ya kozi zangu (Usindikaji wa Ishara ya Dijiti ya Halisi) katika programu yangu ya bachelor. Mradi unakusudia kutengeneza mfumo wa DSP ambao "husikiliza" data ya sauti na kutoa ujumbe wa MIDI wa maelezo yanayofanana juu ya UART. Arduino Nano ilitumiwa kwa kusudi hili. Hadithi ndefu fupi mdhibiti mdogo hufanya FFT kwenye data ya sauti inayoingia na hufanya uchambuzi wa kilele na kutuma ujumbe unaofaa wa MIDI. Usiwe na wasiwasi juu ya MOSFET ingawa kwa sababu ni ya mradi mwingine (ambao utawekwa baadaye kwa mafundisho pia) na hauhitajiki kwa mradi huu. Basi wacha tuanze tayari !!

Hatua ya 1: Vipengele vinahitajika

Vipengele vinahitajika
Vipengele vinahitajika

Tutahitaji vifaa vifuatavyo kujenga mradi huu ingawa nyingi hizi ni generic na zinaweza kubadilishwa na sawa na hizo. Pia rejea mchoro wa mzunguko kufanya kazi na kuwinda utekelezaji bora.

Wingi wa Sehemu

1. Kipaza sauti ya Electret. 1

2. 30 Kilo Ohm kupinga. 1

3. 150 Kilo Ohm kupinga. 1

4. 100 ohm kupinga. 1

5. 2.2 Vipinga vya Kilo Ohm. 3

6. 10 sufuria iliyowekwa tayari ya Kilo Ohm. 1

7. 10 sufuria ya kukata Kilo Ohm. 1

8. Chungu cha stereo cha Kilo Ohm. 1

9. Wapinzani wa Ohms 470. 2

10. 0.01uF capacitors. 2

11. 2.2uF capacitors. 3

12. 47uF capacitors. 2

13. 1000uF capacitor. 1

14. 470uF capacitor. 1

15. mdhibiti wa voltage 7805. 1

16. Ukanda wa kichwa cha Kike na Kiume. 1 kila moja

17. Kiunganishi cha pipa Jack. 1

18. 12 V 1 Amp DC Adapter. 1

19. Kubadilisha SPST. (Hiari) 1

20. Ubao wa pembeni. 1

Hatua ya 2: Uainishaji wa Ufundi

Maelezo ya Kiufundi
Maelezo ya Kiufundi

Mzunguko wa sampuli: sampuli 3840 / sec

Idadi ya sampuli kwa FFT: 256

Azimio la Mzunguko: 15Hz

Kiwango cha kuonyesha upya: Karibu 15 Hz

Mizani ya chini na ya juu ya noti za muziki hazijakamatwa kwa usahihi. Vidokezo vya chini vinakabiliwa na azimio la chini la masafa ambapo masafa ya juu yanakabiliwa na viwango vya chini vya sampuli. Arduino tayari iko nje ya kumbukumbu kwa hivyo hakuna njia ya kupata azimio bora. Na azimio bora litakuja kwa gharama ya kiwango cha kupunguzwa cha kupunguzwa kwa hivyo biashara haiwezi kuepukika. Toleo la Layman la kanuni ya kutokuwa na uhakika ya Heisenberg.

Ugumu wa kimsingi ni nafasi ya kielelezo kati ya noti (Kama inavyoonekana kwenye kielelezo. Kila msukumo kwenye mhimili wa masafa ni maandishi ya muziki). Algorithms kama LFT inaweza kusaidia lakini hiyo ni ya juu na ngumu kidogo kwa kifaa kama arduino Nano.

Hatua ya 3: Michoro ya Mzunguko

Michoro ya Mzunguko
Michoro ya Mzunguko
Michoro ya Mzunguko
Michoro ya Mzunguko
Michoro ya Mzunguko
Michoro ya Mzunguko
Michoro ya Mzunguko
Michoro ya Mzunguko

Kumbuka: Usisumbuke na MOSFET tatu na vituo vya screw kwenye picha. Hazihitajiki kwa mradi huu. Ona kuwa bodi ya kuingiza kipaza sauti inaweza kutolewa au kama wanavyoiita Modular. Maelezo madogo ya vitalu anuwai hutolewa hapa chini.

1) Vipinzani viwili vya 470 ohm vinachanganya ishara ya sauti ya stereo na ishara ya sauti ya mono. Hakikisha kuwa ardhi ya ishara inakwenda kwenye ardhi halisi (vg kwenye mchoro wa mzunguko) na sio kwa ardhi ya mzunguko.

2) Kizuizi kifuatacho ni kichujio cha kupitisha cha chini cha mpangilio wa pili ambacho kinawajibika kwa bendi kupunguza kikomo ishara ya kuingiza ili kuepuka kujipachika. Kwa kuwa tunafanya kazi na usambazaji + 12v tu tunapendelea op-amp kwa kufanya mgawanyiko wa voltage ya RC. ambayo hupumbaza op-amp kufikiria kuwa usambazaji ni usambazaji wa volts 6 0 -6 (reli mbili) ambapo vg ni kumbukumbu ya ardhi ya op amp.

3) Kisha pato ni pasi ya chini iliyochujwa kuzuia DC kukabiliana kwa volts 6 na kuambatana na DC ya volts karibu 0.55 kwa sababu ADC itasanidiwa kutumia 1.1 v ya ndani kama Vref.

Kumbuka: Kiboreshaji cha awali cha kipaza sauti cha elektroniki sio mzunguko bora kwenye wavuti. Mzunguko unaohusisha op-amp ungekuwa chaguo bora. Tunataka majibu ya masafa yawe gorofa iwezekanavyo. Sufuria ya stereo ya kilo 47 hutumika kufafanua mzunguko wa kukatwa ambao lazima iwe nusu ya mzunguko wa sampuli. Preset ya kilo 10 ohm (Chungu kidogo kilicho na kichwa nyeupe) hutumiwa kurekebisha faida na thamani ya Q ya kichungi. Sufuria ya kukata kilo 10 ohm (moja iliyo na kitanzi cha kutengeneza chuma ambayo inaonekana kama bunda ndogo ya kichwa gorofa) hutumiwa kuweka voltage iwe karibu kama nusu ya Vref.

Kumbuka: Unapounganisha Nano na PC weka swichi ya SPST iwe wazi tena. Weka utunzaji maalum wa hii kutofanya hivyo inaweza kudhuru mdhibiti wa mzunguko / kompyuta / voltage au mchanganyiko wowote wa hapo juu

Hatua ya 4: Maombi ya lazima na IDEs

Maombi ya lazima na IDEs
Maombi ya lazima na IDEs
Maombi ya lazima na IDEs
Maombi ya lazima na IDEs
Maombi ya lazima na IDEs
Maombi ya lazima na IDEs
Maombi ya lazima na IDEs
Maombi ya lazima na IDEs
  1. Kwa kuweka alama Arduino Nano nilikwenda na studio ya zamani ya AVR 5.1 kwa sababu inaonekana inanifanyia kazi. Unaweza kupata kisanidi hapa.
  2. Kwa programu ya Arduino Nano nilitumia Xloader. Ni rahisi kutumia zana nyepesi ya kuchoma faili za hex kwa Arduinos. Unaweza kuipata hapa.
  3. Kwa mradi mdogo wa bonasi ndogo na kuweka mzunguko nilitumia usindikaji. Unaweza kuipata kutoka hapa ingawa fanya kuna mabadiliko makubwa katika kila marekebisho kwa hivyo italazimika kugongana na kazi zilizoachwa ili kufanya mchoro ufanye kazi.
  4. Studio ya FL au programu nyingine yoyote ya usindikaji wa MIDI. Unaweza kupata toleo la ufikiaji mdogo wa studio ya FL bure kutoka hapa.
  5. MIDI ya kitanzi huunda bandari halisi ya MIDI na hugunduliwa na studio ya FL kana kwamba ni kifaa cha MIDI. Pata nakala sawa kutoka hapa.
  6. MIDI isiyo na nywele hutumiwa kusoma ujumbe wa MIDI kutoka bandari ya COM na kuituma kwa bandari ya MIDI ya kitanzi. Pia hutatua ujumbe wa MIDI wakati wa kweli ambao hufanya utatuaji uwe rahisi. Pata MIDI isiyo na nywele kutoka hapa.

Hatua ya 5: Nambari Zinazofaa za Kila kitu

Ningependa kuwashukuru MFG wa Elektroniki (Tovuti Hapa !!) kwa maktaba maalum ya FFT ambayo nilitumia katika mradi huu. Maktaba imeboreshwa kwa familia ya mega AVR. Hiki ni kiunga cha faili na nambari za maktaba alizotumia. Ninaunganisha nambari yangu hapa chini. Inajumuisha mchoro wa usindikaji na nambari ya AVR C pia. Tafadhali kumbuka kuwa huu ndio usanidi ambao ulinifanyia kazi na sichukui jukumu lolote-ikiwa utaharibu jambo lolote kwa sababu ya nambari hizi. Pia, nilikuwa na maswala mengi kujaribu kuifanya nambari ifanye kazi. Kwa mfano, DDRD (Sajili ya Uelekezaji wa Takwimu) ina DDDx (x = 0-7) kama vinyago kidogo badala ya DDRDx ya kawaida (x = 0-7). Jihadharini na makosa haya wakati wa kukusanya. Kubadilisha pia mdhibiti mdogo kunaathiri ufafanuzi huu kwa hivyo angalia hii pia wakati unashughulikia makosa ya mkusanyiko. Na ikiwa unashangaa kwanini folda ya mradi inaitwa DDT_Arduino_328p.rar, hebu tuseme tu kwamba kulikuwa na giza sana wakati wa jioni na nilikuwa wavivu wa kutosha kuwasha taa.: Uk

Kuja kwenye mchoro wa usindikaji, nilitumia usindikaji 3.3.6 kuandika mchoro huu. Utahitaji kuweka nambari ya bandari ya COM kwenye mchoro mwenyewe. Unaweza kuangalia maoni kwenye nambari.

Ikiwa mtu yeyote anaweza kunisaidia kupeleka nambari hizo kwa Arduino IDE na toleo la hivi karibuni la usindikaji, ningefurahi na nitawapa mikopo watengenezaji / wafadhili pia.

Hatua ya 6: Kuiweka

  1. Fungua nambari na ujumuishe nambari hiyo na #fafanua maoni ya wachunguzi na #fafanua midi_out ametoa maoni.
  2. Fungua xloader na uvinjari kwenye saraka na nambari, vinjari kwa faili ya.hex na uichome kwa nano kwa kuchagua bodi inayofaa na bandari ya COM.
  3. Fungua mchoro wa usindikaji na uiendeshe na faharisi inayofaa ya bandari ya COM. Ikiwa kila kitu kinakwenda vizuri unapaswa kuona wigo wa ishara kwenye pini A0.
  4. Pata dereva wa screw na ugeuze sufuria ya kukata hadi wigo uwe gorofa (sehemu ya DC inapaswa kuwa karibu na sifuri). Usiingize ishara yoyote kwa bodi wakati huo. (Usiambatanishe moduli ya kipaza sauti).
  5. Sasa tumia zana yoyote ya jenereta ya kufagia kama hii kutoa maoni kwa bodi kutoka kwa simu ndogo na uangalie wigo.
  6. Ikiwa hautaona masafa ya kufagia, punguza mzunguko wa kukatwa kwa kubadilisha upinzani wa kilo 47 ohm. Ongeza pia faida kwa kutumia sufuria iliyowekwa tayari ya kilo 10 ohm. Jaribu kupata pato la gorofa na maarufu kwa kubadilisha vigezo hivi. Hii ndio sehemu ya kufurahisha (ziada kidogo!), Cheza nyimbo unazozipenda na ufurahie wigo wao wa wakati halisi. (Tazama video)
  7. Sasa andika msimbo wa C uliopachikwa tena wakati huu na #fafanua maoni ya wachunguzi na #fafanua midi_out bila kufurahishwa.
  8. Pakia tena nambari mpya iliyokusanywa kwenye arduino Nano.
  9. Fungua LoopMidi na unda bandari mpya.
  10. Fungua studio ya FL au programu nyingine ya kiolesura cha MIDI na uhakikishe kuwa bandari ya kitanzi inaonekana katika mipangilio ya bandari ya MIDI.
  11. Fungua MIDI isiyo na nywele na arduino iliyounganishwa. Chagua bandari ya pato kuwa bandari ya LoopMidi. Nenda kwenye mipangilio na uweke kiwango cha Baud kuwa 115200. Sasa chagua bandari ya COM inayofanana na Arduino Nano na ufungue bandari.
  12. Cheza sauti "safi" karibu na kipaza sauti na unapaswa kusikia maandishi yanayofanana kwenye programu ya MIDI pia. Ikiwa hakuna jibu jaribu kupunguza up_threshold iliyoainishwa katika nambari C. Ikiwa noti zinasababishwa bila mpangilio basi ongeza up_threshold.
  13. Pata piano yako na ujaribu jinsi mfumo wako ulivyo haraka !! Jambo bora zaidi ni kwamba katika ukanda wa dhahabu-wa kufuli wa maelezo inaweza kugundua kwa urahisi mashinikizo kadhaa ya wakati huo huo kwa urahisi.

Kumbuka: Wakati bandari ya COM inapatikana na programu tumizi moja haiwezi kusomwa na mwingine. Kwa mfano ikiwa MIDI isiyo na nywele inasoma bandari ya COM, Xloader haitaweza kuwasha bodi

Hatua ya 7: Matokeo / Video

Hiyo ni kwa sasa jamani! Natumahi umeipenda. Ikiwa una maoni yoyote au maboresho katika mradi nifahamishe katika sehemu ya maoni. Amani!

Ilipendekeza: