Агуулгын хүснэгт:
- Алхам 1: Шаардлагатай бүрэлдэхүүн хэсгүүд
- Алхам 2: Техникийн үзүүлэлтүүд
- Алхам 3: Хэлхээний диаграм
- Алхам 4: Шаардлагатай програмууд болон IDEs
- Алхам 5: Бүх зүйлийн холбогдох кодууд
- Алхам 6: Үүнийг тохируулах
- Алхам 7: Үр дүн/видео
Видео: MIDI хөрвүүлэгч рүү бодит цагийн аудио хийх: 7 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Нэргүй хүмүүс! Энэ бол миний бакалаврын хөтөлбөрт хамрагдсан нэг курс (Бодит цагийн дижитал дохио боловсруулах) дээр ажиллаж байсан төсөл юм. Төсөл нь аудио өгөгдлийг "сонсдог" USP дээр холбогдох тэмдэглэлийн MIDI мессежийг гаргадаг DSP системийг бий болгох зорилготой юм. Энэ зорилгоор Arduino Nano -ийг ашигласан. Урт богино өгүүлбэрээр микроконтроллер нь ирж буй аудио өгөгдөл дээр FFT хийж, оргил хэсгүүдэд дүн шинжилгээ хийж, зохих MIDI мессежийг илгээдэг. MOSFET -ийн талаар санаа зовох хэрэггүй, учир нь эдгээр нь бусад төсөлд зориулагдсан байдаг (үүнийг дараа нь зааварчилгааны материалд оруулах болно) бөгөөд энэ төсөлд шаардлагагүй болно. Тиймээс аль хэдийн эхэлцгээе !!
Алхам 1: Шаардлагатай бүрэлдэхүүн хэсгүүд
Энэхүү төслийг бүтээхийн тулд бидэнд дараах бүрэлдэхүүн хэсгүүд хэрэгтэй болно, гэхдээ тэдгээрийн олонх нь ерөнхий шинж чанартай бөгөөд тэдгээрийг эквивалентүүдээр нь орлуулж болно. Илүү сайн хэрэгжүүлэхийн тулд схемийг судалж, ан хийх.
Бүрэлдэхүүн хэсгийн тоо хэмжээ
1. Цахилгаан микрофон. 1
2. 30 кило Ом эсэргүүцэл. 1
3. 150 Kilo Ohm эсэргүүцэл. 1
4. 100 ом эсэргүүцэл. 1
5. 2.2 кило Ом эсэргүүцэл. 3
6. Урьдчилан тохируулсан 10 кило Ом. 1
7. 10 кило Ом тайрах сав. 1
8. 47 Kilo Ohm стерео сав. 1
9. 470 Ом эсэргүүцэл. 2
10. 0.01uF конденсатор. 2
11. 2.2uF конденсатор. 3
12. 47uF конденсатор. 2
13. 1000uF конденсатор. 1
14. 470uF конденсатор. 1
15. 7805 хүчдэлийн зохицуулагч. 1
16. Эмэгтэй ба эрэгтэй толгойн зурвас. Тус бүр 1
17. Barrel Jack холбогч. 1
18. 12 V 1 Amp тогтмол гүйдлийн адаптер. 1
19. SPST унтраалга. (Заавал биш) 1
20. Perfboard. 1
Алхам 2: Техникийн үзүүлэлтүүд
Дээж авах давтамж: 3840 дээж/сек
FFT тутамд авсан дээжийн тоо: 256
Давтамжийн нарийвчлал: 15 Гц
Сэргээх хурд: 15 Гц орчим
Хөгжмийн нотны доод ба дээд масштабыг зөв аваагүй байна. Доод нотууд нь бага давтамжийн нарийвчлалтай байдаг бол өндөр давтамжууд нь түүвэрлэх чадвар багатай байдаг. Arduino аль хэдийн санах ойгүй болсон тул илүү нарийвчлалтай шийдвэрлэх арга байхгүй. Илүү сайн нарийвчлал нь шинэчлэлтийн хурдыг бууруулдаг тул арилжаа хийх нь зайлшгүй юм. Хейзенбергийн тодорхойгүй байдлын зарчмын Лэйман хувилбар.
Анхдагч бэрхшээл бол нотуудын хоорондох экспоненциал зай юм (Зураг дээр харагдаж байна. Давтамжийн тэнхлэг дээрх импульс бүр нь хөгжмийн нот юм). LFT гэх мэт алгоритмууд нь тусалж магадгүй, гэхдээ энэ нь arduino Nano гэх мэт төхөөрөмжийн хувьд арай дэвшилтэт, арай төвөгтэй юм.
Алхам 3: Хэлхээний диаграм
Анхаарна уу: Зурган дээрх гурван MOSFET болон шураг терминалууд танд санаа зовох хэрэггүй. Энэ төсөлд тэд шаардлагагүй. Микрофоны оролтын самбарыг зөөврийн буюу модуль гэж нэрлэдэг болохыг анхаарна уу. Төрөл бүрийн блокуудын жижиг тайлбарыг доор өгөв.
1) Хоёр 470 ом эсэргүүцэл нь стерео аудио дохиог моно аудио дохио болгон нэгтгэдэг. Сигналын газардуулга нь хэлхээний газар руу биш харин виртуал газардуулга (хэлхээний диаграм дахь vg) руу шилжих эсэхийг шалгаарай.
2) Дараагийн блок нь 2-р эрэмбийн товчлууртай бага нэвтрүүлэх шүүлтүүр бөгөөд өөр нэр өгөхөөс зайлсхийхийн тулд оролтын дохиог хязгаарлах үүрэгтэй. Бид зөвхөн +12в тэжээлээр ажилладаг тул RC хүчдэл хуваагч хийх замаар op-amp-ийг хазайдаг. Энэ нь оп -өсгөгчийг нийлүүлэлт нь 6 0 -6 вольтын нийлүүлэлт (хос төмөр зам) гэж боддог.
3) Дараа нь гаралт нь 6 вольтын DC офсетыг хаахын тулд бага дамжуулалтыг шүүж, ойролцоогоор 0.55 вольтын DC -тэй хослуулсан тул ADC нь дотоод 1.1 v -ийг Vref болгон ашиглахаар тохируулагдсан болно.
Тэмдэглэл: Цахилгаан микрофоны урьдчилсан өсгөгч нь интернетийн хамгийн сайн хэлхээ биш юм. Оп-өсгөгч бүхий хэлхээ нь илүү сайн сонголт байх болно. Бид давтамжийн хариу урвалыг аль болох тэгш байлгахыг хүсч байна. 47 кг ом стерео тогоо нь түүврийн давтамжийн тал хувь байх ёстой таслах давтамжийг тодорхойлоход хэрэглэгддэг. 10 кило омын урьдчилсан тохируулга (Цагаан толгойтой жижиг сав) нь шүүлтүүрийн ашиг ба Q утгыг тааруулахад ашигладаг. 10 кило омын шүргэх сав (жижиг хавтгай толгойтой шураг шиг металл тааруулах товчлууртай) нь хүчдэлийг Vref -ийн хагас хүртэл ойртуулахад ашигладаг.
Тэмдэглэл: Та Nano -г PC -тэй холбохдоо. SPST шилжүүлэгчийг нээлттэй байлга. Үүнийг хийхгүй байх нь маш болгоомжтой байх ёстой бөгөөд энэ нь хэлхээ/компьютер/хүчдэлийн зохицуулагч эсвэл дээр дурдсан хослолыг гэмтээж болзошгүй юм
Алхам 4: Шаардлагатай програмууд болон IDEs
- Arduino Nano -г кодлохын тулд би AVR 5.1 студийн хамт явсан, учир нь энэ нь надад тохирсон юм шиг байна. Та суулгагчийг эндээс олж болно.
- Arduino Nano програмчлахад би Xloader -ийг ашигласан. Hex файлуудыг Arduinos руу шарахын тулд хөнгөн жинтэй хэрэгслийг ашиглах нь үнэхээр хялбар юм. Та эндээс авах боломжтой.
- Жижиг урамшууллын мини төсөл, хэлхээг тааруулахын тулд би боловсруулалтыг ашигласан. Та үүнийг эндээс авах боломжтой боловч засвар болгонд томоохон өөрчлөлтүүд хийгддэг тул ноорогыг ажиллуулахын тулд хуучирсан функцуудыг хуурч болно.
- FL studio эсвэл бусад MIDI боловсруулах програм хангамж. Та FL studio хязгаарлагдмал хандалтын хувилбарыг эндээс үнэгүй авах боломжтой.
- Loop MIDI нь виртуал MIDI порт үүсгэдэг бөгөөд үүнийг FL студид MIDI төхөөрөмж шиг илрүүлдэг. Үүний хуулбарыг эндээс аваарай.
- Үсгүй MIDI нь COM портоос MIDI мессежийг уншиж, MIDI порт руу илгээхэд хэрэглэгддэг. Энэ нь MIDI мессежийг бодит цаг хугацаанд дибаг хийдэг бөгөөд энэ нь дибаг хийхийг хялбар болгодог. Эндээс Үсгүй MIDI аваарай.
Алхам 5: Бүх зүйлийн холбогдох кодууд
Энэхүү төсөлд ашигласан FFT номын сангийн хувьд Electronic Lifes MFG (Энд байгаа вэбсайт !!) -т баярлалаа гэж хэлмээр байна. Номын сан нь мега AVR гэр бүлд зориулагдсан болно. Энэ бол түүний ашигласан номын сангийн файлууд болон кодуудын линк юм. Би кодоо доор хавсаргаж байна. Үүнд боловсруулах эскиз болон AVR C код орно. Энэ бол миний хувьд тохирсон тохиргоо бөгөөд хэрэв та эдгээр кодуудаас болж ямар нэгэн зүйл гэмтсэн бол би ямар ч хариуцлага хүлээхгүй гэдгийг анхаарна уу. Түүнчлэн, кодыг ажиллуулахын тулд надад маш олон асуудал тулгарсан. Жишээлбэл, DDRD (Data Direction Register) нь ердийн DDRDx (x = 0-7) оронд битийн маск хэлбэрээр DDDx (x = 0-7) байдаг. Эмхэтгэх явцад эдгээр алдааг анхаарч үзээрэй. Микроконтроллерийг өөрчлөх нь эдгээр тодорхойлолтод нөлөөлдөг тул эмхэтгэлийн алдаатай ажиллахдаа үүнийг анхаарч үзээрэй. Хэрэв та төслийн хавтсыг яагаад DDT_Arduino_328p.rar гэж нэрлээд байгааг сонирхож байгаа бол намайг эхлүүлэхэд орой харанхуй байсан тул гэрэл асаахгүй залхуу байсан гэж хэлье.: P
Боловсруулах тойм зураг дээр би энэ эскизийг бичихдээ 3.3.6 боловсруулалтыг ашигласан. Та ноорог дээрх COM портын дугаарыг гараар тохируулах шаардлагатай болно. Та код дээрх сэтгэгдлийг шалгаж болно.
Хэрэв хэн нэгэн надад кодыг Arduino IDE болон хамгийн сүүлийн боловсруулалтын хувилбар руу шилжүүлэхэд тусалж чадвал би хөгжүүлэгч, хувь нэмэр оруулагчдад кредит өгөх болно.
Алхам 6: Үүнийг тохируулах
- Кодыг нээгээд #define pcvisual тайлбарлаагүй, #define midi_out коммент бичсэн кодыг эмхэтгээрэй.
- Xloader -ийг нээгээд кодтой директор руу очиж,.hex файлыг хайж, зохих самбар болон COM портыг сонгож нано болгон шарна уу.
- Боловсруулалтын тоймыг нээгээд зохих COM портын индексээр ажиллуулна уу. Хэрэв бүх зүйл сайн байвал та A0 зүү дээрх дохионы спектрийг харах боломжтой байх ёстой.
- Шураг жолооч авч, спектрийг тэгшлэх хүртэл таслагч савыг эргүүлнэ (DC бүрэлдэхүүн хэсэг нь тэг рүү ойрхон байх ёстой). Дараа нь самбар дээр ямар ч дохио оруулах хэрэггүй. (Микрофоны модулийг бүү залгаарай).
- Микро утаснаас самбар руу оролт өгч, спектрийг ажиглахын тулд ийм төрлийн цахилгаан үүсгүүр хэрэгслийг ашиглана уу.
- Хэрэв та давтамж шүүрдэхийг олж харахгүй байгаа бол 47 кило ом эсэргүүцлийг өөрчлөх замаар таслах давтамжийг бууруулна уу. Мөн 10 кило омын урьдчилан тохируулсан савыг ашигласнаар нэмэгдүүлэх боломжтой. Эдгээр параметрүүдийг өөрчилснөөр хавтгай, нэр хүндтэй гаралтын үр дүнд хүрэхийг хичээгээрэй. Энэ бол хөгжилтэй хэсэг (бяцхан урамшуулал!), Дуртай дуунуудаа тоглуулж, тэдний бодит цагийн спектрийг үзээрэй. (Видеог үзээрэй)
- Одоо суулгасан C кодыг энэ удаад #define pcvisual коммент болон #define midi_out тайлбарлаагүйгээр дахин эмхэтгээрэй.
- Шинэ эмхэтгэсэн кодыг arduino Nano дээр дахин ачаална уу.
- LoopMidi -ийг нээгээд шинэ порт үүсгээрэй.
- FL студи эсвэл бусад MIDI интерфэйсийн програмыг нээж, MIDI портын тохиргоонд midi порт давтамж харагдаж байгаа эсэхийг шалгаарай.
- Ардуино холбогдсон нээлттэй үсгүй MIDI. LoopMidi порт болох гаралтын портыг сонгоно уу. Тохиргоо руу ороод Baud -ийн хурдыг 115200 гэж тохируулна уу. Одоо Arduino Nano -той тохирох COM портыг сонгоод портыг нээнэ үү.
- Микрофоны ойролцоо "цэвэр" аялгуу тоглуулаарай, та MIDI програм хангамжийн холбогдох тэмдэглэлийг сонсох ёстой. Хэрэв хариу өгөхгүй бол C кодонд тодорхойлсон up_threshold -ийг бууруулж үзээрэй. Хэрэв тэмдэглэлүүд санамсаргүй байдлаар өдөөгдөж байвал up_threshold -ийг нэмэгдүүлнэ үү.
- Төгөлдөр хуураа аваад систем хэр хурдан ажиллаж байгааг шалгаарай !! Хамгийн сайн зүйл бол алтан цоожтой бүсэд хэд хэдэн товчлуурыг нэгэн зэрэг дарахад хялбар байдаг.
Тэмдэглэл: COM порт руу нэг програм хандахад түүнийг өөр програм унших боломжгүй болно. Жишээлбэл, үсгүй MIDI нь COM портыг уншдаг бол Xloader самбарыг анивчих боломжгүй болно
Алхам 7: Үр дүн/видео
Одоохондоо ийм байна залуусаа! Та үүнийг хүсч найдаж байна. Хэрэв танд төсөлд ямар нэгэн санал, сайжруулалт байгаа бол коммент хэсэгт надад мэдэгдээрэй. Энх тайван!
Зөвлөмж болгож буй:
Бодит цагийн цагийн модулийг (DS3231) хэрхэн ашиглах вэ: 5 алхам
Бодит цагийн цагны модулийг (DS3231) хэрхэн ашиглах вэ: DS3231 бол өртөг багатай, туйлын нарийвчлалтай I2C бодит цаг (RTC) бөгөөд температурыг нөхсөн болор осциллятор (TCXO), болортой. Төхөөрөмж нь батерейны оролттой бөгөөд үндсэн хүчдэлийн үед цагийг зөв хэмждэг
Wiggly Wobbly - Дууны долгионыг үзээрэй !! Бодит цагийн аудио визуализатор !!: 4 алхам
Wiggly Wobbly - Дууны долгионыг үзээрэй !! Real Time Audio Visualizer !!: Та Beetle -ийн дуунууд хэрхэн харагддаг талаар бодож байсан уу? Эсвэл та зүгээр л дуу яаж харагддагийг харахыг хүсч байна уу? Санаа зоволтгүй ээ, би үүнийг дахин гаргахад нь туслахын тулд энд байна !!! Чанга яригчаа дээшлүүлээд бүдгэрсэн өнгө рүү чиглүүлээрэй
Аудио өсгөгч рүү D882 давхар транзисторыг хэрхэн яаж хийх вэ: 9 алхам
Аудио өсгөгч рүү D882 давхар транзисторыг хэрхэн яаж хийх вэ: Сайн байна уу найз минь, өнөөдөр би D882 давхар транзистор ашиглан аудио өсгөгчийн хэлхээг хийх гэж байна
Arduino IDE ашиглан M5stick C ашиглан цаг хийх - M5stack M5stick-C-тэй RTC бодит цагийн цаг: 4 алхам
Arduino IDE ашиглан M5stick C ашиглан цаг хийх | M5stack M5stick-C-тэй RTC бодит цагийн цаг: Сайн байна уу залуусаа, энэ зааварчилгаанд бид Arduino IDE ашиглан m5stack-ийн m5stick-C хөгжүүлэлтийн самбар ашиглан хэрхэн цаг хийхийг сурах болно. Тиймээс m5stick нь огноо, цаг, цагийг харуулах болно. дэлгэц дээр сарын долоо хоног
Google Firebase ашиглан хийх бодит цагийн жагсаалт: 12 алхам
Google Firebase ашиглан хийх бодит цагийн жагсаалт: Сайн байна уу! Бид бүгд хийх ёстой ажлын жагсаалтаа өдөр бүр онлайн эсвэл офлайн хэлбэрээр ашигладаг. Офлайн жагсаалт алдагдах хандлагатай байдаг бөгөөд виртуал жагсаалтыг буруу байрлуулах, санамсаргүйгээр устгах эсвэл бүр мартах боломжтой байдаг. Тиймээс бид үүнийг Google Firebase дээр хийхээр шийдсэн