Raspberry Pi:如何在TFT显示屏上显示python的输出

时间:2015-10-04 14:27:58

标签: python pygame raspberry-pi

我正在尝试将一些数据从python脚本输出到Sainsmart 1.8 TFT显示屏。按照https://github.com/notro/fbtft/wiki的说明,我可以在tft显示屏上显示树莓的屏幕

FRAMEBUFFER=/dev/fb1 startx

当我尝试从我的python脚本输出数据时,会打开一个pygame窗口('弹出'),但不会在tft屏幕上,而是在连接到带有HDMI的Raspberry的主屏幕上。

我的代码来自this tutorial

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#
# Creation:    26.05.2013
# Last Update: 07.04.2015
#
# Copyright (c) 2013-2015 by Georg Kainzbauer <http://www.gtkdb.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#

import os
import sys
import time
import pygame

time_stamp_prev=0

os.environ["SDL_FBDEV"] = "/dev/fb1"
os.environ['SDL_VIDEODRIVER']="fbcon"

def displaytext(text,size,line,color,clearscreen):
  if clearscreen:
    screen.fill((255,255,255))

  font = pygame.font.Font(None,size)
  text = font.render(text,0,color)
  rotated = pygame.transform.rotate(text,-90)
  textpos = rotated.get_rect()
  textpos.centery = 80
  if line == 1:
    textpos.centerx = 99
    screen.blit(rotated,textpos)
  elif line == 2:
    textpos.centerx = 61
    screen.blit(rotated,textpos)
  elif line == 3:
    textpos.centerx = 25
    screen.blit(rotated,textpos)

def main():
  global screen

  pygame.init()
  pygame.mouse.set_visible(0)
  size = width,height = 128,160
  screen = pygame.display.set_mode(size)

  while True:
    displaytext(time.strftime("%d.%m.%Y"),40,1,(0,0,0),True)
    displaytext(time.strftime("%H:%M:%S"),40,2,(0,0,0),False)
    displaytext("www.gtkdb.de",20,3,(0,0,0),False)
    pygame.display.flip()
    time.sleep(1)

if __name__ == '__main__':
  main()

有谁能告诉我如何在tft屏幕上显示脚本的输出?

1 个答案:

答案 0 :(得分:1)

我看了on the startx command,在我看来创建一个.xinitrc文件的解决方案。

试试这个:

chmod +x ./clock.py # make the clock file executable
mv ./clock.py ~/.xinitrc # move it to where startx starts it
FRAMEBUFFER=/dev/fb1 startx # startx will start it

注意:我在Lubuntu下进行了测试,并且仍然可以在此之后登录并使用用户界面。