Operácie

Retro herná konzola: Rozdiel medzi revíziami

Z SensorWiki

(Vytvorená stránka „{| |Autori: || '''Ján Mrkvička, Jozef Kuleha''' |- |Študijný odbor: || Aplikovaná mechatronika || 2. Ing. ('''2013''') |} == Opis projektu == '''Čo'''…“)
 
(Výsledok)
 
(21 medziľahlých úprav od 2 ďalších používateľov nie je zobrazených)
Riadok 1: Riadok 1:
 
{|
 
{|
|Autori:      || '''Ján Mrkvička, Jozef Kuleha'''  
+
|Autori:      || '''Lukáš Hurtiš'''  
 
|-
 
|-
|Študijný odbor:  || Aplikovaná mechatronika || 2. Ing.  ('''2013''')  
+
|Študijný odbor:  || Aplikovaná informatika || 3. Bc.  ('''2018''')  
 
|}
 
|}
  
 
== Opis projektu ==
 
== Opis projektu ==
  
'''Čo''' je jeho cieľom, ako bude vyzerať výsledok.
+
'''Čo'''
 +
 
 +
Herná konzola pre dvoch hráčov, využívajúca emuláciu rôznych starších videoherných systémov (napr. Nintendo, Sega, Atari, Playstation)
  
 
'''Prečo?'''  
 
'''Prečo?'''  
  
# Prečo práve tento projekt, aký má zmysel, komu bude osožný...  
+
Medzi moje najväčšie záľuby patrí hranie videohier. Napriek tomu,že neustále sledujem vývoj a pokrok herných konzol a hier, rozhodol som sa spraviť Retro konzolu, kde si môžeme pripomenúť začiatky videohier a  hlavne vidieť veľký pokrok, ktorý nastal za posledné roky.
# Druhy '''riadok'''
+
 
 +
 
 +
== Analýza ==
 +
 
 +
* Vyhotovenie návrhu celého produktu vo forme 3D modelu za pomoci modelovacieho programu Catia
 +
* Zakúpenie setu ovládacích prvkov (joystick-y, button-y) pre dvoch hráčov
 +
* Zakúpenie Raspberry Pi 2 model B
 +
* Zakúpenie enkodéru I-PAC2
 +
* Zakúpenie 12V ventilátora určeného na chladenie
 +
* Zakúpenie ostatných elektrických súčiastok (vodiče, prípojky, vypínač...)
 +
* Zhotovenie hlavnej konštrukcie z 8mm preglejky pomocou laserového vyrezávača
 +
* Inštalácia a konfigurácia operačného systému Raspberry Pi
 +
* Osadenie ovládacích prvkov do vrchnej dosky boxu
 +
* Zapojenie všetkých elektrických súčiastok
 +
 
 +
== Popis riešenia ==
  
'''Ako ?'''
+
===3D návrh===
  
Sem príde podrobný návod na výrobu.
 
  
* Popisat proces premeny napadu na hmotny (funkcny) produkt
+
Návrh bol vytvorený v programe Catia
* Vyspecifikovat potrebny material (uprednostnujeme vlastnych alebo existujucich komponentov, v pripade potreby vieme pomoct)<BR> vystupom bude zhmotneny napad a aj navod - krok za krokom pre reprodukciu produktu
 
  
 +
====RENDER====
  
[http://www.example.com link title]
+
[[Súbor:render1.jpg|600px]]
  
[[Súbor:MojObrazok2.jpg|center|300px]]
 
  
[[Médiá:MojZdrojak.c]]
+
[[Súbor:render2.jpg|600px]]
  
  
'''Použité zdroje:'''
+
[[Súbor:render3.jpg|600px]]
  
* Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.
+
====Technický výkres====
  
__TOC__
+
[[Súbor:drawing1.jpg]]
  
== Analýza ==
 
  
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje,  
+
[[Súbor:drawing2.jpg]]
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:
+
 
 +
 
 +
Kvôli problémom vzniknutým v pokročilom štádiu vyhotovavania finálneho produktu museli byť zmenené niektoré parametre.
 +
os X = 570mm (pôvodne 600)
 +
os Z = 90mm (pôvodne 88)
 +
 
 +
 
 +
===Set ovládacích prvkov===
 +
 
 +
[http://bit.do/eha64 Arcade Kit]
 +
 
 +
Sada obsahuje:
 +
* 6 ovládacích tlačidiel pre každého hráča
 +
* 3 systémové tlačidlá
 +
* 2 joystick-y
 +
 
 +
[[Súbor:arcadekit.jpg|600px]]
 +
 
 +
Každý Button má svoj mikrospínač, ktorý obsahuje dva piny:
 +
* Trigger ktorý vysiela signál, keď je tlačidlo stlačené.
 +
* Uzemnenie (GND).
 +
 
 +
[[Súbor:arcadebutton.jpg|600px]]
 +
 
 +
===Raspberry Pi===
 +
 
 +
 
 +
Pre projekt som zvolil Raspberry pi 2 mobel B, nakoľko jeho výkon je dostačujúci na emulovanie všetkých použitých systémov.
 +
 
 +
[http://bit.do/ehbbR Raspberry Pi]
 +
 
 +
[[Súbor:rpi2.jpg]]
 +
 
 +
Špecifikácie:
 +
* ARM procesor 0.9GHZ , 4 jadrá
 +
* RAM 1GB
 +
* výstupy: 4x USB 2.0 , HDMI , LAN , Audio Jack 3,5mm
 +
* operačný systém sa bootuje z microSD
 +
* napájanie 5V microUSB
 +
 
 +
 
 +
===I-PAC 2===
 +
 
 +
[http://bit.do/ehbjP I-PAC 2]
 +
 
 +
Jedná sa o klávesnicový enkodér, ktorý emuluje stláčanie konkrétnych kláves po prijatí trigger signálu z určitého tlačidla hráča. Táto verzia je priamo určená pre 2 hráčov.
 +
 
 +
Všetky emulované klávesy sa dajú upravovat a meniť podľa potreby pomocou dodávaného utility programu [http://bit.do/ehbjP WinIPAC V2].
 +
 
 +
Má nízku latenciu, vďaka čomu je pre hry výborným riešením.
 +
 
 +
Zapojenie:
 +
* Doska enkodéru je rozdelená na 2 časti. (Hráč 1 a Hráč 2)
 +
* Na každom tlačidle spojíme samostatným vodičom trigger pin mikrospínača s príslušným slotom na doske enkodéru.
 +
* Uzemnenie môžeme spojiť spoločným vodičom pre všetky tlačidlá (avšak oddelene pre samostatných hráčov) a slotom GND na doske enkodéru.
 +
* Samotný enkodér zapojíme pomocou USB do raspberry pi.
 +
 
 +
[[Súbor:ipac2.jpg]]
 +
 
 +
 
 +
===Chladenie===
 +
 
 +
[http://bit.do/ehbmB Ventilátor]
 +
 
 +
[[Súbor:pcfan.jpg]]
 +
 
 +
 
 +
===Vodiče a terminály===
 +
 
 +
[http://bit.do/ehbnc Vodiče]:
 +
* 18 AWG
 +
* materiál: meď
 +
* izolácia: PVC
 +
 
 +
[[Súbor:kable.jpg]]
 +
 
 +
 
 +
Terminály na pripojenie vodičov ku konektorom tlačidiel:
 +
 
 +
[[Súbor:cable-terminal.jpg|400px]]
 +
 
 +
===Zhotovenie Hlavnej konštrukcie===
 +
 
 +
 
 +
====Návrh boxu====
 +
Návrh bol vytvorený OpenSource online generátorom [http://bit.do/ehbpz Boxes.py].
 +
 
 +
Pri odskúšaní jednotlivých nastavení generátora a vyrezania skúšobnej mini-verzie boxu som zistil veľkosti prípadných nepresností laseru a aj konverzie medzi súbormi.
 +
 
 +
Po finálnom zadaní všetkých nastavaní dostávam svg súbor celého boxu.
 +
 
 +
V programe InkScape boli následne pridané nápisy a zadané hodnoty rezania/gravírovania
 +
 
 +
Finálna verzia:
 +
* [http://senzor.robotika.sk/sensorwiki/images/d/df/Part1laser.pdf Part1]
 +
* [http://senzor.robotika.sk/sensorwiki/images/6/6e/Part2laser.pdf Part2]
 +
 
 +
 
 +
====Vyhotovenie====
 +
Materiál:
 +
* Preglejka - hrúbka 4mm (Vyrezané 2x a následne zlepené = 8mm)
 +
 
 +
Rezanie:
 +
 
 +
 
 +
[[Súbor:cutting1.jpg|600px]]
 +
 
 +
Zostavená celá konštrukcia:
 +
 
 +
 
 +
[[Súbor:cutting2.jpg|600px]]
 +
 
 +
 
 +
[[Súbor:cutting3.jpg|600px]]
 +
 
 +
 
 +
[[Súbor:cutting4.jpg|600px]]
 +
 
 +
===Inštalácia a konfigurácia operačného systému Raspberry Pi===
 +
 
 +
 
 +
O celý chod konzoly sa bude starať [http://bit.do/ehbxz RetroArch].
 +
 
 +
Jedná sa o Front-end software zastrešujúci celú emuláciu najrôznejších herných systémov.
 +
 
 +
My budeme používať jeho variantu RetroPie, ktorá je určená priamo pre Raspberry Pi. Stiahnutie a celá inštalácia je veľmi jednoduchá a podrobný návod a popis je na oficiálnej stránke [http://bit.do/ehbzn RetroPie].
 +
 
 +
Táto aplikácia pracuje na operačnom systéme Raspbian, ktorý je založený na operačnom systéme Debian s Linuxovým jadrom verzie (4.1 - 4.9) a je priamo upravený na emuláciu a chod na Raspberry Pi.
 +
 
 +
[[Súbor:retropie.jpg]]
 +
 
 +
 
 +
Celý tento systém je vynikajúci, čo sa týka možných úprav a prispôsobovania či už vzhľadu menu, loading obrazoviek alebo aj samotného ovládania.
 +
 
 +
RetroPie podporuje aj externé ovládače ako napríklad Xbox360, Playsation, ktoré sa sami nakonfigurujú.
 +
V našom prípade konfigurujem ovládanie tlačidiel ako 2 hráčov na klasickej klávesnici (vďaka enkodéru I-PAC2).
 +
Taktiež je možné aj hranie cez LAN.
 +
 
  
* popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.)
 
* obrázok zapojenia vývodov použitej súčiastky
 
* odkaz na katalógový list
 
* priebehy dôležitých signálov
 
* este jedna polozka
 
  
 +
===Zapojenie všetkých elektrických súčiastok===
  
== Popis riešenia ==
+
Osadenie tlačítok aj joystick-ov bolo jednoduché, keďže otvory na ne boli presne na mieru vyrezané.
  
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru
+
Následné zapojenie ovládacích prvkov bolo zdĺhavé, kvôli vyššiemu počtu vodičov.
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili.  
 
  
'''Schéma zapojenia snímača'''
+
Výstupy z Raspberry Pi:
[[Súbor:Zapojenie.png]]
+
* HDMI výstup - obraz
 +
* USB - pripojenie prídavného ovládača, prípadne klávesnice pri potrebe konfigurácie systému
 +
* LAN - pripojenie na internet pre možnosť stiahnutia updatu systému/ konfigurácia cez lokálnu sieť pomocou SSH
 +
* Audio Jack - pripojenie sluchátok/reproduktorov
  
[[Súbor:Example.jpg]]
 
  
Pozn.: Názov obrázku musí byť jedinečný, uvedomte si, že Obr1.jpg už pred vami skúsilo
+
[[Súbor:cabling.jpg|600px]]
nahrať už aspoň 10 študentov.
 
  
[[Súbor:MojObrazok.jpg|center|250px]]
+
== Výsledok ==
 +
S výsledkom som spokojný.
  
=== Algoritmus a program ===
+
Avšak momentálne nie je na 100% všetko dokončené ako som mal v pláne:
 +
* V zadnej časti ešte pribudne kovový panel pre vyššie spomenuté výstupy.
 +
* Napájanie bude urobené pomocou 12V adaptéra a vypínača v zadnej časti:
 +
** 12V ventilátor a 12V LED svetlá
 +
** menič napätia z 12V na 5V pre Raspberry Pi
  
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili.
+
Momentálne napájanie funguje cez 5V microUSB a vypínač priamo do Raspberry Pi. (Ventilátor nie je zapojený)
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu.
 
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.
 
  
Vyberte podstatné časti zdrojového kódu, použite na to prostredie ''source'':
+
Taktiež samozrejme je tam viacero nedokonalostí čo sa vzhľadu týka, ktoré by som chcel ešte dodatočne vyladiť :)
  
<source lang="c">
 
/* A nezabudnite zdroják hojne komentovať  */
 
  
int main(void) {
+
[[Súbor:final1.jpg|600px]]
   
 
    printf("Hello, World!\n"); 
 
    return(0); 
 
}
 
</source>
 
  
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!
 
  
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]
+
[[Súbor:final2.jpg|600px]]
  
[[Médiá:MojProgram.c|program.c]]
 
  
 +
[[Súbor:final3.jpg|600px]]
  
=== Výsledok ===
 
  
Nezabudnite zdokumentovať výsledok vašej práce. Určite sem patria fotografie, video
+
[[Súbor:final4.jpg|600px]]
a zhodnotenie ako ste spokojní s výsledkom,
 
  
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.
 
  
 +
Späť na [[Projekty študentov DTV-2018|zoznam projektov]].
  
 
[[Category:DTV2018]]
 
[[Category:DTV2018]]

Aktuálna revízia z 08:01, 30. máj 2018

Autori: Lukáš Hurtiš
Študijný odbor: Aplikovaná informatika 3. Bc. (2018)

Opis projektu

Čo

Herná konzola pre dvoch hráčov, využívajúca emuláciu rôznych starších videoherných systémov (napr. Nintendo, Sega, Atari, Playstation)

Prečo?

Medzi moje najväčšie záľuby patrí hranie videohier. Napriek tomu,že neustále sledujem vývoj a pokrok herných konzol a hier, rozhodol som sa spraviť Retro konzolu, kde si môžeme pripomenúť začiatky videohier a hlavne vidieť veľký pokrok, ktorý nastal za posledné roky.


Analýza

  • Vyhotovenie návrhu celého produktu vo forme 3D modelu za pomoci modelovacieho programu Catia
  • Zakúpenie setu ovládacích prvkov (joystick-y, button-y) pre dvoch hráčov
  • Zakúpenie Raspberry Pi 2 model B
  • Zakúpenie enkodéru I-PAC2
  • Zakúpenie 12V ventilátora určeného na chladenie
  • Zakúpenie ostatných elektrických súčiastok (vodiče, prípojky, vypínač...)
  • Zhotovenie hlavnej konštrukcie z 8mm preglejky pomocou laserového vyrezávača
  • Inštalácia a konfigurácia operačného systému Raspberry Pi
  • Osadenie ovládacích prvkov do vrchnej dosky boxu
  • Zapojenie všetkých elektrických súčiastok

Popis riešenia

3D návrh

Návrh bol vytvorený v programe Catia

RENDER

Render1.jpg


Render2.jpg


Render3.jpg

Technický výkres

Drawing1.jpg


Drawing2.jpg


Kvôli problémom vzniknutým v pokročilom štádiu vyhotovavania finálneho produktu museli byť zmenené niektoré parametre. os X = 570mm (pôvodne 600) os Z = 90mm (pôvodne 88)


Set ovládacích prvkov

Arcade Kit

Sada obsahuje:

  • 6 ovládacích tlačidiel pre každého hráča
  • 3 systémové tlačidlá
  • 2 joystick-y

Arcadekit.jpg

Každý Button má svoj mikrospínač, ktorý obsahuje dva piny:

  • Trigger ktorý vysiela signál, keď je tlačidlo stlačené.
  • Uzemnenie (GND).

Arcadebutton.jpg

Raspberry Pi

Pre projekt som zvolil Raspberry pi 2 mobel B, nakoľko jeho výkon je dostačujúci na emulovanie všetkých použitých systémov.

Raspberry Pi

Rpi2.jpg

Špecifikácie:

  • ARM procesor 0.9GHZ , 4 jadrá
  • RAM 1GB
  • výstupy: 4x USB 2.0 , HDMI , LAN , Audio Jack 3,5mm
  • operačný systém sa bootuje z microSD
  • napájanie 5V microUSB


I-PAC 2

I-PAC 2

Jedná sa o klávesnicový enkodér, ktorý emuluje stláčanie konkrétnych kláves po prijatí trigger signálu z určitého tlačidla hráča. Táto verzia je priamo určená pre 2 hráčov.

Všetky emulované klávesy sa dajú upravovat a meniť podľa potreby pomocou dodávaného utility programu WinIPAC V2.

Má nízku latenciu, vďaka čomu je pre hry výborným riešením.

Zapojenie:

  • Doska enkodéru je rozdelená na 2 časti. (Hráč 1 a Hráč 2)
  • Na každom tlačidle spojíme samostatným vodičom trigger pin mikrospínača s príslušným slotom na doske enkodéru.
  • Uzemnenie môžeme spojiť spoločným vodičom pre všetky tlačidlá (avšak oddelene pre samostatných hráčov) a slotom GND na doske enkodéru.
  • Samotný enkodér zapojíme pomocou USB do raspberry pi.

Ipac2.jpg


Chladenie

Ventilátor

Pcfan.jpg


Vodiče a terminály

Vodiče:

  • 18 AWG
  • materiál: meď
  • izolácia: PVC

Kable.jpg


Terminály na pripojenie vodičov ku konektorom tlačidiel:

Cable-terminal.jpg

Zhotovenie Hlavnej konštrukcie

Návrh boxu

Návrh bol vytvorený OpenSource online generátorom Boxes.py.

Pri odskúšaní jednotlivých nastavení generátora a vyrezania skúšobnej mini-verzie boxu som zistil veľkosti prípadných nepresností laseru a aj konverzie medzi súbormi.

Po finálnom zadaní všetkých nastavaní dostávam svg súbor celého boxu.

V programe InkScape boli následne pridané nápisy a zadané hodnoty rezania/gravírovania

Finálna verzia:


Vyhotovenie

Materiál:

  • Preglejka - hrúbka 4mm (Vyrezané 2x a následne zlepené = 8mm)

Rezanie:


Cutting1.jpg

Zostavená celá konštrukcia:


Chyba pri vytváraní náhľadu: Súbor s rozmermi väčšími než 12,5 MP


Chyba pri vytváraní náhľadu: Súbor s rozmermi väčšími než 12,5 MP


Chyba pri vytváraní náhľadu: Súbor s rozmermi väčšími než 12,5 MP

Inštalácia a konfigurácia operačného systému Raspberry Pi

O celý chod konzoly sa bude starať RetroArch.

Jedná sa o Front-end software zastrešujúci celú emuláciu najrôznejších herných systémov.

My budeme používať jeho variantu RetroPie, ktorá je určená priamo pre Raspberry Pi. Stiahnutie a celá inštalácia je veľmi jednoduchá a podrobný návod a popis je na oficiálnej stránke RetroPie.

Táto aplikácia pracuje na operačnom systéme Raspbian, ktorý je založený na operačnom systéme Debian s Linuxovým jadrom verzie (4.1 - 4.9) a je priamo upravený na emuláciu a chod na Raspberry Pi.

Retropie.jpg


Celý tento systém je vynikajúci, čo sa týka možných úprav a prispôsobovania či už vzhľadu menu, loading obrazoviek alebo aj samotného ovládania.

RetroPie podporuje aj externé ovládače ako napríklad Xbox360, Playsation, ktoré sa sami nakonfigurujú. V našom prípade konfigurujem ovládanie tlačidiel ako 2 hráčov na klasickej klávesnici (vďaka enkodéru I-PAC2). Taktiež je možné aj hranie cez LAN.


Zapojenie všetkých elektrických súčiastok

Osadenie tlačítok aj joystick-ov bolo jednoduché, keďže otvory na ne boli presne na mieru vyrezané.

Následné zapojenie ovládacích prvkov bolo zdĺhavé, kvôli vyššiemu počtu vodičov.

Výstupy z Raspberry Pi:

  • HDMI výstup - obraz
  • USB - pripojenie prídavného ovládača, prípadne klávesnice pri potrebe konfigurácie systému
  • LAN - pripojenie na internet pre možnosť stiahnutia updatu systému/ konfigurácia cez lokálnu sieť pomocou SSH
  • Audio Jack - pripojenie sluchátok/reproduktorov


Cabling.jpg

Výsledok

S výsledkom som spokojný.

Avšak momentálne nie je na 100% všetko dokončené ako som mal v pláne:

  • V zadnej časti ešte pribudne kovový panel pre vyššie spomenuté výstupy.
  • Napájanie bude urobené pomocou 12V adaptéra a vypínača v zadnej časti:
    • 12V ventilátor a 12V LED svetlá
    • menič napätia z 12V na 5V pre Raspberry Pi

Momentálne napájanie funguje cez 5V microUSB a vypínač priamo do Raspberry Pi. (Ventilátor nie je zapojený)

Taktiež samozrejme je tam viacero nedokonalostí čo sa vzhľadu týka, ktoré by som chcel ešte dodatočne vyladiť :)


Chyba pri vytváraní náhľadu: Súbor s rozmermi väčšími než 12,5 MP


Chyba pri vytváraní náhľadu: Súbor s rozmermi väčšími než 12,5 MP


Chyba pri vytváraní náhľadu: Súbor s rozmermi väčšími než 12,5 MP


Chyba pri vytváraní náhľadu: Súbor s rozmermi väčšími než 12,5 MP


Späť na zoznam projektov.