This shows you the differences between two versions of the page.
|
pm:prj2025:cmoarcas:gheorghe.petrica [2025/05/30 01:54] gheorghe.petrica [Software Design] |
pm:prj2025:cmoarcas:gheorghe.petrica [2025/05/30 09:55] (current) gheorghe.petrica [Rezultate Obţinute] |
||
|---|---|---|---|
| Line 52: | Line 52: | ||
| === Diagrama Bloc pentru casetofon === | === Diagrama Bloc pentru casetofon === | ||
| - | {{:pm:prj2025:cmoarcas:arduino_uno.png?700|}} | + | {{:pm:prj2025:cmoarcas:ImperiumBT.png?700|}} |
| === Schema electrica === | === Schema electrica === | ||
| Line 85: | Line 85: | ||
| #define MODE_SHFFL 0x55 | #define MODE_SHFFL 0x55 | ||
| #define MODE_SCAN 0x00 | #define MODE_SCAN 0x00 | ||
| - | | ||
| uint8_t cd, tr, mode; | uint8_t cd, tr, mode; | ||
| unsigned long prevMillis = 0; | unsigned long prevMillis = 0; | ||
| Line 92: | Line 91: | ||
| void send_package(uint8_t c0, uint8_t c1, uint8_t c2, uint8_t c3, uint8_t c4, uint8_t c5, uint8_t c6, uint8_t c7) { | void send_package(uint8_t c0, uint8_t c1, uint8_t c2, uint8_t c3, uint8_t c4, uint8_t c5, uint8_t c6, uint8_t c7) { | ||
| uint8_t data[8] = {c0, c1, c2, c3, c4, c5, c6, c7}; | uint8_t data[8] = {c0, c1, c2, c3, c4, c5, c6, c7}; | ||
| - | |||
| for (int i = 0; i < 8; i++) { | for (int i = 0; i < 8; i++) { | ||
| SPDR = data[i]; | SPDR = data[i]; | ||
| Line 100: | Line 98: | ||
| } | } | ||
| - | Initializam SPI, dupa cum urmeaza | + | Initializam SPI, dupa cum urmeaza, astfel incat sa ruleze cu o viteza de transfer de 62.5kHz |
| void spi_init() { | void spi_init() { | ||
| - | // Configurează pinii SPI | ||
| DDRB |= (1 << PB3) | (1 << PB5); | DDRB |= (1 << PB3) | (1 << PB5); | ||
| DDRB &= ~(1 << PB4); | DDRB &= ~(1 << PB4); | ||
| Line 114: | Line 111: | ||
| tr = 1; | tr = 1; | ||
| mode = MODE_PLAY; | mode = MODE_PLAY; | ||
| - | |||
| #ifdef DEBUG | #ifdef DEBUG | ||
| Serial.begin(9600); | Serial.begin(9600); | ||
| #endif | #endif | ||
| - | + | delay(1000); | |
| - | delay(1000); // Wait for device to boot | + | spi_init(); |
| - | spi_init(); // Inițializează SPI manual | + | |
| send_package(0x74, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0x8F, 0x7C); // idle | send_package(0x74, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0x8F, 0x7C); // idle | ||
| delayMicroseconds(10000); | delayMicroseconds(10000); | ||
| Line 128: | Line 122: | ||
| send_package(0x74, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0x8F, 0x7C); // idle | send_package(0x74, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0x8F, 0x7C); // idle | ||
| delayMicroseconds(10000); | delayMicroseconds(10000); | ||
| - | |||
| #ifdef DEBUG | #ifdef DEBUG | ||
| Serial.println("Sent idle/load/idle commands"); | Serial.println("Sent idle/load/idle commands"); | ||
| Line 286: | Line 279: | ||
| <note tip> | <note tip> | ||
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Rezultatele obtinute au fost destul de satisfacatoare, am intampinat cateva probleme pe care nu am putut sa le rezolv din cauza DAC-ului ales, deoarece acesta are nevoie de un master clock extern care sa fie sincron cu celelalte semnale de pe ele, iar ESP-ul nu este capabil de a oferi corect un astfel de semnal, generand destul de mult zgomot (cred ca un MAX98357 ar fi rezolvat problema zgomotului). Rezultatul final poate fi observat in urmatorul link: |
| - | </note> | + | https://drive.google.com/file/d/1erp1HS01shDhwGrpYLM5Av1lJeFgSRbM/view?usp=sharing |
| - | + | ||
| - | ===== Concluzii ===== | + | |
| - | + | ||
| - | ===== Download ===== | + | |
| - | + | ||
| - | <note warning> | + | |
| - | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
| - | + | ||
| - | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | |
| - | </note> | + | |
| - | + | ||
| - | ===== Jurnal ===== | + | |
| - | + | ||
| - | <note tip> | + | |
| - | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
| </note> | </note> | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| - | <note> | + | https://github.com/NullString1/VWCDC |
| - | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | https://schuett.io/2013/09/avr-raspberry-pi-vw-beta-vag-cdc-faker/ |
| - | </note> | + | https://itohi.com/acoustics/esp32-as-bluetooth-audio/ |
| - | + | ||
| - | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | |