IC-ul de ADC ADC ul din pico poate sa capteze cu rezolutie de 12 biti. Acesta preia sunetul de la un modul cu un amplificator MAX9814, care la randul lui amplifica semnalul de la o capsula electret si trimite datele la microcontroller. Pico-ul controleaza led-ul de mut in functie de starea butonului si transmite datele la calculator prin biblioteca TinyUSB.
Acesta este primul prototip unde am testat pe breadboard functionalitatea software.
Aici se poate vedea cat de mica este carcasa pe care am facut-o :(. Am dezlipit (si am rupt si pad-ul) si conectorul I2C special cu care vine placuta ca sa fie mai mica.
Aici am inclus si un “cablu” facut de mine care are o sarma in el. Acest lucru permite microfonului sa se deformeze plastic in functie de cum vrem sa fie asezat.
Singurele detalii are nu sunt mentionate in diagrama de sus sunt cum am setat gain-ul de la microfon: AR la GND si Gain la VDD. Datasheet-ul la MAX9814 era destul de straight forward pe aceasta tema.
VSCode cu extensia oficiala pentru Raspberry PI Pico
Arduino Studio
TinyUSB (fork-ul lui pschatzmann)
Pentru arduino studio a fost nevoie de setarile de pe pagina Ardushop a Marble Pico si importarea bibliotecii. Pentru compilare trebuie setat USB Stack ca TinyUSB.
Pentru ca sa pot ajunge la un sampling rate foarte aproape de maximul teoretic din datasheet (500 kHz/s), am folosit transferuri DMA pentru a citi de la ADC, deoarece acestea nu ocupa timpul procesorului si notifica atunci cand are date noi printr-o intrerupere. DMA-ul foloseste doua buffere in care pune date si schimba intre ele si permite functiei de callback la USB sa preia datele direct de acolo.
Microfonul se aude destul de bine, doar ca mai trebuie lucrat la intreruperile DMA si USB pentru a elimina stutter-urile. Overall pretty good pentru ~40 lei.
Foarte mult timp a fost pus pe:
Am creat acest proiect cu scopul de a face pe viitor un microfon miniaturizat in stilul la Antlion ModMic, pe care sa il folosesc eu. Motivul pentru care am ales sa il fac un microfon care sta pe masa este faptul ca era prea mare un pico care atarna de o casca :). O sa iau componentele direct de pe placuta aceasta si le pun pe alt pcb (si alte extinderi).