C-Berry mit Python ansteuern

  • Hallo zusammen,

    habe mich ein paar Tage mit dem tollen C-Berry TFT Display beschäftigt.
    Es stellte sich für mich die Frage, ob ich das Display auch mit Python verwenden kann.
    Das Ergebnis seht ihr auf meiner Projektseite

    Das ganze klappt sehr gut mit Hilfe von pygame.
    Aber lest selber nach.

    [youtube]9LRNW9FCuLk[/youtube]

    Gruß
    Reimar

    Einmal editiert, zuletzt von barni7 (25. Februar 2014 um 13:13)

  • Nimm mal das Try Except aus dem Python Code heraus, damit wir eine mögliche Fehlermeldung sehen.

    Ah, ich habe in der Beschreibung vergessen zu erwähnen, das im Root ein Verzeichnis /ram erstellt werden muss.
    Hier hin wird dann anschließend die RAM-Disk gemountet.

    Einmal editiert, zuletzt von barni7 (23. Februar 2014 um 21:43)

  • wurde gemacht und trotzdem nichts
    Es öffnet sich ein pygame-fenster kurz auf dem desktop und das Display leuchtet kurz auf aber nichts erscheint

    Code
    Traceback (most recent call last):
      File "uhr.py", line 42, in <module>
        pygame.image.save(window, "/ram/temp.bmp")            
    pygame.error: Error writing to datastream

    bekomme ich

    Einmal editiert, zuletzt von ProudSound12121 (23. Februar 2014 um 21:59)

  • Startest du die grafische Oberfläche, da du schreibst, das sich ein pygame Fenster öffnet?
    Ich habe das noch nicht probiert, da ich bisher nur über Shell gegangen bin.
    Also alles auf Komandozeile per putty.

    Deine Fehlermeldung sagt aus, das man in das Verzeichnis nicht schreiben kann.
    Versuche das mal von Hand, also einfach mal eine kleine Datei hineinkopieren oder anlegen.
    Irgend etwas stimmt nicht mit der RAM-Disk.
    Du kannst natürlich alternativ auch erst mal die SD-Karte verwenden.

    Einmal editiert, zuletzt von barni7 (23. Februar 2014 um 22:06)

  • Code
    root@displaytest:~/C-Berry/SW/uhr# ls /
    bin   boot.bak    etc   lib      media  opt   ram   run   selinux  sys  usr
    boot  dev    home  lost+found  mnt     proc  root  sbin  srv        tmp  var
    root@displaytest:~/C-Berry/SW/uhr#

    ram existiert

    per Putty oder per VNC starte ich es
    ram auch extra auf 755 gestellt

    Gut erledigt lag an mir
    die Dateien gehörten dem Benutzer PI
    müssen aber bei mir root gehören

    ich sollte langsam mal die Pi aus machen
    sorry

    Einmal editiert, zuletzt von ProudSound12121 (23. Februar 2014 um 22:15)

  • Noob Alarm :s: Kann mir jemand diesen Punkt des Tutorials konkreter erklären:

    "Die 4 C-Programme müssen mit mit dem GCC Compiler und dem Befehl make compiliert werden."

    Wie mit gcc grundsätzlich kompiliert wird ist mir inzwischen glaub ich klar, nur wie genau wird der make Befehl in diesem Zusammenhang richtig gesetzt?

    • Offizieller Beitrag


    Noob Alarm :s: Kann mir jemand diesen Punkt des Tutorials konkreter erklären:

    "Die 4 C-Programme müssen mit mit dem GCC Compiler und dem Befehl make compiliert werden."

    Wie mit gcc grundsätzlich kompiliert wird ist mir inzwischen glaub ich klar, nur wie genau wird der make Befehl in diesem Zusammenhang richtig gesetzt?

    Hiho eigentlich ganz simpel, ich demonstier das mal an einen einem der 4 Programme
    die 4 tools downloaden, wie beschrieben

    Code
    cd ~
    wget http://www.7soft.de/uploads/Software/C-Berry-python.tgz
    tar zxvf C-Berry-python.tgz

    compilieren

    Code
    cd C-Berry/SW/tft_bmp
    make

    Optional jetzt noch das complierte tool nach /usr/bin kopieren

    Code
    cp tft_bmp /usr/bin

    Anmerkung: Ich arbeite nur als root, wenn er irgendwas wegen "permission denied" rumweint -> sudo davorsetzen ;)
    diesen Schritt solltest du, wenn du dich ans tut gehalten hast, bereits erledigt haben. hier nur zu Vollständigkeit:

    Code
    wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.36.tar.gz
    tar zxvf bcm2835-1.36.tar.gz
    cd bcm2835-1.36
    ./configure
    make
    sudo make check
    sudo make install
  • make ist ein Programm was gcc aufruft. Bei komplexen Programmen ist der gcc/g++ Aufruf extrem lang und komplex, daher gibt es Programme die einem das abnehmen.
    Was make genau tut steht dann im Makefile.
    Wem das Makefile dann zu komplex wird, der kann cmake, qmake oder ähnliches nutzen um sich das wiederum abnehmen zu lassen^^

    Standartweg um unter Linux Programme zu kompilieren ist folgender:
    ./configure <- Makefile an das System angepasst generieren (autobuild macht das glaube ich)
    make <- kompilieren (hier passiert das ganze gcc-Zeug
    sudo make install <- Hier werden die Erstellten Dinge installiert, also (im Fall von Programmen) in /bin oder /usr/bin oder sowas kopiert. Hierfür braucht man root-Rechte weil Dinge in /bin oder so kopiert werden und dort darf nur root rumpfuschen.

  • Code
    gcc -bla -blub
    gcc: error: unrecognized command line option ‘-bla’
    gcc: error: unrecognized command line option ‘-blub’
    gcc: fatal error: no input files
    compilation terminated.

    hmmm schade :)

  • Harr, funktioniert jetzt hervorragend, danke nochmal.
    Ich hab ein bisschen mit dem uhr.py Beispielscript herumgespielt, um zu kapieren welcher Befehl was macht. Was mir partout nicht gelingen will ist eine der Textzeilen so zu ändern, dass sie zentriert angezeigt wird. Dafür krieg ich Syntaxfehler schon ganz gut hin ;)
    Kann mir da nochmal jemand unter die Arme greifen?

    Einmal editiert, zuletzt von eqsOne (8. Mai 2014 um 13:18)

  • Ok, habs hinbekommen..

  • So weit, so gut. Nach tagelanger googelei hab ich jetzt auch die Anzeige der Radiostreams von MPD/MPC hinbekommen.
    Hat jemand ne Idee was diese Rechtecke am Ende der Zeilen verursacht oder wie man die wegbekommt? Passende Suchbegriffe wären schon ne große Hilfe.
    An der Schriftart liegt es scheinbar nicht, an den fehlenden eckigen Klammern um %name% und %title% auch nicht..
    Gibt es eigentlich eine Möglichkeit Artist und Track voneinander zu trennen?

    foto2xz3opvq9y.jpg

    Einmal editiert, zuletzt von eqsOne (13. Mai 2014 um 23:15)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!