Купить данный шилд 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
Подробнее и визуально можно увидеть в видео: