Table of Contents

Smart Helmet Lock

Introducere

Smart Helmet Lock este un sistem de securitate bazat pe microcontroler-ul ATmega328P, conceput pentru a bloca fizic și a securiza breteaua (D ring) a unei căști moto într-o cutie sau pe sașiul motocicletei.

Scopul proiectului este de a oferi o soluție smart și rapidă motocicliștilor care doresc să își lase casca în siguranță lângă motocicletă, fără a fi nevoiți să o transporte manual în magazine, la facultate sau la locul de muncă.

Ideea de pornire a venit din inconvenientul real al echipamentului de protecție voluminos. Căștile moto sunt scumpe și incomode de transportat ca bagaj de mână. Majoritatea soluțiilor de pe piață implică lacăte mecanice cu chei sau cifruri care sunt greu de operat cu mănuși si de calitate proastă.

De ce este util? Sistemul rezolvă această problemă folosind autentificare RFID (prin apropierea unui breloc/card) pentru descuierea unui mecanism acționat de un servomotor. Sistemul este dotat cu feedback vizual (semafor LED), feedback acustic (buzzer) și, cel mai important, un sistem de alarmă activat de un senzor de vibrații în cazul tentativelor de furt.

Ipoteză: Consider că utilizarea unei astfel de încuietori va îmbunătăți semnificativ siguranța, deoarece previne furtul prin emiterea unei alarme sonore, descurajând acțiunile de efracție. Mai mult folosirea modulului RFID îl va face mult mai ușor de folosit cu mănuși (sau fără) fața de încuietoarele de pe piață.

Descriere generală

Arhitectura proiectului se face în jurul microcontrolerului ATmega328P (pe placa Xplained Mini). Sistemul este gândit sub forma unui automat de stări (Unlocked, Locked, Tamper Warning, Alarm).

Interacțiunea modulelor:

Schema Bloc:

Schema Bloc Sistem

Hardware Design

Proiectul cuprinde componente care operează atât la 5V, cât și la 3.3V, împărțind GND-ul.

Listă de componente:

Nume componenta Model Protocol
Microcontroller ATmega328P Xplained Mini USB, UART
Modul RFID RC522 SPI
Servomotor SG90 PWM
Senzor Vibrații SW-420 Digital Input (INT0)
Buzzer pasiv - Fast PWM
LED-uri 3 x 5mm (roșu, galben, verde) GPIO
Alte elemente Rezistențe (330Ω, 1kΩ, 2kΩ) -

Descriere detaliată a componentelor hardware:

Modul RFID RC522:

Modulul este folosit pentru citirea cardurilor și funcționează la 3.3V. Comunică cu ATmega328P prin interfața SPI. Deoarece pinii microcontrolerului trimit semnale logice de 5V, pe liniile MOSI, SCK și SDA am implementat un divizor de tensiune (cu rezistențe de 1kΩ și 2kΩ) pentru a proteja modulul.

Conectarea pinilor:

Pin RC522 Pin ATmega328P
VCC 3.3V
GND GND
RST 3.3V
MISO PB4
MOSI PB3 (prin divizor de tensiune)
SCK PB5 (prin divizor de tensiune)
SS PB2 (prin divizor de tensiune)

Servomotor SG90:

Acționează mecanismul fizic (zăvorul) pentru a bloca inelele căștii. Este controlat printr-un semnal PWM de 50Hz, generat hardware de Timerul 1 pe 16-biți.

Conectarea pinilor:

Pin SG90 Pin ATmega328P
VCC (Fir Roșu) 5V
GND (Fir Maro) GND
Semnal (Fir Portocaliu) PB1 - OC1A

Senzor de Vibrații SW420:

Folosit ca declanșator pentru alarma. Este conectat la un pin configurat să genereze o întrerupere hardware la orice tranziție a semnalului declanșat de o vibrație.

Conectarea pinilor:

Pin SW-420 Pin ATmega328P
VCC 5V
GND GND
DO (Digital Out) PD2 - INT0

Buzzer Pasiv:

Furnizează feedback acustic (beep-uri scurte la scanarea cardului și sirena de alarmă la tampering). Semnalul este o undă generată prin Fast PWM (~1-3kHz) folosind Timerul 2.

Conectarea pinilor:

Pin Buzzer Pin ATmega328P
I/O PD3 - OC2B
VCC 5V
GND GND

LED-uri Stare (Semafor):

Sistemul folosește 3 LED-uri indicatoare. Pentru a proteja LED-urile împotriva arderii, fiecare are în serie câte o rezistență de limitare a curentului de 330Ω între anod și microcontroller.

Conectarea pinilor:

Componentă Pin ATmega328P
Anod LED Roșu (+) PD5
Anod LED Galben (+) PD6
Anod LED Verde (+) PD7
Catozi LED-uri (-) GND

Schema Electrica:

Schema Electrica

TODO rezultatele asamblare hardware

Software Design

1. Mediul de dezvoltare și librării

Proiectul a fost dezvoltat în C, folosind PlatformIO. O caracteristică importantă a implementării este lipsa bibliotecilor Arduino. Tot codul este scris încât să interacționăm direct cu regiștrii. Acest lucru asigură o folosire mică de memorie și un control strict al temporizărilor (timere, întreruperi).

2. Algoritmul principal: Automatul de Stări

Logica centrală a sistemului este implementată în fișierul main.c printr-un automat de stări (FSM). Funcționarea decurge în următorii pași:

  1. Inițializarea - Se configurează pinii GPIO, interfața UART, protocolul SPI, și se pornesc timerele și intreruperile (sei()). Sistemul pornește implicit în starea STATE_UNLOCKED.
  2. Așteptare (Unlocked) - LED-ul verde este aprins. Senzorul de vibrații este ignorat intenționat. Sistemul așteaptă scanarea prin SPI a cardului RFID cu UID-ul master.
  3. Securizarea (Locked) - La validarea cardului, se emite un beep, servo-ul coboară tija (0°), LED-ul roșu se aprinde, iar flag-ul de întreruperi pentru tamper este activat.
  4. Avertisment (Tamper Warning) - Dacă o vibrație declanșează întreruperea INT0, se trece într-o stare de avertisment (LED Galben) de 1 secundă. Aceasta permite deblocarea sistemului dacă mișcarea a fost făcută chiar de proprietar înainte de a pune cardul.
  5. Alarma (Alarm) - Dacă avertismentul expiră fără prezentarea cardului Master, începe bucla de alarmă vizuală și sonoră de 5 secunde.
  6. Ieșirea non-blocantă - În timpul alarmei sau avertismentului, se folosește o funcție wait_and_check_master_card(). Aceasta sparge funcțiile de delay în pași de 50ms, verificând constant antena RFID, permițând oprirea instantanee a alarmei.

3. Implementarea modulelor

Pentru a asigura modularitatea codului, funcționalitățile sunt împărțite în fișiere specifice, asemănător cu laboratoarele:

1. timer.c (Generare semnale PWM - Lab 3)

2. tamper.c (Întreruperi externe - Lab 2)

3. spi.c și rfid.c (Comunicație SPI - Lab 5)

4. uart.c (Comunicație Serială - Lab 1)

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Jurnal

Bibliografie/Resurse

Resurse Hardware:

Resurse Software și Tool-uri: