Obsah:

Arduino sa stáva hovoriacim Tomom: 6 krokov
Arduino sa stáva hovoriacim Tomom: 6 krokov

Video: Arduino sa stáva hovoriacim Tomom: 6 krokov

Video: Arduino sa stáva hovoriacim Tomom: 6 krokov
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, November
Anonim
Arduino sa stáva hovoriacim Tomom
Arduino sa stáva hovoriacim Tomom
Arduino sa stáva hovoriacim Tomom
Arduino sa stáva hovoriacim Tomom

Jednou z mojich najstarších spomienok na používanie smartfónu bolo hranie hry „Talking Tom“. Hra bola celkom jednoduchá. Existuje mačka menom Tom, ktorá dokáže hovoriť. V hre Tom počúval akýkoľvek vstup prostredníctvom mikrofónu telefónu a potom zopakoval všetko, čo počul. Takže, čokoľvek by som povedal Tomovi, zopakovalo by to to isté svojim ostrým hlasom.

Aj keď to znie jednoducho, celý tento postup vyžaduje mnoho komplexných krokov, ako je vzorkovanie mikrofónového analógového vstupu v digitálnej forme, manipulácia so zvukom, aby Tom získal jedinečný hlas, a potom rekonštrukcia signálu zo všetkých týchto digitálnych hodnôt na jeho prehrávanie cez reproduktor.. Všetky tieto zložité kroky, ale smartphone to zvládol ako kúzlo aj pred 9 až 10 rokmi!

Zaujímavosťou by bolo zistiť, či sa to isté dá urobiť s lacnou doskou Arduino na báze mikrokontroléra. V tomto návode vám teda ukážem, ako sa dá vyrobiť jednoduchý projekt ako Talking Tom z Arduina a inej lacnej elektroniky.

Tento návod bol napísaný v spolupráci s Hatchnhack Makerspace v Dillí

POZNÁMKA: Tento návod je prvou verziou projektu, ktorá dopĺňa funkciu „Talking“aplikácie Talking Tom, kde arduino bude môcť zopakovať všetko, čo mu poviete. Časť na zmenu hlasu bude zahrnutá v budúcej verzii, aj keď kvôli menšiemu rozlíšeniu integrovaného ADC v Arduine už zaznamenaný zvuk znie trochu inak: P (Toto je zreteľne možné vidieť na projekčnom videu).

Začnime teda!

Krok 1: Použitý materiál

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

Hardvér:

  • Arduino UNO
  • Mikrofónny modul MAX4466 s nastaviteľným ziskom
  • Modul čítačky SD kariet založený na SPI
  • SD karta
  • Zosilňovač zvuku ako reproduktor k počítaču, modul zosilňovača PAM8403 atď.
  • Reproduktory na pripojenie k zosilňovaču
  • Ženský audio jack
  • Rezistor 1 x 1 k ohm
  • Rezistor 2 x 10 kOhm
  • 1 x 10uF kondenzátor
  • 2 x tlačidlo
  • Prepojovacie vodiče

Softvér:

  • Arduino IDE
  • Audacity (voliteľné)
  • Knižnica TMRpcm a SD pre Arduino

Krok 2: Základný prehľad projektu

Projekt má hlavne 2 funkcie:

  • Môže prehrávať náhodne zvolený zvuk zo sady predinštalovaných zvukových súborov na karte SD pre zvukové efekty atď.
  • Môže nahrávať zvukový vstup z mikrofónu a potom ho prehrávať, akonáhle sa nahrávanie zastaví. Vďaka tomu arduino opakuje všetko, čo počuje prostredníctvom mikrofónu.

Používateľské rozhranie projektu pozostáva hlavne z 2 tlačidiel, z ktorých každé zodpovedá jednej z vyššie uvedených funkcií.

Hlavnú náročnú prácu pri nahrávaní a prehrávaní zvukových súborov z karty SD má na starosti knižnica TMRpcm

Zvukový záznam využíva mikrofónny modul MAX4466, interný ADC arduino a knižnicu TMRpcm na vzorkovanie zvuku a následné dočasné uloženie na kartu SD ako súbor „.wav“na prehrávanie. Zvukové súbory '.wav' používajú na ukladanie zvukových údajov v digitálnom formáte PCM (Pulse Code Modulation), aby sa dali znova ľahko prehrávať. Všeobecne je lepšie použiť externý ADC na zvukové projekty, pretože rozlíšenie ADC Arduina nie je také vysoké, ale pre tento projekt funguje.

Prehrávanie zvukových súborov (predinštalovaných a zaznamenaných) sa tiež vykonáva pomocou knižnice TMRpcm, ktorá reprodukuje zvuk ako signál PWM z kolíka arduina s povoleným PWM. Tento signál sa potom privádza do RC filtra, aby sa získal analógový signál, ktorý sa potom privádza do zosilňovača na prehrávanie zvuku cez reproduktor. Pre túto časť môžete použiť aj externý DAC, pretože arduino ho interne nemá. Použitie DAC môže byť lepšou možnosťou, pretože by to výrazne zlepšilo kvalitu zvuku.

Komunikácia medzi modulom karty SD a arduino prebieha prostredníctvom SPI (sériové periférne rozhranie). Kód využíva knižnicu SD & SPI na ľahký prístup k obsahu karty SD.

Krok 3: Pripravte si kartu SD a pripojte modul karty SD

Pripravte si kartu SD a pripojte modul karty SD
Pripravte si kartu SD a pripojte modul karty SD
Pripravte si kartu SD a pripojte modul karty SD
Pripravte si kartu SD a pripojte modul karty SD
Pripravte si kartu SD a pripojte modul karty SD
Pripravte si kartu SD a pripojte modul karty SD
Pripravte si kartu SD a pripojte modul karty SD
Pripravte si kartu SD a pripojte modul karty SD
  • Najprv musíte kartu SD naformátovať pomocou súborového systému FAT16 alebo FAT32 (Na formátovanie karty SD môžete použiť smartphone).
  • Teraz predinštalujte niektoré zvukové súbory.wav na kartu SD. Súbory.wav môžete generovať pomocou Audacity (pozrite si pokyny nižšie). Súbory nezabudnite pomenovať ako audio_1.wav, audio_2.wav, audio_3.wav a podobne.

Modul karty SD používa na komunikáciu údajov s arduino SPI. Preto sa pripája iba k tým pinom, ktoré majú povolené SPI. Tieto pripojenia sú nasledujúce:

  • 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) - kolík 10

Generovanie súboru „.wav“pomocou softvéru Audacity:

  • V Audacity otvorte zvukový súbor, ktorý chcete previesť na.wav.
  • Kliknite na názov súboru a potom vyberte možnosť „Rozdeliť stereo na mono“. Táto možnosť rozdelí stereofónny zvuk na dva mono kanály. Teraz môžete jeden z kanálov zavrieť.
  • Zmeňte hodnotu „Project Rate“v spodnej časti na 16 000 Hz. Táto hodnota zodpovedá maximálnej vzorkovacej frekvencii interného ADC arduina.
  • Teraz sme sa dostali k File-> Export/Export ako WAV.
  • Vyberte vhodné umiestnenie a názov súboru. V ponuke kódovania vyberte „Nepodpísaný 8-bitový PCM“, pretože na ukladanie zvuku v digitálnom formáte používame formát PCM.

Krok 4: Pripojte zvukový výstup a mikrofón

Pripojte zvukový výstup a mikrofón
Pripojte zvukový výstup a mikrofón
Pripojte zvukový výstup a mikrofón
Pripojte zvukový výstup a mikrofón
Pripojte zvukový výstup a mikrofón
Pripojte zvukový výstup a mikrofón
Pripojte zvukový výstup a mikrofón
Pripojte zvukový výstup a mikrofón

Pripojenie mikrofónu:

  • Vcc - 3,3 V
  • GND - GND
  • VÝSTUP - pin A0

POZNÁMKA:

  • Skúste použiť mikrofón priamo na arduino, a nie na doske, pretože to môže vo vstupnom signále vytvárať zbytočný šum.
  • Uistite sa, že ste čisto spájkovali záhlavia na module mikrofónu, pretože zlé spájkovacie spoje tiež spôsobujú šum.
  • Tento modul mikrofónu má nastaviteľný zisk, ktorý je možné ovládať pomocou hrnca na zadnej strane dosky. Navrhoval by som, aby ste udržali zisk trochu na nízkej úrovni, pretože potom nebude veľmi zosilňovať hluk, zatiaľ čo by ste mohli hovoriť tak, aby ste ho držali blízko úst, čo by malo za následok čistejší výstup.

Pripojenie zvukového výstupu:

  • Umiestnite 10 uF kondenzátor a odpor 1 k ohm do série na nepájivú dosku s kladným pólom kondenzátora pripojeným k odporu. Tieto spolu tvoria RC filter, ktorý prevádza výstup PWM na analógový signál, ktorý je možné privádzať do zosilňovača.
  • Pripojte kolík 9 Arduina k druhému koncu rezistora.
  • Záporný pól kondenzátora sa pripojí k ľavému a pravému kanálu ženského zvukového konektora.
  • GND zvukového konektora sa pripojí k GND.
  • Audio konektor je k zosilňovaču pripojený pomocou Aux kábla. V mojom prípade som použil reproduktorový systém svojho počítača.

POZNÁMKA:

Použitie PWM ako zvukového výstupu nemusí byť najlepšia voľba, pretože externý DAC by poskytoval oveľa lepšie rozlíšenie a kvalitu. Kondenzátor a odpor v RC filtri môžu navyše indukovať nechcený šum. Ale napriek tomu bol výstup pre tento projekt celkom slušný

Krok 5: Zapojte tlačidlá

Zapojte tlačidlá
Zapojte tlačidlá
Zapojte tlačidlá
Zapojte tlačidlá
Zapojte tlačidlá
Zapojte tlačidlá

Projekt používa tlačidlá ako používateľské rozhranie. Oba vykonávajú rôzne funkcie a používajú sa odlišne, ale majú rovnaké zapojenie. Ich spojenie je nasledovné:

  • Umiestnite tlačidlá na dosku na chlieb.
  • Pripojte jeden terminál jedného z tlačidiel k vývodu 2 arduina pomocou sťahovacieho odporu 10 kOhm. Druhý terminál tlačidla sa pripojí na 5 V. Po stlačení tlačidla sa teda kolík 2 dostane na VYSOKÚ a zistíme to v kóde.
  • Druhé tlačidlo sa spojí s pinom arduina 3 namiesto 2.

Po jednom stlačení tlačidla pripojeného k pinu 2 sa prehrá náhodný zvukový súbor zo sady predinštalovaných zvukových súborov na karte SD.

Tlačidlo pripojené k pinu 3 slúži na nahrávanie. Na nahrávanie musíte toto tlačidlo stlačiť a podržať. Arduino začne nahrávať ihneď po stlačení tohto tlačidla a zastaví nahrávanie, keď toto tlačidlo pustíte. Po zastavení nahrávania záznam okamžite prehrá.

Krok 6: Nahrajte kód

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

Pred odoslaním kódu sa uistite, že máte nainštalované všetky požadované knižnice, ako napríklad TMRpcm, SD atď.

Po nahraní kódu môžete tiež otvoriť sériový monitor a získať tak spätnú väzbu o tom, čo arduino robí.

V súčasnej dobe kód nemanipuluje so zaznamenaným zvukom, aby znel inak, ale plánujem túto funkciu zahrnúť do ďalšej verzie, kde by ste možno mohli pomocou potu nastaviť výstupnú frekvenciu zvukového signálu a získať rôzne typy zvukov..

A ste hotoví !!

Odporúča: