我正在尝试将一些数据从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屏幕上显示脚本的输出?
答案 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下进行了测试,并且仍然可以在此之后登录并使用用户界面。