Mundarija:

Arduino gaplashadigan Tomga aylandi: 6 qadam
Arduino gaplashadigan Tomga aylandi: 6 qadam

Video: Arduino gaplashadigan Tomga aylandi: 6 qadam

Video: Arduino gaplashadigan Tomga aylandi: 6 qadam
Video: Номозни масхара килган шайтон жазосини олди 🙀 2024, Noyabr
Anonim
Arduino gaplashadigan Tomga aylandi
Arduino gaplashadigan Tomga aylandi
Arduino gaplashadigan Tomga aylandi
Arduino gaplashadigan Tomga aylandi

Smartfondan foydalanish haqidagi eng esda qolarli xotiralarimdan biri "Talking Tom" o'yinini o'ynash edi. O'yin juda oddiy edi. Tom ismli mushuk bor, u gapira oladi. O'yinda Tom telefon mikrofoni orqali har qanday kirishni eshitadi va keyin eshitganlarini takrorlaydi. Shunday qilib, Tomga nima deyishidan qat'i nazar, u xuddi shu narsani o'z ovozi bilan takrorlaydi.

Oddiy ko'rinadigan bo'lsa -da, bu protsedura mikrofonning analogini raqamli shaklda tanlab olish, Tomga o'ziga xos ovoz berish uchun ovozni manipulyatsiya qilish va keyin uni dinamik orqali qayta ijro etish uchun barcha raqamli qiymatlardan signalni qayta tiklash kabi ko'plab murakkab bosqichlarni talab qiladi.. Bu barcha murakkab qadamlar, lekin smartfon bundan 9-10 yil oldin ham joziba bilan ishlagan!

Qizig'i shundaki, Arduino -ga asoslangan arzon mikrokontroller bilan ham shunday qilish mumkinmi? Shunday qilib, men bu yo'riqnomada qanday qilib Arduino va boshqa arzon elektronikadan oddiy Talking Tom loyihasini yasashni ko'rsataman.

Bu ko'rsatma Dehlidagi Hatchnhack Makerspace bilan hamkorlikda yozilgan

QAYD: Bu o'rgatuvchi loyihaning birinchi versiyasidir, u Talking Tom -ning "Gapirish" xususiyatini to'ldiradi, bu erda arduino siz aytgan hamma narsani takrorlashi mumkin bo'ladi. Ovozni o'zgartiruvchi qism kelgusi versiyada yoritiladi, garchi Arduino -ning ADC -da kamroq aniqligi tufayli, yozilgan audio biroz boshqacha eshitiladi: P (Buni loyiha videosida yaqqol ko'rish mumkin).

Shunday qilib, boshlaylik!

1 -qadam: Ishlatilgan materiallar

Ishlatilgan materiallar
Ishlatilgan materiallar
Ishlatilgan materiallar
Ishlatilgan materiallar
Ishlatilgan materiallar
Ishlatilgan materiallar

Uskuna:

  • Arduino UNO
  • MAX4466 mikrofon moduli, sozlanishi daromadli
  • SPI -ga asoslangan SD -kartani o'qish moduli
  • SD -karta
  • Kompyuter dinamikasi, PAM8403 kuchaytirgich moduli va boshqalar kabi ovoz kuchaytirgichi.
  • Kuchaytirgichga ulanish uchun dinamiklar
  • Ayol audio jak
  • 1 x 1k ohmli qarshilik
  • 2 x 10k ohmli qarshilik
  • 1 x 10uF kondansatör
  • 2 x bosish tugmasi
  • Jumper simlari

Dasturiy ta'minot:

  • Arduino IDE
  • Jasorat (ixtiyoriy)
  • Arduino uchun TMRpcm va SD kutubxonasi

2 -qadam: Loyihaning asosiy ko'rinishi

Loyiha asosan 2 xususiyatga ega:

  • Ovoz effektlari uchun SD-kartada oldindan o'rnatilgan audio fayllar to'plamidan tasodifiy tanlangan ovozni ijro etishi mumkin.
  • U ovozli kirishni mikrofondan yozib olishi mumkin, so'ngra yozish to'xtashi bilan uni ijro etishi mumkin. Bu arduino -ga mikrofon orqali eshitganlarini takrorlash imkonini beradi.

Loyihaning foydalanuvchi interfeysi asosan 2 ta tugmachadan iborat bo'lib, ularning har biri yuqoridagi xususiyatlardan biriga mos keladi.

SD -kartadagi audio fayllarni yozib olish va ijro etishning asosiy og'ir ishi TMRpcm kutubxonasi tomonidan amalga oshiriladi

Ovoz yozuvi MAX4466 mikrofon moduli, arduino ichki ADC va TMRpcm kutubxonasidan foydalanib, ovozni namuna qilib oladi va keyin SD -kartada vaqtincha ijro etish uchun ".wav" fayli sifatida saqlaydi. ".wav" audiofayllari ovozli ma'lumotlarni raqamli formatda saqlash uchun PCM (Pulse Code Modulation) dan foydalanadi, shunda uni qayta ijro etish oson bo'ladi. Umuman olganda, audioga asoslangan loyihalar uchun tashqi ADC -dan foydalanish yaxshiroq, chunki Arduino -ning ADC rezolyutsiyasi unchalik yuqori emas, lekin u bu loyihada ishlaydi.

Ovozli fayllarni ijro etish (oldindan o'rnatilgan va yozib olingan) TMRpcm kutubxonasi yordamida ham amalga oshiriladi, u PWM signalini arduino-ning PWM signalidan chiqaradi. Bu signal analog signalni olish uchun RC filtriga uzatiladi, so'ngra ovozni karnay orqali ijro etish uchun kuchaytirgichga uzatiladi. Bu qism uchun siz tashqi DAC -dan ham foydalanishingiz mumkin, chunki arduino ichida yo'q. DAC -dan foydalanish yaxshiroq variant bo'lishi mumkin, chunki bu ovoz sifatini sezilarli darajada yaxshilaydi.

SD -karta moduli va arduino o'rtasidagi aloqa SPI (Serial periferik interfeys) orqali amalga oshiriladi. Kod SD -karta tarkibiga osongina kirish uchun SD va SPI kutubxonasidan foydalanadi.

3 -qadam: SD -kartani tayyorlang va SD -karta modulini ulang

SD -kartani tayyorlang va SD -karta modulini ulang
SD -kartani tayyorlang va SD -karta modulini ulang
SD -kartani tayyorlang va SD -karta modulini ulang
SD -kartani tayyorlang va SD -karta modulini ulang
SD -kartani tayyorlang va SD -karta modulini ulang
SD -kartani tayyorlang va SD -karta modulini ulang
SD -kartani tayyorlang va SD -karta modulini ulang
SD -kartani tayyorlang va SD -karta modulini ulang
  • Avval siz FAT16 yoki FAT32 fayl tizimiga ega SD -kartani formatlashingiz kerak (SD -kartani formatlash uchun siz smartfondan foydalanishingiz mumkin).
  • Endi SD-kartaga.wav audio fayllarini oldindan o'rnating. Audacity yordamida.wav fayllarini yaratishingiz mumkin (quyidagi ko'rsatmalarga qarang). Fayllarga audio_1.wav, audio_2.wav, audio_3.wav va boshqalarni nom berishni unutmang.

SD -karta moduli arduino bilan ma'lumotlarni uzatish uchun SPIdan foydalanadi. Shunday qilib, u faqat SPI yoqilgan pinlarga ulanadi. Bu ulanishlar quyidagicha:

  • VC - 5V
  • GND - GND
  • MOSI (Master Out Slave In) - pin 11
  • MISO (Master In Slave Out) - 12 -pin
  • CLK (soat) - pin 13
  • SS/CS (qul tanlash/chip tanlash) - 10 -pin

Audacity Software bilan ".wav" faylini yaratish:

  • Audacity -da.wav -ga aylantirmoqchi bo'lgan audio faylni oching.
  • Fayl nomini bosing va "Stereoni monoga ajratish" -ni tanlang. Ushbu parametr stereo ovozni ikkita mono kanalga ajratadi. Endi siz kanallardan birini yopishingiz mumkin.
  • Pastki qismdagi "Project Rate" qiymatini 16000 Gts ga o'zgartiring. Bu qiymat arduino ichki ADC ning maksimal namuna olish chastotasiga to'g'ri keladi.
  • Endi Fayl-> Eksport/Eksportga WAV sifatida kiring.
  • Faylning tegishli manzilini va nomini tanlang. Ovozni raqamli formatda saqlash uchun PCM formatidan foydalanayotganimiz sababli, kodlash menyusidan "imzosiz 8-bitli PCM" -ni tanlang.

4 -qadam: Ovoz chiqishi va mikrofonini ulang

Ovoz chiqishi va mikrofonni ulang
Ovoz chiqishi va mikrofonni ulang
Ovoz chiqishi va mikrofonni ulang
Ovoz chiqishi va mikrofonni ulang
Ovoz chiqishi va mikrofonni ulang
Ovoz chiqishi va mikrofonni ulang
Ovoz chiqishi va mikrofonni ulang
Ovoz chiqishi va mikrofonni ulang

Mikrofonni ulash:

  • Vcc - 3.3V
  • GND - GND
  • Chiqish - A0 pin

ESLATMA:

  • Mikrofonni non taxtasi o'rniga to'g'ridan -to'g'ri arduino -ga ulashga harakat qiling, chunki bu kirish signalida keraksiz shovqinni keltirib chiqarishi mumkin.
  • Mikrofon modulidagi sarlavhalarni toza tarzda lehimlaganingizga ishonch hosil qiling, chunki yomon lehimli bo'g'inlar ham shovqin chiqaradi.
  • Bu mikrofon moduli boshqaruv paneli orqasidagi qozon yordamida boshqariladigan sozlanishi daromadga ega. Men sizga daromadni biroz pastroq tutishni maslahat berardim, chunki u shovqinni unchalik kuchaytirmaydi, lekin siz og'zingizga yaqinroq gapira olsangiz, toza chiqishga olib keladi.

Ovoz chiqishini ulash:

  • 10 uF kondansatkichni va 1k ohmli rezistorni rezistorga ulangan kondansatör musbat bilan non paneliga joylashtiring. Ular birgalikda RW filtrini hosil qiladi, u PWM chiqishini kuchaytirgichga uzatiladigan analog signalga aylantiradi.
  • Arduinoning 9 -pinini rezistorning boshqa uchiga ulang.
  • Kondansatkichning salbiy terminali ayol audio uyasining chap va o'ng kanaliga ulanadi.
  • Audio ulagichining GND GND ga ulanadi.
  • Ovoz rozetkasi kuchaytirgichga Aux kabeli bilan ulangan. Mening holatimda men shaxsiy kompyuterim karnay tizimidan foydalanardim.

ESLATMA:

Ovoz chiqishi sifatida PWM -dan foydalanish eng yaxshi variant bo'lmasligi mumkin, chunki tashqi DAC ancha yuqori aniqlik va sifatni ta'minlaydi. Bundan tashqari, RC filtridagi kondansatör va rezistor kiruvchi shovqinni keltirib chiqarishi mumkin. Lekin shunga qaramay, bu loyiha uchun chiqish juda munosib edi

5 -qadam: tugmachalarni ulash

Tugmachalarni ulash
Tugmachalarni ulash
Tugmachalarni ulash
Tugmachalarni ulash
Tugmachalarni ulash
Tugmachalarni ulash

Loyiha tugmachalarni foydalanuvchi interfeysi sifatida bosish uchun ishlatiladi. Ikkalasi ham turli funktsiyalarni bajaradi va boshqacha ishlatiladi, lekin simlari bir xil. Ularning aloqasi quyidagicha:

  • Tugmalarni non paneliga qo'ying.
  • Tugmachaning bitta terminalini arduino -ning 2 -piniga 10k ohmli pastga tushirish qarshiligi bilan ulang. Tugmaning boshqa terminali 5V ga ulanadi. Shunday qilib, tugma bosilganda, 2 -pin yuqori bo'ladi va biz buni kodda aniqlay olamiz.
  • Boshqa tugma xuddi shu tarzda, 2 emas, balki arduino pin 3 bilan ulanadi.

2-pin bilan bog'langan tugma SD-kartada oldindan o'rnatilgan audio fayllar to'plamidan tasodifiy audio faylni bir marta bosilganda o'ynaydi.

3 -pin bilan bog'langan tugma yozish uchun mo'ljallangan. Yozib olish uchun siz ushbu tugmani bosib turishingiz kerak. Arduino bu tugma bosilishi bilanoq yozishni boshlaydi va tugma qo'yilgach, yozishni to'xtatadi. Yozuvni to'xtatgandan so'ng, u darhol o'sha yozuvni takrorlaydi.

6 -qadam: Kodni yuklang

Kodni yuklang
Kodni yuklang
Kodni yuklang
Kodni yuklang
Kodni yuklang
Kodni yuklang

Kodni yuklashdan oldin, TMRpcm, SD va boshqalar kabi barcha kerakli kutubxonalarni o'rnatganingizga ishonch hosil qiling.

Arduino nima qilayotgani haqida fikr olish uchun kodni yuklaganingizdan so'ng, Serial monitorni ochishingiz mumkin.

Hozirgi vaqtda kod yozilgan ovozni boshqacha ovoz bilan boshqarmaydi, lekin men bu funktsiyani keyingi versiyaga kiritishni rejalashtirmoqdaman, bu erda siz pot yordamida audio signalning chiqish chastotasini o'rnatishingiz va har xil turdagi tovushlarni olishingiz mumkin..

Va siz tugadingiz !!

Tavsiya: