Как стать автором
Обновить

Разработка «зрелищной» программы. Интерфейс оператора, GUI и маркетинг

Время на прочтение3 мин
Количество просмотров4.7K
Всего голосов 5: ↑4 и ↓1+3
Комментарии10

Комментарии 10

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

Для новой версии автомата закупили мониторы с тачскрином.

Монитор подключается к Малине по hdmi? А сенсорная панель управляется по каналу i2c, ктр есть в hdmi?

Сам пока пытаюсь подключить дисплей с параллельным RGB интерфейсом к GPIO и пока не очень получается - нет картинки. Даже импульсов clock, hsync и vsync нет (пощупал осциллографом), хотя в файле config.txt включил поддержку dpi24.

Спасибо, приятно, если информация пригодится. Мониторы были двух типов, 15" - для альбомной ориентации изображения, 24" для портретной, оба по HDMI подключались. Знаю точно, нам пересылал производитель по одному экземпляру, чтобы поменьше багов было. Отдельно из каждого монитора выходит USB кабель, от тачскрина.

А можно ссылку на Ваш дисплей, может, смогу что-то подсказать?

Дисплей точно рабочий от навигатора. Точного даташита не нашёл, но распиновка у многих дисплеев со шлейфом 40 pin один в один. Распиновку также уточнил по сигналам на рабочем дисплее. Очень похож этот https://static.chipdip.ru/lib/010/DOC004010158.pdf Может что-то не так настроил в config.txt, т к даже нет импульсов синхронизации.

Насколько понял, надо отключить в Pi i2c, i2s, spi

dtparam=i2c_arm=off
dtparam=spi=off
dtparam=i2s=off

в config.txt

Иначе конфликт, они на те же ножки выходят, что и DPI 24

Отключил. Мои добавления в конце. Смотрел пример 1, пример 2, пример 3 документацию. Подумал, может вы пробовали подключать дисплеи таким образом.

мой 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 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

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

Automatically load overlays for detected cameras

camera_auto_detect=1

Automatically load overlays for detected DSI displays

display_auto_detect=1

Enable DRM VC4 V3D driver

dtoverlay=vc4-kms-v3d
max_framebuffers=2

Disable compensation for displays with overscan

disable_overscan=1

[cm4]

Enable host mode on the 2711 built-in XHCI USB controller.

This line should be removed if the legacy DWC2 controller is required

(e.g. for USB device mode) or if USB support is not required.

otg_mode=1

[all]

[pi4]

Run as fast as firmware / board allows

arm_boost=1

#Это добавил

Enable DRM VC4 V3D driver on top of the dispmanx display stack

#dtoverlay=vc4-fkms-v3d
#max_framebuffers=2

[all]
#Это добавил для первого подключения по UART
#enable_uart=1
#core_freq=250

#Выключаем все интерфейсы, ктр используют выводы GPIO
dtparam=i2c_arm=off
dtparam=spi=off
dtparam=i2s=off

#Включаем поддержку DPI дисплея
dtoverlay=dpi24
enable_dpi_lcd=1
display_default_lcd=1

#Включаем настраиваемый пользователем режим
dpi_group=2
dpi_mode=87

dpi_output_format=0x6f005

#Пока не знаю какой фронт у экрана активный: передний или задний. Если нужно - инвертировать.
dpi_timings=480 1 8 4 43 272 1 8 4 12 0 0 0 60 0 9000000 3

#overscan_left=0
#overscan_right=0
#overscan_top=0
#overscan_bottom=0

framebuffer_width=480
framebuffer_height=272

Pi может не поддерживать 480x272 или заданные DPI timings. Попробуйте из примера использования DPI другой режим и параметры, чтобы добиться для начала сигнала хоть какого-то, осциллографом увидеть.

Благодарю за дельный совет.

Один из мониторов

Интересный проект!!! Я так понимаю, что для этого проекта использовалась библиотека Pygame? Raspberry Pi как то дополнительно готовите для работы в автомате, read-only операционная система и т.д.?

Спасибо! Да, библиотека Pygame использовалась. Мы занимались подготовкой раньше, включая запреты логов, read-only, добавление проверок и исправления файловой системы при старте, и прочее, в период 2015 - 2018. Тогда были серьезные проблемы с порчей файловой системы на SD карте. Потом многое из этого появилось в самой системе по умолчанию, и SD карты стали портиться гораздо реже. Подозреваю, что причина всё же была аппаратная, и в Rasberry Pi 3b её уже исправили. Сейчас уже ничего не меняем в системе. На всякий случай используем только фирменные БП (5.1В, 2.5Ампера) и только SanDisk SD карты. И радиаторы на чипы обязательно клеим.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории