• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
      • Lovelace
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Делаем самую маленькую игровую консоль из raspberry pi zero.

4 марта, 2019

Купить данный шилд 1.33 для raspberry pi можно здесь: http://ali.pub/3658sz

 

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

Сначала устанавливаем образ retropi для raspberry pi zero.

Сам образ нужно скачать отсюда: https://yadi.sk/d/FAbQroH5r39NJg

Образ нужно заливать программой balenaEtcher скачать программу можно здесь: https://www.balena.io/etcher/

После того как залили образ, нужно настроить wi-fi и доступ по ssh, как описывалось вот в этой статье. Но в кратце опишу и здесь, нужно закинуть файл wpa_supplicant.conf в корень флешки (boot)

этот файл должен иметь следующее:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=RU
network={
ssid=”имя wi-fi сети”
psk=”пароль”
key_mgmt=WPA-PSK
}

это нужно для того чтобы после первого включения raspberry подключилась к вашей wi-fi сети

Еще нужно создать файл ssh без расширения и тоже его положить в корень boot

и закинуть два архива туда: rpi-fbcp-master.zip и mk_arcade_joystick_rpi-master.zip

После этого вытаскиваем флешку и вставляем в распберрипай

После того как подключились по ssh к распберри пай (Логин: pi Пароль: raspberry)для начала нам нужно сделать следующее:

Так как наш дисплей данного шилда работает по spi то нам нужно данную шину включить, это делается следующей командой:

sudo raspi-config

в данном окне выбираем

 

В следующем окне выбираем:

И выбираем yes. После этого нажимаем finish

После того как мы включили spi теперь нам нужно добавить строчки в файл  /etc/modules это нужно для включения модулей работающих с дисплеем

Это делается следующей командой sudo “nano/etc/modules”

и добавляем туда следующие строчки:

spi-bcm2835
flexfb
fbtft_device

должно получиться следующее, но еще с добавленной строчкой flexfb:

выйти из файла и сохранить его нужно комбинацией клавиш “ctrl+x” и потом нажать “y”

Следующий файл для редактирования будет: /etc/modprobe.d/fbtft.conf  в этот файл отвечает за тип дисплея

“sudo nano /etc/modprobe.d/fbtft.conf”

и туда нужно добавить следующую строчку:

options flexfb setaddrwin=0 width=240 height=240 init=-1,0x11,-2,120,-1,0x36,0x70,-1,0x3A,0x05,-1,0xB2,0x0C,0x0C,0x00,0x33,0x33,-1,0xB7,0x35,-1,0xBB,0x1A,-1,0xC0,0x2C,-1,0xC2,0x01,-1,0xC3,0x0B,-1,0xC4,0x20,-1,0xC6,0x0F,-1,0xD0,0xA4,0xA1,-1,0x21,-1,0xE0,0x00,0x19,0x1E,0x0A,0x09,0x15,0x3D,0x44,0x51,0x12,0x03,0x00,0x3F,0x3F,-1,0xE1,0x00,0x18,0x1E,0x0A,0x09,0x25,0x3F,0x43,0x52,0x33,0x03,0x00,0x3F,0x3F,-1,0x29,-3
options fbtft_device name=flexfb gpios=reset:27,dc:25,cs:8,led:24 speed=125000000 bgr=1 fps=60 custom=1 height=240 width=240

и также сохроняем файл.

Теперь давайте перейдем к архивам которые мы закинули в раздел boot на флешке.

сначала установим rpi-fbcp (Raspberry Pi Framebuffer Copy). Эта программа используется для копирования первичного кадрового буфера во вторичный кадровый буфер (например, FBTFT).

unzip /boot/rpi-fbcp-master.zip - команда для разархивирования
cd rpi-fbcp-master/ - переход в директорию rpi-fbcp-master
mkdir build - создаем папку build
cd build - переход в директори build
cmake .. - это команда собирает программу из исходного кода
make - этой командой компилируем программу
sudo install fbcp /usr/local/bin/fbcp - устанавливаем
cd ../.. - переход в начальную директорию
P.S. просто копируйте эти команды по очереди, и все встанет нормально. За исключением того что cmake может быть не установлена. Если вы используете тот образ на который я ссылку оставил, то все нормально будет.

После этого создаем новый файл по следующему пути:/etc/init.d/fbcp
это делается командой:
sudo nano /etc/init.d/fbcp

И добавим туда следующее:

#! /bin/sh<br>### BEGIN INIT INFO
# Provides:          fbcp
# Required-Start:    kmod
# Required-Stop:     kmod
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description:
# Description:
### END INIT INFO
case "$1" in
  start)
  /usr/local/bin/fbcp &
  ;;</p><p>  stop|restart|reload|force-reload)
  killall fbcp
  exit 0
  ;;</p><p>  *)
  log_success_msg "Usage: $0 start"
  exit 1
esac

выглядеть должно следующим образом:


далее нужно назначить права этому файлу, это делется командой:
sudo chmod +x /etc/init.d/fbcp
Теперь нужно эту программу добавить в автозагрузку:
sudo update-rc.d fbcp defaults

sudo nano /etc/rc.local - это файл автозагрузки и туда нужно добавить параметр fbcp& и выглядеть это все будет таким образом:


После этого нужно отредактировать файл /boot/config.txt и добавить туда в конец файла следующие строчки:
sudo nano /boot/config.txt
disable_overscan=1
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt=240 240 60 1 0 0 0
dtparam=spi=on

Теперь давайте приступим к конфигурации джойстика:

unzip /boot/mk_arcade_joystick_rpi-master.zip - распакуем архив
cd mk_arcade_joystick_rpi-master/ - перейдем в папку 
nano mk_arcade_joystick_rpi.c - отредактируем файл
в данном файле нужно найти строчку "static const int mk_arcade_gpio_maps[]" - данная строчка отвечает за назначение кнопок и изменить значения на вот такие:
static const int mk_arcade_gpio_maps[] = {6,19,5,26,13,21,16,20,0,0,0,0};

Каждая цифра соответствует пину в raspberry pi распиновку raspberry легко найти на просторах интернета. Тоесть мы берем кнопки и смотрим к каким они пинам подключены, и вписываем это здесь.
Пример:

Далее установим программу командами:
sudo mkdir /usr/src/mk_arcade_joystick_rpi-0.1.5/
sudo cp -a * /usr/src/mk_arcade_joystick_rpi-0.1.5/
export MKVERSION=0.1.5
sudo -E dkms build -m mk_arcade_joystick_rpi -v 0.1.5
sudo -E dkms install -m mk_arcade_joystick_rpi -v 0.1.5

P.S команды вводить поочереди

Для тестирования работы кнопок можно запустить тест:
sudo modprobe mk_arcade_joystick_rpi map=1
jstest /dev/input/js0

Тест будет выглядеть следующим образом:

Где при нажатии любой кнопки будут показываться значения. Выйти из данного режима можно клавишами Ctrl+C
Добавим данный модуль в модули) /etc/modules
sudo nano /etc/modules 
и добавим туда в конец строчку:
mk_arcade_joystick_rpi

Далее создадим файл "/etc/modprobe.d/joystick.conf"
sudo nano /etc/modprobe.d/joystick.conf
и добавим туда:
options mk_arcade_joystick_rpi map=1

выглядеть будет следующим образом:


Сохраняем файл и на этом работа с джойстиком закончена.

Теперь нужно поправить конфиг RetroPie, чтоб вызвать данный конфиг нужно перейти в начальную директорию командой:
cd ../..

Затем вызвать конфиг RetroPie:
sudo ~/RetroPie-Setup/retropie_setup.sh

И там нужно выбрать следующие параметры:
Fine tune for 1.44″ LCD: C Configuration / Tools -> 805 configedit -> 1 -> 0 -> 2 Render Resolution -> O Video output resolution -> OK -> Cancel -> Cancel -> Cancel
Выглядит следующим образом:


 

Ну и последний штрих, добавим наш джойстик в RetroPie, если этого не сделать ни одну игру у нас не увидит.

добавим в файл /opt/retropie/configs/all/emulationstation/es_input.cfg следующие строки:

sudo nano /opt/retropie/configs/all/emulationstation/es_input.cfg

Добавляем:

<?xml version="1.0"?>
<inputList>
  <inputAction type="onfinish">
    <command>/opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh</command>
  </inputAction>
  <inputConfig type="joystick" deviceName="GPIO Controller 1" deviceGUID="15000000010000000100000000010000">
    <input name="start" type="button" id="11" value="1"/>
    <input name="down" type="axis" id="1" value="1"/>
    <input name="right" type="axis" id="0" value="1"/>
    <input name="select" type="button" id="10" value="1"/>
    <input name="left" type="axis" id="0" value="-1"/>
    <input name="up" type="axis" id="1" value="-1"/>
    <input name="a" type="button" id="0" value="1"/>
    <input name="b" type="button" id="1" value="1"/>
  </inputConfig>
</inputList>

должно получиться вот так:

И настройка Джойстика для RetroArch:

sudo nano /opt/retropie/configs/all/retroarch/autoconfig/GPIO\ Controller\ 1.cfg

и прописываем там:

input_device = "GPIO Controller 1"
input_driver = "udev"
input_start_btn = "11"
input_exit_emulator_btn = "11"
input_down_axis = "+1"
input_right_axis = "+0"
input_state_slot_increase_axis = "+0"
input_select_btn = "10"
input_left_axis = "-0"
input_state_slot_decrease_axis = "-0"
input_up_axis = "-1"
input_a_btn = "0"
input_b_btn = "1"
input_reset_btn = "1"
input_enable_hotkey_btn = "10"

 

Получится:

На этом в принципе настройку можно закончить, и переpгрузить нашу консоль командой sudo reboot после перезагрузки у нас загорится экран и там должна быть надпись WELCOME, чтоб эта надпись исчезла, нам нужно добавить игры. Так как в этом шилде мало кнопок, то лучше всего играть в игры которые были на 8bitных консолях, в России это были денди. Вот ссылка на сайт где можно их скачать: http://www.emu-land.net/consoles/dendy/roms После скачивания файлов в формате .nes их нужно закинуть в папку эмулятора.

Это можно сделать несколькими способами:

Один из способов это зайти по ip адреса таким образом \\”ip адрес”\roms\nes и закинуть туда наши файлики

Или можно сделать следующим образом, скачать программу WinSCP установить и запустить ее. После запуска будет вот такое поле:

В поле “имя хоста” вписываем адрес raspberry pi к которому мы подключались для настройки логин: pi пароль: raspberry 

После подключения, нужно зайти по пути RetroPie/roms/nes и туда закинуть игры с расширением .nes 

Все, после перезагрузки, если вы все правильно сделали, у Вас появится меню в котором вы можете выбрать игру и начать играть в нее.

Игры nes имеют разрешение 240×240 прям как наш дисплей, но эмулятор будет немного уменьшать картинку, чтоб растянуть игру на весь экран нужно прописать следующее:

sudo nano /opt/retropie/configs/nes/retroarch.cfg

и добавить туда:

video_fullscreen_x = “0”
video_fullscreen_y = “0”
video_scale_integer = true

А в файл:

sudo nano /opt/retropie/configs/all/retroarch-core-options.cfg

и добавить

quicknes_use_overscan_h = "disabled"

Все, после этого можно будет перезапустить raspberry pi и игры будут растягиваться ( картинка с дисплея 1.44 с меньшим разрешением, для более наглядности.

Было:

Стало:

В принципе на этом все, статья получилась длинная и запутанная. Просьба если нашли команды неисправные, напишите пожалуйста, чтоб я исправил это в статье и чтоб все у всех было без ошибок.

Ну а для тех кто дочитал до конца, выкладываю рабочий образ с уже всеми настройками для работы с дисплеем 1.33: https://yadi.sk/d/rgRpafmMSVjemQ

Подробнее и визуально можно увидеть в видео:



Primary Sidebar

Поиск

Новые записи

  • Умные шторы – как правильно их выбрать?
  • Автоматизация открытия и закрытия штор в Home Assistant.
  • Лучшая карточка Lovelace управления шторами в Home Assistant.
  • Интеграция ИИ Deepseek в Home Assistant
  • Выводим уведомления из умного дома Home Assistant на Android TV с помощью программы TvOverlay.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·