This shows you the differences between two versions of the page.
|
pm:prj2026:alexandru.jipa2803:iani.irascu [2026/05/07 16:39] iani.irascu created |
pm:prj2026:alexandru.jipa2803:iani.irascu [2026/05/19 21:59] (current) iani.irascu [Scheme electrice] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Walkie-Talkie cu ATmega328P și Bluetooth ====== | + | ====== Walkie-Talkie ====== |
| ===== Introducere ===== | ===== Introducere ===== | ||
| - | <note tip> | ||
| Proiectul constă în realizarea unui **walkie-talkie** bazat pe plăcuța **ATmega328P Xplained Mini**, care comunică wireless cu un laptop prin intermediul unui modul Bluetooth. | Proiectul constă în realizarea unui **walkie-talkie** bazat pe plăcuța **ATmega328P Xplained Mini**, care comunică wireless cu un laptop prin intermediul unui modul Bluetooth. | ||
| - | * **Ce face:** captează vocea utilizatorului printr-un microfon, convertește semnalul analogic în date digitale folosind ADC-ul microcontrollerului și transmite datele prin Bluetooth către laptop. Laptopul poate reda sunetul prin boxe și poate trimite audio înapoi către dispozitiv. | + | **Ce face:** captează vocea utilizatorului printr-un microfon, convertește semnalul analogic în date digitale folosind ADC-ul microcontrollerului și transmite datele prin Bluetooth către laptop. Laptopul poate reda sunetul prin boxe și poate trimite audio înapoi către dispozitiv. |
| - | * **Scopul proiectului:** înțelegerea modului în care funcționează un lanț complet de comunicație audio embedded: captare audio → procesare → transmisie wireless → redare. | + | |
| - | * **Ideea de la care am pornit:** walkie-talkie-urile clasice folosesc module RF dedicate. În acest proiect, comunicarea este realizată folosind Bluetooth serial (SPP), iar procesarea audio este implementată direct pe ATmega328P folosind perifericele interne. | + | **Scopul proiectului:** înțelegerea modului în care funcționează un lanț complet de comunicație audio embedded: captare audio → procesare → transmisie wireless → redare. |
| - | * **Utilitate:** proiectul poate fi extins pentru interfoane, sisteme de monitorizare audio, comunicație embedded sau aplicații IoT care necesită transmisie audio simplă. | + | |
| + | **Ideea de la care am pornit:** walkie-talkie-urile clasice folosesc module RF dedicate. În acest proiect, comunicarea este realizată folosind Bluetooth serial (SPP), iar procesarea audio este implementată direct pe ATmega328P folosind perifericele interne. | ||
| + | |||
| + | **Utilitate:** proiectul poate fi extins pentru interfoane, sisteme de monitorizare audio, comunicație embedded sau aplicații IoT care necesită transmisie audio simplă. | ||
| - | </note> | ||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| - | Schema bloc a proiectului va fi realizată folosind **draw.io**. | + | {{ :pm:prj2026:alexandru.jipa2803:screenshot_2026-05-07_165409.jpg?300 |}} |
| <note tip> | <note tip> | ||
| Line 28: | Line 29: | ||
| ==== Modulele proiectului ==== | ==== Modulele proiectului ==== | ||
| - | * **ATmega328P Xplained Mini** | + | **ATmega328P Xplained Mini** |
| * controlează întregul sistem | * controlează întregul sistem | ||
| Line 35: | Line 36: | ||
| * generează semnal audio prin PWM | * generează semnal audio prin PWM | ||
| - | * **Modul Bluetooth HC-05** | + | **Modul Bluetooth HC-05** |
| * realizează comunicația wireless cu laptopul | * realizează comunicația wireless cu laptopul | ||
| * funcționează ca interfață serială Bluetooth | * funcționează ca interfață serială Bluetooth | ||
| - | * **Microfon electret cu amplificator** | + | **Microfon electret cu amplificator** |
| * captează vocea utilizatorului | * captează vocea utilizatorului | ||
| * adaptează semnalul pentru intrarea ADC | * adaptează semnalul pentru intrarea ADC | ||
| - | * **Difuzor** | + | **Difuzor** |
| * redă semnalul audio recepționat | * redă semnalul audio recepționat | ||
| - | * **Laptop** | + | **Laptop** |
| * primește și redă date audio | * primește și redă date audio | ||
| Line 71: | Line 72: | ||
| ==== Scheme electrice ==== | ==== Scheme electrice ==== | ||
| - | Schemele electrice vor fi realizate în **EAGLE CAD**. | + | {{:pm:prj2026:alexandru.jipa2803:screenshot_2026-05-19_215644.jpg?400|}} |
| ==== Conectarea modulului HC-05 ==== | ==== Conectarea modulului HC-05 ==== | ||
| Line 101: | Line 101: | ||
| ==== Caracteristici hardware ==== | ==== Caracteristici hardware ==== | ||
| - | * ADC configurat pentru eșantionare audio (~8kHz) | + | ADC configurat pentru eșantionare audio (~8kHz) |
| - | * UART configurat la 115200 baud | + | |
| - | * PWM folosit pentru redarea audio | + | UART configurat la 115200 baud |
| - | * Comunicație Bluetooth prin protocol SPP | + | |
| + | PWM folosit pentru redarea audio | ||
| + | |||
| + | Comunicație Bluetooth prin protocol SPP | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| Line 110: | Line 113: | ||
| ==== Mediu de dezvoltare ==== | ==== Mediu de dezvoltare ==== | ||
| - | * Limbaj: **C/C++** | + | |
| - | * IDE: **Microchip Studio** | + | Limbaj: **C/C++** |
| - | * Compilator: **avr-gcc** | + | |
| - | * Programare directă folosind registre AVR și GPIO | + | IDE: **Microchip Studio** |
| - | * Fără framework Arduino | + | |
| + | Compilator: **avr-gcc** | ||
| + | |||
| + | Programare directă folosind registre AVR și GPIO | ||
| + | |||
| + | Fără framework Arduino | ||
| ==== Librării folosite ==== | ==== Librării folosite ==== | ||
| - | * ''avr/io.h'' | + | ''avr/io.h'' |
| - | * ''avr/interrupt.h'' | + | ''avr/interrupt.h'' |
| - | * ''util/delay.h'' | + | ''util/delay.h'' |
| - | * ''stdint.h'' | + | ''stdint.h'' |
| ==== Funcționalități software ==== | ==== Funcționalități software ==== | ||
| - | * configurare GPIO | + | * configurare GPIO |
| - | * configurare ADC pentru citirea microfonului | + | * configurare ADC pentru citirea microfonului |
| - | * configurare UART pentru Bluetooth | + | * configurare UART pentru Bluetooth |
| - | * configurare PWM pentru ieșire audio | + | * configurare PWM pentru ieșire audio |
| - | * transmitere și recepție date prin întreruperi | + | * transmitere și recepție date prin întreruperi |
| - | * utilizarea bufferelor circulare pentru flux audio | + | * utilizarea bufferelor circulare pentru flux audio |
| ==== Funcții planificate ==== | ==== Funcții planificate ==== | ||
| - | * ''gpio_init()'' | + | * ''gpio_init()'' |
| - | * ''adc_init()'' | + | * ''adc_init()'' |
| - | * ''uart_init()'' | + | * ''uart_init()'' |
| - | * ''pwm_init()'' | + | * ''pwm_init()'' |
| - | * ''bluetooth_send()'' | + | * ''bluetooth_send()'' |
| - | * ''bluetooth_receive()'' | + | * ''bluetooth_receive()'' |
| - | * ''ISR(ADC_vect)'' | + | * ''ISR(ADC_vect)'' |
| - | * ''ISR(USART_RX_vect)'' | + | * ''ISR(USART_RX_vect)'' |
| - | * ''main()'' | + | * ''main()'' |
| ==== Program laptop ==== | ==== Program laptop ==== | ||
| Line 148: | Line 156: | ||
| Laptopul va rula un script Python care: | Laptopul va rula un script Python care: | ||
| - | * deschide conexiunea serială Bluetooth | + | * deschide conexiunea serială Bluetooth |
| - | * primește date audio | + | * primește date audio |
| - | * redă audio prin boxe | + | * redă audio prin boxe |
| - | * poate trimite audio înapoi către dispozitiv | + | * poate trimite audio înapoi către dispozitiv |
| Biblioteci Python folosite: | Biblioteci Python folosite: | ||
| - | * ''pyserial'' | + | * ''pyserial'' |
| - | * ''pyaudio'' | + | * ''pyaudio'' |
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| Line 166: | Line 174: | ||
| Rezultate așteptate: | Rezultate așteptate: | ||
| - | * transmisie audio funcțională între dispozitiv și laptop | + | * transmisie audio funcțională între dispozitiv și laptop |
| - | * latență redusă | + | * latență redusă |
| - | * comunicație wireless stabilă pe distanțe scurte | + | * comunicație wireless stabilă pe distanțe scurte |
| - | * voce inteligibilă și fără întreruperi majore | + | * voce inteligibilă și fără întreruperi majore |
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| Line 179: | Line 187: | ||
| ===== Download ===== | ===== Download ===== | ||
| - | <note warning> | ||
| Arhiva finală va conține: | Arhiva finală va conține: | ||
| - | * codul sursă în C/C++ | + | codul sursă în C/C++ |
| - | * schemele electrice EAGLE | + | schemele electrice EAGLE |
| - | * scriptul Python pentru laptop | + | scriptul Python pentru laptop |
| - | * README | + | README |
| - | * documentația proiectului | + | documentația proiectului |
| - | </note> | ||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| Line 217: | Line 223: | ||
| ==== Resurse Hardware ==== | ==== Resurse Hardware ==== | ||
| - | * [[[https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega328P-DataSheet-DS40002061B.pdf|Datasheet](https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega328P-DataSheet-DS40002061B.pdf|Datasheet) ATmega328P]] | + | [[https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega328P-DataSheet-DS40002061B.pdf|Datasheet]] |
| - | * [[[https://www.microchip.com/en-us/development-tool/atmega328p-xmini|ATmega328P](https://www.microchip.com/en-us/development-tool/atmega328p-xmini|ATmega328P) Xplained Mini]] | + | |
| - | * [[[https://components101.com/wireless/hc-05-bluetooth-module|HC-05](https://components101.com/wireless/hc-05-bluetooth-module|HC-05) Bluetooth Module]] | + | [[https://www.microchip.com/en-us/development-tool/atmega328p-xmini|ATmega328P|ATmega328P Xplained Mini]] |
| - | * [[[https://datasheets.maximintegrated.com/en/ds/MAX9812-MAX9813L.pdf|MAX9812](https://datasheets.maximintegrated.com/en/ds/MAX9812-MAX9813L.pdf|MAX9812) Datasheet]] | + | |
| + | [[https://components101.com/wireless/hc-05-bluetooth-module|Bluetooth Module]] | ||
| + | |||
| + | [[https://datasheets.maximintegrated.com/en/ds/MAX9812-MAX9813L.pdf|MAX9812]] | ||
| ==== Resurse Software ==== | ==== Resurse Software ==== | ||
| - | * [[[https://pyserial.readthedocs.io/|PySerial](https://pyserial.readthedocs.io/|PySerial) Documentation]] | + | [[https://pyserial.readthedocs.io/|PySerial](https://pyserial.readthedocs.io/|PySerial]] |
| - | * [[[https://people.csail.mit.edu/hubert/pyaudio/|PyAudio](https://people.csail.mit.edu/hubert/pyaudio/|PyAudio) Documentation]] | + | |
| - | * [[[https://ocw.cs.pub.ro/courses/pm|Curs](https://ocw.cs.pub.ro/courses/pm|Curs) PM - OCW CS PUB]] | + | [[https://people.csail.mit.edu/hubert/pyaudio/|PyAudio](https://people.csail.mit.edu/hubert/pyaudio/|PyAudio]] |
| <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||