This is an old revision of the document!
Laser Turret
Introducere
Proiectul consta dintr-o “tureta” care se misca, atat vertical, cat si orizontal, aceasta putand fi controlata prin intermediul mouse-ului de la laptopul/calculatorul la care este conectata placa. De asemenea, tureta are si un laser in varful acesteia, cu care utilizatorul poate tinti obiectele din jurul sau.
Scopul acestui proiect este de pur divertisment, cu care utilizatorii pot juca diferite “minigame”-uri ce au legatura cu tintirea obiectelor (preferabil nu a oamenilor!!).
Ideea a pornit din doua surse: turetele din jocurile de tip MOBA/Tower Defense, care trag cu un proiectil la un anumit interval de timp, iar a doua este un laser obisnuit, de buzunar, folosit pentru a te juca impreuna cu animalele de companie (lucru care as vrea sa-l faci si eu cu pisica mea :)) ).
Utilitatea proiectului este, in principal, educationala. Faptul ca poti controla un “robot” fizic folosindu-te de controalele de la calculator, alegerea componentelor potrivite, calcularea si testarea consumului, cat si altele sunt lucruri cu care trebuie sa experimenteze orice inginer. :)
Descriere generală
Diagrama Hardware
Hardware Design
Aici puneţi tot ce ţine de hardware design:
listă de piese
-
diagrame de semnal
rezultatele simulării
Lista de piese:
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
Din moment ce PC-ul trebuie sa comunice in permanenta cu placuta Arduino pentru a putea trimite controalele, trebuie sa existe cod care ruleaza pe ambele dispozitive.
PC:
O mica aplicatie scrisa in Python care deschide o fereastra in care utilizatorul poate misca mouse-ul pentru a controla tureta
Partea de
GUI realizata folosind biblioteca Tkinter
Trimiterea coordonatelor Mouse-ului si verificarea daca utilizatorul a apasat Click se realizeaza folosind biblioteca Serial din Python
Placuta:
Scris in Arduino C/C++, astfel incat sa poata “handle-uisca” input-ul de la utilizator transmis prin Serial si sa faca modificarile necesare in Hardware
Dupa ce primeste input-ul de la utilizator (coordonate/actiunea ca a dat click), se mapeaza coordonatele la sistemul de referinta al servo-urilor (unghiuri de la 0 la 180) si “muta” servo-urile.
Daca primeste “click”, verifica daca a trecut cooldown-ul de la ultima data cand utilizatorul a activat laserul (folosind Timer-ul 2 al placii), seteaza PIN-ul pe HIGH, in cazul in care cooldown-ul a trecut
Reseteaza Timer-ul in momentul in care utilizatorul nu mai tine click-ul apasat
Scrie pe ecranul LCD daca utilizatorul poate activa laser-ul / cat timp mai are pana cand poate face asta.
IDE-uri folosite:
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.
Resurse
Bibliografie
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF