Obsah:

Arduino se stává mluvícím Tomem: 6 kroků
Arduino se stává mluvícím Tomem: 6 kroků

Video: Arduino se stává mluvícím Tomem: 6 kroků

Video: Arduino se stává mluvícím Tomem: 6 kroků
Video: Roma, la dimora degli Dèi | Gian Matteo Corrias, Davide Bolognesi, Mauro Biglino 2024, Červenec
Anonim
Arduino se stává mluvícím Tomem
Arduino se stává mluvícím Tomem
Arduino se stává mluvícím Tomem
Arduino se stává mluvícím Tomem

Jedna z mých nejstarších vzpomínek na používání smartphonu byla hraní hry „Talking Tom“. Hra byla docela jednoduchá. Je tu kočka, jménem Tom, která dokáže mluvit. Ve hře Tom poslouchal jakýkoli vstup prostřednictvím mikrofonu telefonu a poté opakoval vše, co slyšel. Takže ať už Tomovi řeknete cokoli, opakovalo by to stejnou věc svým vlastním pronikavým hlasem.

I když to zní jednoduše, celý tento postup vyžaduje mnoho složitých kroků, jako je vzorkování analogového vstupu mikrofonu v digitální podobě, manipulace se zvukem, aby měl Tom jedinečný hlas, a poté rekonstrukce signálu ze všech těchto digitálních hodnot, aby se mohl přehrávat přes reproduktor. Všechny tyto složité kroky, ale smartphone to zvládl jako kouzlo i před 9 až 10 lety!

Zajímavostí by bylo zjistit, jestli to samé lze udělat s levnou deskou Arduino na bázi mikrokontroléru. V tomto návodu tedy ukážu, jak lze z Arduina a jiné levné elektroniky vytvořit jednoduchý projekt jako Talking Tom.

Tento návod byl napsán ve spolupráci s Hatchnhack Makerspace v Dillí

POZNÁMKA: Tento návod je první verzí projektu, která doplňuje funkci Talking Tom „Talking“, kde arduino bude moci opakovat vše, co mu řeknete. Část pro změnu hlasu bude zahrnuta v budoucí verzi, i když kvůli menšímu rozlišení Arduina ve vestavěném ADC zní zaznamenaný zvuk už trochu jinak: P (To je jasně vidět na videu projektu).

Začněme tedy!

Krok 1: Použité materiály

Použité materiály
Použité materiály
Použité materiály
Použité materiály
Použité materiály
Použité materiály

Hardware:

  • Arduino UNO
  • Mikrofonní modul MAX4466 s nastavitelným ziskem
  • Modul čtečky karet SD na bázi SPI
  • SD karta
  • Zesilovač zvuku, jako je reproduktor PC, modul zesilovače PAM8403 atd.
  • Reproduktory pro připojení k zesilovači
  • Ženský audio jack
  • Rezistor 1 x 1 k ohm
  • Rezistor 2 x 10 k ohmů
  • 1 x 10uF kondenzátor
  • 2 x tlačítko
  • Propojovací dráty

Software:

  • Arduino IDE
  • Audacity (volitelně)
  • Knihovna TMRpcm a SD pro Arduino

Krok 2: Základní přehled projektu

Projekt má hlavně 2 funkce:

  • Může přehrávat náhodně vybraný zvuk ze sady předinstalovaných zvukových souborů na kartě SD pro zvukové efekty atd.
  • Může nahrávat zvukový vstup z mikrofonu a poté jej přehrávat, jakmile se nahrávání zastaví. To umožňuje arduinu opakovat vše, co slyšelo z mikrofonu.

Uživatelské rozhraní projektu se skládá hlavně ze 2 tlačítek, z nichž každé odpovídá jedné z výše uvedených funkcí.

Hlavní tvrdou práci při nahrávání a přehrávání zvukových souborů z karty SD zajišťuje knihovna TMRpcm

Zvukový záznam využívá mikrofonní modul MAX4466, interní ADC arduino a knihovnu TMRpcm k samplování zvuku a jeho dočasnému uložení na SD kartu jako soubor '.wav' pro přehrávání. Zvukové soubory '.wav' používají k ukládání zvukových dat v digitálním formátu PCM (Pulse Code Modulation), takže je lze snadno znovu přehrát. Obecně je lepší použít externí ADC pro zvukové projekty, protože rozlišení ADC Arduina není tak vysoké, ale pro tento projekt funguje.

Přehrávání zvukových souborů (předinstalovaných a zaznamenaných) se také provádí pomocí knihovny TMRpcm, která vydává zvuk jako signál PWM z pinu povoleného PWM arduina. Tento signál je poté přiveden do RC filtru, aby byl získán analogový signál, který je poté veden do zesilovače pro přehrávání zvuku přes reproduktor. Pro tuto část můžete také použít externí DAC, protože arduino jej interně nemá. Použití DAC může být lepší volbou, protože by to výrazně zlepšilo kvalitu zvuku.

Komunikace mezi modulem karty SD a Arduino probíhá prostřednictvím SPI (Serial Periferní Interface). Kód využívá knihovnu SD & SPI pro snadný přístup k obsahu karty SD.

Krok 3: Připravte si kartu SD a připojte modul karty SD

Připravte si kartu SD a připojte modul karty SD
Připravte si kartu SD a připojte modul karty SD
Připravte si kartu SD a připojte modul karty SD
Připravte si kartu SD a připojte modul karty SD
Připravte si kartu SD a připojte modul karty SD
Připravte si kartu SD a připojte modul karty SD
Připravte si kartu SD a připojte modul karty SD
Připravte si kartu SD a připojte modul karty SD
  • Nejprve musíte kartu SD naformátovat pomocí systému souborů FAT16 nebo FAT32 (K formátování karty SD můžete použít smartphone).
  • Nyní předinstalujte některé zvukové soubory.wav na kartu SD. Soubory.wav můžete generovat pomocí Audacity (viz pokyny níže). Nezapomeňte pojmenovat soubory jako audio_1.wav, audio_2.wav, audio_3.wav atd.

Modul karty SD používá ke komunikaci dat s arduino SPI. Proto se připojuje pouze k těm pinům, které mají povolený SPI. Tato připojení jsou následující:

  • Vcc - 5v
  • GND - GND
  • MOSI (Master Out Slave In) - pin 11
  • MISO (Master In Slave Out) - pin 12
  • CLK (hodiny) - kolík 13
  • SS/CS (Slave Select/Chip Select) - pin 10

Generování souboru '.wav' pomocí softwaru Audacity:

  • V Audacity otevřete zvukový soubor, který chcete převést na.wav.
  • Klikněte na název souboru a poté vyberte „Rozdělit stereo na mono“. Tato možnost rozdělí stereofonní zvuk na dva mono kanály. Nyní můžete jeden z kanálů zavřít.
  • Změňte hodnotu „Project Rate“ve spodní části na 16 000 Hz. Tato hodnota odpovídá maximální vzorkovací frekvenci interního ADC arduina.
  • Nyní se dostal k Soubor-> Export/Export jako WAV.
  • Vyberte příslušné umístění a název souboru. V nabídce kódování vyberte 'Unsigned 8-bit PCM', protože pro ukládání zvuku v digitálním formátu používáme formát PCM.

Krok 4: Připojte zvukový výstup a mikrofon

Připojte zvukový výstup a mikrofon
Připojte zvukový výstup a mikrofon
Připojte zvukový výstup a mikrofon
Připojte zvukový výstup a mikrofon
Připojte zvukový výstup a mikrofon
Připojte zvukový výstup a mikrofon
Připojte zvukový výstup a mikrofon
Připojte zvukový výstup a mikrofon

Připojení mikrofonu:

  • Vcc - 3,3 V.
  • GND - GND
  • OUT - A0 pin

POZNÁMKA:

  • Zkuste použít mikrofon přímo k arduinu místo použití prkénka, protože by mohlo ve vstupním signálu vyvolat zbytečný šum.
  • Nezapomeňte čistě pájet záhlaví na modulu mikrofonu, protože špatné pájecí spoje také vytvářejí hluk.
  • Tento mikrofonní modul má nastavitelný zisk, který lze ovládat pomocí hrnce na zadní straně desky. Navrhoval bych, abyste udrželi zisk poněkud nízký, protože pak nebude hluk příliš zesilovat, zatímco byste mohli mluvit a držet jej blízko úst, což by mělo za následek čistší výstup.

Připojení zvukového výstupu:

  • Umístěte 10 uF kondenzátor a odpor 1 k ohm do série na prkénko s kladným kondenzátorem připojeným k rezistoru. Ty dohromady tvoří RC filtr, který převádí výstup PWM na analogový signál, který lze přivést do zesilovače.
  • Připojte kolík 9 Arduina k druhému konci rezistoru.
  • Záporný pól kondenzátoru se připojí k levému a pravému kanálu audio konektoru.
  • GND audio konektoru se připojí ke GND.
  • Audio konektor je připojen k zesilovači pomocí Aux kabelu. V mém případě jsem použil reproduktorový systém svého počítače.

POZNÁMKA:

Použití PWM jako zvukového výstupu nemusí být nejlepší volbou, protože externí DAC by poskytoval mnohem lepší rozlišení a kvalitu. Kondenzátor a odpor v RC filtru mohou navíc způsobovat nežádoucí šum. Ale přesto byl výstup pro tento projekt docela slušný

Krok 5: Zapojte tlačítka

Zapojte knoflíky
Zapojte knoflíky
Zapojte knoflíky
Zapojte knoflíky
Zapojte knoflíky
Zapojte knoflíky

Projekt používá k tlačení tlačítek jako uživatelského rozhraní. Oba plní různé funkce a používají se odlišně, ale mají stejné zapojení. Jejich spojení je následující:

  • Umístěte tlačítka na prkénko.
  • Připojte jeden vývod jednoho tlačítka ke kolíku 2 arduina pomocí stahovacího odporu 10 k ohmů. Druhý terminál tlačítka se připojí k 5v. Když je tedy stisknuto tlačítko, pin 2 získá HIGH a můžeme to zjistit v kódu.
  • Druhé tlačítko se spojí stejně s pinem arduina 3 místo 2.

Tlačítko připojené ke kolíku 2 přehraje náhodný zvukový soubor ze sady předinstalovaných zvukových souborů na SD kartě, když je jednou stisknuto.

Tlačítko připojené k pinu 3 slouží k nahrávání. Pro nahrávání musíte toto tlačítko stisknout a podržet. Arduino začne nahrávat, jakmile stisknete toto tlačítko, a zastaví nahrávání, když toto tlačítko pustíte. Po zastavení záznamu záznam okamžitě přehraje.

Krok 6: Nahrajte kód

Nahrajte kód
Nahrajte kód
Nahrajte kód
Nahrajte kód
Nahrajte kód
Nahrajte kód

Před nahráním kódu se ujistěte, že jste nainstalovali všechny požadované knihovny jako TMRpcm, SD atd.

Po nahrání kódu můžete také otevřít Sériový monitor a získat zpětnou vazbu o tom, co arduino dělá.

V současné době kód nemanipuluje se zaznamenaným zvukem, aby zněl jinak, ale plánuji tuto funkci zahrnout do další verze, kde budete moci nastavit výstupní frekvenci zvukového signálu pomocí hrnce a získat různé typy zvuků.

A jste hotovi !!

Doporučuje: