Obsah:
- Krok 1: Ingredience
- Krok 2: Výpočtový modul 3
- Krok 3: Propojení modulu LCD
- Krok 4: Klávesnice a zvuk
- Krok 5: Moc
- Krok 6: Nastavení systému
- Krok 7: 3D potištěné pouzdro a tlačítka
- Krok 8: Vše dohromady a řešení problémů
Video: Retro-CM3: Výkonná herní konzole ovládaná RetroPie: 8 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Tento návod je inspirován AdGRruit PiGRRL Zero, Wermyho původní Gameboy Zero build a GreatScottLab Handled Game Console. Tyto herní konzole založené na RetroPie používají jako jádro malinu pi zero (W). ALE, poté, co jsem postavil několik Pi Zero konzolí, byly nalezeny dva hlavní problémy.
1) Raspberry Pi Zero (W) má pouze jednojádrový procesor Cortex-A7 a 512 MB RAM, což je v pořádku pro věci typu NES/SNES/GB. Když jsem se však pokusil spustit PS/N64 Emus, byl zážitek docela nepřijatelný. Dokonce i některé hry GBA nemohou běžet hladce (některé zpoždění zvuku, také v některých hrách NEOGEO, jako je Metal Slug při řešení komplikovaných scén); 2) Většina sestav herní konzoly používá jako zobrazovací rozhraní SPI nebo TV-out. Displej SPI bude potřebovat CPU, aby pomohl s ovladačem vyrovnávací paměti snímků, což zhorší zážitek ze hry a fps je také omezen rychlostí hodin SPI. A kvalita zobrazení TV-out prostě není dost dobrá.
V tomto pokynu použijeme modul RaspberryPi Compute Module 3 a LCD rozhraní DPI k vytvoření dokonalé herní konzole RetroPie. Měl by být schopen spustit všechny emulátory hladce a poskytovat vysoké rozlišení a vysokou snímkovou frekvenci.
Konečná velikost herní konzole je 152 x 64 x 18 mm s baterií až 2 000 mAh. Celkové sestavení stojí zhruba 65 $, včetně vlastní PCB, všech komponent, 16 GB TF karty a výpočetního modulu RaspberryPi 3 Lite. Protože již mám 3D tiskárnu, pouzdro mě stojí pouze 64 g PLA filamentu.
Pojďme začít.
Poznámka: Protože angličtina není mým prvním jazykem, pokud zjistíte nějaké chyby nebo vám něco není jasné, dejte mi prosím vědět.
Toto je můj první příspěvek na instructable.com a opravdu od vás potřebuji všechny druhy návrhů.
Krok 1: Ingredience
Zde jsou ingredience, které potřebujete k sestavení herní konzole. Některé části nemusí být ve vaší oblasti k dispozici, zkuste jiné alternativní díly.
1) RaspberryPi Compute Module 3 Lite. Kupte si ho v obchodě, kde jste dostali RaspberryPi 3B, nebo si jej vyzkoušejte na ebay.
2) 3,2 palcový LCD s rozhraním RGB/DPI. ZABEZPEČTE, že máte modul LCD s rozhraním RGB/DPI, protože sestavení této konzoly je MUSÍ. Svůj LCD jsem dostal z místního e-shopu a stejný modul najdete v alibaba. Pokud si koupíte alternativní modul LCD, Zeptejte se poskytovatele, který vám zašle podrobný parametr a inicializační kód. Je také rozumnou volbou koupit odpovídající konektory ze stejného obchodu, protože existuje tolik různých typů konektorů.
3) ALPS SKPDACD010. Taktový spínač se zdvihem 1,75 mm. Vyhledejte jej ve svém místním obchodě s elektronickými součástkami.
4) Některé další klíče. K tlačítkům START/VYBRAT/VOL+/VOL- použijte jakékoli jiné taktové klávesy.
5) Reproduktor. Libovolný 8 ohm, 0,5-1,5 W reproduktor.
6) Baterie. Vybral jsem 34*52*5,0 mm 1S 1000 mAh Li-ion baterii x2.
7) Některé integrované obvody. STM32F103C8T6, IP5306, TDA2822, NC7WZ16, SY8113, PT4103 atd.
8) Některé konektory. USB-Micro Female, PJ-237 (telefonní konektor), konektor pro kartu TF, DDR2 SODIMM atd.
9) Některé pasivní komponenty. Rezistory, kondenzátory a induktory.
10) Vlastní PCB. Schématické soubory a soubory PCB jsou uvedeny na konci. Pokud použijete jakékoli alternativní součásti, nezapomeňte to změnit.
11) 3D tiskárna. Ujistěte se, že je schopen tisknout díly až do velikosti 152*66*10 mm.
12) Dostatek vlákna PLA.
Krok 2: Výpočtový modul 3
Raspberry Pi Compute Module 3 je velmi výkonná základní deska pro prototypování některých zajímavých gadgetů. Podrobný úvod najdete zde. A některé užitečné informace najdete zde.
Modul používá konektor typu DDR2 SODIMM, jehož použití je o něco těžší. Kromě toho jsou vyvedeny všechny GPIO piny jádra BCM2837 BANK1 a BANK0.
Abychom mohli začít používat výpočetní modul, musíme zajistit několik různých napětí: 1,8 V, 3,3 V, 2,5 V a 5,0 V. Mezi nimi 1,8 V a 3,3 V slouží k napájení některých periferií, které potřebují přibližně 350 mA. Napájecí vedení 2,5 V pohání DAC TV-out a lze jej připojit na 3,3 V, protože nepotřebujeme funkci TV-out. 5,0 V by mělo být připojeno k pinům VBAT a napájí jádro. Vstup VBAT přijímá napětí v rozmezí od 2,5 V do 5,0 V a pouze se ujistěte, že napájecí zdroj může mít výstup až 3,5 W. Piny VCCIO (GPIO_XX-XX_VREF) lze připojit k 3,3 V, protože používáme úroveň 3,3 V CMOS. Pin SDX_VREF by měl být také připojen k 3,3 V.
Zde nejsou použity všechny piny HDMI, DSI, CAM, jen je nechte plavat. Nezapomeňte připnout kolík EMMC_DISABLE_N na 3,3 V, protože místo funkce spouštění USB použijeme jako pevný disk kartu TF.
Poté připojte piny SDX_XXX k odpovídajícím vývodům ve slotu pro kartu TF a nejsou potřeba žádné vytahovací ani stahovací odpory. V tomto kroku jsme připraveni spustit modul Raspberry Pi Compute Module 3. Zapněte napájení v klesajícím pořadí: 5 V, 3,3 V a poté 1,8 V, systém by se měl spustit, ale protože neexistuje žádný výstup zařízení, jen nevíme, zda funguje dobře. V dalším kroku tedy musíme přidat displej, abychom jej zkontrolovali.
Než však budeme pokračovat, musíme nejprve Pi sdělit, jaká je funkce každého GPIO. Zde poskytuji nějaké soubory, do zaváděcí složky nově flashované karty TF vložím „dt-blob.bin“, „bcm2710-rpi-cm3.dtb“a „config.txt“. Vložte „dcdpi.dtbo“do složky /boot /overlay. Soubor dt-blob.bin definuje výchozí funkci každého GPIO. Změnil jsem GPIO14/15 na normální GPIO a přesunul funkci UART0 na GPIO32/33, protože potřebujeme GPIO14/15 pro propojení s LCD modulem. Také jsem Pi řekl, aby používal GPIO40/41 jako funkci pwm a aby byly pravým a levým zvukovým výstupem. Dcdpi.dtbo je překryvný soubor stromu zařízení a říká Pi, že jako funkci DPI použijeme GPIO0-25. Nakonec napíšeme „dtoverly = dcdpi“, abychom věděli, že Pi načte soubor překrytí, který jsme poskytli.
V tuto chvíli Raspberry Pi plně chápou, jaká funkce by měla být použita pro každé GPIO, a jsme připraveni jít dál.
Krok 3: Propojení modulu LCD
Protože v této konzole může být použit jiný modul DPI/RGB LCD, zde vezmeme jako příklad modul použitý v mé vlastní sestavě. A pokud jste vybrali jiný, zkontrolujte definici pinů vašeho modulu a proveďte připojení podle názvů pinů, jak je uvedeno v příkladu.
Na modulu LCD jsou dvě rozhraní: SPI a DPI. SPI slouží ke konfiguraci počátečních nastavení IC ovladače LCD a můžeme je připojit k jakémukoli nepoužívanému GPIO. Připojujte pouze piny Reset, CS, MOSI (SDA/SDI) a SCLK (SCL), pin MISO (SDO) se nepoužívá. K inicializaci ovladače LCD zde používáme knihovnu BCM2835 C Library pro řízení GPIO a vydává určitou inicializační sekvenci poskytovanou dodavatelem modulu. Zdrojový soubor najdete později v tomto pokynu.
Nainstalujte knihovnu BCM2835 C na jiný Raspberry Pi 3 podle zde uvedených pokynů. Potom pomocí příkazu „gcc -o lcd_init lcd_init.c -lbcm2835“zkompilujte zdrojový soubor. Poté přidejte nový řádek do souboru /etc/rc.local před „exit 0“: „/home/pi/lcd_init“(předpokládejme, že jste kompilovanou aplikaci vložili do složky/home/pi). Je třeba zdůraznit, že zdrojový soubor se používá pouze pro určitý modul, který jsem použil, a pro jiný modul LCD, stačí požádat dodavatele o inicializační sekvenci a podle toho upravit zdrojový soubor. Tento proces je docela ošidný, protože v tuto chvíli není z obrazovky nic vidět, proto důrazně doporučuji, abyste to udělali na desce RPI-CMIO, protože to vede ke všem GPIO, takže to můžete ladit pomocí uart nebo wlan.
Následující část je snadná, stačí připojit levé kolíky LCD modulu podle zde. Záleží na tom, jaký máte LCD modul, vyberte režim RGB moudře. Pro mě jsem zde vybral DPI_OUTPUT_FORMAT_18BIT_666_CFG2 (režim 6). Upravte řádek „dpi_output_format = 0x078206“podle svého výběru. A pokud váš LCD modul používá jiné rozlišení, upravte zde „soubor hdmi_timings = 480 0 41 60 20 800 0 5 10 10 0 0 0 60 0 32000000“.
Pokud jsou všechna nastavení správná, při příštím spuštění vašeho Pi byste měli vidět obrazovku na obrazovce po 30-40s černé (od napájení k systému načte váš inicializační skript SPI).
Krok 4: Klávesnice a zvuk
V posledních dvou krocích jsme dokončili jádro a výstup. Nyní přejdeme k části Vstup.
Herní konzole potřebuje klávesy a tlačítka. Zde potřebujeme 10 přepínačů ALPS SKPDACD010 jako tlačítka nahoru/dolů/doprava/doleva, LR a A/B/X/Y. A normální tlačítka 6x6 pro povrchovou montáž se používají pro další tlačítka, jako je spuštění/výběr a zvýšení/snížení hlasitosti.
Existují dva způsoby, jak propojit tlačítka s Raspberry Pi. Jedním ze způsobů je připojení tlačítek přímo k GPIO na Pi a jiným způsobem je připojení tlačítek k MCU a rozhraní s Pi přes protokol USB HID. Zde jsem vybral ten druhý, protože potřebujeme MCU, který by se stejně vypořádal s výkonem na sekvenci a je bezpečnější držet Pi mimo lidský dotek.
Připojte tedy klíče k STM32F103C8T6 a poté připojte MCU k Pi pomocí USB. Příklad programu MCU najdete na konci tohoto kroku. Změňte definice pinů v hw_config.c a zkompilujte je pomocí USB knihovny MCU, která se nachází zde. Nebo si můžete stáhnout hexadecimální soubor přímo do MCU, pokud budete na konci tohoto instruktu sdílet stejné definice pinů ve schématu.
Pokud jde o zvukové výstupy, oficiální schéma Raspberry Pi 3 B poskytuje dobrý způsob filtrování vlny pwm a stejný obvod by zde měl fungovat perfektně. Jedna věc, kterou je třeba zdůraznit, je, že nezapomeňte přidat řádek „audio_pwm_mode = 2“na konec souboru config.txt, aby se snížil šum zvukového výstupu.
K ovládání reproduktoru je zapotřebí ovladač reproduktoru. Zde jsem zvolil TDA2822 a obvod je oficiálním obvodem BTL. Telefonní konektor PJ-327 má na pravém výstupu kolík automatického odpojení. Pokud nejsou připojena žádná sluchátka, je kolík 3 připojen k pravému kanálu. A jakmile jsou sluchátka zapojena, tento pin se odpojí od pravého kanálu. Tento kolík lze použít jako vstupní kolík reproduktoru a při připojení sluchátek se reproduktor ztlumí.
Krok 5: Moc
Vraťme se do výkonové části a podívejme se na podrobný návrh napájení.
K dispozici jsou 3 výkonové sekce: napájení MCU, nabíječka/posilovač a DC-DC Bucks.
Napájení MCU je rozděleno od všech ostatních napájecích zdrojů, protože je potřebujeme k provedení sekvence před zapnutím. Když je tlačítko napájení stisknuto dolů, PMOS připojí EN pin LDO k baterii, aby LDO povolil. Poté se MCU zapne (tlačítko je stále stisknuto). Při spuštění MCU zkontroluje, zda je tlačítko napájení stisknuto dostatečně dlouho. Asi po 2 sekundách, pokud MCU zjistí, že je tlačítko napájení stále stisknuté, zatáhne za kolík „PWR_CTL“, aby byl PMOS zapnutý. V tuto chvíli MCU přebírá kontrolu nad napájením MCU.
Po opětovném stisknutí tlačítka napájení na 2 sekundy MCU spustí sekvenci vypnutí. Na konci sekvence vypnutí MCU uvolní pin „PWR_CTL“, aby se PMOS vypnul a napájení MCU je poté deaktivováno.
Část nabíječky/posilovače používá IC IP5306. Tento integrovaný IC s nabíjením 2,4 A a výbojem 2,1 A je vysoce integrovaný Soc pro použití powerbanky a je dokonale vhodný pro naše potřeby. IC je schopen nabíjet baterii, poskytovat výstup 5 V a současně ukazovat úroveň baterie pomocí 4 LED diod.
Část DC-DC Buck používá dva vysoce účinné 3A dolary SY8113. Výstupní napětí lze naprogramovat pomocí 2 odporů. Aby byla zajištěna sekvence napájení, potřebujeme, aby MCU nejprve aktivoval Booster. Signál KEY_IP bude simulovat stisknutí klávesy na pinu KEY IP5306 a umožní interní 5V zesilovač. Poté MCU povolí 3,3V buck zatažením za pin RASP_EN vysoko. A poté, co je k dispozici 3,3 V, je pin EN 1,8V buck vytažen vysoko a umožňuje výstup 1,8V.
Pokud jde o baterii, na konzoli stačí dvě Li-ion baterie 1000 mAh. Normální velikost tohoto druhu baterie je přibližně 50*34*5 mm.
Krok 6: Nastavení systému
V tomto kroku dáme dohromady všechna nastavení.
Nejprve si musíte stáhnout a načíst obrázek RetroPie na novou kartu TF. Návod a stažení najdete zde. Stáhněte si verzi Raspberrypi 2/3. Po flashování obrázku uvidíte 2 oddíly: oddíl „boot“ve formátu FAT16 a oddíl „Retropie“formátu EXT4.
Až to uděláte, nevkládejte jej okamžitě do Raspberry Pi, protože pro ROM musíme přidat oddíl FAT32. Pomocí nástrojů pro oddíly, jako je DiskGenius, upravte oddíl EXT4 na přibližně 5–6 GB a vytvořte nový oddíl FAT32 se vším volným místem, které zbývá na vaší kartě TF. Viz obrázek, který jsem nahrál.
Ujistěte se, že je váš systém schopen identifikovat čtečku karet TF jako zařízení USB-HDD a že v průzkumníku uvidíte 3 oddíly. Dva z nich jsou přístupné a Windows vás vyzve k formátování levého. NEformátujte !!
Nejprve otevřete oddíl „boot“a podle kroku 2 nastavte konfigurace pinů. Nebo můžete v tomto kroku jednoduše rozbalit soubor boot.zip a zkopírovat všechny soubory a složky do zaváděcího oddílu. Zkopírovaný skript lcd_init zkopírujte také do zaváděcího oddílu.
Zde jsme připraveni provést první spuštění, ale protože neexistuje žádný displej, důrazně doporučuji použít desku RPI-CMIO se zařízením USB wlan. Potom můžete nakonfigurovat soubor wpa_supplicant a v tomto kroku povolit ssh. Pokud si jej ale neplánujete pořídit, lze jako terminál UART použít GPIO32/33. Připojte pin TX (GPIO32) a RX (GPIO33) k desce usb-to-uart a získejte přístup k terminálu s přenosovou rychlostí 115200. V každém případě musíte ke svému Pi získat koncový přístup.
Při prvním spuštění se systém zasekne při pokusu o rozšíření systému souborů. Ignorujte to, stiskněte start (zadejte klávesu USB HID klávesnice) a restartujte počítač. Na terminálu zkopírujte skript lcd_init do domovské složky uživatele „pi“a podle kroku 3 nastavte automatické spuštění. Po dalším restartu byste měli vidět obrazovku, která se rozsvítí a něco ukáže.
V tuto chvíli je vaše herní konzole připravena ke hře. Abyste však mohli na kartu TF načíst ROMy a BIOSy, potřebujete pokaždé přístup k terminálu. Aby to bylo jednoduché, doporučuji nastavit oddíl FAT32.
Nejprve zálohujte složku RetroPie pod /home /pi na RetroPie-bck: „cp -r RetroPie RetroPie-bck“. Poté přidejte nový řádek do/etc/fstab: "/dev/mmcblk0p3/home/pi/RetroPie defaults, uid = 1000, gid = 1000 0 2" pro automatické připojení oddílu FAT32 do složky RetroPie s nastavením vlastníka na uživatele „pí“. Po restartu zjistíte, že obsah složky RetroPie je pryč (pokud není, restartujte znovu) a na obrazovce se zobrazí některé chyby. Zkopírujte všechny soubory v RetroPie-bck zpět do RetroPie a restartujte znovu. Chyby by měly zmizet a vstupní zařízení můžete konfigurovat podle pokynů na obrazovce.
Pokud chcete přidat ROM nebo BIOS, odpojte kartu TF, když je vypnutá, a připojte ji k počítači. Otevřete 3. oddíl (PAMATUJTE IGNOROVAT tip na formát !!!) a zkopírujte soubory do odpovídajících složek.
Krok 7: 3D potištěné pouzdro a tlačítka
Pro herní konzoli jsem navrhl pouzdro ve stylu GameBoy Micro.
Stačí vytisknout
4x ABXY. STL
2x LR. STL (potřeba přidat podporu)
1x CROSS. STL
1x TOP. STL
1x BOTTOM. STL
Tisknu je pomocí PLA s 20% výplní, 0,2 mm vrstvou a je dostatečně pevná.
Protože je případ těsný, zkontrolujte před tiskem přesnost tiskárny pomocí testovací kostky.
A tři 5 mm dlouhé φ3 mm šrouby a čtyři 10 mm dlouhé φ3 mm šrouby je třeba sestavit dohromady.
Krok 8: Vše dohromady a řešení problémů
Protože obvod je trochu komplikovaný, je to dobrá volba pro práci s PCB. Na konci tohoto kroku je nahráno celé schéma a moje vlastní verze DPS. Pokud máte v úmyslu použít moji verzi DPS, laskavě neodstraňujte mé logo ve vrstvě Top_Solder. Je lepší provést vlastní přizpůsobení a předat svůj vlastní soubor DPS místnímu výrobci, aby jej vytvořil, protože je opravdu těžké koupit všechny stejné díly, které používám na své DPS.
Po pájení všech součástek na desce plošných spojů a otestování je první věcí, kterou musíte udělat, stáhnout hexadecimální soubor do MCU. Poté nalepte modul LCD na desku plošných spojů. Modul LCD by měl být 3 mm nad deskou plošných spojů, aby se vešel do pouzdra. K nalepení použijte tlustou oboustrannou pásku. Poté připojte FPC ke konektoru a vložte kartu CM3L a TF. Nyní NEPájejte baterii, připojte USB napájecí zdroj a spusťte jej!
Zkontrolujte všechna tlačítka a displej. Změřte napětí mezi BAT+ a GND, zkontrolujte, zda je napětí kolem 4,2V. Pokud je napětí v pořádku, odpojte USB kabel a zapájejte baterii. Zkuste tlačítko napájení.
Vložte tlačítko CROSS a ABXY do horního pouzdra a vložte PCB do pouzdra. Pomocí 3 šroubů upevněte desku plošných spojů v pouzdře. Na zadní stranu všech tlačítek SKPDACD010 nalepte tlustou oboustrannou pásku a nalepte na ni baterii. POUŽÍVEJTE silnou pásku, abyste zabránili poškození kolíků SKPDACD010. Poté reproduktor přilepte k pouzdru BOTTOM. Než to zavřete, možná budete muset vyzkoušet všechna tlačítka, zkontrolovat, zda fungují, a správně se odrazit. Potom pouzdro zavřete 4 šrouby.
Užívat si.
Několik tipů při řešení potíží:
1) Trojnásobně zkontrolujte kolíkové připojení modulu LCD na schématu a na desce plošných spojů.
2) Veďte signálové vodiče LCD s omezením délky.
3) Pokud si nejste jisti výkonovými sekcemi, pájejte a testujte každou sekci podle pořadí napájení. Nejprve 5V a poté 3,3V a 1,8V. Po otestování všech výkonových sekcí pájejte ostatní součásti.
4) Pokud se displej často rozmazává, zkuste invertovat polaritu signálu PCLK nastavením dpi_output_format.
5) Pokud je displej hodně mimo střed, zkuste převrátit polaritu signálu HSYNC nebo VSYNC.
6) Pokud je displej mírně mimo střed, zkuste upravit nastavení přeskenování.
7) Pokud je displej černý, zkuste počkat, až se systém spustí se skriptem rc.local. Pokud potřebujete zobrazení od začátku, zkuste připojit rozhraní SPI k MCU a pomocí MCU inicializovat modul LCD.
8) Pokud je displej stále černý, znovu zkontrolujte inicializační sekvenci.
9) Jakékoli dotazy můžete položit zde nebo prostřednictvím e -mailu: [email protected]
Doporučuje:
ATBOY Minimální retro herní konzole: 5 kroků
ATBOY Minimal Retro Gaming Console: Malé retro konzole podobné nastavení založené na ATtiny85 x 0,96 OLED pro hraní vetřelců, Tetris atd
Ruční herní konzole pro kutily využívající RetroPie: 7 kroků
Ruční herní konzole pro kutily pomocí RetroPie: Podívejte se na výše uvedené video, abyste lépe porozuměli tomuto projektu. Pokuta. Je čas začít! Nejprve použijeme RetroPie. Zbývají nám tedy dvě možnosti. Pokud jsme již nainstalovali Raspbian na naši SD kartu, můžeme nainstalovat RetroP
Ruční herní konzole DIY Raspberry Pi Zero: 6 kroků (s obrázky)
Ruční herní konzole DIY Raspberry Pi Zero: V tomto projektu vám ukážu, jak jsem použil Raspberry Pi Zero, NiMH baterie, domácí ochranný obvod proti vybití, zpětný LCD a zvukový zesilovač k vytvoření ruční herní konzole, kterou lze hrát retro hry. Začněme
Ruční herní konzole ESP32: 21 kroků (s obrázky)
Ruční herní konzole ESP32: Tento návod ukazuje, jak použít ESP32 a ATtiny861 k vytvoření herní konzoly emulátoru NES
Retro herní konzole (N64 Mod) s KODI: 7 kroků (s obrázky)
Retro Gaming Console (N64 Mod) With KODI: Hraní retro her na starých školních konzolích je spousta zábavy, ale kupovat jednotlivé konzole a všechny hry, které k tomu patří, jsou příliš těžkopádné a drahé! Nemluvě o tom, pokud jste studentem vysoké školy/univerzity a stěhujete se předvečer