ArduDino

Autor

Introducere

  • Am decis să schimb puțin modul normal de a juca The Google Dinosaur Game.
  • Proiectul presupune senzori ce sunt activați de un jucător pentru a simula acțiuni precum sărituri sau aplecări.
  • Ideea a pornit de la dorința de a face un joc simplu mai amuzant.

Descriere generală

Sumar implementare

Pentru simularea celor două acțiuni au fost folosiți doi senzori, unul de presiune/forță, montat de preferat la baza piciorului, și unul de înclinare, montat în apropierea umărului pentru a fi activat în momentul unei aplecări.

Cât timp jucătorul stă pe loc, senzorul de presiune este activat de greutatea corporală. În momentul în care acesta nu mai este activat, se consideră că jucătorul a realizat o săritură.

Senzorul de înclinare are o ieșire digitală, întrucât semnalele lui sunt 0, LOW, în momentul în care acesta stă în poziție ortostatică, și 1, HIGH, în momentul în care acesta este inclinat la cel puțin 45 de grade.

Proiectul conține un script scris în limbajul Python, folosit pentru a citi semnalele trimise prin Serial de către Placa Arduino și a le traduce în apăsări de taste.

Schemă bloc

Hardware Design

Listă de componente

Schemă electrică

Software Design

  • Medii de dezvoltare: Arduino IDE și PyCharm

Cod Arduino UNO

  • Funcția setup doar pornește Serial-ul cu un baudrate de 9600.
  • Funcția loop citește datele senzorilor și funcționează ca un FSM. În starea implicită NONE, se așteaptă ori ca senzorul de forță să nu mai detecteze greutate (caz în care jucătorul sare și se ajunge în starea JUMPING), sau ca senzorul de înclinare să se activeze (caz în care jucătorul se apleacă și se ajunge în starea DUCKING). În stările aferente celor două acțiuni se așteaptă întoarcerea jucătorului la starea inițială.
  • Există modul de ”SEND_STOP_SIGNAL” ce poate fi setat pentru a trimite un semnal special catre script-ul de Python, pentru a-l opri. Acest semnal se va declanșa în momentul în care jucătorul se află într-o săritură mult prea lungă.

Cod Python

  • Fiecare semnal are asociat o acțiune precum o apăsare de tastă, SIGNAL_DUCK_START și SIGNAL_DUCK_END legându-se de tasta Arrow Down, ce reprezintă aplecarea dinozaurului, iar SIGNAL_DUCK_JUMP apâsând tasta SPACE. Semnalul special SIGNAL_STOP oprește execuția script-ului.

Rezultate obţinute

Concluzii

  • Am reușit să mă folosesc de serial și un script pentru a transforma input de senzori în input de tastatură.
  • Legăturile pot fi îmbunătățite, utilizând fire mai lungi si accesorii pentru fixarea senzorilor în locurile intenționate.

Download

Bibliografie/Resurse

pm/prj2021/amocanu/ardudino.txt · Last modified: 2021/06/03 10:29 by rares_daniel.perete
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0