Vraag


Acties:
  • 0 Henk 'm!

  • bonjour!
  • Registratie: December 2012
  • Laatst online: 03-05-2024
Voor een project wil ik graag geluid opnemen met een Raspberry Pi Pico en opslaan op een micro sd kaart.

Dit lijkt mij een relatief simpel project maar ik kom er na lang googlen en proberen niet uit.
Ik heb ervaring met python en arduino's en kan redelijk uit de voeten met de meest standaard dingen.

Wat ik heb aan hardware:
- Rapberry pi Pico
- SPW 2430 MEMS breakout
- MAX 9814 Electret breakout
- Breadboard/electronische compenten
.
Wat ik al geprobeerd heb:
- Via Thonny met micropython en circuitpython kan ik inmiddels naar een sd kaart schrijven en kan ik tonen generen.
- Het opnemen met een microfoon is mij nog een raadsel, moet ik gaan via het I2S protocol?
- Ook heb ik volgens mij elk artikel gelezen wat er maar bestaat en moet ik waarschijnlijk verder in C / C++ om echt iets op te nemen aangezien Micropython te veel overhead heeft.

Zoals je kan lezen zit ik nu op het punt dat ik het niet goed meer weet, ik kan wel proberen projecten te kopieren zoals onderstaand, maar ik weet niet of dit de juiste weg is:
- https://www.hackster.io/s...-raspberry-pi-pico-cc9bd5
- https://www.electromaker....-audio-recordplaywav-file

Ik heb geen probleem om er veel tijd in te steken of eventueel hardware aan te schaffen.
Zijn er tips vanuit Tweakers welke stappen het beste zijn om dit te verwezenlijken?

Alle reacties


Acties:
  • 0 Henk 'm!

  • jeroen3
  • Registratie: Mei 2010
  • Laatst online: 20:47
De microfoon heeft zelf geen ADC, helaas geen i2s stream dus. Dan moet je het met de ADC in de RP2040 gaan doen.
Afhankelijk van je breakout moet je even kijken hoe deze dat elektrisch regelt. Als het goed is zit hier al AC koppeling op. Wellicht iets versterking?

Vervolgens moet je met 8 kHz o.i.d de ADC gaan samplen, het liefst gebruik je hier een DMA voor zodat het consistent gebeurt. (anders krijg je jitter)
Daarna moet je wat schalen en de DC-offset eruit halen, met een bias of een digitaal high-pass filter.
(is niet zo spannend, gewoon een langzaam gemiddelde subtracten)

Lijkt erop dat het wel kan in micropython.
https://iosoft.blog/2021/10/26/pico-adc-dma/
Maar je moet wel even in de manual van rp2040 duiken denk ik. En wat basis signaalbewerking is er nodig vermoed ik.
Want als je naar een SD kaart wil opnemen zul je het in blokjes moeten opnemen en dan wegschrijven.

Tenzij iemand hier een micropython library voor heeft gemaakt natuurlijk.

Acties:
  • 0 Henk 'm!

  • bonjour!
  • Registratie: December 2012
  • Laatst online: 03-05-2024
Bedankt voor de uitleg en de links Jeroen.
Ik zal even goed induiken in je links die je gestuurd hebt.

Acties:
  • 0 Henk 'm!

  • _ferry_
  • Registratie: Januari 2002
  • Niet online

_ferry_

Moderator Tweaking

Nipple Tweaker

Als je de keuze hebt, is een microfoon met i2s wellicht makkelijker om te implementeren. Daar zijn volgens mij wel wat kant en klare libraries voor, scheelt weer tijd, en wellicht betere kwaliteit audio ook.