Cuprins:
- Pasul 1: Materiale utilizate
- Pasul 2: o prezentare generală de bază a proiectului
- Pasul 3: Pregătiți cardul SD și conectați modulul cardului SD
- Pasul 4: Conectați ieșirea audio și microfonul
- Pasul 5: conectați butoanele
- Pasul 6: Încărcați codul
Video: Arduino devine Talking Tom: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Una dintre cele mai vechi amintiri ale mele despre utilizarea unui smartphone a fost jocul „Talking Tom”. Jocul a fost destul de simplu. Există o pisică, pe nume Tom, care poate vorbi, într-un fel. În joc, Tom asculta orice intrare prin microfonul telefonului și apoi repeta tot ce auzea. Deci, orice i-ar spune lui Tom, ar repeta același lucru cu propria voce stridentă.
Deși sună simplu, toată această procedură necesită mulți pași complexi, cum ar fi eșantionarea intrării analogice a microfonului în formă digitală, manipularea sunetului pentru a da vocii sale unice lui Tom și apoi reconstruirea semnalului din toate acele valori digitale pentru redarea acestuia prin difuzor. Toți acești pași complexi, dar smartphone-ul a gestionat-o ca pe un farmec chiar și cu 9-10 ani în urmă!
Interesant ar fi să vedem dacă același lucru se poate face cu o placă Arduino ieftină bazată pe microcontroler. Așadar, în acest instructiv vă voi arăta cum puteți face un proiect Talking Tom simplu de la un Arduino și o altă electronică ieftină.
Acest instructable a fost scris în colaborare cu Hatchnhack Makerspace din Delhi
NOTĂ: Această instrucțiune este prima versiune a proiectului care completează caracteristica „Talking” a lui Talking Tom, unde arduino va putea să repete orice îi spui. Partea de schimbare a vocii va fi acoperită în viitoarea versiune, deși, datorită rezoluției mai reduse a dispozitivului Arduino din ADC încorporat, sunetul înregistrat sună deja puțin diferit: P (Acest lucru poate fi clar observat în videoclipul proiectului).
Asadar, hai sa incepem!
Pasul 1: Materiale utilizate
Hardware:
- Un Arduino UNO
- Modul de microfon MAX4466 cu câștig reglabil
- Modul de citire carduri SD bazat pe SPI
- card SD
- Amplificator audio precum difuzorul PC-ului, modulul amplificatorului PAM8403 etc.
- Boxe pentru conectarea la amplificator
- Jack audio feminin
- Rezistor 1 x 1k ohm
- Rezistor 2 x 10k ohm
- 1 x condensator 10uF
- 2 x buton de apăsare
- Sârme jumper
Software:
- IDE Arduino
- Audacity (opțional)
- Biblioteca TMRpcm și SD pentru Arduino
Pasul 2: o prezentare generală de bază a proiectului
Proiectul are în principal 2 caracteristici:
- Poate reda un audio ales aleatoriu dintr-un set de fișiere audio preinstalate pe cardul SD pentru efecte sonore etc.
- Poate înregistra sunetul de la microfon și apoi îl poate reda de îndată ce înregistrarea se oprește. Acest lucru permite arduino-ului să repete tot ce a auzit prin microfon.
Interfața de utilizare a proiectului constă în principal din 2 butoane, fiecare dintre ele corespunzând uneia dintre caracteristicile de mai sus.
Principala muncă grea de înregistrare și redare a fișierelor audio de pe cardul SD este gestionată de biblioteca TMRpcm
Înregistrarea audio folosește modulul de microfon MAX4466, ADC-ul intern al arduino și biblioteca TMRpcm pentru a testa sunetul și apoi pentru a-l stoca temporar în cardul SD ca fișier „.wav” pentru redare. Fișierele audio „.wav” folosesc PCM (Pulse Code Modulation) pentru a stoca datele audio în format digital, astfel încât să poată fi redate cu ușurință. În general, este mai bine să utilizați un ADC extern pentru proiecte audio, deoarece rezoluția ADC-ului Arduino nu este atât de mare, dar funcționează pentru acest proiect.
Redarea fișierelor audio (preinstalate și înregistrate) se face, de asemenea, cu ajutorul bibliotecii TMRpcm care transmite sunetul ca semnal PWM de la un pin activat PWM al arduino-ului. Acest semnal este apoi alimentat într-un filtru RC pentru a obține un semnal analogic, care este apoi alimentat într-un amplificator pentru redarea audio printr-un difuzor. Pentru această parte, puteți utiliza și un DAC extern, deoarece arduino nu are unul intern. Utilizarea unui DAC ar putea fi o opțiune mai bună, deoarece ar îmbunătăți semnificativ calitatea audio.
Comunicarea dintre modulul cardului SD și arduino se face prin SPI (Serial periferic Interface). Codul folosește biblioteca SD & SPI pentru a accesa cu ușurință conținutul cardului SD.
Pasul 3: Pregătiți cardul SD și conectați modulul cardului SD
- Mai întâi trebuie să formatați cardul SD cu un sistem de fișiere FAT16 sau FAT32 (Puteți utiliza telefonul smartphone pentru a formata cardul SD).
- Acum preinstalați câteva fișiere audio.wav pe cardul SD. Puteți genera fișiere.wav cu Audacity (consultați instrucțiunile de mai jos). Amintiți-vă la numele fișierelor ca audio_1.wav, audio_2.wav, audio_3.wav și așa mai departe.
Modulul cardului SD utilizează SPI pentru a comunica datele cu arduino. Prin urmare, se conectează numai la acei pini care au SPI activat. Aceste conexiuni sunt după cum urmează:
- Vcc - 5v
- GND - GND
- MOSI (Master Out Slave In) - pinul 11
- MISO (Master In Slave Out) - pinul 12
- CLK (Ceas) - pinul 13
- SS / CS (Slave Select / Chip Select) - pinul 10
Generarea fișierului „.wav” cu software-ul Audacity:
- Deschideți fișierul audio pe care doriți să îl convertiți în.wav în Audacity.
- Faceți clic pe numele fișierului și apoi selectați „Split Stereo to Mono”. Această opțiune împarte sunetul stereo în două canale mono. Acum puteți închide unul dintre canale.
- Schimbați valoarea „Rata proiectului” în partea de jos la 16000 Hz. Această valoare corespunde frecvenței maxime de eșantionare a ADC internă a arduino.
- Acum am ajuns la File-> Export / Export as WAV.
- Alegeți locația și numele corespunzătoare fișierului. Din meniul de codificare, selectați „Unsigned 8-bit PCM”, deoarece folosim formatul PCM pentru a stoca audio în format digital.
Pasul 4: Conectați ieșirea audio și microfonul
Conectarea microfonului:
- Vcc - 3.3v
- GND - GND
- OUT - pin A0
NOTĂ:
- Încercați să conectați microfonul direct la arduino în loc să utilizați o placă de măsurare, deoarece ar putea induce zgomot inutil în semnalul de intrare.
- Asigurați-vă că lipiți anteturile de pe modulul microfonului, deoarece îmbinările de lipire proaste produc, de asemenea, zgomot.
- Acest modul de microfon are un câștig reglabil care poate fi controlat cu ajutorul unei oale în partea din spate a plăcii. Aș sugera să păstrați câștigul oarecum scăzut, deoarece atunci nu va amplifica foarte mult zgomotul în timp ce puteți vorbi păstrându-l lângă gură, rezultând o ieșire mai curată.
Conectarea ieșirii audio:
- Așezați condensatorul de 10 uF și rezistorul de 1k ohm în serie pe panoul cu pozitivul condensatorului conectat la rezistor. Acestea formează împreună un filtru RC care transformă ieșirea PWM în semnal analogic care poate fi alimentat în amplificator.
- Conectați pinul 9 al Arduino la celălalt capăt al rezistorului.
- Terminalul negativ al condensatorului este conectat la canalul stânga și dreapta al mufei audio feminin.
- GND-ul mufei audio se conectează la GND.
- Mufa audio este conectată la amplificator cu un cablu auxiliar. În cazul meu, am folosit sistemul de difuzoare al computerului.
NOTĂ:
Utilizarea PWM ca ieșire audio ar putea să nu fie cea mai bună opțiune, deoarece un DAC extern ar oferi o rezoluție și o calitate mult mai bune. În plus, condensatorul și rezistorul din filtrul RC pot induce zgomot nedorit. Dar totuși rezultatul a fost destul de decent pentru acest proiect
Pasul 5: conectați butoanele
Proiectul folosește pentru a apăsa butoane ca interfață cu utilizatorul. Ambele îndeplinesc funcții diferite și sunt utilizate diferit, dar au același cablaj. Conexiunea lor este următoarea:
- Așezați butoanele pe panou.
- Atașați un terminal al unuia dintre butoane la pinul 2 al arduino-ului cu un rezistor de 10k ohm. Celălalt terminal al butonului se conectează la 5v. Deci, când butonul este apăsat, pinul 2 devine HIGH și putem detecta acest lucru în cod.
- Celălalt buton se conectează la fel cu pinul arduino 3 în loc de 2.
Butonul conectat la pinul 2 redă un fișier audio aleatoriu din setul de fișiere audio preinstalate de pe cardul SD atunci când este apăsat o dată.
Butonul conectat la pinul 3 este pentru înregistrare. Trebuie să țineți apăsat acest buton pentru înregistrare. Arduino începe înregistrarea imediat ce este apăsat acest buton și oprește înregistrarea la eliberarea acestui buton. După oprirea înregistrării, aceasta redă imediat acea înregistrare.
Pasul 6: Încărcați codul
Înainte de a încărca codul, asigurați-vă că ați instalat toate bibliotecile necesare, cum ar fi TMRpcm, SD etc.
De asemenea, puteți deschide monitorul serial după încărcarea codului pentru a obține un feedback despre ceea ce face arduino.
În prezent, codul nu manipulează sunetul înregistrat pentru a-l face să sune diferit, dar intenționez să includ această caracteristică în următoarea versiune, unde s-ar putea să setați frecvența de ieșire a semnalului audio cu ajutorul potului și să obțineți diferite tipuri de sunete.
Și ai terminat !!
Recomandat:
Routerul devine video recorder pentru camerele IP: 3 pași
Routerul devine video recorder pentru camerele IP: Unele routere au un procesor puternic și un port USB pe o placă și pot fi utilizate ca înregistrator video în plus față de funcțiile de rutare, pentru a colecta și distribui video și sunet de la camerele IP care transmit doar fluxuri H264 / 265 RTSP (ca cel mai modern ieftin salut
Telecomanda TV devine o telecomandă RF -- NRF24L01 + Tutorial: 5 pași (cu imagini)
Telecomanda TV devine o telecomandă RF || Tutorial NRF24L01 +: În acest proiect vă voi arăta cum am folosit popularul IC nRF24L01 + RF pentru a regla luminozitatea unei benzi LED fără fir prin trei butoane inutile ale unei telecomenzi TV. Să începem
Talking Santa Blowmold: 5 pași
Talking Santa Blowmold: Acest proiect explică cum să faci o decorație care redă un fișier sonor când cineva trece. Acest lucru poate fi realizat cu ușurință cu un computer care poate rula programul Motion și o cameră de un fel. În acest caz, am folosit un 20 " Mos Craciun inalt
Shake Detecting Talking Hat With Circuit Playground Express: 12 pași (cu imagini)
Shake Detecting Talking Hat With Circuit Playground Express: Acest tutorial ușor și rapid vă învață cum să faceți o pălărie de vorbire! Ar răspunde cu un răspuns procesat cu atenție atunci când „puneți” o întrebare și poate vă poate ajuta să decideți dacă aveți griji sau probleme. În clasa mea Wearable Tech, eu
Convertor Arduino Text în vorbire folosind LM386 - Talking Arduino Project - Biblioteca Talkie Arduino: 5 pași
Convertor Arduino Text în vorbire folosind LM386 | Talking Arduino Project | Biblioteca Talkie Arduino: Bună băieți, în multe dintre proiecte avem nevoie de arduino să vorbească ceva cum ar fi vorbind ceas sau spunând niște date, astfel încât în acest instructables vom converti textul în vorbire folosind Arduino