INHOUDSOPGAWE:

Arduino word Talking Tom: 6 stappe
Arduino word Talking Tom: 6 stappe

Video: Arduino word Talking Tom: 6 stappe

Video: Arduino word Talking Tom: 6 stappe
Video: ЗАМОРОЗЬТЕ КОСТИ И ВАРИТЕ 6 ЧАСОВ! Рецепт который изменит вашу жизнь! 2024, November
Anonim
Arduino word praatende Tom
Arduino word praatende Tom
Arduino word praatende Tom
Arduino word praatende Tom

Een van my oudste herinneringe aan die gebruik van 'n slimfoon was die speel van 'Talking Tom'. Die spel was redelik eenvoudig. Daar is 'n kat met die naam Tom, wat kan praat. In die spel luister Tom na enige insette deur die mikrofoon van die telefoon en herhaal dan alles wat hy hoor. Wat ook al vir Tom gesê word, dit sal dieselfde ding in sy eie skril stem herhaal.

Alhoewel dit eenvoudig klink, verg hierdie hele prosedure baie ingewikkelde stappe, soos om die analoog -ingang van die mikrofoon in digitale vorm te monteer, die klank te manipuleer om Tom sy unieke stem te gee en dan die sein van al die digitale waardes te rekonstrueer om dit deur die luidspreker weer te speel. Al hierdie ingewikkelde stappe, maar die slimfoon het dit selfs 9 tot 10 jaar gelede soos 'n sjarme hanteer!

Die interessante ding is om te sien of dieselfde gedoen kan word met 'n goedkoop Arduino -bord op mikrobeheerder. In hierdie instruksies sal ek u wys hoe u 'n eenvoudige Talking Tom -projek kan maak van 'n Arduino en ander goedkoop elektronika.

Hierdie instruksies is geskryf in samewerking met Hatchnhack Makerspace in Delhi

LET WEL: hierdie instruksie is die eerste weergawe van die projek wat die 'Talking' -funksie van Talking Tom voltooi, waar die arduino kan herhaal wat u ook al sê. Die stemveranderende gedeelte word in die toekomstige weergawe behandel, hoewel die opgeneemde klank as gevolg van die minder resolusie van die ingeboude ADC reeds 'n bietjie anders klink: P (dit kan duidelik opgemerk word in die projekvideo).

So laat ons begin!

Stap 1: Gebruikte materiaal

Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word
Materiaal wat gebruik word

Hardeware:

  • 'N Arduino UNO
  • MAX4466 mikrofoonmodule met verstelbare versterking
  • SPI -gebaseerde SD -kaartlesermodule
  • SD kaart
  • Klankversterker soos rekenaarluidspreker, PAM8403 versterkermodule, ens.
  • Luidsprekers vir aansluiting op die versterker
  • Vroulike Audio Jack
  • 1 x 1k ohm weerstand
  • 2 x 10k ohm weerstand
  • 1 x 10uF kondensator
  • 2 x drukknop
  • Jumper Wires

Sagteware:

  • Arduino IDE
  • Audacity (opsioneel)
  • TMRpcm en SD biblioteek vir Arduino

Stap 2: 'n Basiese oorsig van die projek

Die projek het hoofsaaklik 2 funksies:

  • Dit kan 'n willekeurig gekose klank speel uit 'n stel vooraf geïnstalleerde klanklêers op die SD-kaart vir byklanke, ens.
  • Dit kan klankinvoer vanaf die mikrofoon opneem en dit dan weer speel sodra die opname stop. Hierdeur kan die arduino alles wat hy deur die mikrofoon gehoor het, herhaal.

Die gebruikerskoppelvlak van die projek bestaan hoofsaaklik uit 2 drukknoppies wat elk ooreenstem met een van die bogenoemde funksies.

Die belangrikste werk vir die opname en speel van die klanklêers vanaf die SD -kaart word deur die TMRpcm -biblioteek hanteer

Die klankopname maak gebruik van die MAX4466 mikrofoonmodule, die interne ADC van arduino en die TMRpcm -biblioteek om die klank te proe en dit dan tydelik in die SD -kaart te stoor as '.wav' -lêer vir afspeel. '.wav' -klanklêers gebruik PCM (Pulse Code Modulation) om die klankdata in die digitale formaat te stoor sodat dit maklik weer gespeel kan word. Oor die algemeen is dit beter om 'n eksterne ADC vir klankgebaseerde projekte te gebruik, aangesien die resolusie van Arduino se ADC nie so hoog is nie, maar dit werk vir hierdie projek.

Die speel van die klanklêers (vooraf geïnstalleer en opgeneem) word ook gedoen met behulp van die TMRpcm-biblioteek, wat die klank as 'n PWM-sein uitstuur van 'n PWM-geaktiveerde pen van die arduino. Hierdie sein word dan na 'n RC -filter gevoer om 'n analoog sein te kry, wat dan na 'n versterker gevoer word om die klank deur 'n luidspreker te speel. Vir hierdie deel kan u ook 'n eksterne DAC gebruik, aangesien arduino dit nie intern het nie. Die gebruik van 'n DAC kan 'n beter opsie wees, aangesien dit die klankgehalte aansienlik sal verbeter.

Die kommunikasie tussen die SD -kaartmodule en arduino geskied deur middel van SPI (Serial peripheral Interface). Die kode maak gebruik van die SD & SPI -biblioteek om maklik toegang tot die inhoud van die SD -kaart te verkry.

Stap 3: Berei die SD -kaart voor en koppel die SD -kaartmodule aan

Berei die SD -kaart voor en koppel die SD -kaartmodule aan
Berei die SD -kaart voor en koppel die SD -kaartmodule aan
Berei die SD -kaart voor en koppel die SD -kaartmodule aan
Berei die SD -kaart voor en koppel die SD -kaartmodule aan
Berei die SD -kaart voor en koppel die SD -kaartmodule aan
Berei die SD -kaart voor en koppel die SD -kaartmodule aan
Berei die SD -kaart voor en koppel die SD -kaartmodule aan
Berei die SD -kaart voor en koppel die SD -kaartmodule aan
  • Eerstens moet u die SD -kaart formateer met 'n FAT16- of FAT32 -lêerstelsel (u kan u smartphone gebruik om die SD -kaart te formateer).
  • Installeer nou 'n paar.wav-klanklêers vooraf op die SD-kaart. U kan.wav -lêers genereer met Audacity (sien die instruksies hieronder). Onthou die lêers as audio_1.wav, audio_2.wav, audio_3.wav ensovoorts.

Die SD -kaartmodule gebruik SPI om die data met die arduino te kommunikeer. Daarom maak dit slegs verbinding met die penne wat SPI aangeskakel het. Hierdie verbindings is soos volg:

  • Vcc - 5v
  • GND - GND
  • MOSI (Master Out Slave In) - pen 11
  • MISO (Master In Slave Out) - pen 12
  • CLK (klok) - pen 13
  • SS/CS (Slave Select/Chip Select) - pen 10

Genereer '.wav' -lêer met Audacity -sagteware:

  • Open die klanklêer wat u wil omskakel na.wav in Audacity.
  • Klik op die lêernaam en kies dan 'Split Stereo to Mono'. Hierdie opsie verdeel die stereo -klank in twee monokanale. U kan nou een van die kanaal sluit.
  • Verander die waarde van 'Project Rate' onder in 16000 Hz. Hierdie waarde stem ooreen met die maksimum bemonsteringsfrekwensie van die interne ADC van arduino.
  • Gaan nou na File-> Export/Export as WAV.
  • Kies die gepaste ligging en naam van die lêer. Kies 'Ongetekende 8-bis PCM' in die koderingsmenu, aangesien ons die PCM-formaat gebruik om die klank in digitale formaat te stoor.

Stap 4: Koppel die klankuitset en mikrofoon

Koppel die klankuitset en mikrofoon
Koppel die klankuitset en mikrofoon
Koppel die klankuitset en mikrofoon
Koppel die klankuitset en mikrofoon
Koppel die klankuitset en mikrofoon
Koppel die klankuitset en mikrofoon
Koppel die klankuitset en mikrofoon
Koppel die klankuitset en mikrofoon

Koppel die mikrofoon:

  • Vcc - 3.3v
  • GND - GND
  • UIT - A0 -pen

LET WEL:

  • Koppel die mikrofoon direk aan die arduino in plaas van 'n broodbord, aangesien dit onnodige geraas in die ingangsein kan veroorsaak.
  • Maak seker dat u die kopstukke op die mikrofoonmodule skoon soldeer, aangesien slegte soldeerverbindings ook geraas veroorsaak.
  • Hierdie mikrofoonmodule het verstelbare versterking wat beheer kan word met behulp van 'n pot aan die agterkant van die bord. Ek stel voor dat u die wins effens laag hou, aangesien dit die geraas nie baie sal versterk nie, terwyl u kan praat terwyl u dit naby u mond hou, wat lei tot 'n skoner uitset.

Koppel die klankuitset:

  • Plaas die 10 uF -kondensator en die 1k ohm -weerstand in serie op die broodbord met die positief van die kapasitor wat aan die weerstand gekoppel is. Dit vorm saam 'n RC -filter wat die PWM -uitset omskakel na analoog sein wat in die versterker ingevoer kan word.
  • Koppel die pen 9 van Arduino aan die ander kant van die weerstand.
  • Die negatiewe aansluiting van die kondensator word verbind met die linker- en regterkanaal van die vroulike klankaansluiting.
  • Die GND van die Audio -aansluiting word aan die GND gekoppel.
  • Die klankaansluiting word met die Aux -kabel aan die versterker gekoppel. In my geval het ek die luidsprekerstelsel van my rekenaar gebruik.

LET WEL:

Die gebruik van PWM as die klankuitset is miskien nie die beste opsie nie, aangesien 'n eksterne DAC baie beter resolusie en kwaliteit bied. Boonop kan die kapasitor en weerstand in die RC -filter ongewenste geraas veroorsaak. Maar steeds was die uitset redelik ordentlik vir hierdie projek

Stap 5: Draai die knoppies op

Draai die knoppies op
Draai die knoppies op
Draai die knoppies op
Draai die knoppies op
Draai die knoppies op
Draai die knoppies op

Die projek gebruik om knoppies as die gebruikerskoppelvlak te druk. Beide verrig verskillende funksies en word verskillend gebruik, maar het dieselfde bedrading. Hulle verband is soos volg:

  • Plaas die knoppies op die broodbord.
  • Heg een aansluiting van een van die knoppies aan pen 2 van die arduino vas met 'n 10k ohm aftrekweerstand. Die ander aansluiting van die knoppie word aan 5v gekoppel. Dus, as u op die knoppie druk, word die pen 2 HOOG, en ons kan dit in die kode opspoor.
  • Die ander knoppie word dieselfde verbind met arduino se pen 3 in plaas van 2.

Die knoppie gekoppel aan pen 2 speel 'n ewekansige klanklêer uit die stel vooraf geïnstalleerde klanklêers op die SD-kaart as dit een keer ingedruk word.

Die knoppie wat met pen 3 gekoppel is, is vir die opname. U moet hierdie knoppie ingedruk hou vir die opname. Die arduino begin opneem sodra hierdie knoppie ingedruk word en stop die opname wanneer hierdie knoppie losgemaak word. Nadat die opname gestaak is, word die opname onmiddellik herhaal.

Stap 6: Laai die kode op

Laai die kode op
Laai die kode op
Laai die kode op
Laai die kode op
Laai die kode op
Laai die kode op

Voordat u die kode oplaai, moet u seker maak dat u al die vereiste biblioteke soos TMRpcm, SD, ens.

U kan ook die Serial Monitor oopmaak nadat u die kode opgelaai het om terugvoer te kry oor wat die arduino doen.

Tans manipuleer die kode nie die opgeneemde klank om dit anders te laat klink nie, maar ek is van plan om hierdie funksie in die volgende weergawe op te neem, waar u moontlik die uitsetfrekwensie van die klanksein kan stel met behulp van pot en verskillende soorte klanke kan kry.

En jy is klaar !!

Aanbeveel: