MPC Button LCD(HD44780 20x4)

  • Hallo Forum,


    heute kam mein Display HD44780 20x4 und habe die kleine Platine angelötet und dachte mir naja dürfte ja nicht schwer werden aber leider sehr sehr weit verfehlt.


    Ich verwende seit Jahren einen PI mit der Sn00py Weboberfläche. Jetzt wollte ich halt ein Display und Schaltbuttons anbauen.

    Ich fand folgendes Script im WEB

    von dieser Webseite.

    Entsprechende habe ich die i2c adresse geändert und habe auch entsprechende Infos zu sehen bekommen aber sobald ein Sender Werbung schaltete brach das Script zusammen.


    von denen hier habe ich die lcdlib.py heruntergeladen.


    Kann mir jemand entweder ein anderes Python Script empfehlen oder mir bei dem Problem das es Absürzt helfen.


    danke Lars

  • Also ich habe nun erstmal ein Paar Zeilen des Codes entfernt...



    Traceback (most recent call last):

    File "radioneu.py", line 235, in <module>

    main()

    File "radioneu.py", line 217, in main

    song = sstring.split('-')[1]

    IndexError: list index out of range


    Immer wenn Werbung kommt fliegt das Script raus.???


    Lars

  • Was auch immer da als Titel geliefert wird, entspricht nicht der Erwartung. Um musst das also behandeln, und zb prüfen, wie viele element die Liste hat, und dann bei nur einem Element etwas anderes machen.

  • Hallo deets,


    mir fällt auf das ich nur ein script über die rc.local laufen lassen kann.


    habe einmal button.py und danach lcd.py eingetragen. rc.local hält aber bei einem programm an und führt das andere nicht mehr aus.

    Also muß ich beide script vereinen.


    Warum sind eigentlich beide Script in verschiedene Schreibweisen...


    bsp.

    lcd.clear()

    lcd.backlight_on()

    output = "Load: %.2f" % maxload

    lcd.display_string(output, 2, 0)



    sstring = os.popen('mpc -f %title%').readline()

    astring = os.popen('mpc -f %title%').readline()

    song = sstring.split('-')[1]

    artist = astring.split('-')[0]

    lcd_string('mpc -f %name%',LCD_LINE_1,2)

    lcd_string(song.strip(),LCD_LINE_2,2)

    lcd_string(" ",LCD_LINE_3,1)

    lcd_string(song_elapsed()+" / Stream Time",LCD_LINE_4,3)


    Wenn ich im 2. Script welches ich zur Darstellung der Radiodaten das lcd.clear eintrage bekomme ich ein fehler.


    Lars

  • Hallo,


    rc.local,ist veraltet, das gibt es nur aus Gründen der Rückwärtskompatibilität. Starte deine Skripte über systemd Service Units, das ist der Stand der Dinge.

    Positiver Seiteneffekt: du bekommst automatisch das Logging via journald von systemd dazu, was bei der Fehlersuche sehr hilfreich sein kann.


    Gruß, noisefloor

    • Official Post

    Dann wird rc.local imho aber auch über systemd ausgeführt und sollte somit Infos liefern. :lol:


    Btw. MagicBird Das Skript ist hoffnungslos überaltert und nicht nur durch... nee ist nicht so toll. Du solltest ernsthaft mal in Erwägung ziehen, selber etwas zu programmieren! Bist ja auch nicht erst seit Gestern hier unterwegs. ;)

  • Wenn beide Skripte das LCD bedienen sollen, wirst du sie vereinen müssen. Sonst treten die sich nur gegenseitig auf die Füße.