Cow Alarm Clock

Introducere

  • Alarma desteptatoare ce imita o vaca.
  • Proiectul consta in implementarea unui ceas desteptator care nu se opreste din sunat pana cand nu este prins.
  • Ceasul va avea forma unei vacute si va suna precum o vacuta, astfel nu o sa fie mai multe sunete de ales pentru alarma.
  • Ceasul afiseaza ora curenta si ora setata pentru alarma, care poate fi schimbata prin intermediul unor butoane.

Descriere generală

  • Ora curenta si ora pentru alarma in format digital vor fi afisate pe un ecran LCD, folosind un modul RTC. Ora alarmei poate fi schimbata oricand prin intermediul a 2 butoane, 1 pentru minus si 1 pentru plus.
  • Butonul de set, ajuta la navigarea prin meniu, adica la primul click se pot modifica minutele la care sa sune alarma, la doua clickuri se poaate midfica ora, iar la trei clickuri este setata alarma.
  • Cand o sa porneasca alarma, ceasul va incepe sa se deplaseze prin camera, iar cu ajutorul senzorului, acesta se va deplasa prin camera ocolind obiectele.
  • Alarma va suna pana cand este prinsa vacuta si oprita prin intermediul unui reset.

Schema bloc a proiectului:

Hardware Design

Lista componente:

  • modul RTC
  • vacuta
  • doua motoare
  • senzor HC-SR04 Ultrasonic Distance
  • baterii
  • ecran LCD
  • butoane
  • buzzer
  • placuta arduino
  • fire, rezistente
  • breadboard
  • mini motor driver

Schema electrica a proiectului:

Poza cu proiectul în stadiul curent: 16-05-2024-hard.jpg

Poza cu proiectul aproape final, mai trebuie infrumusetat:

Software Design

Descrierea codului aplicaţiei (firmware):

  • pentru implementare am utilizat ArduinoIDE
  • am folosit biblioteca DS1307RTC pentru modulul RTC
  • am folosit biblioteca LiquidCrystal_I2C pentru LCD
  • setup():
    • am setat pinii de input si output
    • dupa primul upload pe placuta a codului, am comentat functia de initRTC, pentru a nu imi strica timpul
    • afisez data si ora
  • getDate():
    • intoarce data
  • getTime():
    • intoarce timpul
  • print2digits():
    • ajuta la printarea numerelor de o cifra
  • cowTIME():
    • afiseaza pe LCD ceasul si data
  • displayAlarm():
    • afiseaza ceasul alarmei
  • showResetMessage():
    • afiseaza mesajul de oprire al alarmei
  • readDistance():
    • calculeaza distanta fata de obiecte
  • loop():
    • configurez butoanele, alarma, buzzerul
  • walk_COW():
    • poreste vacuta si verifica daca are sau nu obiecte in fata, daca are calculeaza distanta din stanga si dreapta si alege directia care are distanta mai mare
  • leftSide(), rightSide():
    • isi schimba directia la stanga si dreapta
  • forward(), backward(), left(), right():
    • merge in fata, spate, stanga , dreapta
  • Stop():
    • se opresc motoarele rotilor

Rezultate Obţinute

Proiectul a fost implementat complet conform descrierii originale. Am obtinut un ceas cu alarma care merge in momentul declansarii alarmei si care nu se opreste pana nu este apasat butonul de Reset. Acestuia i se pot seta ora si ora alarmei folosind 3 butoane: Set, Plus, Minus.

Concluzii

In cadrul proiectului am aprofundat cunostintele dobandite la laborator si am invatat sa folosesc si alte componente compatibile cu Arduino (L298N, RTC).

Download

Jurnal

  • 05.05 - creare pagina de documentatie
  • 13.05 - am achizitionat piesele
  • 16.05 - legarea componentelor
  • 21.05 - codul proiectului
  • 23.05 - asamblarea pe sasiu
  • 23.05 - finalizare documentatie

Bibliografie/Resurse

Laboratoarele utilizate sunt urmatoarele:

Export to PDF

pm/prj2024/alucaci/esra.emin.txt · Last modified: 2024/05/24 13:36 by esra.emin
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