Doru-Andrei CORNEA (87664) - Distance Meter
Introducere
Proiectul constă în realizarea unui dispozitiv care poate măsura distanțe ce pot fi interpretate în mai multe unități de măsură. Măsurătorile vor fi realizate cu ajutorul unui senzor cu ultrasunete HC-SR04 care folosește unde sonice pentru determinarea distanței unui obiect - la fel ca liliecii sau delfinii. Acest modul oferă o precizie excelentă și stabilă într-un pachet mic și ușor de utilizat. Rezultatele vor fi afișate utilizatorului prin intermediul unui LCD 1602, iar unitatea de măsură dorită va fi aleasă utilizând un push-button.
Scopul acestui proiect este de a îmi dezvolta abilitățile tehnice dobândite pe parcursul cursului de Proiectare cu Microprocesoare, iar ideea a apărut dintr-o necesitate, întrucât am avut deseori nevoie de un astfel de dispozitiv.
Descriere generală
Schema bloc a proiectului
User input-ul constă în două butoane de tip push-button, unul pentru a își selecta unitatea de măsură dorită, iar celălalt pentru a realiza măsurătoarea efectivă.
Senzorul HC-SR04 măsoară distanțe între 2cm și 400cm cu o precizie care poate ajunge și la 3mm. Rezultatele calculate de microcontroller-ul ATMega 324 sunt afișate utilizatorului prin intermediul unui LCD 1602.
Hardware Design
Lista de piese:
ATmega 324A-PU
Senzor ultrasonic HC-SR04 5V
Suport senzor HC-SR04
Modul LCD 1602 cu backlight Galben-Verde de 5V
Butoane de tip push-button
Rezistențe, condensatoare, fire de conexiune
Cutie din plastic adaptată pentru încapsularea pieselor
Placa de bază PM2019
Schema electrică:
Software Design
Mediul de dezvoltare folosit:
Sublime pentru dezvoltarea codului
Eagle 9.3.0 pentru realizarea schemelor electrice
HIDBootFlash pentru încărcarea programului pe plăcuță
Biblioteci folosite:
Funcții folosite:
LCD_PRINT_MSG(char *msg) - pentru a printa un mesaj formatat pe LCD
HC_SR04_init() - pentru a inițializa senzorul cu ultrasunete (pinii pentru trigger-echo/întreruperi)
HC_SR04_get_distance() - pentru a măsura distanța (activez pinul de trigger pentru cel puțin 10us și aștept o întrerupere semnalată de pinul de echo; folosind acest interval de timp deduc distanța până la obiect)
main() - pentru a realiza logica principală de funcționare a dispozitivului (măsurarea/afișarea distanței până la obiect și schimbarea unităților de măsură)
Rezultate Obţinute
Demo:
watch
Aparatul funcționează exact cum mi-am propus inițial. Prin apăsarea butonului roșu se realizează și afișează măsurătoarea, iar prin apăsarea celui albastru se poate schimba treptat unitatea de măsură, opțiunile fiind: mm/cm/dm/m. În cazul în care distanța de la senzor până la obiect depășește 400 cm, aparatul afișează mesajul de eroare: OBJECT TOO FAR. În acest caz, măsurătoarea trebuie repetată corespunzător.
Concluzii
Am reușit să duc la capăt proiectul, implementând toate funcționalitățile propuse
Mi-am perfecționat atât abilitățile de lucru cu hardware-ul, cât și cu software-ul specific materiei PM
Satisfacția realizării unui dispozitiv de care am avut de multe ori nevoie
Proiectul este un punct de plecare pentru mai multe dispozitive de acest fel
Download
Jurnal
18 Aprilie - Tema proiectului, lista de piese și schema bloc
21 Aprilie - Finalizarea plăcii de bază
2 Mai - Finalizarea schemei electrice
4 Mai - Montarea și testarea LCD-ului
11 Mai - Montarea și testarea senzorului cu ultrasunete
15 Mai - Montarea și testarea butoanelor
18 Mai - Realizarea unei cutii de protecție în care am montat toate componentele
20 Mai - Finisarea proiectului din punct de vedere software și hardware
24 Mai - Prezentarea proiectului la PM Fair 2019
Bibliografie/Resurse