web-dev-qa-db-fra.com

Afficher l'interface graphique sur Raspberry Pi sans startx

Je joue actuellement avec ma toute nouvelle framboise avec touch-tft Et Raspberry Cam d'Adafruit.

J'ai remarqué que si j'exécute raspivid -p, Il affiche l'aperçu dans un cadre au-dessus du bash.

Comment puis-je créer une application (Java, python, c ++ (préféré)) pour afficher une interface graphique sans avoir à startx?

J'adorerais utiliser touch-tft D'adafruit pour un projet, mais startx a besoin de beaucoup de ressources. Bien sûr, ce serait cool d'avoir la fonctionnalité tactile aussi.

Éditer:

Je me suis peut-être exprimé un peu confus: je voudrais créer une application qui n'a pas besoin de startx mais qui a une sorte de GUI.

Les réponses ci-dessous ne sont pas prêtes à 100% mais elles m'ont indiqué la bonne direction. Comme j'ai vu de nombreuses questions similaires, je vais essayer de donner une solution étape par étape:

  1. Configurez votre framboise avec le TFT d'Adafruit: https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/overview (vous n'avez pas à remplacer le TFT par HDMI comme écran standard)

  2. assurez-vous que FRAMEBUFFER=/dev/fb1 startx fonctionne correctement sur l'écran TFT, j'ai mon téléviseur branché sur le port HDMI, de cette façon je peux utiliser le bash sur l'écran du téléviseur et exécuter x sur le TFT

  3. Suivez ce tutoriel pour créer votre premier pygame: http://www.pygame-doku.laymaxx.de/tut/intro/intro.html (vous pouvez simplement copier et coller, wget ball.gif)

  4. Insérez ces 2 lignes au début: (github.com/notro/fbtft/wiki/Pygame)

    import os
    os.environ["SDL_FBDEV"] = "/dev/fb1"
    
  5. Si vous souhaitez tester l'écran tactile sur, vous pouvez modifier la ligne 15: De:

    if event.type == pygame.QUIT: sys.exit()
    

    À:

    if event.type == pygame.MOUSEBUTTONDOWN: sys.exit()
    

    Cela quittera l'application si vous touchez l'écran

  6. Enregistrer le fichier, par exemple pygame1.py et exécutez avec $python pygame1.py

Vous devriez maintenant voir une balle rebondir sur votre TFT tandis que la sortie HDMI affiche toujours le BASH sur votre téléviseur (mais ce n'est pas actif bien sûr) en touchant l'écran, vous quitterez le jeu si vous avez terminé l'étape 6

Pourquoi je fais ça? De cette façon, vous pouvez afficher une interface graphique simple avec par exemple boutons pour faire une action, comme allumer/éteindre vos lumières si vous utilisez votre RPI pour le contrôle à domicile.

16
G-M

Vous pouvez utiliser par exemple la bibliothèque pygame! consultez ce tutoriel http://archive.fundryfield.org/rp-resources/RP-workshop-handout.pdf pg. 17

11
Dimitry K

Ci-dessous, vous trouverez une description détaillée de la façon d'être un gestionnaire de fenêtres minimal pour démarrer un programme graphique de votre choix.

-Installez les packages requis:

apt-get update
apt-get install xorg - no-install-recommends gdm3 matchbox-window-manager Iceweasel rsync-y

-Le système en question, sélectionnez Ajouter une nouvelle interface utilisateur gdm3. Le terminal est le nom par défaut qui sera utilisé.

adduser kiosk

-Créer-Xsession. Ce script sera exécuté lorsque l'utilisateur se connectera.

xset s off
xset -dpms
matchbox-window-manager &
while true; do
rsync -qr --delete --exclude='.Xauthority’ /opt/kiosk/ $HOME/
firefox http://www.google.com (Replace your application!!!)
done

Enregistrer Ctrl + O; Quitter: Ctrl + X

chmod a + x. xsession
cp / opt / kiosk / .xsession / home / kiosk

Définissez la connexion automatique. L'utilisateur du kiosque entrera automatiquement après le démarrage.

nano / etc/gdm3/daemon.conf
[Daemon]
AutomaticLoginEnable = true
AutomaticLogin = kiosk

Nous avons choisi de configurer, programmer, si nécessaire

-Étalonnage de l'écran lorsqu'il n'est pas chargé sur tout l'écran:

/ Boot / config.txt file, clear the comment:
disable_overscan = 1

J'espère avoir aidé

7
Bmuller

Découvrez rwid , une interface utilisateur textuelle qui peut fonctionner dans un terminal, ou, je suppose, sur un Raspberry Pi démarré sans startx.

1
Alex Poulsen

En bref, vous ne pouvez pas, des applications comme gedit sont construites au-dessus d'un environnement de bureau (par exemple Gnome, Kde).

0
Kei