Pi-Pocket - przenośna konsola do gier z Raspberry Pi

Pi-Pocket - przenośna konsola do gier z Raspberry Pi
Pobierz PDF Download icon
Zapewne większość czytelników EP pamięta emocje i pierwsze konsole do gier. Ówczesne gry, choć nie zachwycały grafiką, potrafiły wciągnąć na długie godziny. Co prawda, tamtego sprzętu na próżno szukać w sprzedaży, ale współczesna technika i technologia dają możliwość "powrotu" do tamtych lat. Tak właśnie postąpił autor opisywanego projektu, który przygotował nowoczesną wersję konsoli Nintendo Game Boy, która na dodatek pozwala na uruchamianie nowszych gier i ma kolorowy wyświetlacz.

Autorem projektu jest Travis Brown z USA. Choć prezentowane urządzenie opiera się o Raspberry Pi i różne moduły, a także bazuje na zaawansowanym, gotowym oprogramowaniu, wymaga bardzo dużo "kombinowania" oraz spędzenia czasu nie tylko z lutownicą, ale i z miniaturową wiertarką/szlifierką kątową. Opis projektu został opublikowany pod adresem http://goo.gl/x8Lsbr.

Wstęp

Fotografia 1. Rozmontowany, oryginalny Nintendo Game Boy Pocket

Autor projektu miał niesprawnego Game Boy'a Pocket - niewielką, przenośną konsolę z wbudowanym kontrolerem i wyświetlaczem monochromatycznym. Chcąc ją przywrócić do "życia" zauważył, że obudowa konsoli jest na tyle duża, że zmieści Raspberry Pi, a ten komputer z odpowiednim systemem operacyjnym jest w stanie uruchomić emulator, który pozwoliłby na włączanie różnego rodzaju 8- i 16-bitowych gier, takich jak wydawane na konsole Nintendo Entertainment System (popularny NES, znany w Polsce w wersji Pegasus), Game Boy, Sega Master System i Game Gear. Co więcej, Linux sprawia, że na zmontowanej konsoli da się też grać w niektóre gry PeCetowe - i to wszystko na przenośnym mini-komputerku, bez potrzeby noszenia ze sobą stosu kartridży.

Autor wykorzystał posiadany przez siebie model Nintendo Game Boy Pocket, przy czym kluczowe elementy tej konsoli, które posłużyły do stworzenia Pi-Pocket to obudowa wraz z płytką z przyciskami. Większość pozostałych komponentów została wymieniona.

Potrzebne podzespoły:

  • Raspberry Pi Model B z 512 MB pamięci RAM.
  • 2,5-calowy, kolorowy wyświetlacz LCD z wejściem analogowym.
  • Karta pamięci SD (w projekcie użyto modelu SanDisk Ultra Micro SDHC Class 10 30 Mb/s o pojemności 32 GB.
  • Płytka Teensy 2.0 USB Development Board.
  • Game Boy Pocket - może być niesprawny - ważne, by miał działające przyciski.
  • Akumulator Li-Ion lub Li-Po o napięciu 3,7 V i pojemności około 2600 mAh (w tym wypadku chiński Flat Cell LP606168).
  • Przetwornica podwyższająca napięcie z 3,7 V do 5 V.
  • Przetwornica obniżająca 3,3 V / 1 A.
  • Miniaturowy wzmacniacz audio.
  • Moduł ładowania akumulatorów litowych 3,7 V.
  • Miniaturowy, okrągły głośnik o średnicy 22 mm.
  • Płaskie złącze USB.
  • Szybka chroniąca ekran konsoli.

Obudowa

Jako obudowa posłużył Game Boy Pocket w wersji przezroczystej, co nie tylko sprawiło, że wnętrze urządzenia jest widoczne z zewnątrz, ale w razie potrzeby łatwo jest dorobić kawałek obudowy z również przezroczystego pleksi, bez potrzeby dobierania koloru czy malowania całości.

Game Boy został rozłożony na kawałki (fotografia 1). Ponieważ Pi-Pocket miał być zasilany wbudowanym akumulatorem, zamiast bateriami AAA, autor zakleił na stałe klapkę baterii, po czym wypolerował wnętrze obudowy i wyciął elementy, które służyły tylko i wyłącznie do pozycjonowania kartridży z grami.

Fotografia 2. Zastosowany akumulator litowo-jonowy

Fotografia 3. Użyte płaskie gniazdo USB

W miejsce ich i obudowy, wmontowany został akumulator litowo-jonowy (fotografia 2). Gniazdo kartridży zostało zaklejone przezroczystym plastikiem, a w nim wycięto mały otwór na kartę SD, na której będą przechowywane gry i system.

W obudowie (w miejscu dotychczasowego portu kabla EXT) przygotowano też miejsce na złącze USB (fotografia 3), za którego pomocą Pi-Pocket można będzie w przyszłości rozbudować o dodatkowe funkcje, takie jak choćby dostęp do sieci Wi-Fi za pomocą karty sieciowej na USB.

Pad

Fotografia 4. Moduł Teensy 2.0

Nieodłącznym elementem każdej prawdziwej konsoli do gier jest przynajmniej jeden pad, czyli kontroler, za pomocą którego sterujemy postaciami w grach. W przypadku Game Boy'a, pad jest zintegrowany w obudowie. Zastąpienie go innym kontrolerem byłoby bardzo niewygodne, dlatego autor zdecydował się wykorzystać oryginalną płytkę Pada.

Kontroler Game Boy'a ma cztery przyciski kursorów, dwa przyciski akcji i dwa dodatkowe przyciski "select" i "start". Płytka drukowana, na której zostały wykonane zawiera trochę niepotrzebnych elementów, które zajmują cenną przestrzeń w obudowie, dlatego autor je wyciął - usunął m.in. złącza i kondensatory, przycinając całość do potrzeb, ale tak by na płytce pozostały oryginalne otwory montażowe.

Konieczne było też przecięcie niektórych ścieżek, które łączyły ze sobą wyprowadzenia przycisków. Wynika to z faktu, że pad był podłączony do oryginalnej jednostki centralnej w inny sposób, niż będzie do Raspberry Pi.

W tworzonym projekcie, każdy z przycisków łączony jest za pomocą dwóch przewodów, gdzie jeden przewód prowadzi do masy, a drugi do interfejsu Teensy (fotografia 4), który symuluje klawiaturę. W praktyce, ze względu na istniejące wspólne połączenia, wystarczyło zastosowanie 8 przewodów do Teensy i 2 przewodów do masy.

Sam moduł Teensy, choć jest bardzo mały, wymagał przycięcia, by zmieścić się w obudowie. Autor obciął brzegi płytki, usunął jej gniazdo USB i przymocował ją do PCB pada, podłączając wyprowadzenia.

Raspberry Pi

Tabela 1. Parametry dostępnych płytek Teensy

Kolejnym krokiem było przygotowanie Raspberry Pi do montażu w obudowie. Niewielkie rozmiary Game Boy'a sprawiły, że konieczne okazało się usunięcie niepotrzebnych złączy i wyprowadzeń z komputerka. Autor pozostawił tylko gniazdo kart SD, analogowe wyjścia audio i wideo oraz port USB.

W efekcie z płytki usunięto interfejs wyświetlacza cyfrowego, kamery, wyprowadzenia GPIO, gniazda ethernetowe i HDMI, a nawet porty USB, audio i wideo oraz regulator zasilania wraz z kondensatorem, które zastąpiono mniejszą przetwornicą. Jeśli operację ich demontażu wykona się poprawnie, Raspberry Pi będzie wciąż dobrze działać.

Wyświetlacz

Z punktu widzenia użytkownika, podstawową różnicą pomiędzy Pi-Pocket a oryginalnym Game Boyem jest wyświetlacz. Zamiast starego, monochromatycznego, o rozdzielczości 160×144 piksele, autor zastosował większy, kolorowy, 2,5-calowy ekran o rozdzielczości 480×234 piksele (fotografia 5).

Co więcej, w obudowie mógłby się nawet zmieścić wyświetlacz 3-calowy, ale autor projektu nie był w stanie znaleźć odpowiedniego modelu z analogowym interfejsem. Użycie niekompatybilnego ekranu wymagałoby zamontowania dodatkowego konwertera sygnałów, który nie tylko zajmowałby cenne miejsce w obudowie, ale też niepotrzebnie zwiększałby komplikację układu i wymagałby włożenia dodatkowej pracy w projekt.

Fotografia 5. 2,5-calowy wyświetlacz, oklejony paskami czarnej taśmy izolacyjnej

Fotografia 6. Miniaturowa przetwornica obniżająca

W Pi-Pocket wykorzystano istniejącą płytkę interfejsu wyświetlacza, przy czym po przyjrzeniu się oznaczeniom jej wyprowadzeń, da się zauważyć, że jest tam miejsce na napięcie 3,3 V. Okazuje się, że jest ono wystarczające do zasilenia płytki, mimo że standardowo jest ona zasilana napięciem z zakresu od 5 V do 12 V, co skutkuje niewielką zmianą jasności wyświetlacza i wynikało z konieczności współpracy Game Boy'a z bateriami, które mogły się wyczerpywać. Co więcej, użycie napięcia 3,3 V zamiast wyższego spowodowało zmniejszenie poboru prądu przez wyświetlacz o 30 mA do 100 mA.

Nowy wyświetlacz mieści się w obudowie niemal perfekcyjnie. Autor musiał tylko delikatnie przyciąć niektóre wystające elementy plastikowe obudowy, w efekcie czego idealnie pasuje na szerokość. Jest on natomiast krótszy na długość, co wynika z faktu, że oryginalny wyświetlacz był nietypowy pod względem wymiarów: niemal kwadratowy, podczas gdy standardowo produkowane ekrany mają proporcje 4:3.

Pozostałą w pionie przestrzeń warto czymś zakryć, dla uzyskania atrakcyjnego widoku. Można użyć np. czarnego kartonu, albo choćby taśmy izolacyjnej, którą większość czytelników ma pod ręką. Taśmę można nakleić na brzegi wyświetlacza, optycznie zwiększając jego rozmiary, przy czym jego krawędzie i tak są zakryte przez oryginalną czarną obwódkę na obudowie.

Wyświetlacz został na stałe przyklejony do frontu obudowy za pomocą kleju na gorąco. Z płytki interfejsu wyświetlacza wymontowano niepotrzebne komponenty, a kilka przeniesiono. Autor usunął trzy kondensatory i jedną cewkę.

Pozostały jeden kondensator i jedna cewka były konieczne do uzyskiwania napięcia 2 V, by zasilić LED-owe podświetlenie ekranu, przy czym zostały one umieszczone na dole ekranu, dzięki czemu całość poprawnie mieści się w obudowie.

W górnej części obudowy, tuż przy wyświetlaczu, w oryginalnym Game Boy'u Pocket znajdował się włącznik zasilania. Autor go nieco zmodyfikował i podłączył do niego przewody biegnące do dołu obudowy, a także zamontował tam dwukolorową diodę LED, która informuje o stanie pracy i zasilania urządzenia.

Zasilanie

Cały Pi-Pocket potrzebuje trzech głównych regulatorów zasilania, przystosowujących poziomy napięć do poszczególnych podzespołów. Pierwszy z nich to przetwornica 3,3 V (fotografia 6), która służy do zasilania wyświetlacza, by - jak wspomniano wcześniej, obniżyć jego pobór prądu.

W oryginalnym Game Boy'u znajduje się regulator liniowy, pozwalający uzyskać takie właśnie napięcie (potrzebne jednostce centralnej), ale zastąpienie go nowoczesną przetwornicą pozwoliło zmniejszyć pobór prądu o około 25%. Rozmiar nowej, gotowej przetwornicy jest tak mały, ze mieści się w obudowie, nawet jeśli zostanie zamontowana pod kątem prostym do płytki Raspberry Pi.

Fotografia 7. Przetwornica podwyższająca napięcie do 5 V, podłączona bezpośrednio do akumulatora

Fotografia 8. Układ ładowania akumulatora

PCB regulatora ma wymiary odpowiadające rozstawowi wyprowadzeń obudowy TO-220. Przetwornica ta została podłączona do wyjść GPIO Raspberry Pi, by pobierać napięcie 5 V i dostarczać 3,3 V. Sam wyświetlacz, dla uproszczenia połączeń, również został podłączony do GPIO komputerka.

Drugi regulator służy do kontroli pracy akumulatora i podnoszenia jego napięcia do poziomu 5 V (fotografia 7). Zabezpiecza on akumulator i resztę urządzenia przed zwarciami. Został zamontowany w wolnej przestrzeni w bocznej części obudowy. Trzecia przetwornica (fotografia 8) służy ładowaniu akumulatora prądem z 5-voltowego wejścia umieszczonego w dolnej części obudowy. Umieszczono ją mniej więcej tam, gdzie znajdował się oryginalny regulator konsoli.

Dźwięk

Fotografia 9. Płytka wzmacniacza

Pewnym problemem okazało się uzyskanie dźwięku na Pi-Pocket. Podstawowym problemem był fakt, że Raspberry Pi, w przeciwieństwie do PCB oryginalnego Game Boy'a, nie ma wyjścia głośnikowego. Zamiast tego ma wyjście słuchawkowe, którego poziomy napięcia zdecydowanie nie wystarczają do zasilania wbudowanego głośniczka, więc autor musiał znaleźć odpowiednią płytkę wzmacniacza (fotografia 9), aby móc dostarczyć wystarczający poziom sygnału audio - w praktyce wystarczyło ją delikatnie przyciąć i przykleić w pozostałej wolnej przestrzeni.

Konieczna okazała się też wymiana głośnika, gdyż oryginalny był zbyt duży, by zmieścić się wraz z pozostałymi komponentami. Na szczęście postęp technologiczny na przestrzeni niemal 20 lat, od kiedy wyprodukowano pierwsze Game Boy'e tego typu, sprawił, że obecnie na rynku znaleźć można głośniki o znacznie lepszych parametrach, a jednocześnie o mniejszych wymiarach.

Kluczowe było takie dobranie elementu, aby jego średnica pasowała do otworów w obudowie, w miejscu gdzie znajdował się oryginalny głośnik. Autorowi nie udało się to idealnie, ale znalazł podzespół tylko o nieznacznie większej średnicy. Komponent miał ponadto połowę głębokości oryginalnego głośnika i kilkakrotnie większą moc. Wystarczyły tylko ponownie delikatnie przyciąć obudowę.

Trzeba było też zastosować regulator głośności - autor wykorzystał w tym celu oryginalne pokrętło, przy czym ponieważ standardowo było ono przymocowane do głównego PCB Game Boy'a, konieczne było znalezienie innego sposobu i miejsca montażu. Padło na otwór przy złączu USB, do którego to gniazda zresztą przymocowano potencjometr.

Montaż całości

Połączenie ze sobą wszystkich komponentów (fotografia 10) nie było łatwe, ale autorowi udało zrobić się to w taki sposób, by niektóre elementy można było swobodnie odczepić razie potrzeby, podczas gdy inne były przylutowane na stałe.

Do frontowej części obudowy przymocowano wyświetlacz i płytkę jego kontrolera. Do tylnej - złącze USB za pomocą kleju szybkoschnącego. Do Raspberry Pi podłączono przewody, które pozwalają rozprowadzić napięcie 5 V w odpowiednie miejsca (rysunek 11).

Fotografia 10. Zebrane komponenty przed montażem

Rysunek 11. Sposób podłączenia elementów zasilających

Całość mieści się niemal idealnie, pozostawiając tylko przestrzenie o szerokości około 1 milimetra, dzięki czemu ciężar wewnątrz obudowy jest dosyć równomiernie rozmieszczony i trzymając urządzenie w ręce ma się wrażenie, że ma się do czynienia z oryginalnym produktem.

Oprogramowanie

Na kartę SD autor nagrał obraz systemu RetroPie. Jest on dostępny bezpłatnie, do pobrania, w wersjach na różne odmiany Raspberry Pi, ze strony http://goo.gl/OSn8HU. Standardowa wersja systemu automatycznie uruchamia się i emuluje około 30 różnych konsol. System RetroPie można też samodzielnie dostosować do swoich potrzeb.

Listing 1. Kod źródłowy programu modułu Teensy

Ponadto konieczne było oprogramowanie modułu Teensy. Kod źródłowy programu został pokazany na listingu 1.

Podsumowanie

Omówiony projekt jest dosyć żmudny w wykonaniu, ale uzyskany efekt może wynagrodzić starania. Zabierając się do wykonania takiej przeróbki warto dokładnie przeanalizować i wcześniej zaplanować rozkład komponentów w obudowie urządzenia.

Autor niejednokrotnie odkrywał w trakcie pracy, że jego wcześniejsze szacunki były nazbyt optymistyczne i tak naprawdę ani większy akumulator, ani większy wyświetlacz, prawdopodobnie by się nie zmieściły. Projekt pokazuje natomiast, jak łatwo można korzystać z modułowych podzespołów, które tanim kosztem można nabyć np. na aukcjach internetowych.

Rysunek 12. Sposób podłączenia elementów audio

Fotografia 13. Działający oryginalny Game Boy Pocket oraz Pi-Pocket z kolorowym wyświetlaczem

Niestety, jeśli policzyć łączne koszty, to wynoszą one około 140 dolarów, nie licząc kosztów przesyłki komponentów, które kupowane były u różnych sprzedawców. Miłośnikom starych gier, którzy nie mają ochoty wydawać 600 zł na komponenty do konsoli i samodzielnie jej montować można polecić instalację RetroPie na Raspberry Pi podłączonym do telewizora lub po prostu zainstalowanie emulatorów gier z RetroPie na zwykłym komputerze.

Marcin Karbowniczek, EP

Artykuł ukazał się w
Elektronika Praktyczna
grudzień 2015
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów