This is an old revision of the document!


Arcade Pushing Machine

Introducere

Proiectul constă într-un joc pe Arduino care măsoară forța cu care utilizatorul poate să apese pe un senzor de forță rezistiv și afișează scorul pe un ecran LCD, acompaniat de animații și sunete pe un difuzor. Principalul obiectiv al acestui proiect este să ofere o experiență distractivă si plăcută utilizatorului, în orice fel de context social.

Ideea de la care am pornit este chiar jocul foarte popular de la orice parc de distracții în care poți obține un scor cât mai mare, cu cât lovești mai tare cu pumnul.

Descriere generală

Proiectul are următorul flow:

  • La pornirea aparatului, se afișează pe display mesajul Ești gata?, iar led-ul roșu stă aprins
  • Atunci când senzorul de mișcare detectează apariția unei persoane în fața aparatului, display-ul și difuzorul vor transmite mesajul Start!, se aprinde led-ul verde, iar senzorul de forță e pregătit și așteaptă o lovitură
  • La momentul atingerii senzorului de forță, scorul obținut va fi afișat incremental pe display, alături de un mesaj audio corespunzător
  • Timp de câteva secunde, led-ul roșu indică că nu se poate reîncerca lovitura. La momentul aprinderii celui verde, se detectează din nou mișcarea și jocul se poate relua.

Hardware Design

Componente hardware utilizate:

  • Plusivo ATmega328P
  • modul microSD cu SPI
  • card microSD 16GB
  • difuzor
  • modul amplificator audio LM386
  • ecran LCD cu I2C
  • senzor de forță rezistiv FSR402
  • modul senzor de mișcare PIR
  • un led verde și unul roșu
  • rezistențe
  • breadboard
  • fire mamă-tată și tată-tată

Schema electrică

Ecranul LCD cu interfață I2C are rolul de a afișa mesaje interactive pe parcursul jocului, dar și valorile măsurate se senzorul de forță rezistiv. Pinul SDA e conectat la A5 de pe placa Arduino, pentru a transmite datele, iar pentru semnalul de ceas am conectat pinul SCL la A4.

Senzorul de forță rezistiv (FSR402) măsoară forța aplicată prin creșterea rezistenței în momentul apăsării pe acesta, trimițând rezultatele pe ecranul LCD. Este înseriat cu o rezistență de 10kΩ și apoi conectat la pinul A0 al plăcuței Arduino pentru citirea valorii analogice.

Senzorul PIR de mișcare detectează mișcarea în fața aparatului și trimite un semnal către Arduino, pentru a putea aprinde LED-urile corespunzătoare. Pinul OUT e conectat la pinul D7, pentru a transmite semnalul de detecție a mișcării.

Modulul de card SD este conectat la plăcuță prin pinii interfeței SPI: CS (D10 - SS), MOSI (D11), MISO (D12) și SCK (D13), utilizând un card micro-SD de 16GB de la Kingston, pe care am stocat fișiere audio .wav cu următoarele specificații: 16kHz, 8-bit resolution (128kbps bit rate), canal MONO, U8 PCM, pentru a putea fi redate.

Modulul LM386 ajută la amplificarea semnalului audio, până la un nivel care poate fi auzit clar prin difuzorul de 8Ω. Amplificatorul este conectat la pinul D9.

Software Design

Mediu de dezvoltare

Codul sursă a fost implementat în Arduino IDE 2.3.2.

Biblioteci utilizate
  • Wire.h
  • LiquidCrystal_I2C.h
  • TMRpcm.h
  • SD.h
  • SPI.h
Codul sursă

Rezultate Obţinute

<iframe width=“1280” height=“720” src=“https://www.youtube.com/embed/Hwvp1mxvFqo” title=“Arcade Pushing Machine - Proiect PM 2024” frameborder=“0” allow=“accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share” referrerpolicy=“strict-origin-when-cross-origin” allowfullscreen></iframe>

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

  • 7 aprilie 2024 - Mi-am pus la punct ideea proiectului
  • 9 aprilie 2024 - Am împrumutat un Plusivo și niste fire :-)
  • 27 aprilie 2024 - Am realizat Wiki-ul pe ocw
  • 28 aprilie 2024 - Am comandat piesele hardware necesare rămase
  • 10 mai 2024 - Au venit piesele și m-am apucat de montat piesele pe rând, pentru a le testa funcționalitatea
  • 11 mai 2024 - Am creat un proiect funcțional!
  • 14 mai 2024 - Am început să fac schema în Fusion
  • 17 mai 2024 - Am lipit difuzorul și senzorul de forță
  • 17 mai 2024 - Am cumpărat un modul de amplificare audio, deoarece nu funcționa difuzorul fără
  • 17 mai 2024 - Am făcut montajul final
  • 22 mai 2024 - Am rupt din greșeală firele difuzorului și acum trebuie să lipesc din nou m(
  • 22 mai 2024 - Am făcut ultimele modificări la schematic
  • 22 mai 2024 - Am proiectat carcasa 3D
  • 23 mai 2024 - Am finalizat montajul
  • 24 mai 2024 - Am finalizat partea Software

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Resurse Hardware
Resurse Software
pm/prj2024/sseverin/diana.cismaru.1716647718.txt.gz · Last modified: 2024/05/25 17:35 by diana.cismaru
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