Differences

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

Link to this comparison view

pm:prj2025:atoader:alexia_maria.rat [2025/05/28 13:26]
alexia_maria.rat [Hardware Design]
pm:prj2025:atoader:alexia_maria.rat [2025/05/28 17:17] (current)
alexia_maria.rat [Software Design]
Line 4: Line 4:
  
 **Prezentarea pe scurt a proiectului:​** **Prezentarea pe scurt a proiectului:​**
-Proiectul consta intr-o masinuta controlata cu ajutorul placutei Arduino, care, la apasarea ​unui buton, declanșeaza mai multe semnale acustice si luminoase, ​in timp ce masina se misca. Scopul principal al proiectului este realizarea unui sistem integrat de divertisment. Am pornit de la ideea de a imbina notiunile invatate pe parcursul laboratoarelor de PM cu creativitatea. Astfel proiectul este util ca exemplu de combinare a elementelor de hardware cu sofware dar de asemenea este util si ca mijloc de divertisment. ​+Proiectul consta intr-o masinuta controlata cu ajutorul placutei Arduino, care, la apasarea ​unor butoane, declanșeaza mai multe semnale acustice si luminoase,iar comenzile din serial fac masina ​sa se miste. Scopul principal al proiectului este realizarea unui sistem integrat de divertisment. Am pornit de la ideea de a imbina notiunile invatate pe parcursul laboratoarelor de PM cu creativitatea. Astfel proiectul este util ca exemplu de combinare a elementelor de hardware cu sofware dar de asemenea este util si ca mijloc de divertisment. ​
  
 ===== Descriere generală ===== ===== Descriere generală =====
Line 10: Line 10:
  
 {{ :​pm:​prj2025:​atoader:​output_1_.png?​700 |}} {{ :​pm:​prj2025:​atoader:​output_1_.png?​700 |}}
-**Switch On/Off** 
-   ​*Comută alimentarea plăcii Arduino şi activează starea de “ready”. 
  
 **Butoane** **Butoane**
Line 18: Line 16:
    ​*Buton Display: activează afișajul pe LCD.    ​*Buton Display: activează afișajul pe LCD.
  
-   ​*Buton Start: porneşte redarea audio pe buzzer ​şi motoarele DC.+   ​*Buton Start: porneşte redarea audio pe buzzer.
  
-**Arduino UNO R3** (ATmega328P + ATmega16U2)+**Arduino UNO R3** 
    ​*Primeşte semnale de la switch şi butoane.    ​*Primeşte semnale de la switch şi butoane.
  
Line 56: Line 54:
  
  
-Componente folosite:+**Componente folosite:**
   * Arduino Uno   * Arduino Uno
   * Motoare DC    * Motoare DC 
   * Buzzer   * Buzzer
   * Display   * Display
-  * Switch On/Off+  * Butoane
   * LED-uri   * LED-uri
   * Driver motoare L298N   * Driver motoare L298N
  
-  ​{{ :​pm:​prj2025:​atoader:​mas.png?​300 |}}+{{ :​pm:​prj2025:​atoader:​mas.png?​300 |}}
  
 +**Pini folositi:**
  
-===== Implementare Hardware ===== +Buzzer (HONK_PIN) 
-{{ :pm:prj2025:​atoader:294e7989-df3e-4156-81d2-70e4b07733bf.jpg?​300 |}}+  ​*signalD3 
 +  *GNDGND Arduino 
 +  *VCC— buzzer pasiv nu are alimentare separată (folosește pin digital 3 pentru semnal)
  
 +Buton pentru buzzer (NITRO_BUTTON_PIN)
 +  *Pin semnal buton: D12
 +  *Celălalt picior: GND Arduino
  
 +Buton pentru LED-uri (LED_BUTTON_PIN)
 +  *Pin semnal buton: D2
 +  *Celălalt picior: GND Arduino
 +
 +Buton pentru display (LCD_SWITCH_PIN)
 +  *Pin semnal buton: A3 (pin analogic folosit ca digital)
 +  *Celălalt picior: GND Arduino
 +
 +LED verde (LED_GREEN_PIN)
 +  *Pin: D4
 +  *GND: prin rezistență către GND breadboard/​Arduino
 +LED roșu (LED_RED_PIN)
 +  *Pin: D5
 +  *GND: prin rezistență către GND
 +LED1 verde (LED1_G)
 +  *Pin: D6
 +  *GND: prin rezistență către GND
 +LED1 roșu (LED1_R)
 +  *Pin: D7
 +  *GND: prin rezistență către GND
 +
 +Motoare (control driver L298N) - pini de control IN1..IN4
 +  *IN1 (motor stânga) → D8
 +  *IN2 (motor stânga) → D9
 +  *IN3 (motor dreapta) → D10
 +  *IN4 (motor dreapta) → D11
 +  *ENA, ENB → Jumper (alimentați permanent pe driver)
 +
 +Display LCD I2C
 +  *VCC → 5V
 +  *GND → GND
 +  *SDA → A4
 +  *SCL → A5
 +
 +
 +===== Implementare Hardware =====
 +
 +{{ :​pm:​prj2025:​atoader:​whatsapp_image_2025-05-28_at_15.53.43.jpeg?​300 |}}
 ===== Software Design ===== ===== Software Design =====
  
  
-<note tip> +**Mediu de dezvoltare:​** PlatformIO 
-Descrierea codului aplicaţiei (firmware)+ 
-  mediu de dezvoltare ​(if any) (e.gAVR StudioCodeVisionAVR+**Microcontroler:** Arduino Uno 
-  librării şsurse 3rd-party (e.g. Procyon AVRlib) + 
-  algoritmi şi structuri pe care plănuiţi ​să le implementaţ+**Cod** scris în limbaj C++ cu utilizarea librăriilor Arduino. 
-  * (etapa 3surse şi funcţii implementate + 
-</note>+**Librării utilizate:​** 
 +   ​*Arduino.h – bibliotecă ​de bază pentru funcționalități fundamentale:​ control pini, temporizări,​ comunicare serială. 
 + 
 +   ​*Wire.h ​(implicit în LiquidCrystal_I2C– pentru comunicarea I2C (folosită de LCD-ul I2C). 
 + 
 +   ​*LiquidCrystal_I2C.h – pentru controlul afișajului LCD cu interfață I2C. 
 + 
 +**Funcții principale:​** 
 +   ​*playmusic() – Redă melodia ​ pe buzzerul conectat la pinul 3folosind funcția tone(). 
 + 
 +   *setup() – Inițializează toate pinii (input cu pull-up pentru butoane, output pentru LED-uri șmotoare), initializează LCD-ul, configurează întreruperi
 + 
 +   *loop() – care detectează apăsările de butoane școmută stări (mod LED-uri, pornire/​oprire buzzer), controlează modurile LED-urilor (normal sau intermitent - police), controlează pornirea/​oprirea melodiilor pe buzzer la apăsarea butonului, controlează motoarele pe baza comenzilor primite (din serial sau variabilă cmd). 
 + 
 +**Logica butoanelor și stărilor:​** 
 +   ​*Butonul buzzer ​(pin 12comută o variabilă booleană buzzerOn. 
 + 
 +Dacă buzzerOn == true, se pornește melodia, altfel se oprește. 
 + 
 +   ​*Butonul LED-uri (pin 2) comută între moduri de iluminare a LED-urilor. 
 + 
 +   ​*Butonul LCD (pin A3) comută backlight-ul LCD-ului. 
 + 
 +   ​*Motoarele sunt controlate prin comenzi primite de la serial . 
 + 
 +**Pattern-uri de design:** 
 +Debounce simplificat butoane: verificare stare anterioară șstare curentă pentru detectarea apăsărilor . 
 + 
 +**State machine simplificată:​** LED-urile au moduri NORMAL și POLICE care schimbă comportamentul în funcție de ledMode. 
 + 
 +**Event-driven buzzer:** pornirea/oprirea buzzerului este controlată doar la apăsarea butonului (nu permanent). 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +În urma implementării și testării proiectului, am reușit să dezvolt un sistem funcțional cu următoarele caracteristici:​
-Care au fost rezultatele obţinute în urma realizării proiectului ​vostru. +
-</​note>​+
  
-===== Concluzii =====+   ​*Controlul motorului: Motoarele s-au putut porni și opri corect folosind comenzile implementate,​ iar direcția de deplasare (înainte, înapoi, stânga, dreapta) a fost controlată cu succes ​
  
-===== Download =====+   ​*Butoanele:​ au fost corect integrate, permițând schimbarea modurilor LED-urilor și controlul buzzerului si al display-ului
  
-<note warning>​ +   ​*Buzzerul și melodia: Buzzerul a redat corect melodia la apăsarea butonuluiiar oprirea melodiei la a doua apăsare s-a realizat fără probleme.
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ sursescheme, 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**. +   *LED-urile: LED-urile s-au aprins ​în modurile programate ​(normal și intermitent).
-</​note>​+
  
-===== Jurnal ​=====+   ​*Afișajul LCD: Display-ul LCD a afișat mesajele corespunzătoare  
 +===== Concluzii ​=====
  
-<note tip> +   ​*Acesta a fost primul meu proiect hardware-software cu Arduino, iar experiența a fost foarte interesanta. Am învățat să controlez motoare, LED-uri, buzzer ​și LCD, iar sistemul funcționează conform așteptărilor.
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​+
  
-===== Bibliografie/​Resurse ===== 
  
-<​note>​ +===== Download ===== 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**+ 
-</note>+{{:​pm:​prj2025:​atoader:​discocar.zip|}} 
 + 
 +===== Bibliografie/Resurse =====
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</a></html>+   ​*Optimus Digital[[https:​//www.optimusdigital.ro/​ro/​]] 
 +   ​*Emag[[https://​www.emag.ro/​]] 
 +   ​*Tinkercad[[https://​www.tinkercad.com/​circuits]]
  
pm/prj2025/atoader/alexia_maria.rat.1748427992.txt.gz · Last modified: 2025/05/28 13:26 by alexia_maria.rat
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