Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:alucaci:teofil.padurariu [2024/05/23 00:29]
teofil.padurariu
pm:prj2024:alucaci:teofil.padurariu [2024/05/23 00:54] (current)
teofil.padurariu [Bibliografie]
Line 44: Line 44:
 {{:​pm:​prj2024:​alucaci:​guitar_tuner_hardware.jpg?​700|}} {{:​pm:​prj2024:​alucaci:​guitar_tuner_hardware.jpg?​700|}}
 ===== Implementare Software ===== ===== Implementare Software =====
-==== Descriere ==== 
 Este un proiect software-heavy. Este un proiect software-heavy.
  
-=== INPUTUL ȘI PROCESAREA SA ===+==== INPUTUL ȘI PROCESAREA SA ====
 Core-ul tunerului este Arduino Nano. Pe pinul A0 vor veni datele de la microfonul cu ajutorul căruia se captează semnalul analogic generat de vibrația corzii de chitară. Pentru a putea prelucra semnalul de intrare, este necesară eșantionarea acestuia de către ADC. Core-ul tunerului este Arduino Nano. Pe pinul A0 vor veni datele de la microfonul cu ajutorul căruia se captează semnalul analogic generat de vibrația corzii de chitară. Pentru a putea prelucra semnalul de intrare, este necesară eșantionarea acestuia de către ADC.
  
Line 53: Line 52:
 index_nota index_nota
  
-=== BIBLIOTECI EXTERNE ===+==== BIBLIOTECI EXTERNE ​====
 Pentru implementarea tuner-ului, am folosit 2 biblioteci externe: Pentru implementarea tuner-ului, am folosit 2 biblioteci externe:
   * arduinoFFT: [[https://​github.com/​kosme/​arduinoFFT|GitHub]]   * arduinoFFT: [[https://​github.com/​kosme/​arduinoFFT|GitHub]]
Line 130: Line 129:
   * Dacă amplitudinea nu este îndeajuns de mare încât tunerul să o considere input, atunci LCD-ul va afișa ”Play some notes”.   * Dacă amplitudinea nu este îndeajuns de mare încât tunerul să o considere input, atunci LCD-ul va afișa ”Play some notes”.
  
-=== CALIBRARE === +**LCD-ul** este folosit pentru afișarea rezultatului procesării,​ alături de LED-ul RGB ce indică starea curentă a tuner-ului. Arduino Nano comunică prin protocolul I2C cu LCD-ul (vezi **labul de I2C**). Am creat 7 caractere custom pentru segmente, care au fost încărcare la inițializarea tuner-ului în memoria controllerului LCD-ului, la adresele 0x0-0x6. Biblioteca permite, prin apelarea unor funcții simple, afișarea caracterelor pe display. 
-Pentru că nu am avut hardwareul ​necesar să măresc buffer sizeul pentru rezultate mai accurate, am făcut o funcție care întoarce erorile specifice pentru anumite range-uri de frecvențe (le-am determinat experimental):​+ 
 +Let's see some code: 
 + 
 +<​code>​ 
 +LCD.init(); // Initializare I2C 
 +LCD.backlight();​ // Pornire backlight 
 +LCD.setCursor(0,​ 0); // Setare cursor in poziția de scriere (linia 0, caracter 0) 
 +LCD.print("​Guitar Tuner v1"); // Afișare string pe ecran 
 +LCD.clear();​ // Ștergere caractere de pe ecran 
 +LCD.setCursor(0,​ 0); 
 +LCD.write(0x1);​ // Afișarea caracterului de la poziția 0x1 în memoria controllerului LCD-ului. 
 +</​code>​ 
 + 
 +Pentru schimbarea culorii LED-ului am folosit **labul de GPIO**. 
 + 
 +==== CALIBRARE ​+ OPTIMIZARE COD ==== 
 +Pentru că nu am avut hardware-ul ​necesar să măresc buffer sizeul pentru rezultate mai accurate, am făcut o funcție care întoarce erorile specifice pentru anumite range-uri de frecvențe (le-am determinat experimental):​
  
 <​code>​ <​code>​
Line 148: Line 163:
 } }
 </​code>​ </​code>​
 +
 +===== Download =====
 +{{:​pm:​prj2024:​alucaci:​guitar_tuner.zip|}}
 +
 +===== Bibliografie =====
 +  * FFT: [[https://​en.wikipedia.org/​wiki/​Fast_Fourier_transform#:​~:​text=A%20Fast%20Fourier%20Transform%20(FFT,​frequency%20domain%20and%20vice%20versa. | see]]
 +  * FFT Windowing: [[https://​download.ni.com/​evaluation/​pxi/​Understanding%20FFTs%20and%20Windowing.pdf|see]]
 +  * ATMega328P: [[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf | see]]
 +  * LCD: [[https://​www.openhacks.com/​uploadsproductos/​eone-1602a1.pdf | see]]
 +  * LED RGB: [[https://​datasheetspdf.com/​datasheet/​KY-016.html|see]]
pm/prj2024/alucaci/teofil.padurariu.1716413377.txt.gz · Last modified: 2024/05/23 00:29 by teofil.padurariu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0