Raspberry Pi 2,3 с 5-дюймовым экраном и тачскрином

Raspberry Pi с экраном 5 дюймов и тачскрином








В комплекте с монитором поставляется п-образный HDMI-HDMI переходник, стилус и латунные стойки с винтиками.


С обратной стороны экрана есть переключатель, сдвиньте его ближе к микро-usb разъёму.





Здравствуйте.


Мне уже доводилось писать про установку ОС на Raspberry Pi без графики и про управление GPIO. Сейчас мы будем устанавливать ОС RASPBIAN JESSIE с графикой и подключать 5-ти дюймовый экран с тачскрином, который можно приобрести в магазине чип и дип за 4000р.
Плюс, поверх основной ОС установим полноценный медиацентр Kodi для удобного просмотра видео контента. То есть для переключения между RASPBIAN и Kodi не потребуется перезагрузка.


Для работы с этим экраном будем устанавливать не самый последний релиз, у меня с ним возникли трудности (проблемы с тачскрином и ещё с чем-то), а образ полугодовалой давности — Raspbian Jessie 2016-09-23 5GB (rpi2+3) (kernel 4.4+).img.7z. Скачать его можно здесь и прямая ссылка, так же на всякий случай здесь.


Распакуйте образ, который будет весить 4 с лишним Гб.
SD-карточку лучше всего используйте не менее 8ГБ и желательно хорошего качества известного бренда (у меня Transcend Premium 400x). От этого сильно зависит скорость работы малины.



О том, как поместить образ на флешку написано в предыдущей статье, начиная с этого места и до главы "Запуск". После выполнения описанных там действий не вынимайте карточку и возвращайтесь сюда.



Теперь нужно найти и отредактировать файл config.txt (если работаете в windows, то обязательно скачайте текстовый редактор Notepad++ и делайте всё в нём).

В windows этот файл находится в корне диска (на самом деле это загрузочный раздел boot, около 100Мб. Размечен как FAT32. Другая часть флешки размечена в ext4 и windows просто её не видит) на который записывали образ…




… а в   на разделе boot.



Разметка карточки происходит следующим образом: создаётся первый раздел (boot) для загрузочных файлов и форматируется в FAT32, размером 100Мб, а второй раздел форматируется в ext4 для файловой системы, размером около 5ГБ. При первом старте, файловая система автоматически расширяется на всё оставшееся пространство карточки (в предыдущих релизах это делалось вручную).



Ну, что-то я отвлёкся…

Открываем файл config.txt и находим там строчки:

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1


Изменяем их так:

# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0


Пока что с этим файлом всё, теперь малина заведётся с нашим мониторчиком (без этих строк на экране была бы только рябь).

Сохраняем файл, отсоединяем карточку, вынимаем из компа и вставляем в RPI.


Собираем «бутерброд» из экрана и малины (так чтоб совпали HDMI-разъёмы), вставляем HDMI-переходник (входит он туго), и подаём питание на RPI и на экран (то есть нужно запастись двумя проводами с микро-usb и двумя блоками питания). Да, не забудьте подключить клавиатуру и мышку.

БП для малины должен быть около 2-х ампер, а для экрана хватит и одного. Если питания будет не хватать, то на экране будет появляться иконка с жёлтой молнией.
Если малина перегреется то на экране появится термометр.



После старта на экране покажется разноцветный квадрат, а потом надпись на на белом фоне, сообщающая, что файловая система расширена на всё оставшееся пространство карточки. Следом появятся четыре малинки в левом углу и побегут различные строчки, потом экран потемнеет на несколько секунд и появится рабочий стол…



Ваши данные:
Login — pi
Password — raspberry


Маленькое отступление: первое — тачскрин у Вас пока ещё не работает, и второе — если при работе окно не помещается в экран и не видно каких-то кнопок, тогда нужно зажать левый Alt и мышкой таскать окно за любое место.




Сначала необходимо сконфигурировать систему.

Делать это можно открыв терминал   и писать команды там (правда это не совсем удобно ибо мелко).



Либо подключиться по ssh (логин и пароль написан выше). Я буду делать по ssh и Вам советую поступить так же.


Итак, вводим команду:

sudo raspi-config




Первый пункт игнорируем так как файловая система уже расширена автоматически. В этом можно убедиться открыв ещё один терминал и дать команду:

df -h





Второй пункт — смена пароля, остаётся на Ваше усмотрение.

Третий и четвёртый пункты не трогаем.

Открываем пятый пункт и выбираем Change Locale


Если нужно вернуться в предыдущее окно нажмите Esc.


Стрелочкой «вниз» крутим до ru_RU.UTF-8 UTF-8, ставим «звёздочку» пробелом и жмём Enter.




В следующем окне выбираем ru_RU.UTF-8 и опять жмём Enter.




Возвращаемся в пятый пункт и заходим в Change Timezone, выбираем Europe и жмём Enter.




Выбираем Ваш город и жмём Enter.




Опять возвращаемся в пятый пункт и заходим в Change Keyboard Layout, выбираем Generic 105-key (Intl) PC и жмём Enter.




В следующем окне выбираем Other и жмём Enter.




Крутим стрелочкой до Russian и жмём Enter.




В следующем окне крутим вверх до Russian и жмём Enter.




Далее выбираем удобный для Вас способ переключения раскладки и жмём Enter.




В следующих трёх окнах просто жмём Enter.








Далее сделайте так и Enter.




Теперь клавишей Tab выберите "Finish" и жмите Enter.




На этом основное конфигурирование закончено (при желании к нему можно вернутся в любое время), перегрузите систему командой:

sudo reboot





Теперь про обновления.

Обновите репозитории командой…

sudo apt update

… Но не обновляйте систему — sudo apt upgrade, если это сделать, то начнутся проблемы с тачскрином, раскладками клавиатуры и ещё с чем-то.


Далее можно устанавливать разные программы, я в первую очередь ставлю менеджер пакетов synaptic и mc (так как часто делаю что-то по ssh).

sudo apt install synaptic mc



Устанавливаем xscreensaver без которого экран будет гаснуть через 10мин.

sudo apt install xscreensaver

Что ещё устанавливать решайте сами.



Теперь надо вывести на верхнюю панель значёк раскладок клавиатуры. Если это делать штатными средствами, то оно будет работать до первой перезагрузки. Поэтому мы пойдём другим путём.

Устанавливаем программу gxkb

sudo apt install gxkb



Добавляем gxkb в автозагрузку:

nano /home/pi/.config/lxsession/LXDE-pi/autostart


После всех строчек нужно вписать вот это — @gxkb


Сохраните и закройте файл.


Выбор комбинации клавиш для переключения делается в файле — /home/pi/.config/gxkb/gxkb.cfg, по умолчанию там указан alt_shift, я переправил на ctrl_shift:

nano /home/pi/.config/gxkb/gxkb.cfg




Сохраните, закройте файл и перегрузитесь.




Тачскрин


Скачайте в домашнюю папку архив:

cd /home/pi
wget https://istarik.ru/file/LCD-show-161112.tar.gz

Архив брался здесь.


Распаковав его:

tar xvf LCD-show-161112.tar.gz


У Вас появится папка LCD-show, в которую нужно перейти…

cd LCD-show


И запустить скрипт:

sudo ./LCD5-show



После этого малина сразу перезагрузится и оживёт уже с рабочим тачскрином. Если точность позиционирования Вас устраивает, то можно ничего не калибровать.


Если необходима калибровка, тогда переходим в папку LCD-show…

cd /home/pi/LCD-show


И устанавливаем пакет xinput-calibrator_0.7.5-1_armhf.deb

sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

То же самое можно проделать в «проводнике», тыкнув правой кнопкой мышки по пакету и выбрав пункт «Установка пакетов».


Теперь зайдите в меню программ, в раздел в разделе «Параметры» и выберите «Calibrate Touchscreen». После точного попадания во все четыре мишени появятся настройки, которые нужно записать в файл /etc/X11/xorg.conf.d/99-calibration.conf.


Запускаем ещё один терминал, открываем там файл…

sudo nano /etc/X11/xorg.conf.d/99-calibration.conf


… и удаляем всё из него.

Возвращаемся в окно с калибровочными данными, копируем секцию «InputClass» и вставляем её в ранее открытый и опустошённый файл.

Section "InputClass"
	Identifier	"calibration"
	MatchProduct	"ADS7846 Touchscreen"
	Option	"Calibration"	"171 3957 174 4042"
EndSection

У Вас свои цифры.


Чтоб добавить «правую кнопку мыши» нужно сделать так:

Section "InputClass"
	Identifier	"calibration"
	MatchProduct	"ADS7846 Touchscreen"
	Option	"Calibration"	"171 3957 174 4042"
        Option "EmulateThirdButton" "1"
        Option "EmulateThirdButtonTimeout" "550"
        Option "EmulateThirdButtonMoveThreshold" "50"
EndSection

Для появления контекстного меню нужно удерживать стилус около полусекунды. Последняя опция — это видимо порог дрожания.

Сохраняем файл, закрываем и перегружаемся. Теперь всё будет точно.



Поскольку калибровщик вносит небольшие изменения в файл config.txt (который мы правили ещё на компьютере), то стоит о нём немного сказать. Это файл в котором находятся стартовые настройки, откроем его и посмотрим:

sudo nano /boot/config.txt


Наши правки исчезли и появились в конце, с ещё одной строкой:

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0
dtoverlay=ads7846,cs=1,penirq=25,penirq_pull=2,speed=50000,keep_vref_on=0,swapxy=0,pmax=255...


Мы тоже добавим…

Находим строки:

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720


И делаем их так:

# uncomment to force a console size. By default it will be display's size minus
# overscan.
framebuffer_width=800
framebuffer_height=480



Чуть ниже находим это:

# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1


И добавляем три строки:

# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1
hdmi_ignore_cec_init=1
hdmi_ignore_cec=1
gpu_mem=256

Можете попробовать выделить больше памяти под видео — gpu_mem=512.


Если хотите увеличить ток поступающий на usb, тогда добавьте куда-нибудь строчку:

max_usb_current=1

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

Сохраняем файл и перегружаемся.


Описанных настроек вполне достаточно для нормальной работы RPI, однако рекомендую почитать про различные параметры этого конфига вот здесь.



Wifi и Bluetooth

Если хотите отключить wifi и/или bluetooth, тогда надо создать файл — /etc/modprobe.d/raspi-blacklist.conf

sudo nano /etc/modprobe.d/raspi-blacklist.conf


И вставить в него вот это:

#wifi
blacklist brcmfmac
blacklist brcmutil
#bt
blacklist btbcm
blacklist hci_uart

Так отключен wifi и bluetooth.

А так отключен только wifi:

#bt
blacklist btbcm
blacklist hci_uart




Samba

Устанавливаем:

sudo apt-get install samba samba-common-bin


Бекапим конфиг:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak


Создаём свой:

sudo nano /etc/samba/smb.conf


Содержимое:

[global]
workgroup = WORKGROUP
netbios name = RaspberryPi
server string = share
security = user
map to guest = bad user
browseable = yes

[istarik]
path = /home/pi/papka
writeable = yes
browseable = yes
guest ok = yes

Сохраняем и закрываем.


Создаём папку для самбы:

mkdir /home/pi/papka


Даём ей права:

sudo chmod -R 777 /home/pi/papka


Рестартуем самбу:

sudo /etc/init.d/samba restart


Настроено на гостевой вход (заходи кто хошь) и на чтение-запись.




Медиацентр Kodi


Создаём группу «input», если она не существует:

sudo addgroup --system input



Устанавливаем Kodi:

sudo apt-get install kodi

После установки ничего не запускаем.


Создаём файл — /etc/udev/rules.d/99-input.rules

sudo nano /etc/udev/rules.d/99-input.rules


И вносим в него следующее:

SUBSYSTEM==input, GROUP=input, MODE=0660
KERNEL==tty[0-9]*, GROUP=tty, MODE=0660

Сохраняем и закрываем.


Создаём ещё один файл — /etc/udev/rules.d/10-permissions.rules

sudo nano /etc/udev/rules.d/10-permissions.rules


С таким содержанием:

# input
KERNEL=="mouse*|mice|event*", MODE="0660", GROUP="input"
KERNEL=="ts[0-9]*|uinput", MODE="0660", GROUP="input"
KERNEL==js[0-9]*, MODE=0660, GROUP=input
# tty
KERNEL==tty[0-9]*, MODE=0666
# vchiq
SUBSYSTEM==vchiq, GROUP=video, MODE=0660

Сохраняем и закрываем.


Далее добавляем пользователя pi в различные группы:

sudo usermod -a -G audio pi
sudo usermod -a -G video pi
sudo usermod -a -G input pi
sudo usermod -a -G dialout pi
sudo usermod -a -G plugdev pi
sudo usermod -a -G tty pi



Далее в конец файла (перед exit 0) /etc/rc.local добавим строчку — chmod 0777 /dev/tty0

sudo nano /etc/rc.local


Получится вот так:


Сохраняем и закрываем.


Перегружаем малину чтоб изменения вступили в силу.



Теперь в меню программ в разделе «Аудио и видео» находим «Kodi Media Center» и стартуем…


Вы увидите как изображение расплывётся и превратится в лягушку полосочки. Это будет происходить в течении пары минут, а затем появится картика. Посредине будет окно предлагающее отключить несовместимые репозитории — нажмите Yes.

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


Теперь настроим Kodi. Нажмите кнопку SYSTEM, затем Appearance и наконец Interntional. Нажмите Language и выберите русский язык (Russian).


Далее нажмите на иконку с домиком внизу-справа, нажмите большую кнопку СИСТЕМА, а потом маленькую слева — «Система». Выберите «Вывод звука» и в разделе «Устройство вывода звука» выберите — PI: Analogue. После этого Kodi будет нормально запускаться без всяких полосок на экране.

Дело в том, что до наших изменений по HDMI-каналу шёл и звук и видео, и получалась «каша». Теперь по HDMI идёт только видео, а звук через разъём для наушников.


Теперь опять нажмите на иконку с домиком, затем кнопку выключения (слева-снизу), а затем «Выход». Скорее всего Вы увидите зависший чёрный экран, поэтому перегрузите малину отключением питания.

После перезагрузки снова запустите Kodi, теперь уже не будет никаких полосок. Осталось только сделать так, чтоб плеер не зависал при выходе.


Для этого надо создать скрипт — /usr/local/bin/startkodi

sudo nano /usr/local/bin/startkodi


Содержимое:

#!/bin/bash
fbset_bin=`which fbset`
xset_bin=`which xset`
xrefresh_bin=`which xrefresh`
if [ ! -z $fbset_bin ]; then
DEPTH2=`$fbset_bin | head -3 | tail -1 | cut -d " " -f 10`
fi
kodi "$@"
if [ ! -z $fbset_bin ]; then
if [ "$DEPTH2" == "8" ]; then
DEPTH1=16
else
DEPTH1=8
fi
$fbset_bin -depth $DEPTH1 > /dev/null 2>&1
$fbset_bin -depth $DEPTH2 > /dev/null 2>&1
fi
if [ ! -z $xset_bin ] && [ ! -z $xrefresh_bin ]; then
if [ -z $DISPLAY ]; then
DISPLAY=":0"
fi

$xset_bin -display $DISPLAY -q > /dev/null 2>&1
if [ "$?" == "0" ]; then
$xrefresh_bin -display $DISPLAY > /dev/null 2>&1
fi
fi
VT="$(fgconsole)"
if [ "$VT" ]; then
sudo chvt 7
sudo chvt "$VT"
fi


Сохраните, закройте и дайте скрипту права:

sudo chmod a+x /usr/local/bin/startkodi



Теперь в терминале дайте команду:

startkodi


Сейчас «выход» будет работать как надо.


Запускать скрипт через терминал не удобно, поэтому его нужно добавить в меню программ. Зайдите в меню, в пункте «Параметры» найдите «Main Menu Editor» и запустите его. Слева выберите «Аудио и видео» и нажмите справа кнопку «Создать элемент».



В появившемся окне, напротив Name: напишите MyKodi, а напротив Command: напишите startkodi.

Нажмите ОК, в списке появится новый пункт — MyKodi



Ещё раз нажмите ОК.

Теперь для запуска медиацентра, в меню «Аудио и видео» есть кнопка MyKodi.



Здесь можно почитать про Orange Pi.



На этом пожалуй всё, всем спасибо.





  • 0
  • 2176

Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.