This is an old revision of the document!


Voting

Introducere

Acest proiect reprezinta un sistem electronic de vot creat pentru a simplifica si securiza procesul de autentificare si exprimare a votului. Sistemul permite verificarea utilizatorilor pe baza unor carduri individuale si ofera posibilitatea de a vota rapid intre doua optiuni disponibile, centralizand automat rezultatele finale.

Scopul proiectului este de a demonstra modul in care un proces de vot poate fi realizat intr-un mod eficient, organizat si usor de utilizat, reducand posibilitatea erorilor si a voturilor multiple. Ideea de la care am pornit a fost necesitatea unui sistem accesibil care sa poata valida identitatea alegatorilor si sa ofere un raspuns imediat privind dreptul de acces la vot.

Descriere generală

  • Sistemul implementat reprezinta o platforma electronica de vot care permite autentificarea utilizatorilor si exprimarea votului intr-un mod rapid si securizat. Fiecare utilizator utilizeaza un card RFID/NFC pentru identificare, iar sistemul verifica automat daca acesta exista in lista de votanti eligibili incarcata anterior de pe calculator.
  • Dupa validare, utilizatorul primeste un raspuns vizual si sonor care indica daca accesul la vot este permis sau respins. In cazul autentificarii cu succes, alegatorul poate selecta una dintre cele doua optiuni disponibile folosind butoanele fizice.
  • Sistemul gestioneaza automat procesul de validare, prevenirea votului multiplu, inregistrarea voturilor si afisarea rezultatelor finale pe display. Interactiunea dintre componentele hardware si software este coordonata de microcontroller, care controleaza citirea datelor, logica de votare si semnalele de feedback.

Hardware Design

Lista de piese:

  • Placa de dezvoltare ATmega328P Xplained Mini: Microcontrollerul principal care gestioneaza logica votarii, validarea ID-urilor si controlul perifericelor.
  • Modul LCD 1602 cu Backlight Albastru de 3.3 V cu interfata I2C: Ecran utilizat pentru afisarea intrebarilor, instructiunilor de vot si a rezultatelor finale.
  • Modul RFID RC522 13.56MHz cu card si tag prin SPI: Cititor utilizat pentru scanarea cardurilor de identitate si autentificarea nominala a alegatorilor.
  • Carduri sau Tag-uri RFID/NFC: Suporturi de date individuale folosite de alegatori pentru a se identifica in mod unic in sistem.
  • 2 Butoane Fizice: Componente pentru input utilizate de alegatori pentru a-si exprima optiunea de vot prin apasare.
  • Modul buzzer pasiv KY-006: Utilizat pentru confirmarea sonora a scanarii cardului sau semnalizarea incercarilor de vot multiplu.
  • LED-uri (Verde si Rosu): Indicatori vizuali pentru starea procesului (acces permis, respectiv acces respins sau eroare).
  • Rezistente de Pull-down/Pull-up: Componente pasive folosite pentru a asigura citirea corecta a starilor butoanelor fizice.
  • Breadboard 400 puncte: Suport pentru realizarea conexiunilor hardware si prototiparea rapida a circuitului fara lipire.
  • Fire Dupont Tata-Tata si Tata-Mama: Conductori utilizati pentru legaturile electrice intre placa, senzori, butoane si afisaj.
  • Cablu de date (USB): Cablu utilizat pentru programarea microcontrolerului si comunicarea UART cu PC-ul pentru configurarea listei de votanti.

Placa este alimentată direct prin cablul USB. Pinul GND al plăcuței este conectat la șina de GND a breadboard-ului, iar pinul de 5V este conectat la șina de VCC a breadboard-ului.

Butoanele sunt configurate hardware în mod pull-down, utilizând rezistoare externe de 10 kΩ conectate între pinul de semnal și masă (GND). Astfel, în stare de repaus, microcontroller-ul citește un nivel logic LOW stabil, iar la apăsarea butonului circuitul se închide, generând un semnal HIGH pe pinii PC0 și PC1.

LED-urile sunt configurate astfel încât un nivel logic HIGH le aprinde, iar LOW le stinge. Între VCC și LED-uri este conectată o rezistență de limitare a curentului, utilizată pentru protecție.

Modulul RFID RC522 este conectat direct la placă, fără a utiliza breadboard-ul. Acesta funcționează la 3.3V, nu la 5V.

Pentru LCD, deoarece nu a fost utilizat un potențiometru, pinul V0 (responsabil de controlul contrastului) este conectat la PD6 al microcontroller-ului, un pin cu suport PWM. Astfel, contrastul este controlat printr-un semnal PWM setat la aproximativ 50% duty cycle.

Modul LCD 1602

Pin componenta Legatura
VSS GND breadboard
VDD VCC breadboard
V0 PD6 microcontroller
RS PD7 microcontroller
RW GND breadboard
E PB0 microcontroller
D4 PD2 microcontroller
D5 PD3 microcontroller
D6 PD4 microcontroller
D7 PD5 microcontroller
A 23b breadboard
K GND breadboard
rez 380 ohm 23a - VCC breadboard

RFID-RC522

Pin componenta Legatura
SDA PB2 microcontroller
SCK PB5 microcontroller
MOSI PB3 microcontroller
MISO PB4 microcontroller
GND GND microcontroller
RST PB1 microcontroller
3V3 3V3 microcontroller

buzzer pasiv KY-006

Pin componenta Legatura
minus (-) GND breadboard
VCC VCC breadboard
S PC5 microcontroller

BTN1

Pin componenta Legatura
leg 1 PC0 microcontroller
leg 2 GND breadboard
rezistenta 10k ohm leg1 - VCC breadboard

BTN2

Pin componenta Legatura
leg 1 PC1 microcontroller
leg 2 GND breadboard
rezistenta 10k ohm leg1 - VCC breadboard

LED VERDE

Pin componenta Legatura
minus (-) GND breadboard
plus (+) j14
rez 380 ohm f14 - PC3 breadboard

LED ROSU

Pin componenta Legatura
minus (-) GND breadboard
plus (+) j20
rez 380 ohm f20 - PC2 breadboard

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

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

Concluzii

Download

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2026/ciprian.popescu0411/alexandru.dabija04.1779104545.txt.gz · Last modified: 2026/05/24 20:07 (external edit)
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