Raspberry pi 3 как подключить экран
Перейти к содержимому

Raspberry pi 3 как подключить экран

  • автор:

Начало работы с Raspberry Pi: подключение и настройка

Для комфортного начала работы с Raspberry Pi нужно сделать несколько шагов:

Подключить всё необходимое оборудование.

Начнём по порядку!

Виды Raspberry Pi

Существует несколько основных видов Raspberry Pi.

Версии A

Форм-фактор Model A отличается более компактными размерами, чем у плат Model B: вместо громоздкого USB-хаба тут оставили один USB-порт и сэкономили 2 см длины.

Список плат версии A

Raspberry Pi A
Raspberry Pi A+

Версии B

На борту платы уже есть четыре порта USB, полноценный Ethernet-разъём и выход 3,5-мм Jack, чтобы сразу приступить к комфортной работе.

Список плат версии B

Raspberry Pi B
Raspberry Pi B+
Raspberry Pi 2B
Raspberry Pi 3B
Raspberry Pi 3B+
Raspberry Pi 4 (1 ГБ)

Версии Zero

Raspberry Pi Zero, Zero W и Zero WH меньше остальных и требуют меньше энергии. Они полезны для портативных проектов или роботы, где важна повышенная энергоэффективность.

Легче начинать проект с версии Model B и перейти на RPi Zero, когда у вас есть рабочий прототип, которому лучше подойдет плата компактного размера.

Список плат формата Zero

Версии Compute Module

Версии Compute Module не имеют привычных разъёмов для периферии. Точнее, все интерфейсы выведены на краевой разъём платы с сотнями контактов. Модули предназначены для встраивания в готовые устройства на базе вычислительной начинки Raspberry Pi. Отладочные платы I/O Board помогают работать с Compute Module и пользоваться традиционными подключениями.

Список плат Compute Module

Compute Module 1
Compute Module 3
Compute Module 3 Lite
Compute Module 3+ Lite
Compute Module 4

Версия Pi 400

Raspberry Pi 400 — полноценный компьютер на базе RPi 4, встроенный в компактную клавиатуру. Это позволяет экономить место на рабочем столе и получить готовый Linux-компьютер с привычными разъёмами для периферии.

Источник питания

Для подключения питания используется порт USB (такой же, как на многих мобильных телефонах): либо USB-C для Raspberry Pi 4, либо micro-USB для RPi 1/2/3 и Zero. Вам понадобится кабель USB Type-C или micro-USB и блок питания, который обеспечивает:

Минимум 3,0 ампера для Raspberry Pi 4

Минимум 2,5 ампера для Raspberry Pi 3

Карта памяти

Для хранения операционной системы и всех файлов одноплатникам RPi нужна карта microSD с ёмкостью не менее 8 ГБ и установленной Raspberry Pi OS . Запишите образ Raspberry Pi OS на microSD-карту самостоятельно или воспользуйтесь картой с готовой системой.

Клавиатура и мышь

Чтобы начать пользоваться Raspberry Pi, вам понадобится USB-клавиатура и USB-мышь.

После настройки Raspberry Pi вы сможете использовать Bluetooth клавиатуру и мышь, но для первой настройки вам понадобятся клавиатура и мышь USB.

Дисплей

Проще всего подключить к Raspberry Pi отдельный экран — монитор или телевизор с HDMI. Если у дисплея есть встроенные динамики, RPi сможет воспроизводить через них звук.

Raspberry Pi также поддерживает удалённое управление через SSH и VNC.

HDMI

Raspberry Pi имеет выходной порт HDMI, совместимый с портом HDMI большинства современных телевизоров и компьютерных мониторов. Многие компьютерные мониторы также могут иметь порты DVI или VGA.

Raspberry Pi 4 имеет два порта micro-HDMI , что позволяет подключать два отдельных монитора. Для подключения Raspberry Pi 4 к экрану вам понадобится кабель micro-HDMI к HDMI. Можно использовать стандартный кабель HDMI к HDMI с адаптером micro-HDMI к HDMI.

Raspberry Pi 1, 2 и 3 имеют один полноразмерный порт HDMI , поэтому вы можете подключить их к экрану с помощью стандартного кабеля HDMI к HDMI.

Raspberry Pi Zero имеют один порт mini-HDMI . Подключить их к экрану можно с помощью кабеля mini-HDMI к HDMI . Или можно использовать стандартный кабель HDMI к HDMI с адаптером mini-HDMI к HDMI .

DVI

Если на вашем экране есть порт DVI вы можете подключить к нему Raspberry Pi с помощью кабеля HDMI к DVI .

VGA

На некоторых экранах есть только порт VGA. Чтобы подключить Raspberry Pi к такому экрану, вы можете использовать адаптер HDMI к VGA .

Сетевое подключение

Большие модели Raspberry Pi (не Zero) имеют стандартный порт Ethernet для подключения к интернету по кабелю.

Чтобы подключить к интернету плату Zero, вам понадобится адаптер USB-Ethernet .

Raspberry Pi 3, 4 и Zero W также поддерживают беспроводные сети Wi-Fi.

Наушники или колонки

Большие модели Raspberry Pi (не Zero) оснащены аудиовыходом — это стандартный мини-джек 3,5 мм, как на смартфоне или MP3-плеере. Через него вы можете подключить наушники или динамики, чтобы воспроизводить звук.

Если подключённый дисплей имеет встроенные динамики, Raspberry Pi сможет передавать на них звук по HDMI или через отдельный аудиокабель с разъёмом 3,5 мм.

Корпус

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

Подключение LCD дисплея к Raspberry Pi

Кто бы мог подумать еще в 2010 году, что такое явление как «Raspberry Pi» обретет тысячи поклонников по всему миру.

Не смог пройти мимо и я. Сегодня я покажу на примере как подключать и использовать LCD (хотя аббревиатура уже включает в себя слово «дисплей» далее я будут все равно его использовать) совместно с Raspberry Pi.

Скажу сразу: статья ориентирована на тех, кто не первый раз сталкивается с Raspberry.

Пример подключения LCD дисплея к Raspberry Pi

На борту Raspberry Pi имеет особый разъем типа GPIO. К нему-то мы и подключим дисплей.

Выбор LCD дисплея

Для наших целей подойдет любой жидкокристаллический знакосинтезирующий (символьный) дисплей на базе микроконтроллера Hitachi HD44780U или его аналогов. LCD дисплеи бывают 8×2, 16×2, 4×20 и т.д. — строк на количество знаков. Их выпускает куча разных фирм — Winstar, МЭЛТ и другие.Для сборки прототипа я приобрел дисплей Winstar WH0802A-YYH-CT. Теперь нужно определиться с порядком соединения пинов на разъеме IDC с пинами на GPIO, плюс разобраться как мы подключим питание к нашему дисплею.Оказывается все просто! В документации находим таблицу с распиновкой порта LCD дисплея для 4-х битного режима и дополняем ее следующим образом:

Где GND — это «минус», а +5V — «плюс» питания, которое мы берем все из того же GPIO разъема. Подписи GPIO — соответствуют . ну вы сами догадались)Данный дисплей имеет подсветку. Для ее включения достаточно подключить LEDA к +5V, а LEDK — к GND.

!ВНИМАНИЕ! Для использования LCD дисплея в данной схеме ваш источник питания, который вы подключаете к Raspberry Pi, должен быть рассчитан на потребляемый ток, как минимум, 2А. !ВНИМАНИЕ!

Выбор и использование библиотек для работы с LCD дисплеем

Для работы с LCD дисплеем нам нужно написать программу. Делать это я буду на языке Си. Но для компиляции листинга нам потребуется загрузить набор библиотек. Мой выбор пал на пакет библиотек wiringPi , который был использован в статье. Сам пакет предназначен не только для подключения LCD дисплея.Процесс установки пакета описан на сайте. Листинг «mylcd.c» с текстом программы я привожу ниже (по стандарту С99).

#include //стандартная библиотека ввода-вывода #include //библиотека из пакета wiringPi #include //библиотека из пакета wiringPi int main (void) < printf ("Raspberry Pi LCD test\n") ; //Инициализация порта GPIO if(wiringPiSetup ()==-1) < printf ("GPIO Setup failed!\n") ; >int fd; printf ("Start LCD initialization. \n") ; //Инициализация LCD fd = lcdInit (2,8,4, 11,10, 1,0,2,3,0,0,0,0); if(fd==-1) < printf ("Initialization failed\n") ; >else < printf ("GO!\n"); //Очистка дислпея lcdClear(fd); //Перевод каретки на первую позицию первой строки lcdPosition (fd,0,0); //Вывод форматированного текста lcdPrintf(fd, "Hello Pi"); //Перевод каретки на вторую строку и вывод текста lcdPosition (fd,0,1); lcdPrintf(fd, " World!"); >return 0; >

В листинге нас особо интересует следующие функции:

1.wiringPiSetup()- функция для инициализации порта GPIO2.

lcdInit(int rows, int cols, int bits, int rs, int strb, int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7) — функция для инициализации LCD дисплея, где:* int rows — число строк дисплея (у нас 2)* int cols — число знаков в строке (у нас 8)* int rs — маппинг порта wiringPi на управляющий регистр дисплея RS (у нас 11)* int strb — маппинг порта wiringPi разрешающий регистр дисплея E (у нас 10)* int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7 — маппинг портов wiringPi на шину данных дисплея3.

lcdPrintf(int handle, char *message, …) — в качестве int handle передаем указатель на дисплей, * message — указываем в кавычках текст для вывода

Теперь чуть подробнее про маппинг. В wiringPi используется понятие мапинга (привязки) физических пинов порта GPIO к «виртуальным» пинам — wiringPi. Таблица с маппингом приведена выше. Сопоставив ее с таблицей 1 мы и получим комбинацию fd = lcdInit (2,8,4, 11,10, 1,0,2,3,0,0,0,0);Пины int d4, int d5, int d6, int d7 в 4-х битном режиме не используются! Итак, мы сохранили листинг с программой в файле «mylcd.c» в директории /home/pi/wiringPi/ (которая создается автоматически после установки пакета).

Далее для компиляции кода набираем в консоли: gcc -Wall -o mylcd wiringPi/mylcd.c -lwiringPi -lwiringPiDev Если не вывелось никаких «ворнингов» и «эрроров» — значит повезло программа написана верно!Для запуска программы набираем в консоли: sudo ./mylcd Получаем диагностические сообщения, которые мы сами и выводим:Raspberry Pi LCD testStart LCD initialization. GO!

Четыре способа вывести изображение с Raspberry Pi

Одноплатник Raspberry Pi дружит не только с компьютерными мониторами и телевизорами, но и с более экзотическими девайсами. Рассказываем, какие бывают способы вывести изображение с RPi на внешние устройства.

Способ №1: Порт HDMI

К Raspberry Pi можно подключить любой встраиваемый или портативный экран, оснащённый стандартным портом HDMI. Достаточно воткнуть кабель, и через секунду изображение появится на экране.

В большинстве случаев Linux сам выбирает оптимальный режим, но если понадобится изменить разрешение или частоту обновления экрана — заходите в файл /boot/config.txt , где хранятся детальные настройки вывода изображения. Например, чтобы установить разрешение 1024×600 с частотой 60 герц и отношением сторон 15:9, подойдёт такая конфигурация.

hdmi_group=2 hdmi_mode=87 hdmi_cvt=1024 600 60 6 

Первая пара настроек говорит о том, что мы хотим выбрать произвольный режим. А вот hdmi_cvt задаёт этот самый режим: ширину, высоту, частоту и отношение сторон (параметр 6 — это пропорция 15:9). На официальном сайте Raspberry Pi выложено подробное описание, какие параметры видео за что отвечают.

Некоторые HDMI-дисплеи оснащаются встроенным тачскрином, сигнал которого передаётся на RPi через отдельный USB-кабель и требует установки драйверов. Процесс несложный — смотрите инструкции с примерами на нашей Вики.

HDMI-дисплей для Raspberry Pi

Обладателям Raspberry Pi 4 повезло: она поддерживает разрешения вплоть до 4K (2160p) при 60 Гц в режиме одного монитора. А если подключить к ней второй монитор, то сигнал делится напополам, и малина потянет до 2160p/30 Гц на обоих экранах. Не забудьте обзавестись кабелями Micro-HDMI.

Способ №2: Порты GPIO

Существуют дисплеи для Raspberry Pi в виде шилдов, которые надеваются на плату и общаются с ней по интерфейсу SPI. Они дешевле и мобильнее своих HDMI-собратьев.

Одноплатник здорово сочетается с компактным сенсорным ЖК-дисплеем и мини-клавиатурой: покидали всё в рюкзак — и вот у вас под рукой полноценный портативный компьютер на Linux.

SPI-дисплей для Raspberry Pi

  • SPI-дисплей 2,8″ для RPi ❯
  • SPI-дисплей 3,5″ для RPi ❯

Однако, помимо преимуществ у SPI-дисплеев есть и ряд технических ограничений:

  • Дисплей требует обязательной установки драйвера.
  • Скорости обновления по SPI не хватает для видео.
  • Интерфейс SPI дополнительно нагружает CPU.

Используйте SPI-дисплей для пользовательских интерфейсов, которые по большей части статичны.

Способ №3: Удалённый доступ

А можно обойтись вовсе без дисплеев: достаточно один раз настроить удалённый рабочий стол, чтобы дистанционно подключаться к Raspberry Pi и транслировать изображение по сети. Этот способ пригодится, если плата смонтирована в труднодоступном месте и подключать лишние провода — совсем не вариант.

Как настроить удалённый доступ

  • VNC Server входит в ОС Raspbian из коробки. Чтобы разрешить доступ, зайдите в настройки Raspberry Pi:
sudo raspi-config 
  • Выберите пункт меню «Interfacing Options→VNC» и включите VNC Server кнопкой «Yes».
  • Запустите VNC-сервер:
vncserver 
  • Запишите IP-адрес и порт для внешнего доступа, которые отобразятся после запуска.
  • В случае с Windows у вас уже есть средство для подключения к удалённому рабочему столу. Для других систем рекомендуем установить RealVNC Viewer.
  • Запустите VNC-клиент и вбейте в адресной строке IP-адрес, который был выдан при запуске VNC-сервера.
  • Укажите логин и пароль для входа в систему Raspberry Pi. По умолчанию это ‘pi’ и ‘raspberry’.
  • В клиенте VNC появится рабочий стол. Готово!

Удалённый рабочий стол для Raspberry Pi

Способ №4: Композитный видеовыход

Можете тряхнуть стариной и вспомнить такой олдскульный интерфейс, как композитное видео. Конечно, по качеству изображения он не сможет тягаться с цифровым HDMI, но и у «тюльпана» есть подходящее применение.

Если вы превратите свою Raspberry Pi 4 в ретро-консоль, кинескопный телевизор станет завершающим штрихом, чтобы полностью перенестись в эпоху пиксель-арта. Берите комбинированный кабель 3,5 мм с композитным выходом, чтобы вывести чересстрочное аналоговое изображение 480i с малинки на ЭЛТ-телевизор. Мы так и поступили, когда делали крутой аркадный автомат, который радует вас у входа в московский офис Амперки.

  • Ретро-консоль из RPi ❯
  • Аркадный игровой автомат на Raspberry Pi ❯

В итоге

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

Полезные ссылки

  • Дисплеи для Raspberry Pi в каталоге Амперки
  • HDMI-дисплеи в каталоге Амперки

Второй HDMI монитор к Raspberry Pi3 через DPI интерфейс и FPGA плату

На этом видео показаны: плата Raspberry Pi3, к ней, через разъем GPIO, подключена FPGA плата Марсоход2rpi (Cyclone IV), к которой подключен HDMI монитор. Второй монитор подключен через штатный разъем HDMI Raspberry Pi3. Все вместе работает, как система с двумя мониторами.

Дальше расскажу, как это реализовано.

На популярной плате Raspberry Pi3 есть разъем GPIO, через который можно подключать разные платы расширения: датчики, светодиоды, драйвера шаговых двигателей и многое другое. Конкретная функция каждого вывода на разъеме зависит от конфигурации портов. Конфигурация GPIO ALT2 позволяет переключить разъем в режим DPI интерфейса, Display Parallel Interface. Существуют платы расширения для подключения VGA мониторов, через DPI. Однако, во-первых, мониторы VGA уже не так распространены, как HDMI, а во-вторых, цифровой интерфейс все лучше аналогового. Тем более, что ЦАП на подобных VGA платах расширения обычно выполнен в виде R-2-R цепочек и часто не более 6 бит на цвет.

В режиме ALT2 пины разъема GPIO имеют следующее значение:

image

Я здесь раскрасил RGB выводы разъема соответственно в красный, зеленый и синий цвета. Другие важные сигналы это сигналы синхронизации развертки V-SYNC и H-SYNC, а так же CLK. Тактовая частота CLK это частота, с которой значения пикcелей выдаются на разъем, она зависит от выбранного видеорежима.

Для подключения цифрового HDMI монитора нужно захватить сигналы DPI интерфейса и преобразовать их в сигналы HDMI. Сделать это можно, например, с помощью какой либо FPGA платы. Как оказалось, плата Марсоход2rpi подходит для этих целей. По правде говоря, основной вариант подключения этой платы через специальный переходник выглядит вот так:

image

Эта плата служит для увеличения числа GPIO портов и для подключение большего числа периферийных устройств к raspberry. При этом, 4 сигнала GPIO при таком подключении используются под JTAG сигналы, так, что программа из распберри может загружать FPGA прошивку в ПЛИС. Из-за этого такое штатное подключение мне не подходит, выпадают 4 DPI сигнала. По счастью, дополнительные гребеночки на плате имеют совместимую с Raspberry распиновку. Так, что я могу развернуть плату на 90 градусов и все равно подключить ее к моей малинке:

Конечно, придется использовать внешний JTAG программатор, но это не проблема.

Небольшая проблема все же есть. Не каждый вывод FPGA может использоваться, как вход тактовой частоты. Есть только несколько dedicated pin, которые можно использовать для этих целей. Так и здесь получилось, что GPIO_0 сигнал CLK не попадает на ввод FPGA, который возможно использовать как вход тактовой частоты ПЛИС. Так что все таки пришлось кинуть один проводок на платку. Я соединяю GPIO_0 и сигнал KEY[1] платы:

image

Теперь расскажу немного про проект в ПЛИС. Основная сложность при формировании HDMI сигналов это очень высокие частоты. Если посмотреть на цоколевку разъема HDMI, то видно, что сигналы RGB теперь являются последовательными дифференциальными сигналами:

Использование дифференциального сигнала позволяет бороться с синфазными помехами на линии передачи. При этом, исходный восьмибитный код каждого сигнала цвета преобразуется в 10-ти битный TMDS (Transition-minimized differential signaling). Это специальный способ кодирования для удаления постоянной составляющей из сигнала и минимизации переключений сигналов в дифференциальной линии. Поскольку на один байт цвета теперь по последовательной линии передачи нужно передать 10 бит, то получается, что тактовая частота сериализатора должна быть в 10 раз выше, чем тактовая частота пикселей. Если взять к примеру видео режим 1280х720 60Гц, то частота пикселей у такого режима 74,25МГц. На сериализаторе должно быть 742,5МГц.

Обычные FPGA вообще-то на такое, к сожалению, не способны. Однако, по нашему счастью, в FPGA имеются встроенные выводы DDIO. Это такие выводы, которые уже как бы являются сериализаторами 2-к-1. То есть они могут выдавать последовательно два бита по фронту и спаду тактовой частоты. Значит в проекте FPGA можно использовать не 740МГц, а 370МГц, но нужно задейcтвовать выходные элементы DDIO в ПЛИС. Вот 370МГц уже вполне достижимая частота. К сожалению, режим 1280×720 это предел. Более высокого разрешения в нашей FPGA Cyclone IV установленной на плате Марсоход2rpi не достичь.

Итак, в проекте, входная частота пикселей CLK поступает на PLL, где умножается на 5. На этой частоте байты R, G, B, преобразуются в пары бит. Это делает TMDS энкодер. Исходный код на Verilog HDL выглядит вот так:

module hdmi( input wire pixclk, // 74MHz input wire clk_TMDS2, // 370MHz input wire hsync, input wire vsync, input wire active, input wire [7:0]red, input wire [7:0]green, input wire [7:0]blue, output wire TMDS_bh, output wire TMDS_bl, output wire TMDS_gh, output wire TMDS_gl, output wire TMDS_rh, output wire TMDS_rl ); wire [9:0] TMDS_red, TMDS_green, TMDS_blue; TMDS_encoder encode_R(.clk(pixclk), .VD(red ), .CD(), .VDE(active), .TMDS(TMDS_red)); TMDS_encoder encode_G(.clk(pixclk), .VD(green), .CD(), .VDE(active), .TMDS(TMDS_green)); TMDS_encoder encode_B(.clk(pixclk), .VD(blue ), .CD(), .VDE(active), .TMDS(TMDS_blue)); reg [2:0] TMDS_mod5=0; // modulus 5 counter reg [4:0] TMDS_shift_bh=0, TMDS_shift_bl=0; reg [4:0] TMDS_shift_gh=0, TMDS_shift_gl=0; reg [4:0] TMDS_shift_rh=0, TMDS_shift_rl=0; wire [4:0] TMDS_blue_l = ; wire [4:0] TMDS_blue_h = ; wire [4:0] TMDS_green_l = ; wire [4:0] TMDS_green_h = ; wire [4:0] TMDS_red_l = ; wire [4:0] TMDS_red_h = ; always @(posedge clk_TMDS2) begin TMDS_shift_bh 4'd4) || (Nb1s==4'd4 && VD[0]==1'b0); wire [8:0] q_m = >, VD[0]>; reg [3:0] balance_acc = 0; wire [3:0] balance = q_m[0] + q_m[1] + q_m[2] + q_m[3] + q_m[4] + q_m[5] + q_m[6] + q_m[7] - 4'd4; wire balance_sign_eq = (balance[3] == balance_acc[3]); wire invert_q_m = (balance==0 || balance_acc==0) ? ~q_m[8] : balance_sign_eq; wire [3:0] balance_acc_inc = balance - ( & ~(balance==0 || balance_acc==0)); wire [3:0] balance_acc_new = invert_q_m ? balance_acc-balance_acc_inc : balance_acc+balance_acc_inc; wire [9:0] TMDS_data = >>; wire [9:0] TMDS_code = CD[1] ? (CD[0] ? 10'b1010101011 : 10'b0101010100) : (CD[0] ? 10'b0010101011 : 10'b1101010100); always @(posedge clk) TMDS  

Потом выходные пары подаются на DDIO выход, который последовательно выдает однобитный сигнал по фронту и спаду.

Сам DDIO можно было бы описать таким Verilog кодом:

module ddio( input wire d0, input wire d1, input wire clk, output wire out ); reg r_d0; reg r_d1; always @(posedge clk) begin r_d0 

Но так работать скорее всего не будет. Нужно использовать альтеровскую мегафункцию ALTDDIO_OUT, чтобы на самом деле задействовать выходные DDIO элементы. В моем проекте используется именно библиотечный компонент ALTDDIO_OUT.

Возможно, все это выглядит немного мудрено, но работает.

Посмотреть весь исходный код, написанный на Verilog HDL, можно вот здесь, на github.

Скомпилированная прошивка для FPGA зашивается в EPCS чип, установленный на плате Марсоход2rpi. Таким образом, при подаче питания на плату FPGA, ПЛИС будет инициализироваться из флэш памяти и стартовать.

Теперь нужно немного рассказать о конфигурации самого Raspberry.

Я делаю эксперименты на Raspberry PI OS (32 bit) based on Debian Buster, Version:August 2020,
Release date:2020-08-20, Kernel version:5.4.

Нужно сделать две вещи:

  • отредактировать файл config.txt;
  • создать конфигурацию X сервера для работы с двумя мониторами.
  1. выключить использование i2c, i2s, spi;
  2. включить режим DPI с помощью оверлея dtoverlay=dpi24;
  3. настроить видеорежим 1280x720 60Гц, 24 бита на точку на DPI;
  4. указать необходимое количество фреймбуфферов 2 (max_framebuffers=2, только тогда появится второе устройство /dev/fb1)

Полный текст файла config.txt выглядит так.

# For more options and information see # http://rpf.io/configtxt # Some settings may impact device functionality. See link above for details # uncomment if you get no picture on HDMI for a default "safe" mode #hdmi_safe=1 # uncomment this if your display has a black border of unused pixels visible # and your display can output without overscan disable_overscan=1 # uncomment the following to adjust overscan. Use positive numbers if console # goes off screen, and negative if there is too much border #overscan_left=16 #overscan_right=16 #overscan_top=16 #overscan_bottom=16 # uncomment to force a console size. By default it will be display's size minus # overscan. #framebuffer_width=1280 #framebuffer_height=720 # uncomment if hdmi display is not detected and composite is being output hdmi_force_hotplug=1 # uncomment to force a specific HDMI mode (this will force VGA) #hdmi_group=1 #hdmi_mode=1 # uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes #hdmi_drive=2 # uncomment to increase signal to HDMI, if you have interference, blanking, or # no display #config_hdmi_boost=4 # uncomment for composite PAL #sdtv_mode=2 #uncomment to overclock the arm. 700 MHz is the default. #arm_freq=800 # Uncomment some or all of these to enable the optional hardware interfaces #dtparam=i2c_arm=on #dtparam=i2s=on #dtparam=spi=on dtparam=i2c_arm=off dtparam=spi=off dtparam=i2s=off dtoverlay=dpi24 overscan_left=0 overscan_right=0 overscan_top=0 overscan_bottom=0 framebuffer_width=1280 framebuffer_height=720 display_default_lcd=0 enable_dpi_lcd=1 dpi_group=2 dpi_mode=87 #dpi_group=1 #dpi_mode=4 dpi_output_format=0x6f027 dpi_timings=1280 1 110 40 220 720 1 5 5 20 0 0 0 60 0 74000000 3 # Uncomment this to enable infrared communication. #dtoverlay=gpio-ir,gpio_pin=17 #dtoverlay=gpio-ir-tx,gpio_pin=18 # Additional overlays and parameters are documented /boot/overlays/README # Enable audio (loads snd_bcm2835) dtparam=audio=on [pi4] # Enable DRM VC4 V3D driver on top of the dispmanx display stack #dtoverlay=vc4-fkms-v3d max_framebuffers=2 [all] #dtoverlay=vc4-fkms-v3d max_framebuffers=2 

После этого, нужно создать конфигурационный файл для X сервера для использования двух мониторов на двух фреймбуфферах /dev/fb0 и /dev/fb1:

Мой файл конфигурации /usr/share/x11/xorg.conf.d/60-dualscreen.conf такой

Section "Device" Identifier "LCD" Driver "fbturbo" Option "fbdev" "/dev/fb0" Option "ShadowFB" "off" Option "SwapbuffersWait" "true" EndSection Section "Device" Identifier "HDMI" Driver "fbturbo" Option "fbdev" "/dev/fb1" Option "ShadowFB" "off" Option "SwapbuffersWait" "true" EndSection Section "Monitor" Identifier "LCD-monitor" Option "Primary" "true" EndSection Section "Monitor" Identifier "HDMI-monitor" Option "RightOf" "LCD-monitor" EndSection Section "Screen" Identifier "screen0" Device "LCD" Monitor "LCD-monitor" EndSection Section "Screen" Identifier "screen1" Device "HDMI" Monitor "HDMI-monitor" EndSection Section "ServerLayout" Identifier "default" Option "Xinerama" "on" Option "Clone" "off" Screen 0 "screen0" Screen 1 "screen1" RightOf "screen0" EndSection 

Ну и, если еще не установлена, то нужно установить Xinerama. Тогда пространство рабочего стола будет полноценно расширено на два монитора, как показано выше на демо ролике.

Вот пожалуй и все. Теперь, и владельцы Raspberry Pi3 смогут пользоваться двумя мониторами.

Описание и схему платы Марсоход2rpi можно посмотреть вот здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *