Съдържание:

Arduino става Говорещ Том: 6 стъпки
Arduino става Говорещ Том: 6 стъпки

Видео: Arduino става Говорещ Том: 6 стъпки

Видео: Arduino става Говорещ Том: 6 стъпки
Видео: СПАМБОТ: КУПИТЬ (анимированный говорящий бот) 2024, Юли
Anonim
Arduino става Говорещ Том
Arduino става Говорещ Том
Arduino става Говорещ Том
Arduino става Говорещ Том

Един от най -старите ми спомени от използването на смартфон беше играта на играта „Говорещ Том“. Играта беше доста проста. Има котка на име Том, която може да говори нещо. В играта Том слушаше всеки вход през микрофона на телефона и след това повтаряше каквото чуе. Така че каквото и да кажете на Том, то просто ще повтори същото със своя пронизителен глас.

Въпреки че звучи просто, цялата тази процедура изисква много сложни стъпки като вземане на проби от аналоговия вход на микрофона в цифров вид, манипулиране на звука, за да се даде уникален глас на Том и след това възстановяване на сигнала от всички тези цифрови стойности, за да се възпроизведе през високоговорителя. Всички тези сложни стъпки, но смартфонът се справи с него като чар дори 9 до 10 години назад!

Интересното нещо би било да се види дали същото може да се направи с евтина платка на базата на микроконтролер Arduino. И така, в тази инструкция ще покажа как можете да направите прост проект като Talking Tom като Arduino и друга евтина електроника.

Тази инструкция е написана в сътрудничество с Hatchnhack Makerspace в Делхи

ЗАБЕЛЕЖКА: Тази инструкция е първата версия на проекта, която завършва функцията „Talking“на Talking Tom, където arduino ще може да повтаря каквото и да му кажете. Частта за смяна на гласа ще бъде обхваната в бъдещата версия, въпреки че поради по -ниската разделителна способност на вградения ADC на Arduino, записаният звук вече звучи малко по -различно: P (Това може ясно да се забележи във видеото на проекта).

Така че нека започнем!

Стъпка 1: Използвани материали

Използвани материали
Използвани материали
Използвани материали
Използвани материали
Използвани материали
Използвани материали

Хардуер:

  • UNO от Arduino
  • Модул за микрофон MAX4466 с регулируемо усилване
  • Модул за четене на SD карти, базиран на SPI
  • SD карта
  • Аудио усилвател като високоговорител за компютър, усилвател PAM8403 и др.
  • Високоговорители за свързване към усилвателя
  • Женски аудио жак
  • 1 x 1 k ом резистор
  • 2 x 10k ома резистор
  • 1 x 10uF кондензатор
  • 2 x бутон
  • Джъмперни проводници

Софтуер:

  • Arduino IDE
  • Дързост (по избор)
  • TMRpcm и SD библиотека за Arduino

Стъпка 2: Основен преглед на проекта

Проектът има основно 2 функции:

  • Той може да възпроизвежда произволно избрано аудио от набор от предварително инсталирани аудио файлове в SD картата за звукови ефекти и т.н.
  • Той може да записва звуков вход от микрофона и след това да го възпроизвежда веднага щом записът спре. Това позволява на arduino да повтаря всичко, което е чул през микрофона.

Потребителският интерфейс на проекта се състои главно от 2 бутона, всеки от които съответства на една от горните функции.

Основната упорита работа по записването и възпроизвеждането на аудио файловете от SD картата се извършва от библиотеката TMRpcm

Аудио записът използва микрофонния модул MAX4466, вътрешния ADC на arduino и библиотеката TMRpcm, за да вземе проба от звука и след това временно да го съхрани в SD картата като '.wav' файл за възпроизвеждане. Аудио файловете „.wav“използват PCM (Pulse Code Modulation) за съхраняване на аудио данните в цифров формат, така че да могат лесно да се възпроизвеждат отново. Като цяло е по -добре да използвате външен ADC за аудио базирани проекти, тъй като разделителната способност на ADC на Arduino не е толкова висока, но работи за този проект.

Възпроизвеждането на аудио файлове (предварително инсталирани и записани) също се извършва с помощта на библиотеката TMRpcm, която извежда аудиото като PWM сигнал от PWM активиран пин на arduino. След това този сигнал се подава в RC филтър, за да получи аналогов сигнал, който след това се подава в усилвател за възпроизвеждане на звука през високоговорител. За тази част можете също да използвате външен DAC, тъй като arduino няма такъв вътрешно. Използването на DAC може да бъде по -добър вариант, тъй като би подобрило значително качеството на звука.

Комуникацията между модула на SD картата и arduino се осъществява чрез SPI (сериен периферен интерфейс). Кодът използва библиотеката SD & SPI за лесен достъп до съдържанието на SD картата.

Стъпка 3: Подгответе SD картата и свържете модула SD карта

Подгответе SD картата и свържете модула SD карта
Подгответе SD картата и свържете модула SD карта
Подгответе SD картата и свържете модула SD карта
Подгответе SD картата и свържете модула SD карта
Подгответе SD картата и свържете модула SD карта
Подгответе SD картата и свържете модула SD карта
Подгответе SD картата и свържете модула SD карта
Подгответе SD картата и свържете модула SD карта
  • Първо трябва да форматирате като SD карта с файлова система FAT16 или FAT32 (Можете да използвате вашия смартфон, за да форматирате SD картата).
  • Сега предварително инсталирайте някои.wav аудио файлове в SD картата. Можете да генерирате.wav файлове с Audacity (вижте инструкциите по -долу). Не забравяйте да дадете име на файловете като audio_1.wav, audio_2.wav, audio_3.wav и така нататък.

Модулът SD карта използва SPI за комуникация на данните с arduino. Следователно, той се свързва само с тези пинове, които имат активиран SPI. Тези връзки са както следва:

  • Vcc - 5v
  • GND - GND
  • MOSI (Master Out Slave In) - щифт 11
  • MISO (Master In Slave Out) - щифт 12
  • CLK (Часовник) - щифт 13
  • SS/CS (Slave Select/Chip Select) - щифт 10

Генериране на '.wav' файл със софтуера Audacity:

  • Отворете аудио файла, който искате да конвертирате в.wav в Audacity.
  • Щракнете върху името на файла и след това изберете „Split Stereo to Mono“. Тази опция разделя стерео аудиото на два моноканала. Вече можете да затворите един от каналите.
  • Променете стойността „Project Rate“в долната част на 16000 Hz. Тази стойност съответства на максималната честота на вземане на проби от вътрешния ADC на arduino.
  • Сега стигнахме до File-> Export/Export as WAV.
  • Изберете подходящото място и име на файла. От менюто за кодиране изберете „Неподписан 8-битов PCM“, тъй като използваме PCM формата за съхраняване на аудиото в цифров формат.

Стъпка 4: Свържете аудио изхода и микрофона

Свържете аудио изхода и микрофона
Свържете аудио изхода и микрофона
Свържете аудио изхода и микрофона
Свържете аудио изхода и микрофона
Свържете аудио изхода и микрофона
Свържете аудио изхода и микрофона
Свържете аудио изхода и микрофона
Свържете аудио изхода и микрофона

Свързване на микрофона:

  • Vcc - 3.3v
  • GND - GND
  • OUT - щифт A0

ЗАБЕЛЕЖКА:

  • Опитайте се да свържете микрофона директно към arduino, вместо да използвате макет, тъй като това може да предизвика ненужен шум във входния сигнал.
  • Уверете се, че сте спояли чисто заглавките на модула на микрофона, тъй като лошите спойки също произвеждат шум.
  • Този микрофонов модул има регулируемо усилване, което може да се контролира с помощта на гърне в задната част на дъската. Предлагам ви да запазите печалбата малко по -ниска, тъй като тогава тя няма да усили много шума, докато можете да говорите, като го държите близо до устата си, което ще доведе до по -чист изход.

Свързване на аудио изхода:

  • Поставете последователно кондензатора 10 uF и резистора от 1 k ома върху макета с положителния на кондензатора, свързан към резистора. Те заедно образуват RC филтър, който преобразува PWM изхода в аналогов сигнал, който може да се подава в усилвателя.
  • Свържете щифта 9 на Arduino към другия край на резистора.
  • Отрицателният извод на кондензатора се свързва с левия и десния канал на женския аудио жак.
  • GND на аудио жака се свързва към GND.
  • Аудио жакът е свързан към усилвателя с Aux кабел. В моя случай използвах високоговорителите на моя компютър.

ЗАБЕЛЕЖКА:

Използването на PWM като аудио изход може да не е най -добрият вариант, тъй като външният DAC би осигурил много по -добра резолюция и качество. Освен това кондензаторът и резисторът в RC филтъра могат да предизвикат нежелан шум. Но все пак продукцията беше доста прилична за този проект

Стъпка 5: Свържете бутоните

Свържете бутоните
Свържете бутоните
Свържете бутоните
Свържете бутоните
Свържете бутоните
Свържете бутоните

Проектът използва бутоните като потребителски интерфейс. И двете изпълняват различни функции и се използват по различен начин, но имат едно и също окабеляване. Тяхната връзка е следната:

  • Поставете бутоните върху дъската.
  • Прикрепете един извод на един от бутоните към щифт 2 на arduino с резистор за издърпване 10k ohm. Другият извод на бутона се свързва към 5v. Така че, когато бутонът е натиснат, щифт 2 става ВИСОК и можем да го открием в кода.
  • Другият бутон се свързва по същия начин с щифта 3 на arduino вместо 2.

Бутонът, свързан към щифт 2, възпроизвежда произволен аудио файл от набора от предварително инсталирани аудио файлове на SD картата, когато се натисне веднъж.

Бутонът, свързан към щифт 3, е за запис. Трябва да натиснете и задържите този бутон за запис. Arduino започва да записва веднага щом този бутон бъде натиснат и спира записа, когато този бутон бъде освободен. След спиране на записа, той незабавно възпроизвежда записа.

Стъпка 6: Качете кода

Качете кода
Качете кода
Качете кода
Качете кода
Качете кода
Качете кода

Преди да качите кода, уверете се, че сте инсталирали всички необходими библиотеки като TMRpcm, SD и т.н.

Можете също да отворите Serial Monitor след качване на кода, за да получите обратна връзка за това, което arduino прави.

Понастоящем кодът не манипулира записания звук, за да звучи различно, но смятам да включа тази функция в следващата версия, където може да можете да настроите изходната честота на аудио сигнала с помощта на пот и да получите различни видове звуци.

И сте готови !!

Препоръчано: