MPD - Displayanzeige - Python

  • Hallo zusammen,
    seit einiger Zeit arbeite ich an einem Raspi-Radio-Projekt. Ich habe schon einen Entwurf eines Programmes in Python geschrieben.
    Ich habe auch ein bisschen mit einem Displays experimentiert, und habe die Funktionsweise einigermaßen beherrscht,aber das was ich bisher gemacht habe, kann mir nicht viel weiter helfen. Und zwar, ich wollte, dass die Radiosender und das aktuelle Song auf dem Display angezeigt wird.
    Ich habe jedoch keine Ahnung, wie ich das erreichen kann. Ich weiß leider nicht, welches Kommando ich brauche, was ich schreiben soll, damit ich es auf dem Display habe.
    Das ist mein Programm:

    import time
    import Adafruit_CharLCD as LCD
    import RPi.GPIO as GPIO
    import time
    import os
    import sys


    lcd_rs = 7
    lcd_en = 8
    lcd_d4 = 25
    lcd_d5 = 24
    lcd_d6 = 23
    lcd_d7 = 18
    lcd_backlight = 2


    lcd_columns = 16
    lcd_rows = 2

    lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight)


    GPIO.setmode(GPIO.BCM)
    GPIO.setup(16, GPIO.IN)
    GPIO.setup(20, GPIO.IN)
    GPIO.setup(21, GPIO.IN)


    lcd.clear()
    message = 'Welcome'
    lcd.message(message)

    for i in range(lcd_columns-len(message)):
    time.sleep(0.5)
    lcd.move_right()
    for i in range(lcd_columns-len(message)):
    time.sleep(0.5)
    lcd.move_left()


    while True:


    taster_play = GPIO.input(20)
    taster_next = GPIO.input(21)
    taster_prev = GPIO.input(16)
    if taster_play:
    os.system('mpc play')
    time.sleep(0.5)
    print(os.system('mpc current'))
    lcd.clear()
    message = :huh: :huh: :huh:
    lcd.message(message)


    if taster_next:
    os.system('mpc next')
    print(os.system('mpc current'))
    lcd.clear()
    message = :huh: :huh: :huh:
    lcd.message(message)


    if taster_prev:
    os.system('mpc prev')
    print(os.system('mpc current'))
    lcd.clear()
    message = :huh: :huh: :huh:
    lcd.message(message)


    ich programmiere viel in Basic Visual, ich weiß, wie es in dieser Sprache funktioniert, aber Python ist viel, viel anspruchsvoller als Basic V.

    Kann jemand mir helfen, einen Ratschlag oder eine Idee geben? Ich könnte dann weiter an diesem Projekt arbeiten. Jetzt, sagen wir es so: bin ich in einer Sackgasse geraten.


    Danke,
    viele Grüße
    A.

    • Offizieller Beitrag

    Bitte zuerst: code Tags. wie das geht steht in den FAQ.

    Schau dir mal subprocess.check_output aus dem subprocess modul an. Damit kriegst du die ausgaben aus der shell direkt in ne Variable. Es gibt aber auch ein mpd modul für python, damit erleichterst du dir die Sache ungemein.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Einmal editiert, zuletzt von dbv (10. Mai 2017 um 21:11)

  • Hallo,

    ehrlich gesagt sehe ich dein Problem nicht. Außer, dass du statt `os.system()`, was als veraltet gilt, das `subprocess` Modul benutzen möchtest, sieht dein Code doch passabel aus...

    Bzw. du kannst dir das auch ganz sparen, es gibt fertige Python-Module zur Steuerung des MPC.

    Du musst für die Nachricht die Ausgabe auf's Display hat nicht per `print` ausgeben, sondern an eine Variable binden und dann per `lcd.message(name_deiner_variablen)` anzeigen lassen.

    Gruß, noisefloor

Jetzt mitmachen!

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