Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul isi propune realizarea unei variante primitive de controller pentru jocul Super Mario. Fenomenul fizic de la baza implementarii se bazeaza pe abilitatea corpului uman de a conduce electricitate. Voi confectiona astfel 6 butoane atasate de un suport fizic, care, la atingere vor inchide circuitul electric si vor transmite astfel catre placuta pe firul corespunzator. Ideea am preluat-o din urmatorul clip video: https://www.youtube.com/watch?v=rfQqh7iCcOU
Schema electrica:
Lista de piese:
Proiectul este alcatuit din doua programe software:
1. Programul care ruleaza pe microcontroller-ul Atmega324, scris in C si C++, compilate cu avr-gcc. Am folosit biblioteca CapacitiveSensor(1) si suport din laboratorele rezolvate intr-o mai mica masura in scrierea programului. Pentru compilare si incarcare am folosit suport oferit in cadrul laboratorului pentru incarcarea bootloader-ului.
(1) https://playground.arduino.cc/Main/CapacitiveSensor?from=Main.CapSense
2. Programul care ruleaza pe pc-ul la care placuta este conectat, scris in C. Pentru dezvoltare am folosit functii din windows.h, atat pentru citirea de pe portul serial, cat si pentru simularea keystroke-ului (pentru ca tot imi place sa fac teme la SO pe windows). Pentru simularea componentei hardware in dezvolatare am utilizat de asemenea un generator de porturi seriale virtuale (2).
(2) http://com0com.sourceforge.net
Ca medii de dezvltarea pentru ambele am folosit Windows 10, proiectele fiind construite in CLion.
Scurta descriere a algoritmului: Algoritmul implementat detecteaza contact prin intermediul bibliotecii CapacitiveSensor si transmite pe USART un singur caracter corespunzator. Programul de pe pc asculta pe portul serial aferent (COM7 in cazul meu) si citeste caracterul scris. Se face verificare validitatii caracterului, urmata de o mapare la un cod ASCII corespunzator actiunii si simularea keystroke-ului corespunzator. Aceasta mapare ofera flexibiliate programului, intrucat, prin schimbarea acestui vector static, pot adapta proiectul pentru orice joc/aplicatie (singura limitare este data de numarul maxim de input-uri date de componenta hardware).
Functionalitatea obinuta iti permite sa te joci SuperMario Bros folosind un controller improvizat legat la pc.
Resurse Hardware:
Resurse Software: