Innehållsförteckning:

Arduino Nano röstinspelare med MAX9814 mikrofon: 3 steg
Arduino Nano röstinspelare med MAX9814 mikrofon: 3 steg

Video: Arduino Nano röstinspelare med MAX9814 mikrofon: 3 steg

Video: Arduino Nano röstinspelare med MAX9814 mikrofon: 3 steg
Video: Ардуино микро диктофон с функцией Активации Голосом (VAS) 2024, Juli
Anonim
Arduino Nano röstinspelare med MAX9814 mikrofon
Arduino Nano röstinspelare med MAX9814 mikrofon
Arduino Nano röstinspelare med MAX9814 mikrofon
Arduino Nano röstinspelare med MAX9814 mikrofon
Arduino Nano röstinspelare med MAX9814 mikrofon
Arduino Nano röstinspelare med MAX9814 mikrofon

Jag fick en MAX9814 -mikrofon från AZ -leverans på Amazon och ville testa enheten. Därför skapade jag detta enkla projekt byggt på Great Scotts Spy Bug (publicerat under denna creative commons -licens). Jag modifierade projektstrukturen ganska mycket för att förbättra effektiviteten och lägga till några nya funktioner. Detta är mitt första Instructables -projekt så det blir inte perfekt men jag är villig att lära mig och är öppen för råd.

Testresultat från mikrofonen med olika förstärkningar läggs till i slutet så om du bara vill jämföra kvaliteten på 40dB, 50dB och 60dB förstärkningar kan du hoppa dit.

Jag hoppas att det här projektet kommer att vara användbart för människor som försöker implementera en mikrofon i sitt projekt. Jag hoppas också att göra detta projekt så tillgängligt för nybörjare som möjligt så jag har lagt till många kommentarer till min kod men är också glad över att revidera mitt arbete för att lägga till ytterligare förtydliganden som skulle vara till hjälp. Kablarna är mycket nybörjarvänliga men att implementera programvaran är lite knepigare.

Visa alla projektfiler och föreslå förbättringar av min kod i mitt GitHub -arkiv.

Tillbehör:

Amazon:

  • MAX9814 mikrofon med förstärkare
  • Bakbord
  • Arduino Nano (Det är ett paket med 3 men du behövde bara ett!)
  • SD -kortläsare
  • Lysdioder
  • Motstånd
  • Taktila knappar
  • USB B Mini -kabel (för Arduino Nano)
  • USB -powerbank (jag använde en billig köpt lokalt)

Steg 1: Krets och förklaring av enheten

Krets och förklaring av enheten
Krets och förklaring av enheten

Jag anpassade min krets för att fungera med Arduino Nano -enheten, men du kan köra din krets på olika Arduino -enheter genom att redigera stiftnumren högst upp i min kod (nästa avsnitt). För att konfigurera kretsen på din enhet, sök efter "Arduino [Din modell] pinout" och det ska finnas många bilder som illustrerar vilka funktioner varje stift kan utföra (t.ex. analog ingång, SS, MOSI etc). De flesta enheter har också märkta stift. Jag ritade den här schemat med hjälp av EasyEDA -redigeraren men skapade den med en lödlös brödbräda eftersom jag ville skapa detta så snabbt som möjligt och ville snabbt omkonfigurera layouten.

Steg 2: Programmering

Programmering
Programmering

Jag skrev en enkel kod för att spela in ljudet på enheten. Jag använde Great Scotts kod som inspiration men använde ändrade strukturen för att öka effektiviteten och enkelheten. Jag tog också bort begränsningarna för antalet filer som kunde spelas in och lade till fler kommentarer som borde hjälpa nybörjare att navigera. Ladda ner den färdiga koden nedan och öppna den med Arduino IDE. Ladda ner de nödvändiga modulerna ("SD.h", "SPI.h" och "TMRpcm.h") med Arduino Package Manager (visas i bilderna ovan).

Inspelning till en WAV -fil på ett SD -kort är en avancerad funktion i TMRpcm -biblioteket så för att kunna använda den måste du redigera bibliotekets konfigurationsfil. Även om detta låter skrämmande (det gjorde det åtminstone för mig) söker det bara efter filen "pcmConfig.h" med hjälp av filutforskaren och tar bort några rader med kod (sedan sparar den).

  1. På Uno- eller icke-megakort, kommentera raden #define buffSize 128
  2. Avmarkera även #define ENABLE_RECORDING och #define BLOCK_COUNT 10000UL

När du har återvänt till Arduino IDE, kopplar du in din Arduino, väljer den och kompilerar och laddar upp programmet. Genom att öppna den seriella bildskärmen får du också lite feedback under körtiden.

Steg 3: Avslutat projekt och testning

Avslutat projekt och test
Avslutat projekt och test

När jag hade avslutat kablarna och felsökningen testade jag projektet.

VARNING om du startar om enheten återställs filnamnsräknaren vilket gör att nya filer skriver över gamla filer.

Så här använder du enheten:

  1. Anslut en USB -strömkabel till Arduino
  2. tryck på knappen för att starta inspelningen (lysdioden tänds för att indikera detta)
  3. tryck på knappen igen för att avsluta inspelningen
  4. upprepa så många inspelningar som krävs
  5. koppla bort USB -strömkabeln
  6. Ta bort SD -kortet
  7. Sätt i SD -kortet i en dator eller telefon
  8. Öppna filerna i ditt valda uppspelningsprogram

Det ursprungliga syftet med detta projekt var att testa MAX9814 -mikrofonen, så jag genomförde tre tester för att ta reda på vilken effekt den inbyggda förstärkaren hade på resultatet. När jag producerade inspelningarna använde jag en av Mozarts symfonier som en kontrollvariabel. Jag spelade den på min telefons högtalare som jag höll pekad mot mikrofonen på ett konstant avstånd för alla tre inspelningarna. Den enda variabeln jag ändrade var mikrofonens förstärkning (justerad genom att ansluta den till VCC, GND eller låta den flyta). De resulterande ljudklippen bifogas. Jag kombinerade också 40dB och 60dB -ljudet till en enda inspelning där 40dB spelas i vänster öra och 60dB spelas i höger öra. Detta gör skillnaden i kvalitet mycket märkbar och belyser hur viktig förstärkningen från MAX9814 -modulen är.

Sammantaget var jag otroligt nöjd med inspelningsresultaten, särskilt eftersom installationen för enheten är en av de enklaste jag har sett (med bara tre ledningar och inga externa komponenter - även en enkel LED kräver ett motstånd). Det måste också beaktas att Arduino Nano har en 10bit ADC så att varje amplitudavläsning bara kan vara ett av 1024 diskreta värden. På grund av dess goda ljudkvalitet, kompakta storlek och försumbar strömförbrukning; Jag hoppas kunna använda enheten i framtida projekt.

Om jag inte har gått in noggrant i detalj skulle jag mer än gärna hjälpa till och lägga till extra förtydligande. Detta är min första instruktion, så alla råd jag får nu kan återspeglas i alla mina kommande projekt. Om du har några förslag för att förbättra mina koder, skulle jag gärna lägga till dem i mitt projekt på GitHub och denna instruktion.

Rekommenderad: