This is an old revision of the document!
Ball in a Maze Puzzle
Introducere
Acest proiect reprezinta implementarea unui joc de tip labirint pe o placuta Arduino Mega 2560. Jucatorul are rolul de a ghida o bila printr-un labirint, folosindu-se de cei 4 senzori de proximitate pe care ii are la dispozitie. Fiecare senzor roteste labirintul intr-o anumita directie, astfel incat bila sa se poata rostogoli.
Ideea acestui proiect mi s-a parut interesanta si parea un joc distractiv de jucat
Descriere generală
Jucatorului ii sunt prezentati 4 senzori de proximitate, fiecare corespunzand unei directii in care labirintul poate fi rotit
Senzorii vor fi folositi de catre jucator pentru a trimite inputuri sistemului si pentru a activa cele 2 servomotoare.
Cele 2 servomotoare au rolul de a roti labirintul pe o anumita axa, astfel incat biluta din acesta sa se poata rostogoli in directia dorita
Hardware Design
Aici puneţi tot ce ţine de hardware design:
listă de piese
-
diagrame de semnal
rezultatele simulării
Software Design
Mediul de dezvoltare folosit: Arduino IDE
Librarii folosite: Servo, New Ping (Instalate direct in IDE)
Descrierea implementarii:
Implementarea consta in verificarea periodica a semnalelor primite de la senzori. Daca unul dintre acestia detecteaza ca jucatorul si-a apropiat mana de el, algoritmul trimite un semnal servomotorului corespunzator si il roteste cu un anumit numar de grade.
Functii definite:
setup: aici sunt definite starile pinilor si sunt atasate porturi servomotoarelor, folosind functia attach din libraria Servo. De asemenea, este pornita comunicarea seriala, cu un baud de 9600
loop: aici se seteaza starea initiala a servomotoarelor(in cadrul primului loop), iar apoi se citesc datele de la senzori. Daca unul dintre senzori este activat, se roteste servomotorul corespunzator acestuia cu un anumit numar de grade.
Am folosit variabile globale pentru a defini in cod servomotoarele si pentru a retine unghiurile la care acestea se afla, pentru a nu permite jucatorului sa roteasca excesiv labirintul. Am folosit macrouri pentru a tine minte atribuirea pinilor de pe placuta Arduino.
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
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
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF