Differences

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

Link to this comparison view

pm:prj2023:adarmaz:alarm-clock-on-wheels [2023/04/30 11:59]
andrei.podaru
pm:prj2023:adarmaz:alarm-clock-on-wheels [2023/05/23 21:39] (current)
andrei.podaru
Line 8: Line 8:
  
 Schema bloc ce cuprinde toate modulele acestui proiect este următoarea:​\\ Schema bloc ce cuprinde toate modulele acestui proiect este următoarea:​\\
-{{:​pm:​prj2023:​adarmaz:​block_diagram_alarm_clock_on_wheels.png?500|}} \\ +{{:​pm:​prj2023:​adarmaz:​schema_bloc_podaru_andrei_alexandru.png?500|}} \\ 
-În centrul întregului sistem se află plăcuța Arduino Uno, ce comunică cu toate celelalte componente. La ea sunt sunt legate, folosind ​un motherboard pentru realizarea conexiunilor,​ 3 butoane și buzzer-ul. De asemenea, Arduino comunică cu ecranul LCD, pe care se afișează ora curentă și informații ajutătoare în momentul setării unei alarme, dar și cu modulul RTC ce furnizează ora curentă, folosind pentru ambele protocolul I2C. În ultimul rând, Arduino comunică cu driverul de motoare L298N, ce este conectat la rândul său cu cele 4 motoare ale roților.+În centrul întregului sistem se află plăcuța Arduino Uno, ce comunică cu toate celelalte componente. La ea sunt sunt legate, folosind ​două motherboard-uri pentru realizarea conexiunilor,​ 3 butoane și buzzer-ul. De asemenea, Arduino comunică cu ecranul LCD, pe care se afișează ora curentă și informații ajutătoare în momentul setării unei alarme, dar și cu modulul RTC ce furnizează ora curentă, folosind pentru ambele protocolul I2C. În ultimul rând, Arduino comunică cu driverul de motoare L298N, ce este conectat la rândul său cu cele 4 motoare ale roților.
  
  
Line 15: Line 15:
  
 Componente folosite: Componente folosite:
-  - Arduino Uno (ATMega 328)+  - Arduino Uno (µchip ​ATMega 328)
   - Modul RTC   - Modul RTC
   - Ecran LCD 16x2   - Ecran LCD 16x2
   - Buzzer   - Buzzer
   - Butoane   - Butoane
-  - Breadboard+  - 2 * Breadboard
   - Kit șasiu Smart Car 4WD   - Kit șasiu Smart Car 4WD
   - Driver motoare L298N   - Driver motoare L298N
-  - Fire de legătură +  - Fire de legătură, rezistențe 
-  - Rezistențe +  - 4 * Baterie AA, 1 * Baterie 9V 
-  - 4 * Baterie AA, 1 * Baterie 9V +  - 2 întrerupătoare \\
  
 +Schema electrică este următoarea:​ \\
 +
 +{{:​pm:​prj2023:​adarmaz:​schematic_podaru_andrei_alexandru.png?​800|}}
 +
 +===== Software Design =====
 +
 +Mediu de dezvoltare: Arduino IDE \\
 +Biblioteci utilizate: Wire.h, LiquidCrystal_I2C.h (pentru controlul ecranului LCD), DS3231.h (pentru citirea datelor de la modulul RTC) \\
 +
 +Programul este gândit să funcționeze ca un automat cu stări (FSM) ce are 4 stări: starea inițială în care doar se afișează data și ora curentă, starea în care se setează alarma, starea în care alarma este setată și se așteaptă ca aceasta să înceapă să sune și în cele din urmă starea în care alarma sună. \\
 +
 +Fiecare apăsare de buton generează o întrerupere. În fiecare rutină de tratare a întreruperii,​ se schimbă starea curentă sau un contor asociat cu numărul de minute selectate pentru alarmă. Fiecare buton folosește un debouncer software pentru a detecta corect apăsarea. \\
 +
 +Timer-ul pentru alarmă este configurat folosind regiștri să aibă o frecvență de 0.5Hz și are asociată o rutină de tratare a întreruperii pentru atingerea valorii din registrul OCR1A. \\
 +
 +Motoarele sunt grupate câte două (cele din față și cele din spate) și sunt controlate prin PWM, utilizând funcția analogWrite() din framework.\\
 +
 +În funcția principală (loop) se interoghează starea curentă și în funcție de aceasta se afișează un anumit mesaj pe ecran, se pornesc sau nu motoarele și buzzer-ul și se citesc date de la modulul RTC, dacă este nevoie. \\
 +
 +Link Github cu codul proiectului:​ [[https://​github.com/​AlexP0112/​Proiect-PM|Cod proiect]]
 +
 +===== Rezultate obținute =====
 +{{:​pm:​prj2023:​adarmaz:​alarm_clock_on_wheels_pic1.jpg?​500|}} \\
 +
 +{{:​pm:​prj2023:​adarmaz:​alarm_clock_on_wheels_pic2.jpg?​500|}} \\
 +
 +{{:​pm:​prj2023:​adarmaz:​alarm_clock_on_wheels_pic3.jpg?​500|}} \\
 +
 +Link demo: [[https://​www.youtube.com/​watch?​v=OIByq0lEpUE|Alarm Clock on Wheels DEMO]]
 +
 +
 +===== Concluzii =====
 +Fiind primul proiect hardware la care am lucrat, provocările au fost destul de multe, însă pot spune că am învățat o mulțime de lucruri noi (configurări folosind regiștri în Arduino, cum să pun laolaltă un sistem destul de complex astfel încât să fie cât mai compact, cum trebuie alimentat un astfel de sistem, etc.), iar rezultatul final a fost foarte satisfăcător. De asemenea, pe viitor pot adăuga diverse alte funcționalități la acest proiect.
  
 ===== Jurnal ===== ===== Jurnal =====
Line 32: Line 65:
   * 26 aprilie - achiziționare piese   * 26 aprilie - achiziționare piese
   * 30 aprilie - creare pagină documentație   * 30 aprilie - creare pagină documentație
 +  * 4-5 mai - cod & legare împreună a componentelor hardware
 +  * 7-9 mai - testare și îmbunătățiri hardware și software
 +  * 21 mai - asamblare finala pe șasiu
 +  * 23 mai - finalizare documentație
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
-TBA+Laboratoarele utilizate sunt următoarele:​ 
 +  * Laboratorul 2(Întreruperi hardware): [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab2-2023]] 
 +  * Laboratorul 3(Timere. PWM): [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab3-2023]] 
 +  * Laboratorul 6(I2C): [[https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab6-2022]] 
 +\\ 
 + 
 +<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
  
pm/prj2023/adarmaz/alarm-clock-on-wheels.1682845171.txt.gz · Last modified: 2023/04/30 11:59 by andrei.podaru
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