This shows you the differences between two versions of the page.
pm:prj2022:rstanescu:blind_hand_assist_👨_🦯 [2022/06/02 01:48] florian_luis.micu [Software Design] |
pm:prj2022:rstanescu:blind_hand_assist_👨_🦯 [2022/06/02 16:38] (current) florian_luis.micu [Introducere] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Blind Hand Assist 👨🦯 ====== | ====== Blind Hand Assist 👨🦯 ====== | ||
+ | <note tip> | ||
+ | **Autor:** Micu Florian-Luis | ||
+ | </note> | ||
+ | |||
===== Introducere ===== | ===== Introducere ===== | ||
Line 69: | Line 73: | ||
<html> | <html> | ||
+ | <br> | ||
<font size="+1">Librarii externe</font> | <font size="+1">Librarii externe</font> | ||
<br> | <br> | ||
Line 77: | Line 82: | ||
<html> | <html> | ||
+ | <br> | ||
<font size="+1">Functii folosite</font> | <font size="+1">Functii folosite</font> | ||
<br> | <br> | ||
Line 104: | Line 110: | ||
</code> | </code> | ||
- | Pasi algoritm: | + | <html> |
+ | <br> | ||
+ | <font size="+1">Pasi algoritm</font> | ||
+ | <br> | ||
+ | </html> | ||
- Se initializeaza Timer1 astfel incat sa se declanseze o intrerupere la fiecare 2.8s: | - Se initializeaza Timer1 astfel incat sa se declanseze o intrerupere la fiecare 2.8s: | ||
- Se activeaza intreruperile pe Timer1 in functia **init_timer1()**. | - Se activeaza intreruperile pe Timer1 in functia **init_timer1()**. | ||
Line 305: | Line 316: | ||
{{:pm:prj2022:rstanescu:blind_mana.jpeg?200 }} | {{:pm:prj2022:rstanescu:blind_mana.jpeg?200 }} | ||
- | {{:pm:prj2022:rstanescu:device_blind.jpeg?315x304 }} | + | {{:pm:prj2022:rstanescu:device_blind.jpeg?320x315 }} |
- | {{:pm:prj2022:rstanescu:blind_palma.jpeg?190x304}} | + | {{:pm:prj2022:rstanescu:blind_palma.jpeg?200x315}} |
Device-ul sta bine pe mana, nu se incalzeste, feedback-ul motorului de vibratii/buzzer este usor de simtit/auzit, LED-urile se vad clar, iar intrerupatoarele verticale sunt usor de comutat. Butonul de RESET extern e mult mai usor de apasat decat cel standard de pe Arduino NANO, iar bateria externa face device-ul portabil fara sa fie prea greu. Circuitul functioneaza asa cum ar trebui, cand se depasesc valorile de threshold device-ul porneste feedback-ul si toate componentele reactioneaza la schimbarile facute din intrerupatoarele verticale in timp real datorita delay-ului mic. | Device-ul sta bine pe mana, nu se incalzeste, feedback-ul motorului de vibratii/buzzer este usor de simtit/auzit, LED-urile se vad clar, iar intrerupatoarele verticale sunt usor de comutat. Butonul de RESET extern e mult mai usor de apasat decat cel standard de pe Arduino NANO, iar bateria externa face device-ul portabil fara sa fie prea greu. Circuitul functioneaza asa cum ar trebui, cand se depasesc valorile de threshold device-ul porneste feedback-ul si toate componentele reactioneaza la schimbarile facute din intrerupatoarele verticale in timp real datorita delay-ului mic. | ||
Line 321: | Line 332: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | Acest proiect m-a ajutat foarte mult sa imi dezvolt cunostintele de electronica. Am inteles mai bine cum functioneaza un microcontroller, cum se leaga anumite piese la el si in final am reusit sa imi construiesc propriul device functional, fiind chiar o experienta interesanta. Legarea pieselor pe perfboard nu a fost deloc usoara, a fost nevoie de multe iteratii pana sa inteleg cum ar trebui sa creez legaturi mai optim si care sa fie si rezistente, dar la final am evoluat si sunt satisfacut cu sudurile mele. | + | Pe partea de **hardware**, legarea pieselor pe perfboard nu a fost deloc usoara, a fost nevoie de multe iteratii pana sa inteleg cum ar trebui sa creez legaturi mai optime si care sa fie si rezistente, dar la final am evoluat si sunt satisfacut cu sudurile mele. Totodata, am invatat sa citesc mai bine datasheet-urile pieselor ceea ce m-a ajutat enorm la schema electrica cat si la configurarea circuitului. Pentru debug, am folosit un multimetru ca sa masor continuitatea, amperajul si voltajul pe circuit, inainte si dupa fiecare sudura. |
+ | |||
+ | Pe partea de **software**, nu am avut deloc probleme deoarece exista tutoriale vaste pentru fiecare piesa din circuitul meu, iar biblioteciile care le acompaniaza fac toata munca grea (ma refer la senzorul IR care comunica prin protocolul I2C, ceea ce ar fi fost destul de complicat de facut de la zero). Pentru debug, am folosit interfata seriala USART in care mi-am printat anumite valori din program si am incercat si varianta brute-force in care inserez valori si vad fizic cum se comporta device-ul. | ||
+ | |||
+ | Drept urmare, **experienta** de a lucra la acest proiect m-a ajutat foarte mult sa imi dezvolt cunostintele de electronica. Am inteles mai bine cum functioneaza un microcontroller, cum se leaga anumite piese la el si in final am reusit sa imi construiesc propriul device functional, fiind chiar o experienta interesanta. | ||
===== Download ===== | ===== Download ===== | ||
[[https://ocw.cs.pub.ro/courses/_media/pm/prj2022/rstanescu/schema_bloc_blind.png|Schema Bloc]] | [[https://ocw.cs.pub.ro/courses/_media/pm/prj2022/rstanescu/schema_bloc_blind.png|Schema Bloc]] | ||
Line 335: | Line 350: | ||
* 08.05.2022 → Alegere tema proiect | * 08.05.2022 → Alegere tema proiect | ||
- | * 15.05.2022 → Completare milestone: Introducere, Descriere, Schema Bloc si Componente | + | * 15.05.2022 → Completare Milestone 1: Introducere, Descriere, Schema Bloc si Componente |
- | * 28.05.2022 → Completare pagina Wiki: Schema Electrica, Software Design, Rezultate, Bibliografie | + | * 28.05.2022 → Completare Milestone 2: Schema Electrica, Software Design, Rezultate, Concluzii, Bibliografie |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||