- Offizieller Beitrag
Dazu brauchst Du kein Script, ein cronjob mit 30 20 * * * root poweroff reicht zum runterfahren. Noch besser wäre die Verwendung der root-crontab (sudo crontab -e), dann der Job ohne root, also 30 20 * * * poweroff
Dazu brauchst Du kein Script, ein cronjob mit 30 20 * * * root poweroff reicht zum runterfahren. Noch besser wäre die Verwendung der root-crontab (sudo crontab -e), dann der Job ohne root, also 30 20 * * * poweroff
[Projekt] jukebox4kids (Jukebox für Kinder)? Schau mal ob du hier fündig wirst!
Hallo Hyle,
das weiß ich auch. Da ich aber noch mehr in das Script einbinden möchte( z.B. auslesen des aktuellen Tracks) wollte ich den Shutdown bzw. die die damit verbunden Schritte in ein script packen. Ist halt noch im Fluss und es gibt sicherlich viele Lösungswege.
Viele Grüße
X-Ray
Hallo Leute,
erst einmal Danke an alle die das Projekt so vorantreiben und fragen beantworten. Ich habe mir nun alle benötigten Komponenten zusammen gekauft und der Pi läuft auch schon. Was nun noch fehlt sind die Buttons und insbesondere die lötarbeiten. Hierzu gibt es ja auf git ein paar Bilder. Hier im Threads hatte auch einer bereits einen Eagle Schaltplan als Bild hinterlegt. Leider bin ich kein espezi und habe eher weniger Ahnung von der etechnik. Entsprechend wollte ich fragen ob es hierzu genauere Pläne gibt oder ob jemand einen fritzing oder Eagle Plan hat, den er mir zur Verfügung stellen könnte?
Darüber hinaus habe ich noch ein Problem mit dem Webinterface. Dieses funktioniert zwar hinsichtlich des erstellens von neuen Kartenzuordnungen, jedoch geht keiner der Play Pause Nexus buttons im Interface. Auch die Lautstärke Einstellung via webinterface funktioniert nicht. Kann es eventuell daran liegen dass ich einen pi3 b+ nutze?
lch würde mich sehr über eure Hilfe freuen!
Was nun noch fehlt sind die Buttons und insbesondere die lötarbeiten. Hierzu gibt es ja auf git ein paar Bilder. Hier im Threads hatte auch einer bereits einen Eagle Schaltplan als Bild hinterlegt. Leider bin ich kein espezi und habe eher weniger Ahnung von der etechnik. Entsprechend wollte ich fragen ob es hierzu genauere Pläne gibt oder ob jemand einen fritzing oder Eagle Plan hat, den er mir zur Verfügung stellen könnte?
Anbei mal ein Fritzing-Plan den ich für meine Übersetzer-Platine erstellt habe, die ich auf einer Lochrasterplatine gelötet habe. Die dient als einfach wartbare Stecklösung zwischen dem Raspi und der angeschlossenen Peripherie, denn in meinem Gehäuseinneren kommen 2 Flachbandkabel an:
Wenn Du nur Buttons nutzen willst, kannst Du also die rechte Seite im Schaltplan (für die LEDs) ignorieren.
Meine letzte Platine habe ich glaube ich auch vor 20 Jahren in der Schule gelötet, habs aber unter dem Strich ganz gut hinbekommen (musste auch nur 2 Teile zwischendurch wieder auslöten )
Rückblickend hätte ich den Platz auf der Lochrasterplatine etwas ergiebiger ausnutzen können und auch zum Raspi eine zweizeilige Steckerleiste machen können, so dass man auch da beide Seiten einfach mit einem Flachbandkabel verbinden kann (aktuell nutze ich Jumperkabel)
Darüber hinaus habe ich noch ein Problem mit dem Webinterface. Dieses funktioniert zwar hinsichtlich des erstellens von neuen Kartenzuordnungen, jedoch geht keiner der Play Pause Nexus buttons im Interface. Auch die Lautstärke Einstellung via webinterface funktioniert nicht. Kann es eventuell daran liegen dass ich einen pi3 b+ nutze?
lch würde mich sehr über eure Hilfe freuen!
Play, Pause, next geht bei mir (3B non-plus)
Die Lautstärke geht bei mir auch nicht. Vermutlich, weil ich eine USB-Soundkarte benutze (?). Das Raspi-Audio musste ich deaktivieren, damit es nicht zu Konflikten kommt. Mich stört es nicht, denn für die Lautstärkeregelung habe ich eh das analoge Stellrädchen nach draußen gelegt. Doppelte Lautstärkeregler sorgen eh oft für Probleme...
Vielleicht könnte man das Problem mit dem potentiell ungünstigen Abschaltzeitpunkt aber noch anders lindern. Ich überlege gerade, ob man nach Zeitablauf das aktuelle Hörspiel noch bis zu Ende laufen lassen kann.
So hat's geklappt. Wenn die Zeit abgelaufen ist, wird jetzt das laufende Hörspiel noch beendet bevor sich die Box herunterfährt.
inzwischen hab ich auch das letzte Detail am laufen, dass das Kind nicht einfach die Box aus- und wieder anschalten kann, um wieder das defaultkontingent zu bekommen.
Den Code poste ich dann morgen oder so, bin gerade nicht am pc.
Hey tobi79,
vielen Dank erst Mal für deine Pläne. Leider sind die für mich als Laien noch schwieriger als die von MiczFlor im git. Deswegen bastel ich nun das von MiczFlor nach. Leider verstehe ich hier eine Sache nicht ganz. Die Pins laufen zunächst auf einen 1k Ohm Widerstan. Von da aus laufen sie sowohl auf den Eingang vom Button als auch auf den 10k Ohm widerstand der wiederum direkt auf 3,3vcc läuft. Der Button läuft dann mit einem Pin auf Grund. Wenn ich das richtig interpretiere liegt dann am Pin immer 3,3v an und über den Button wird das ganze dann auf gnd geschaltet. Macht das Sinn? Und was mache ich mit meinem dritten Anschluss am Button? Der wäre laut meiner Interpretation der Schaltung nun gar nicht genutzt. Also der, der im nicht geschalteten Zustand durch läuft im Button.
Ich wäre für eure Hilfe echt dankbar.
Gruß
Am Taster brauchst du 2 Anschlüsse.
Guck mal in meinem Beitrag
[Projekt] jukebox4kids (Jukebox für Kinder)
Da ist eine Anleitung. Beitrag 206
Das ist genau der Schaltplan den ich meine das heißt am Button muss nur Eingang auf geschalteten Kontakt genutzt werden und der "ausgang" der dauerhaft bei nicht geschaltet mit Eingang kontaktiert ist, wird nicht gebraucht?
Und dann habe ich das auch richtig verstanden, dass die 3,3v dauerhaft am Pin Anliegen und der gnd dann beim Schalten dazu geschaltet wird?
Weil genau so habe ich es gemacht und wenn ich die paltine mit Pi verbinde, fährt Pi nicht mehr hoch.
und wenn ich die paltine mit Pi verbinde, fährt Pi nicht mehr hoch.
Oha! Mach mal bitte in paar aussagekräftige Fotos der (angeschlossenen) Platine und lade diese hier hoch. Ein paar Infos zu Deinem Netzteil wären auch nicht schlecht. Evtl. erkennt hier jemand den Fehler...
Sehr gern. Anbei die bilder. Ich hoffe es wird verständlich damit.
Edit: Powersuply durch eine TeckNet PowerZen 16750mAh Powerbank
Würdest Du in Deine Skizze bitte noch die GPIO (als Pinnummern) einzeichnen und ein Foto von der Rückseite der Platine machen? Und was genau ist wo am Ende der Strippen?
Und dann habe ich das auch richtig verstanden, dass die 3,3v dauerhaft am Pin Anliegen und der gnd dann beim Schalten dazu geschaltet wird?
Ich bin da auch mit ner Menge Halbwissen rangegangen, mit etwas Einlesen (und gerne auch Nachfragen) klappt das schon
In Deiner Zeichnung sehe ich spontan erstmal keinen Fehler.
Dennoch vielleicht doch kurz für Dich zum Verständnis betreffs Deiner Frage:
Ja, hier liegen dauerhaft 3,3V (+) am Schalter an, und wenn man den drückt, wird das "einfach" auf (-) kurzgeschlossen.
Das mag erstmal komisch klingen. Zum Sinn dahinter:
Der Eingang am Raspberry wird so konfiguriert, dass er bei Spannung am Eingangs-Pin von "nicht gedrückt" ausgeht und bei keiner Spannung (0V) von "gedrückt". Deswegen liegt hier dauerhaft 3.3V Spannung an. Wenn man nun den Schalter drückt, sinkt die Spannung am GPIO-Pin durch den Kurzschluss auf 0V und der Raspi erkennt den Tastendruck. So viel zum Prinzip...
Solche Kurzschlüsse sind aber nicht gesund oder verbraten bestenfalls noch zu viel Energie. Daher werden hier die Widerstände mit eingebaut.
Man muss sich das also so vorstellen:
Vom 3.3V Pin kommt Spannung in den Schaltkreis. Die muss aber erstmal durch den 10K Widerstand. Selbst wenn nun hinter dem Widerstand per Schalter ein Kurzschluss provoziert wird, fließt da nur ganz wenig Strom, so dass das unbedenklich ist.
Der 1K Widerstand ist prinzipiell überflüssig, die o.g. Button-Schaltung funktioniert auch so.
Falls man aber am Raspberry den GPIO-Pin versehentlich als Ausgang konfigurieren und auf High setzen würde - d.h. dort 3.3V aufschaltet - würde es beim Drücken des Buttons zu einem Kurzschlus kommen und ungesund viel Strom aus dem GPIO zu (-) (hinter dem Button) fließen. Dabei kann der Raspi kaputtgehen. Deswegen steckt man auch vor den GPIO-Pin noch einen (kleineren) Widerstand.
Oha die Pinbelegung hatte ich natürlich vergessen. Anbei die Bilder.
Ergänzend hier noch ein Link: https://www.elektronik-kompendium.de/sites/raspberry-pi/2006051.htm
Hi MrBrown997 ,
meine Platine hatte ich hier auch schonmal gepostet:
zudem hatte ich das gleiche Problem mit der Lautstärke. Die Lösung ist auf der gleichen Page hinterlegt.
VG
X-Ray
So hat's geklappt. Wenn die Zeit abgelaufen ist, wird jetzt das laufende Hörspiel noch beendet bevor sich die Box herunterfährt.
inzwischen hab ich auch das letzte Detail am laufen, dass das Kind nicht einfach die Box aus- und wieder anschalten kann, um wieder das defaultkontingent zu bekommen.
Den Code poste ich dann morgen oder so, bin gerade nicht am pc.
Habe jetzt endlich mal meine Skripte inkl. 2 Readme-Dateien hier hochgeladen, sind ab heute 7 Tage online:
Die wesentlichen Parameter lassen sich am Dateianfang nach Belieben konfigurieren, z.B. das beim Anschalten vergebene Default-Zeitkontingent sowie die nach Ablauf geltende Sperrzeit (überlebt auch ein Neustarten der Box). Ebenso, ob man LEDs mit benutzt oder nicht.
Bei Fragen oder Anregungen einfach melden.
Viele Grüße,
tobi79
Alles anzeigenHabe jetzt endlich mal meine Skripte inkl. 2 Readme-Dateien hier hochgeladen, sind ab heute 7 Tage online:
Die wesentlichen Parameter lassen sich am Dateianfang nach Belieben konfigurieren, z.B. das beim Anschalten vergebene Default-Zeitkontingent sowie die nach Ablauf geltende Sperrzeit (überlebt auch ein Neustarten der Box). Ebenso, ob man LEDs mit benutzt oder nicht.
Bei Fragen oder Anregungen einfach melden.
Viele Grüße,
tobi79
Mal die Datein für die Ewigkeit hier im Forum zum downloaden.
Mal die Datein für die Ewigkeit hier im Forum zum downloaden.
Ups, an das Feature habe ich gar nicht gedacht. Danke!
Hallo zusammen,
bin schon eine ganze Weile an meiner persönlichen Jukebox für meine Kleine dran.
Habe damals verschiedene Varianten getestet und habe mich letztendlich für MiczFlor/RPi-Jukebox-RFID entschieden.
Mein persönliches Setup besteht aus:
RPi3 |
imuto 10000mAh Powerbank (für mich war dabei passthrough wichtig) |
RPi USV+ (damit beim Laden der Powerbank sich der RPi nicht einfach abschaltet) |
CSL - Externe USB Soundkarte |
Trust Leto 2.0 USB Lautsprecher Set |
I2C LCD 20 x 4 (aktuell mein Sorgenkind) |
125Khz RFID-Lesegerät EM4100 |
Die grundlegenden Funktionen laufen einwandfrei und die einzelnen Alben werden über die RFID-Karten geladen.
Nun wollte ich als letzten Step das LCD-Disyplay integrieren, nur bei diesem Thema bin ich ehrlich gesagt total aufgeschmissen.
Habe das "gpio-buttons.py"-Script angepasst, sodass ich bei einem Button eine einfache Anzeige erhalten nur entspricht das nicht meinen Vorstellungen.
Ich möchte über das Display das aktuelle Lied angezeigt bekommen und ein Symbol, ob es gerade abspielt oder pausiert.
Zusätzlich soll über den Laut/Leiser-Button die aktuelle Lautstärke als Balken angezeigt werden.
Falls es funktionieren sollte wäre es schön, wenn man den aktuelle Akkuzustand der Powerbank anzeigen könnte (aber laut Google sollte diese Funktion nicht realisierbar sein).
Vielleicht noch das aktuelle Datum und Uhrzeit? Hättet Ihr noch Ideen für sinnvolle Funktionen?
Ich hoffe Ihr könnt mir dazu weiterhelfen
Achso, ich verwende Stretch-Lite, falls dies für Euch wichtig ist.
Jukebox4Kids - Installation:
Version:
Jukebox4Kids - v0.0.1.img
- Update & Upgrade
- Autologin Desktop
- Jukebox4Kids installiert
- RFID Reader konfiguriert
Jukebox4Kids - v0.0.2.img
- Update & Upgrade
- Autologin Desktop
- Jukebox4Kids installiert
- RFID Reader konfiguriert
- USB-Soundcard installiert und eingerichtet
Jukebox4Kids - v0.0.3.img
- Update & Upgrade
- Autologin Desktop
- Jukebox4Kids installiert
- RFID Reader konfiguriert
- USB-Soundcard installiert und eingerichtet
- GPIO installiert und PushButton konfiguriert
Jukebox4Kids - v0.0.4.img
- Update & Upgrade
- Autologin Desktop
- Jukebox4Kids installiert
- RFID Reader konfiguriert
- USB-Soundcard installiert und eingerichtet
- GPIO installiert und PushButton konfiguriert
- USV+ installiert und konfiguriert
Jukebox4Kids - v0.0.5.img
- Update & Upgrade
- Autologin Desktop
- Jukebox4Kids installiert
- RFID Reader konfiguriert
- USB-Soundcard installiert und eingerichtet
- GPIO installiert und PushButton konfiguriert
- USV+ installiert und konfiguriert
- LCD-Display installiert und die ersten Einstellungen vorgenommen
Installation:
- SD per „SD Card Formatter” formatieren
- Per „Win32DiskImager“ Raspbian STRETCH auf die SD kopieren
- Datei „ssh“ auf die SD kopieren/erstellen
- Login: pi / Passwort: raspberry
- Passwort mit dem Befehl ändern:
-- passwd
neue Daten = Login: pi / Passwort: XXX
- Root-Passwort erstellen und Passwortabfrage für WinSCP abschalten:
-- sudo passwd root
-- sudo su
-- nano /etc/ssh/sshd_config
Folgender Block muss entsprechend abgeändert werden:
ALT:
# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
NEU:
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
STRG + O, Return & STRG + X
- Autologin für PuTTY per SSH einstellen (http://ozzmaker.com/how-automatically-log-into-a-raspberry-pi/):
Per WinSCP den Ordner erstellen:
/home/pi/.ssh/
Dort wird der Key mit dem Namen eingefügt:
authorized_keys
Im Programm „PuTTY“ müssen folgende Einstellungen vorgenommen werden:
Connection SSH Auth Private Key for authentication = Key (.ppk) auswählen
Connection Data unsername = pi
- Update durchführen
-- sudo apt-get update
-- sudo apt-get upgrade
- Autologin setzen (vorausgesetzt man hat die Vollversion installiert):
-- sudo raspi-config
Boot options --> Desktop / CLI --> Console Autologin - Text console, automatically logged in as 'pi' user
- Samba installieren:
-- sudo apt-get install samba samba-common-bin
-- sudo nano /etc/samba/smb.conf
Folgendes wird in der Config geändert:
workgroup = WORKGROUP
wins support = yes
[RPi-Jukebox]
comment= Pi Jukebox
path=/home/pi/RPi-Jukebox-RFID/shared
browseable=Yes
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=no
STRG + O, Return & STRG + X
Benutzer für Samba anlegen:
-- sudo smbpasswd -a pi
- evdev installieren:
-- sudo apt-get install python-dev python-pip gcc
-- uname -r
-- sudo apt-get install linux-headers-4.X (Anstatt dem X muss die Versionsnr. angegeben werden)
-- sudo pip install evdev
- lighttpd & PHP installieren:
-- sudo apt-get install lighttpd php7.0-common php7.0-cgi php7.0
-- sudo nano /etc/lighttpd/lighttpd.conf
Folgende Änderung muss vorgenommen werden:
server.document-root = "/home/pi/RPi-Jukebox-RFID/htdocs"
STRG + O, Return & STRG + X
-- sudo nano /etc/sudoers
Folgende Zeile muss hinzugefügt werden:
www-data ALL=(ALL) NOPASSWD: ALL
STRG + O, Return & STRG + X
-- sudo lighty-enable-mod fastcgi-php
-- sudo service lighttpd force-reload
- VLC installieren:
-- sudo apt-get install vlc
-- sudo sed -i 's/geteuid/getppid/' /usr/bin/vlc
- mpg123 installieren:
-- sudo apt-get install mpg123
- git installieren:
-- sudo apt-get update
-- sudo apt-get install git
- Jukebox installieren:
-- cd /home/pi/
-- git clone https://github.com/MiczFlor/RPi-Jukebox-RFID.git
-- sudo chown -R pi:www-data /home/pi/RPi-Jukebox-RFID/shared
-- sudo chmod -R 775 /home/pi/RPi-Jukebox-RFID/shared
-- sudo reboot
- RFID registrieren:
-- cd /home/pi/RPi-Jukebox-RFID/scripts/
-- python2 RegisterDevice.py
Nun muss der RFID ausgewählt werden.
Mit folgendem Code kann man prüfen, welcher eingetragen wurde:
-- cat deviceName.txt
- Auto-start für Jukebox einrichten:
-- crontab -e
Folgende Zeilen werden am Schluss hinzugefügt:
@reboot mpg123 /home/pi/RPi-Jukebox-RFID/misc/startupsound.mp3
@reboot python2 /home/pi/RPi-Jukebox-RFID/scripts/daemon_rfid_reader.py &
STRG + O, Return & STRG + X
- Media Player Script:
-- cd /home/pi/RPi-Jukebox-RFID/scripts/
-- cp rfid_trigger_play.sh.sample rfid_trigger_play.sh
-- chmod +x rfid_trigger_play.sh
-- sudo reboot
- USB-Soundcard einrichten:
-- aplay -l
Hier ist die Card Nummer relevant:
Beispiel:
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
-- sudo nano /usr/share/alsa/alsa.conf
Folgende Werte müssen entsprechend der Card Nummer angepasst werden:
defaults.ctl.card 1
defaults.pcm.card 1
STRG + O, Return & STRG + X
-- sudo nano ~/.asoundrc
Folgende Daten eintragen:
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
STRG + O, Return & STRG + X
Da nun die Lautstärke nicht über den Webserver geändert werden kann muss folgende Änderung vorgenommen werden:
In der Datei /htdocs/index.php muss in der Zeile 60 "Speaker" anstatt "PCM" eingetragen werden:
exec("/usr/bin/sudo amixer sset 'Speaker' ".$urlparams['volume']."%");
Datei speichern und RPi neustarten:
-- sudo reboot
- GPIO installieren und PushButtons konfigurieren:
-- sudo get-apt update
-- sudo apt-get install python3-gpiozero python-gpiozero
-- cp /home/pi/RPi-Jukebox-RFID/misc/GPIO-button-sample.py /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py
-- sudo chmod +x /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py
- Autostart einrichten:
-- sudo nano /etc/rc.local
Folgende Zeile oben einfügen:
/home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py &
- Die Datei "gpio-buttons.py" muss noch wie folgt angepasst werden:
#!/usr/bin/python3
from gpiozero import Button
from signal import pause
from subprocess import check_call
# 2017-12-12
# This script was copied from the following RPi forum post:
# https://forum-raspberrypi.de/forum/thread/13144-projekt-jukebox4kids-jukebox-fuer-kinder/?postID=312257#post312257
# I have not yet had the time to test is, so I placed it in the misc folder.
# If anybody has ideas or tests or experience regarding this solution, please create pull requests or contact me.
#def def_shutdown():
# check_call(['sudo', 'poweroff'])
def def_volU():
check_call("amixer sset Speaker 1.5db+", shell=True)
def def_volD():
check_call("amixer sset Speaker 1.5db-", shell=True)
def def_vol0():
check_call("amixer sset Speaker 50db-", shell=True)
def def_next():
check_call("echo 'next' | nc.openbsd -w 1 localhost 4212", shell=True)
def def_prev():
check_call("echo 'prev' | nc.openbsd -w 1 localhost 4212", shell=True)
def def_halt():
check_call("echo 'pause' | nc.openbsd -w 1 localhost 4212", shell=True)
#shut = Button(3, hold_time=2)
vol0 = Button(13)
volU = Button(16,pull_up=True)
volD = Button(19,pull_up=True)
next = Button(26)
prev = Button(20)
halt = Button(21)
#shut.when_held = def_shutdown
vol0.when_pressed = def_vol0
volU.when_pressed = def_volU
volD.when_pressed = def_volD
next.when_pressed = def_next
prev.when_pressed = def_prev
halt.when_pressed = def_halt
pause()
- Buttons müssen via GPIO wie folgt angeschlossen werden:
Stumm - vol0 - PIN33 - GPIO13
Lauter - volU - PIN36 - GPIO16
Leiser - volD - PIN35 - GPIO19
Nächstes - next - PIN37 - GPIO26
Zurück - prev - PIN38 - GPIO20
Play/Stop - halt - PIN40 - GPIO21
Ground - - PIN39 - Ground
-- sudo reboot
- RPI USV+ installieren und konfigurieren:
-- sudo apt-get install -y python-smbus
-- sudo apt-get install -y i2c-tools
-- sudo raspi-config
5 – Interfacing Options P5 – I2C Enabled
-- sudo reboot
-- sudo nano /etc/piupsmon/piupsmon.conf
Config wird folgend angepasst:
PowerOffTimer=15
ShutdownTimer=45
ShutdownCmd=init 0
LogLevel=notice
LogStatusDesc=1
StatusChangedCmd=
STRG + O, Return & STRG + X
-- sudo reboot
Log-Datei liegt unter:
/var/log/piupsmon.log
Folgende Befehle stehen zur Verfügung:
-- sudo /etc/init.d/piupsmon start
-- sudo /etc/init.d/piupsmon stop
-- sudo /etc/init.d/piupsmon status
- LCD – Installation und Konfiguration:
-- sudo apt-get install python-pip python-dev build-essential
-- sudo apt-get install python-pip python-dev build-essential
-- sudo apt-get install python-imaging
-- sudo nano /etc/modules
Folgende Zeilen in die Datei einfügen:
i2c-bcm2708
i2c-dev
STRG + O, Return & STRG + X
-- sudo reboot
-- mkdir I2C-LCD && cd I2C-LCD
-- wget http://tutorials-raspberrypi.de/wp-content/uploads/scripts/hd44780_i2c.zip
-- unzip hd44780_i2c.zip
I2C-Adresse kontrollieren:
-- sudo i2cdetect -y 1
Sollte nicht Adresse 27 angezeigt werden muss folgende Datei angepasst werden: -- sudo nano lcddriver.py
Folgende Dateien müssen in den Ordner RPi-Jukebox-RFID/scripts eingefügt werden:
i2c_lib.py
i2c_lib.pyc
lcddriver.py
lcddriver.pyc
Der Ordner /home/pi/I2C-LCD kann gelöscht werden
Die Datei /home/pi/Rpi-Jukebox-RFID/scripts/pgio-buttons.py muss mit folgenden Zeilen angepasst werden:
import lcddriver
from time import *
lcd = lcddriver.lcd()
lcd.lcd_clear()
lcd.lcd_display_string(" LAUTER ", 1)
Alles anzeigen
Ich möchte über das Display das aktuelle Lied angezeigt bekommen und ein Symbol, ob es gerade abspielt oder pausiert.
Zusätzlich soll über den Laut/Leiser-Button die aktuelle Lautstärke als Balken angezeigt werden.
Die Info bekommst Du ebenfalls über das Remote Control Interface von VLC, das bereits auch für die Steuerung (vor, zurück, ...) verwendet wird.
get_title . . . . . the title of the current stream
is_playing . . . . 1 if a stream plays, 0 otherwise
volume [X] . . . . . . . . . . set/get audio volume
Wenn Du ein Beispiel für Skripte brauchst, die dieser Schnittstelle nicht nur Befehle schicken, sondern auch die Rückgabe auswerten, schau mal in meinen Code von 3 Beiträge weiter oben. Die Skripte scripts/vlc_*.py demonstrieren das.
Bei "volume" bin ich mir gerade nicht sicher, ob die Lautstärkeeinstellung vom VLC dieselbe ist wie die die hier ansonsten verwendete, ggf. musst du die Lautstärke anders ermitteln.
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!