This shows you the differences between two versions of the page.
pm:prj2022:avaduva:matei.barbu1905 [2022/04/29 00:17] matei.barbu1905 |
pm:prj2022:avaduva:matei.barbu1905 [2022/06/02 15:26] (current) matei.barbu1905 |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | + | ====== MotorHelper ====== | |
- | ====== MusicClock ====== | + | |
===== Introducere ===== | ===== Introducere ===== | ||
- | <note tip> | + | Proiectul constă în implementarea unui sistem de reglaj a turației unui motor în funcție de temperatura ambientală. |
- | Prezentarea pe scurt a proiectului vostru: | + | |
- | * O cutie open-source care după selecția unui mod poate prinde post de radio, cânta o melodie de pe un card SD sau afișa date despre zi/oră. În plus poate fi configurat ca un ceas deșteptător. | + | |
- | * Scopul acestui proiect a fost să învăț să lucrez cu transferuri DMA, un afișator grafic, și să | + | |
- | * Am pornit de la acest [[https://www.aksevenfour.com/picoaudio.html|proiect]], dar l-am proiectat pentru a folosi un microprocesor adecvat. | + | |
- | * Este util să vezi cât de departe poate merge open source în zona de hardware. | + | |
- | </note> | + | |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | + | === Funcționalitate === |
- | Interfață: | + | Motorul DC este conectat la pini expuși de un Arduino Nano. Acesta folosește Pulse-Width-Modulation pentru a schimba turația motorului, prin intermediul unei punți H (L293D). |
- | * Două butoane rotative | + | În aceiași încăpere cu motorul se află un senzor de temperatură (DHT11), iar în funcție de valoarea citită de la senzor se vor executa una din următoarele acțiuni: |
- | - SELECT | + | * va aprinde un LED verde |
- | - VOLUME | + | * va aprinde un LED galben și va comanda un buzzer să atenționeze de trei |
- | * Un push-button pentru MODE | + | * va aprinde un LED roșu și va declanșa buzzerul să atenționeze încontinuu |
- | * Radio | + | |
- | * SD Card music player | + | |
- | * Alarm Clock configuration | + | |
- | Dispozitivul pornește în modul CEAS. Avem pe ecran afișate informații despre zi | + | ===== Hardware design ===== |
- | și oră. Rotația butonului SELECT configurează luminozitatea. Apăsarea pe acest | + | |
- | buton, ne duce în modul de configurație a timpului/datei afișate. | + | |
- | Apăsând pe butonul MODE putem selecta unul dintre cele 3 meniuri anterior | + | Am utilizat următoarele componente: |
- | menționate. | + | * [[http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf|Arduino Nano]] |
+ | * [[https://www.alldatasheet.com/datasheet-pdf/pdf/17881/PHILIPS/LM293D.html|L293D]] | ||
+ | * Motor DC | ||
+ | * [[https://components101.com/asset/sites/default/files/component_datasheet/2N2222%20NPN-transistor%20datasheet.PDF|2N2222]] | ||
+ | * Buzzer | ||
+ | * [[https://media.digikey.com/pdf/Data%20Sheets/Adafruit%20PDFs/DHT11_Humidity_TempSensor.pdf|DHT11]] | ||
+ | * [[https://adafru.it/4440|Ecran]] | ||
+ | * [[https://adafru.it/3295|Real-Time-Clock]] | ||
+ | * Rezistențe | ||
+ | * Cabluri | ||
+ | * LED-uri | ||
+ | * Breadboard-uri | ||
- | În modul Radio butonul select schimbă frecvența prin rotație, iar apăsarea lui | + | Toate componentele sunt alimentate la 5V, direct din pinul de power al microcontrollerului. Cu toate acestea comanda și citirea se face prin intermediul piniilor GPIO, care lucrează la 3.3V. |
- | caută automat următorul post de radio. În modul Alarm Clock Configuration | + | |
- | apăsarea butonul select ne duce pe poziția orei pe care o putem schimba prin | + | |
- | rotație.Încă o apăsare ne duce pe poziția minutului. Încă o apăsare ne duce pe | + | |
- | poziția minutului. Încă o apăsare ne duce în meniul de configurare a sursei | + | |
- | melodiei pentru alarmă (SD sau Radio). | + | |
- | </note> | + | Schemă: |
+ | {{ :pm:prj2022:avaduva:schematic_matei_barbu.png?600 |}} | ||
- | ===== Hardware Design ===== | + | Piese: |
- | <note tip> | ||
- | O schemă 90% gata: | ||
- | {{ :pm:prj2022:avaduva:sketch_matei_barbu.png?600 |}} | ||
- | |||
- | == Piese == | ||
* Microprocessor (RP2040) | * Microprocessor (RP2040) | ||
- | * [[https://ro.mouser.com/ProductDetail/474-BOB-11083|SI4703]] | + | * [[https://ro.mouser.com/ProductDetail/485-3678|I2S DAC]] |
- | * Amplificator Audio [[https://ro.mouser.com/ProductDetail/485-1712|TPA2016]] | + | * [[https://ro.mouser.com/ProductDetail/485-1712|Amplificator Audio TPA2016]] |
- | * [[https://ro.mouser.com/ProductDetail/485-377|Shaft Encoder]] | + | * [[https://ro.mouser.com/ProductDetail/485-377|Shaft Encoder]] x2 |
- | * Ecran (sau) | + | * [[https://ro.mouser.com/ProductDetail/485-4440|Ecran]] + pin headers |
- | * [[https://ro.mouser.com/ProductDetail/474-LCD-17153|1]] | + | * [[https://ro.mouser.com/ProductDetail/485-4682|SDIO Card Breakout Board]] |
- | * [[https://ro.mouser.com/ProductDetail/485-4440|2]] - I2C | + | * [[https://ro.mouser.com/ProductDetail/485-3295|Real-Time-Clock]] |
- | * [[https://ro.mouser.com/ProductDetail/485-3678|I2S DAC]] - I2C | + | * [[https://ro.mouser.com/ProductDetail/700-MAX4762EUB|Multiplexer]] |
+ | * [[https://ro.mouser.com/ProductDetail/474-BOB-11083|Radio Receiver]] | ||
+ | * [[https://ro.mouser.com/ProductDetail/474-BOB-11570|TRRS 3.55mm Jack Breakout]] | ||
* [[https://ro.mouser.com/ProductDetail/485-2165|LDO]] | * [[https://ro.mouser.com/ProductDetail/485-2165|LDO]] | ||
- | * [[https://ro.mouser.com/ProductDetail/474-BOB-13906|Multiplexor]] - I2C | ||
- | * [[https://ro.mouser.com/ProductDetail/485-4682|SDIO Card Breakout Board]] - SPI | ||
- | * Real-Time-Clock | ||
- | * intern | ||
- | * [[https://ro.mouser.com/ProductDetail/485-3295|extern]] | ||
- | * [[https://ro.mouser.com/ProductDetail/485-1609|Cablaj de test]] | ||
* jummper cables | * jummper cables | ||
* jack cable | * jack cable | ||
+ | * pin headers | ||
+ | * qwiic cable | ||
+ | * Cablaj de test | ||
- | </note> | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Vezi {{ :pm:prj2022:avaduva:proiect_barbu_matei.zip }} | ||
- | <note tip> | + | Am folosit doar bibliotecile Adafruit din Arduino IDE. |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * Pico C/C++ SDK | + | |
- | </note> | + | |
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | {{ :pm:prj2022:avaduva:poza_barbu_matei.jpg?600 |}} |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== | ||
- | ===== Download ===== | + | În concluzie, consumă mult mai puțin curent decât [[https://github.com/mateibarbu19/data-acquisition|fostul experiment]] ce folosea un Rasbery Pi 4B. |
- | + | ||
- | <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> | + | |
- | + | ||
- | ===== Bibliografie/Resurse ===== | + | |
- | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | ||
- | </note> | ||
<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> |