- Offizieller Beitrag
C-Berry mit Python ansteuern
-
barni7 -
23. Februar 2014 um 20:09 -
Erledigt
-
-
C-Berry mit Python ansteuern? Schau mal ob du hier fündig wirst!
-
-
Dad liegt am "except". Wenn du drine Fehlerbehandlung auf KeyboardInterrupt beschränkts bekommst du auch wieder Meldungen
-
@ cwmg: Danke für den Hinweis, probier ich nacher.
Ah, grad gefunden.. KrawallKurt hatte hier offenbar das selbe Problem und da war dbv's Ansatz mit dem .strip() wohl die Lösung. Ich fummel nacher weiter..
-
- Offizieller Beitrag
Mist, meine ja auch strip() :). War wohl gedanklich schon wieder bei vba
-
Yeah, das war der richtige Tipp! Nach .trim() zu googeln führt einen unweigerlich zu .strip() und .split() und was man damit schönes machen kann. Danke Captain!!
Python
Alles anzeigen#!/usr/bin/python # -*- coding: utf-8 -*- import os import sys import time import pygame import subprocess pygame.init() window = pygame.display.set_mode((320,240)) font1 = pygame.font.SysFont("droidsans", 25) font2 = pygame.font.SysFont("droidsans", 15) font3 = pygame.font.SysFont("driodsans", 25) os.system("tft_init") os.system("tft_clear") os.system("tft_pwm 80") while True: try: window.fill(pygame.Color(0,0,0)) lt = time.localtime() sep = "-" currentplay1 = subprocess.check_output(["mpc", "current", "-f", "%name%"]) currentplay2 = subprocess.check_output(["mpc", "current", "-f", "%title%"]) text1 = font1.render(currentplay1.strip(), 1, (110,110,110)) text2 = font2.render(currentplay2.split(sep, 1)[0], 1, (95,155,180)) text3 = font2.render(currentplay2.split(sep, 1)[1].strip(), 1, (95,155,180)) text4 = font3.render(time.strftime("%H:%M:%S", lt), 1, (150,60,5)) rect1 = text1.get_rect() rect1.centerx = 160 rect1.centery = 80 rect2 = text2.get_rect() rect2.centerx = 160 rect2.centery = 140 rect3 = text3.get_rect() rect3.centerx = 160 rect3.centery = 170 window.blit(text1, rect1) window.blit(text2, rect2) window.blit(text3, rect3) window.blit(text4, (250,215)) pygame.image.save(window, "/ram/temp.bmp") os.system("tft_bmp /ram/temp.bmp") time.sleep(1) except KeyboardInterrupt: sys.exit()
-
=( Mist, wenn Werbung kommt, beendet sich das Programm weil offenbar die Titelinformation unterbrochen wird:
Traceback (most recent call last):
File "tft1.py", line 34, in <module>
text3 = font3.render(currentplay2.split(sep, 1)[1].strip(), 1, (0,0,0))
IndexError: list index out of rangeBekommt man das mit einem 'wenn-weg-dann-warte-bis-wieder-da' hin?
-
- Offizieller Beitrag
-
-
Hallo,
Habe soeben das Uhr-Projekt installiert und auch gleich zum Laufen bekommen (obwohl ich ein newbie bin)
Allerdings sind die ersten beiden Zeilen nur Rechtecke statt Zeichen. Eine Probe hat ergeben, dass es am Font droidsans liegt... dieser ist jedoch am System installiert:Codepi@raspberrypi-wockeinc ~/C-Berry/SW/uhr $ fc-list | grep -i droidsans.ttf /usr/share/fonts/truetype/droid/DroidSans.ttf: Droid Sans:style=Regular
Was vermisse ich hier?Liebe Grüße, Bernd
-
Hallo,
Habe soeben das Uhr-Projekt installiert und auch gleich zum Laufen bekommen (obwohl ich ein newbie bin)
Allerdings sind die ersten beiden Zeilen nur Rechtecke statt Zeichen. Eine Probe hat ergeben, dass es am Font droidsans liegt... dieser ist jedoch am System installiert:Codepi@raspberrypi-wockeinc ~/C-Berry/SW/uhr $ fc-list | grep -i droidsans.ttf /usr/share/fonts/truetype/droid/DroidSans.ttf: Droid Sans:style=Regular
Was vermisse ich hier?Liebe Grüße, Bernd
Hallo Bernd,
ich habe hier das selbe Problem, und leider auch noch keine Lösung!:sÄndere doch einfach den Font im Script auf "droidsansmono", Größe noch anpassen und es läuft erst einmal! Aber es würde mich schon interessieren warum es mit dem "droidsans" nicht geht!?
Grüße,
Jens -
Hallo,
auch ich habe jetzt das Display, was soweit erstmal funktioniert.
Wie kann ich ein BMP zusammenbauen, welches beispielsweise ein Wettericon darstellt? Alternativ, kann man nur ausgewählte Bereich neu zeichnen?VG
F.Edit: Hat sich geklärt:
icon = pygame.image.load("/home/webide/repositories/my-pi-projects/Securasp/Icons/sunny.png").convert_alpha()
icon2 = pygame.image.load("/home/webide/repositories/my-pi-projects/Securasp/Icons/status_on.png").convert_alpha()
window.blit( icon, (50,100))
window.blit( icon2, (230,0)) -
Hi,
ich bin totaler newbie und habe das 2,8" C-Berry Display von Reichelt.
Jetzt habe ich hoffentlich alles soweit richtig installiert.
Wenn ich
sudo python uhr.py
aufrufe, dann erscheint das pygame Fenster, aber das Display blitzt nur kurz auf.
Das Pygame Fenster ist auch nur schwarz.
Das Bild unter /ram sieht aber richtig ausWoran kann das liegen?
Bin eher im Windows Bereich zu Hause,
also sorry für die einfachen Fragen.Danke
MfG
coasty -
Mh,
hat keiner einen Tip für mich?
MfG
coasty -
Hi,
ich habe endlich auch ein C-Berry zum Spielen gekriegt. Aber ein Phänomen verdirbt mir die Freude: Alle probierten python-Programme bleiben bei "window = pygame.display.set_mode((320,240))" stehen. Ein CTRL-C bricht irgendwas ab und die Sache geht ohne Fehlermeldung weiter.Kennt einer dieses Problem?
Vielen Dank
Jan -
Hallo,
kann es sein das ihr ein c-berry28 habt? Ich habe auch ein c-berry28 und da ist eine abweichende Software erforderlich. Das Demo von adma-tec funktioniert, benutzt aber andere software. Der unterschied liegt wohl an den unterschiedlichen Anschlüssen an den Pi. Weiter bin ich aber auch noch nicht.Kalli :s
-
Also mein Display funktioniert jetzt. Leider konnte ich mein Problem nicht vernünftig klären, es hat sich in Luft aufgelöst. Kann ich also leider nur unter "verklemmter Pups" einordnen.
-
Hi,
geschafft.Nach dem Umbau der c-Routinen tft_init, tft_bmp und tft_pwm auf den anderen Treiberbaustein und dem Verzicht auf tft_clear funtioniert das "Uhr-Demo".
Jetzt hab ich noch ein Problem:
Sobald ich das Display anspreche stellt mpc die Arbeit ein und es kommt nur noch ein zierpen aus dem Lautschrecher.
Kann mir da jemand helfen?Kalli :s
-
Leider kann ich dir nicht helfen, aber ich habe das selbe Problem. Ich benutze die C-Routinen unverändert, es kann also nicht an deinen Änderungen liegen. Der mpd und mpc verhalten sich (was ihre Ausgaben anbelangt) vollkommen normal. Nur aus der UCB-Soundkarte kommt dieses Zirpen. Kann die Ursache im ALSA-Treiber liegen?
Gruß
Jan -
Hallo Jan
bist du dir sicher dass du ein c-berry28 hast? Im c-berry ist als Grafikchip der RAIO8870 verbaut und im c-berry28 der ST7789. Diese Treiber benötigen unterschiedliche Software. Im Treiber des ST7789 sind die Grafikroutinen aus dem RAIO8870 nicht implementiert. Da der tft_clear ein schwarzes Rechteck auf das Display zeichnet und dieser Befehl im ST7789 Treiber nicht enthalten ist, habe ich auf tft_clear verzichtet.
Das mit dem Alsa-Treiber muss ich mir noch einmal genauer anschauen.Gruß
Kalli :s
-
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!