Mundarija:
- 1 -qadam: Ishlatilgan materiallar
- 2 -qadam: Loyihaning asosiy ko'rinishi
- 3 -qadam: SD -kartani tayyorlang va SD -karta modulini ulang
- 4 -qadam: Ovoz chiqishi va mikrofonini ulang
- 5 -qadam: tugmachalarni ulash
- 6 -qadam: Kodni yuklang
Video: Arduino gaplashadigan Tomga aylandi: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
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
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
- 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
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
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 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:
Router IP -kameralar uchun video yozuvchiga aylandi: 3 qadam
Router IP-kameralar uchun video yozuvchiga aylandi: Ba'zi marshrutizatorlar bortida kuchli protsessor va USB-portga ega va ularni faqat IP-kameralardan video va ovozni yig'ish va tarqatish uchun yo'naltirish funktsiyalariga qo'shimcha ravishda video yozuvchi sifatida ishlatish mumkin. H264/265 RTSP (eng zamonaviy arzon salom sifatida
Vintage radiosi telefon karnayiga aylandi: 4 qadam (rasmlar bilan)
Vintage radiosi telefon spikeriga aylantirildi: Buning orqasida eski eski (buzilgan) radioni olib, uni yangi komponentlar bilan birlashtirib, yangi telefonni karnay sifatida ishlatish imkoniyatiga ega bo'lish edi. eski Roberts radiosini ushlab turing, men yoshi pastroqni topdim
Yozuv mashinasi uchuvchiga aylandi: 4 qadam (rasmlar bilan)
Yozuv mashinasi Plotterga aylandi: Yomon yozilganlar uchun uzr. Menda hozir ko'p vaqt yo'q va men loyiha ustida ishlayotganda yozishni o'ylamagan edim, bir necha oy oldin men qizlarim uchun kompakt kompakt disk tayyorladim. Bir nechta rasmga qarang (
Arduino Uno, HC-SR04 ultratovush sensori va WTV020SD tovush moduli bilan gaplashadigan masofa: 4 qadam
Arduino Uno, HC-SR04 ultratovush sensori va WTV020SD tovush moduli bilan gaplashish masofasi: Arduino-ning eng mashhur loyihalaridan biri bo'lgan "Instructable #31" ga xush kelibsiz. Agar sizga bu loyiha yoqsa, iltimos Instructables -da mening izdoshlarimdan biriga aylaning va Youtube kanalimga obuna bo'ling … www.youtube.com/rcloversanAnyway, bu loyiha uchun siz
Qora rangga aylandi! VS kodi: 16 qadam
Qora rangga aylandi! VS kodi: Bugun biz PlatformIO haqida gaplashamiz. Bu Visual Studio Code -dan foydalanishni "bog'laydigan" bir nechta xususiyatlarga ega rivojlangan vosita. Men bu mavzuni biroz rivojlangan deb hisoblayman va shuning uchun men ushbu juftlikni 200 dan ortiq qatorli kodlar uchun ishlatishni taklif qilaman. Lekin,