2015-03-29 3 views
0

Я использую блок кода из website здесь есть раздел Я использую:малины пи сенсорный экран - Pygame.error: видеосистема не инициализирована

import pygame 
from pygame.locals import * 
import os 
from time import sleep 
import RPi.GPIO as GPIO 

#Setup the GPIOs as outputs - only 4 and 17 are available 
GPIO.setmode(GPIO.BCM) 
GPIO.setup(4, GPIO.OUT) 
GPIO.setup(17, GPIO.OUT) 

#Colours 
WHITE = (255,255,255) 

os.putenv('SDL_FBDEV', '/dev/fb1') 
os.putenv('SDL_MOUSEDRV', 'TSLIB') 
os.putenv('SDL_MOUSEDEV', '/dev/input/touchscreen') 

pygame.init() 
pygame.mouse.set_visible(False) 
lcd = pygame.display.set_mode((320, 240)) 
lcd.fill((0,0,0)) 
pygame.display.update() 

font_big = pygame.font.Font(None, 50) 

touch_buttons = {'17 on':(80,60), '4 on':(240,60), '17 off':(80,180), '4 off':(240,180)} 

for k,v in touch_buttons.items(): 
    text_surface = font_big.render('%s'%k, True, WHITE) 
    rect = text_surface.get_rect(center=v) 
    lcd.blit(text_surface, rect) 

pygame.display.update() 

while True: 
    # Scan touchscreen events 
    for event in pygame.event.get(): 
     if(event.type is MOUSEBUTTONDOWN): 
      pos = pygame.mouse.get_pos() 
      print pos 
     elif(event.type is MOUSEBUTTONUP): 
      pos = pygame.mouse.get_pos() 
      print pos 
      #Find which quarter of the screen we're in 
      x,y = pos 
      if y < 120: 
       if x < 160: 
        GPIO.output(17, False) 
       else: 
        GPIO.output(4, False) 
      else: 
       if x < 160: 
        GPIO.output(17, True) 
       else: 
        GPIO.output(4, True) 
    sleep(0.1) 

Когда я запускаю его (с привилегиями суперпользователя) Я получаю эту ошибку:

File "touchscreen.py", line 20, in <module> 
    pygame.mouse.set_visible(False) 
pygame.error: video system not initialized 

Я пытаюсь создать простой интерфейс кнопки на Raspberry Pi сенсорный экран для моего проекта, любой рабочий soloution будет приветствоваться. Для меня не имеет значения, будет ли этот код исправлен альтернативный код в равной степени.

Спасибо,

Мэттью Вуд

ответ

0

Я решил проблему, решение в том, что устройство ввода называли не mouse0 сенсорный экран.

0

попробовать это:

disp_no = os.getenv('DISPLAY') 
if disp_no: 
    print "I'm running under X display = {0}".format(disp_no) 
    pygame.mouse.set_visible(True) 

else: 
    drivers = ['directfb', 'fbcon', 'svgalib'] 
    found = False 
    for driver in drivers: 
     if not os.getenv('SDL_VIDEODRIVER'): 
      os.putenv('SDL_VIDEODRIVER', driver) 
     try: 
      pygame.display.init() 
     except pygame.error: 
      print 'Driver: {0} failed.'.format(driver) 
      continue 
     found = True 
     pygame.mouse.set_visible(False) 
     break 

    if not found: 
     raise Exception('No suitable video driver found!') 

os.environ["SDL_FBDEV"] = "/dev/fb1" 
os.environ["SDL_MOUSEDEV"] = "/dev/input/touchscreen" 
os.environ["SDL_MOUSEDRV"] = "TSLIB" 

, например непосредственно над вашим для к, v линии

Это будет пытаться либо работать в X-Windows (с видимым указателем мыши, или в лучшем доступном кадре буферный драйвер

 Смежные вопросы

  • Нет связанных вопросов^_^