Grupa 334CC
Mail: steflaurentiu@gmail.com
Proiectul propus constă în implementarea unui sistem ce detectează “pericolul” constituit de obiecte ce se apropie de µC(poate fi extins să detecteze în jurul unui anumit obiect de valoare, conectând evident µC-ul la obiectul dorit), folosind mai multe mecanisme ce vor fi detaliate ulterior pentru a semnala acest lucru.
Ca principală sursă de inspirație în conceperea proiectului a fost un proiect mai ușor de realizat, și anume unul de afișare a distanței obiectului cel mai apropiat de µC, care folosește la bază tot un senzor ultrasonic(exemplu la [1]). De la acela, am găsit un proiect mai interesant și anume Car Parking Sensor System(exemplu la [2]), la care am mai modificat puțin și am obținut ideea pe care o prezint acum.
Pentru realizarea detecției, voi folosi 4 senzori ultrasonici, fiecare “păzind” una din cele 4 direcții. În funcție de distanța minimă astfel detectată, dacă aceasta este sub 10 cm, se va aprinde un LED galben de avertizare, iar sub 5 cm va începe să scoată un zgomot de alarmă buzzer-ul și LED-ul de pe µC de lângă cel de Power își va alterna starea o dată cu sunetul buzzer-ului.
De precizat că inițial mi-am dorit să folosesc un număr mare de LED-uri(10), dar în timpul implementării proiectului am observat că scrisul pe LCD se vedea din ce în ce mai șters(scădea curentul care trece prin acesta) cum creștea numărul de LED-uri, și am lăsat doar un LED adițional pentru avertizare, respectiv LED-ul roșu de pe µC pentru alarma de pericol.
De menționat că în cadrul schemei electrice am arătat numai modul în care se leagă interfața I2C a LCD-ului cu µC, iar LCD-ul efectiv nu a mai fost desenat întrucât doar intefața acestuia este folosită pentru interfațarea cu circuitul.
Plăcuța este alimentată la 5V întrucât atât senzorii, cât și buzzer-ul pasiv și ecranul LCD se alimentează la această valoare.
Denumire | Cantitate |
---|---|
Kit-ul cu componentele de baza | 1 |
Ecran LCD cu interfață I2C | 1 |
Buzzer pasiv 5V | 1 |
LED | 10 |
Rezistor 1K Ω | 10 |
Senzor Ultrasonic HC-SR04 | 4 |
Breadboard HQ (830 points) | 1 |
Cablu Albastru USB AM la BM | 1 |
Fire Colorate Mamă-Mamă (10p) 15 cm | 40 |
Fire Colorate Tată-Tată (10p, 20 cm) | 40 |
Din punct de vedere al implementării software al proiectului, pentru dezvoltarea acestuia am folosit sistemul de operare Ubuntu 18 editorul Sublime Text. Pentru compilarea fișierelor sursă am folosit propriul fișier Makefile din linie de comandă. Pentru încărcarea fișierului executabil .hex am folosit executabilul bootloadHID din linie de comandă.
Am atașat mai jos o arhivă cu sursele folosite și cu un fișier README în care este descris modul în care am realizat
implementare Software a proiectului.
Pentru afișarea pe LCD-ul folosit cu interfață I2C, am folosit o bibliotecă deja implementată și doar am apelat funcțiile
necesare(luminare backlight, mutare cursor respectiv afișare string).
Am încercat să mai reduc din codul duplicat asociat senzorilor însă nu am putut abstractiza logica codului folosind de exemplu
vectori de 4 elemente având regiștrii asociați fiecărui senzor, deoarece regiștrii nu pot fi accesați decât în mod direct în cod, indicând cel mai
probabil un fel de mecanism de Memory Mapped I/O.
22.04.2019 - Tema proiectului, lista de piese și schema bloc (Milestone 1)
05.05.2019 - Schema electrică (Milestone 3)
17.05.2019 - Începere montare Hardware a circuitului
18.05.2019 - Implementare Software și verificare separată pe componente
19.05.2019 - Montare mare parte din componentele Hardware
22.05.2019 - Finalizare parte Hardware și Software
23.05.2019 - Update schemă electrică, update listă de piese, organizare cod
24.05.2019 - Update wiki(pe 23 a căzut server-ul cs.curs și nu am mai putut modifica seara)
Proiectul a fost unul foarte interesant, unic în felul său având în vedere că toate temele de până acum au fost
doar software/pe foaie. Pentru o persoană care nu are cine știe ce cunoștințe de electronică, însă este pasionată și
de partea asta mai hardware, mă declar mulțumit cu ceea ce am obținut. Pot spune că am înțeles mai bine multe concepte
studiate la acest curs și este foarte posibil să mă mai lovesc în viitor de acestea pe plan profesional.
Totuși, inițial mi-am propus să am mai multe LED-uri care să lumineze în funcție de cât de aproape se află cel mai
apropiat obiect. Acest plan a căzut pe parcursul implementării proiectului datorită consumului de curent necesar al LCD-ului
și deoarece am considerat că afișarea pe LCD este mai importantă decât aprinderea unor LED-uri.
Recunosc că proiectul obținut nu are cel mai frumos design și se mai putea lucra la asta, cum ar fi ca senzorii să fie fixați sau să îmi organizez tot proiectul pe o placă/cutie, însă nu mă consider foarte priceput la lucrurile practice și am ales calea mai ușoară din punctul asta de vedere. Se poate considera acest aspect ca o posibilă îmbunătățire a proiectului.
Codul sursă, fișierul README și fișierul Makefile:
334cc_stefanlaurentiu_proiectpm.zip