В настоящее время я играю с моей совершенно новой малиной с adafruit touch-tft
и малиной Cam.
Я заметил, что если я запустил raspivid -p
, он отобразит предварительный просмотр в кадре поверх bash.
Как создать приложение (java, python, С++ (предпочтительно)) для отображения графического интерфейса без startx
?
Я хотел бы использовать adafruit touch-tft
для проекта, но startx
нуждается в большом количестве ресурсов. Конечно, было бы здорово иметь сенсорную функциональность тоже.
Edit:
Возможно, я немного смутил: мне хотелось бы создать приложение, которое не нуждается в startx, но имеет какой-то графический интерфейс.
Ответы ниже не готовы на 100%, но они указали мне в правильном направлении. Поскольку я видел много подобных вопросов, я постараюсь дать пошаговое решение:
-
Настройте свою малину с помощью adafruit TFT: https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/overview (вам не нужно заменять TFT на HDMI в качестве стандартного дисплея)
-
убедитесь, что
FRAMEBUFFER=/dev/fb1 startx
работает правильно на экране TFT, у меня есть телевизор, подключенный к порту HDMI, таким образом я могу использовать bash на экране телевизора и запустить x на TFT -
Следуйте этому руководству, чтобы создать свой первый pygame: http://www.pygame-doku.laymaxx.de/tut/intro/intro.html (вы можете просто скопировать и вставить,
wget ball.gif
) -
Вставьте две строки в начале: (github.com/notro/fbtft/wiki/Pygame)
import os os.environ["SDL_FBDEV"] = "/dev/fb1"
-
Если вы хотите протестировать сенсорный экран, вы можете изменить строку 15: From:
if event.type == pygame.QUIT: sys.exit()
To:
if event.type == pygame.MOUSEBUTTONDOWN: sys.exit()
Это приведет к выходу из приложения, если вы коснетесь экрана
-
Сохранить файл, например. pygame1.py и выполнить с помощью
$python pygame1.py
Теперь вы должны увидеть прыгающий шар на вашем TFT, в то время как выход HDMI по-прежнему отображает bash на вашем телевизоре (но он неактивен, конечно), касаясь экрана, выйдет из игры, если вы выполнили шаг 6
Почему я это делаю? Таким образом, вы можете отображать простой графический интерфейс, например. чтобы сделать какое-то действие, например включить или выключить свет, если вы используете свой RPI для домашнего контроля.