This shows you the differences between two versions of the page.
pm:prj2025:iotelea:emilian.horduna [2025/05/26 20:38] emilian.horduna [Rezultate Obţinute] |
pm:prj2025:iotelea:emilian.horduna [2025/05/27 19:22] (current) emilian.horduna [Bibliografie/Resurse] |
||
---|---|---|---|
Line 35: | Line 35: | ||
- blocarea automată a ușii. | - blocarea automată a ușii. | ||
- | {{:pm:prj2025:iotelea:emi-schema-bloc_1_.png?700}} | + | {{:pm:prj2025:iotelea:emi-schema-bloc2.drawio.png?700|}} |
Actor → Keypad 4x4 → Arduino UNO R3: | Actor → Keypad 4x4 → Arduino UNO R3: | ||
Line 89: | Line 89: | ||
{{:pm:prj2025:iotelea:unfinished-safe-rear.jpg?700|}} | {{:pm:prj2025:iotelea:unfinished-safe-rear.jpg?700|}} | ||
+ | |||
+ | {{:pm:prj2025:iotelea:whatsapp_image_2025-05-27_at_16.26.55_4555e98c.jpg?700|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
Line 188: | Line 190: | ||
- `scanKeypad()` | - `scanKeypad()` | ||
- | Scanează rândurile tastaturii 4x4, setează LOW câte un rând pe rând și citește coloanele. Debouncing software este realizat cu `millis()`. | + | Scanează rândurile tastaturii 4x4, setează LOW câte un rând pe rând și citește coloanele. Debouncing software este realizat cu millis(). |
Line 202: | Line 204: | ||
- `lcd_init()` | - `lcd_init()` | ||
+ | |||
Inițializează LCD-ul în mod 4-bit, 2 rânduri, folosind comenzi standard trimise prin I2C cu funcții low-level (`twi_write()`). | Inițializează LCD-ul în mod 4-bit, 2 rânduri, folosind comenzi standard trimise prin I2C cu funcții low-level (`twi_write()`). | ||
Line 228: | Line 231: | ||
Toate modulele funcționează sincron, fără blocări sau conflicte, datorită utilizării `millis()` pentru temporizări non-blocante și a organizării logice clare între stări (locked/unlocked). | Toate modulele funcționează sincron, fără blocări sau conflicte, datorită utilizării `millis()` pentru temporizări non-blocante și a organizării logice clare între stări (locked/unlocked). | ||
` | ` | ||
+ | |||
+ | ^ Componentă ^ Metodă de calibrare ^ Rezultat / Valoare finală ^ | ||
+ | | Servomotor | Testare empirică a impulsurilor PWM manuale | 600 µs = deblocat (0°), 1500 µs = blocat (90°) | | ||
+ | | Tastatură 4×4 | Debounce software ajustat folosind `millis()` | Timp de debounce: 50 ms | | ||
+ | | LCD 1602 I2C | Ajustare timpi între comenzi și date, conform datasheet | Funcționare stabilă, fără caractere corupte | | ||
+ | | Buzzer piezoelectric | Reglare durată și frecvență pentru sunete clare și diferențiate | Ton pozitiv: 262–330 Hz, eroare: 262–175 Hz | | ||
+ | |||
===== Rezultate obținute ===== | ===== Rezultate obținute ===== | ||
Line 247: | Line 257: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | ===== Download ===== | + | Proiectul a reușit să integreze cu succes conceptele studiate în laborator, precum GPIO, PWM și I2C, într-un sistem embedded funcțional și bine organizat. Abordarea low-level, fără librării externe, a permis un control complet asupra hardware-ului și o înțelegere aprofundată a comunicației între componente. |
- | <note warning> | + | Sunt fericit că am reușit să implementez de la zero un seif inteligent folosind Arduino, parcurgând toate etapele esențiale: planificarea logicii, căutarea și achiziția componentelor, documentarea din surse online și vizionarea de tutoriale video pe YouTube. |
- | 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ă ;-). | + | |
+ | Experiența a fost una practică, educativă și motivantă, și m-a ajutat să înțeleg mai bine cum se dezvoltă un proiect embedded cap-coadă. | ||
- | 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**. | ||
- | </note> | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | - 26 Aprilie – Alegerea temei proiectului |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | |
+ | - 1, 2 Mai – Brainstorming pentru alegerea componentelor | ||
+ | |||
+ | - 3 Mai – Comandarea componentelor hardware | ||
+ | |||
+ | - 6 Mai – Construirea circuitului electronic în Tinkercad (simulare) | ||
+ | |||
+ | - 8 Mai – Recepționarea componentelor fizice | ||
+ | |||
+ | - 10 Mai – Completarea Milestone 1 | ||
+ | |||
+ | - 12 Mai – Asamblarea circuitului real | ||
+ | |||
+ | - 12 Mai – Implementarea unui cod funcțional high-level (cu librării) | ||
+ | |||
+ | - 17 Mai – Prezentarea Milestone 2 | ||
+ | |||
+ | - 24 Mai – Convertirea codului high-level în cod low-level (fără librării) | ||
+ | |||
+ | - 25 Mai – Finalizarea și prezentarea Milestone 3 | ||
+ | |||
+ | - 28 Mai – Participarea la PM Fair | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
Line 266: | Line 294: | ||
[[https://github.com/Emilian953/Smart-Safe-Box| Pagina de GitHub]] | [[https://github.com/Emilian953/Smart-Safe-Box| Pagina de GitHub]] | ||
- | [[https://drive.google.com/file/d/12_EX6L4X6f8X2gsXAWvi_QgrKrP5VBlj/view?usp=drive_link|Demo-Video]] | + | [[https://drive.google.com/file/d/12_EX6L4X6f8X2gsXAWvi_QgrKrP5VBlj/view?usp=drive_link|Demo-Video in development]] |
+ | |||
+ | [[https://drive.google.com/file/d/1xmLwBL_BmBSYDKec8ba2yeDeOBSv0kOU/view?usp=sharing|Demo-Video fully built]] | ||
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||