Mit was für einen Raspberry hast du die Box gemacht? Ich habe einen 1 er Raspberry den ich nutzen kann ich hab noch nicht mal Plan vom Programieren und die Anleitungen sind für mindestens einen 2 er RaspberryHerbstMama hat geschrieben: ↑02.11.2019, 19:56 Die Box wurde tatsächlich zum 4. Geburtstag fertig. Die Tonuino-Box hat mein Mann ziemlich zügig zusammen gebaut. Sie steckt jetzt in einem alten Lautsprecher.
Selfmade Tigertoniehörbert
-
- Profi-SuTler
- Beiträge: 3083
- Registriert: 27.03.2019, 17:23
Re: Selfmade Tigertoniehörbert
- Angua
- ist mit Leidenschaft dabei
- Beiträge: 964
- Registriert: 28.07.2014, 10:46
Re: Selfmade Tigertoniehörbert
mein Mann hat nen einser verwendet (#uwyh), das geht schon. Soll ich ihn nach der Software fragen, die er geschrieben hat?OrangerStier hat geschrieben: ↑01.02.2020, 12:52Mit was für einen Raspberry hast du die Box gemacht? Ich habe einen 1 er Raspberry den ich nutzen kann ich hab noch nicht mal Plan vom Programieren und die Anleitungen sind für mindestens einen 2 er RaspberryHerbstMama hat geschrieben: ↑02.11.2019, 19:56 Die Box wurde tatsächlich zum 4. Geburtstag fertig. Die Tonuino-Box hat mein Mann ziemlich zügig zusammen gebaut. Sie steckt jetzt in einem alten Lautsprecher.
-
- Profi-SuTler
- Beiträge: 3083
- Registriert: 27.03.2019, 17:23
Re: Selfmade Tigertoniehörbert
Das wäre super. Dann muss ich ja jezzt echt schauen was ich an zubehör brauch und den kram endlich mal bestellen
- Angua
- ist mit Leidenschaft dabei
- Beiträge: 964
- Registriert: 28.07.2014, 10:46
Re: Selfmade Tigertoniehörbert
#!/usr/bin/python
import sys
import threading
import time
import Queue
import signal
import subprocess
import RPi.GPIO as GPIO
print("Tonbert Player")
BASEDIR = "/home/pi/Music"
BIB = {
"0003923273":"Conni - 2007 - Conni schlaeft im Kindergarten - Connie geht in den Zoo",
"0014017502":"Sven Nordqvist - 2008 - Ein Feuerwerk fuer den Fuchs",
}
# CTRL+C to stop threads
def signal_handler_sigint(sig, frame):
global wait_for_input
wait_for_input = False
print "closing Tonbert Player"
time.sleep(1)
print "Goodbye"
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler_sigint)
wait_for_input = True
# Async readline
def add_input(input_queue):
global wait_for_input
while wait_for_input:
input_queue.put(sys.stdin.readline())
# Send command to VLC
def send_command(cmd):
#subprocess.call(["curl", "-u", ":player", "http://127.0.0.1:8080/requests/status.xml?command=" + cmd])
subprocess.call(["curl", "-s", "-o", "/dev/null", "-u", ":player", "http://127.0.0.1:8080/requests/status.xml?command=" + cmd])
# pause/unpause player
def vlc_pause():
print "VLC: pause / unpause"
send_command("pl_pause")
# empty playlist
def vlc_empty():
print "VLC: empty playlist"
send_command("pl_empty")
# load new dir
def vlc_load(dir):
vlc_empty()
print "VLC: load " + dir
send_command("in_play&input=" + dir)
# next track
def vlc_next():
print "VLC: next track"
send_command("pl_next")
# previous track
def vlc_previous():
print "VLC: previous track"
send_command("pl_previous")
# set volume
def vlc_volume(vol):
print "VLC: change volume to " + str(vol)
send_command("volume&val=" + str(vol))
# Main controller
def player_controller():
# Setup GPIOs
GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(15, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# start readline thread
input_queue = Queue.Queue()
input_thread = threading.Thread(target=add_input, args=(input_queue,))
input_thread.deamon = True
input_thread.start()
# Start VLC thread
volume = 240
print "Starting VLC..."
vlc = subprocess.Popen(["cvlc"])
time.sleep(2)
vlc_volume(volume)
vlc_load(BASEDIR + "/winxp_start.mp3")
time.sleep(8)
vlc_empty()
print "VLC ready"
# Main Loop
unlocked = True
current_id = ""
bounce_volp = False
bounce_next = False
bounce_pause = False
bounce_prev = False
bounce_voln = False
while True:
#print "waiting for input"
bt_volp = GPIO.input(14) == GPIO.LOW and unlocked
bt_next = GPIO.input(15) == GPIO.LOW and unlocked
bt_pause = GPIO.input(18) == GPIO.LOW and unlocked
bt_prev = GPIO.input(23) == GPIO.LOW and unlocked
bt_voln = GPIO.input(24) == GPIO.LOW and unlocked
# Get ID from input loop
if not input_queue.empty():
id = input_queue.get().strip()
# Check for locked state
if id == "0009213236":
unlocked = True
id = ""
if id == "0009211794":
unlocked = False
id = ""
# if ID is in BIB, load and play it
if id != current_id and id in BIB:
current_id = id
dir = BASEDIR + "/" + BIB[id]
dir = dir.replace(" ", "%20")
print "Now playing: " + dir
vlc_load(dir)
id = ""
# check buttons
if bt_volp:
if not bounce_volp:
volume = min(320, volume+16)
vlc_volume(volume)
bounce_volp = True
else:
bounce_volp = False
if bt_voln:
if not bounce_voln:
volume = max(16, volume-16)
vlc_volume(volume)
bounce_voln = True
else:
bounce_voln = False
if bt_next:
if not bounce_next:
vlc_next()
bounce_next = True
else:
bounce_next = False
if bt_pause:
if not bounce_pause:
vlc_pause()
bounce_pause = True
else:
bounce_pause = False
if bt_prev:
if not bounce_prev:
vlc_previous()
bounce_prev = True
else:
bounce_prev = False
# Wait for 100ms for a 10Hz loop
time.sleep(0.1)
player_controller()
import sys
import threading
import time
import Queue
import signal
import subprocess
import RPi.GPIO as GPIO
print("Tonbert Player")
BASEDIR = "/home/pi/Music"
BIB = {
"0003923273":"Conni - 2007 - Conni schlaeft im Kindergarten - Connie geht in den Zoo",
"0014017502":"Sven Nordqvist - 2008 - Ein Feuerwerk fuer den Fuchs",
}
# CTRL+C to stop threads
def signal_handler_sigint(sig, frame):
global wait_for_input
wait_for_input = False
print "closing Tonbert Player"
time.sleep(1)
print "Goodbye"
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler_sigint)
wait_for_input = True
# Async readline
def add_input(input_queue):
global wait_for_input
while wait_for_input:
input_queue.put(sys.stdin.readline())
# Send command to VLC
def send_command(cmd):
#subprocess.call(["curl", "-u", ":player", "http://127.0.0.1:8080/requests/status.xml?command=" + cmd])
subprocess.call(["curl", "-s", "-o", "/dev/null", "-u", ":player", "http://127.0.0.1:8080/requests/status.xml?command=" + cmd])
# pause/unpause player
def vlc_pause():
print "VLC: pause / unpause"
send_command("pl_pause")
# empty playlist
def vlc_empty():
print "VLC: empty playlist"
send_command("pl_empty")
# load new dir
def vlc_load(dir):
vlc_empty()
print "VLC: load " + dir
send_command("in_play&input=" + dir)
# next track
def vlc_next():
print "VLC: next track"
send_command("pl_next")
# previous track
def vlc_previous():
print "VLC: previous track"
send_command("pl_previous")
# set volume
def vlc_volume(vol):
print "VLC: change volume to " + str(vol)
send_command("volume&val=" + str(vol))
# Main controller
def player_controller():
# Setup GPIOs
GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(15, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# start readline thread
input_queue = Queue.Queue()
input_thread = threading.Thread(target=add_input, args=(input_queue,))
input_thread.deamon = True
input_thread.start()
# Start VLC thread
volume = 240
print "Starting VLC..."
vlc = subprocess.Popen(["cvlc"])
time.sleep(2)
vlc_volume(volume)
vlc_load(BASEDIR + "/winxp_start.mp3")
time.sleep(8)
vlc_empty()
print "VLC ready"
# Main Loop
unlocked = True
current_id = ""
bounce_volp = False
bounce_next = False
bounce_pause = False
bounce_prev = False
bounce_voln = False
while True:
#print "waiting for input"
bt_volp = GPIO.input(14) == GPIO.LOW and unlocked
bt_next = GPIO.input(15) == GPIO.LOW and unlocked
bt_pause = GPIO.input(18) == GPIO.LOW and unlocked
bt_prev = GPIO.input(23) == GPIO.LOW and unlocked
bt_voln = GPIO.input(24) == GPIO.LOW and unlocked
# Get ID from input loop
if not input_queue.empty():
id = input_queue.get().strip()
# Check for locked state
if id == "0009213236":
unlocked = True
id = ""
if id == "0009211794":
unlocked = False
id = ""
# if ID is in BIB, load and play it
if id != current_id and id in BIB:
current_id = id
dir = BASEDIR + "/" + BIB[id]
dir = dir.replace(" ", "%20")
print "Now playing: " + dir
vlc_load(dir)
id = ""
# check buttons
if bt_volp:
if not bounce_volp:
volume = min(320, volume+16)
vlc_volume(volume)
bounce_volp = True
else:
bounce_volp = False
if bt_voln:
if not bounce_voln:
volume = max(16, volume-16)
vlc_volume(volume)
bounce_voln = True
else:
bounce_voln = False
if bt_next:
if not bounce_next:
vlc_next()
bounce_next = True
else:
bounce_next = False
if bt_pause:
if not bounce_pause:
vlc_pause()
bounce_pause = True
else:
bounce_pause = False
if bt_prev:
if not bounce_prev:
vlc_previous()
bounce_prev = True
else:
bounce_prev = False
# Wait for 100ms for a 10Hz loop
time.sleep(0.1)
player_controller()
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- Angua
- ist mit Leidenschaft dabei
- Beiträge: 964
- Registriert: 28.07.2014, 10:46
Re: Selfmade Tigertoniehörbert
die Zahl vorne ist die, die auf der RFID-Karte drauf steht und hinten steht dann wie der Ordner heißt auf den die Karte zeigen soll. Das ist der Bereich, wo man wenn mal alles steht noch eventuell Dinge ändern muss.
- HerbstMama
- ist nicht mehr wegzudenken
- Beiträge: 1219
- Registriert: 21.04.2015, 10:06
- Wohnort: Kreis MI-LK
Re: Selfmade Tigertoniehörbert
Und wir hatten nach der Anleitung von voss.earth mit dem Arduino gearbeitet. Ein paar mehr Funktionen würde ich mir mittlerweile wünschen... Ich habe aber keinen Plan, was man da noch programmieren könnte (und keine Zeit mich einzulesen).
Schöne Grüße von der HerbstMama mit der Mäuseprinzessin (10/2015 HG) und dem Mini-Muck (04/2018 HG)
-
- Profi-SuTler
- Beiträge: 3083
- Registriert: 27.03.2019, 17:23
Re: Selfmade Tigertoniehörbert
Coool vielen vielen dank jetzt muss und kann ich es echt angehen.
- Angua
- ist mit Leidenschaft dabei
- Beiträge: 964
- Registriert: 28.07.2014, 10:46
Re: Selfmade Tigertoniehörbert
gern, viel Erfolg!OrangerStier hat geschrieben: ↑01.02.2020, 17:11Coool vielen vielen dank jetzt muss und kann ich es echt angehen.
das hier ist übrigens unsere mit Karten realisierte Tastensperre. Kind 1 war sehr unglücklich darüber, dass Kind 2 Tasten grundsätzlich spannend findet und die Karten drauf legen für neue Musik war auch lustig.
-
- Profi-SuTler
- Beiträge: 3083
- Registriert: 27.03.2019, 17:23
Re: Selfmade Tigertoniehörbert
Das klingt super
-
- alter SuT-Hase
- Beiträge: 2339
- Registriert: 18.01.2014, 17:09
Re: Selfmade Tigertoniehörbert
Bei mir wartet gerade ein tonuino auf Futter...
Ich habe selbst überhaupt keine Ahnung, habe mich durch die fertigen Ideen im Netz aber total anfixen lassen, weil ich das faszinierend finde, was da dahinter steckt.
Jetzt hat mir ein freund alles zusammen gelötet, das war so vom zuschauen her nicht schwierig, also für jemanden der löten kann echt 20 min erledigt. War auch nett, weil wir uns ne ganze weile nicht gesehen hatten. Das Programm dazu ist ja auch fertig geschrieben... Mal sehen wann mein Bruder Zeit hat. Wenn was fertig zustande kommt werde ich auch hier mal posten...
Ich habe selbst überhaupt keine Ahnung, habe mich durch die fertigen Ideen im Netz aber total anfixen lassen, weil ich das faszinierend finde, was da dahinter steckt.
Jetzt hat mir ein freund alles zusammen gelötet, das war so vom zuschauen her nicht schwierig, also für jemanden der löten kann echt 20 min erledigt. War auch nett, weil wir uns ne ganze weile nicht gesehen hatten. Das Programm dazu ist ja auch fertig geschrieben... Mal sehen wann mein Bruder Zeit hat. Wenn was fertig zustande kommt werde ich auch hier mal posten...
VLG NIN
mit Bärenkind geb. Dezember 2011, Sternenkind geb. August 2014, Schneckenkind geb. August 2015, Würmchen März 2018
mit Bärenkind geb. Dezember 2011, Sternenkind geb. August 2014, Schneckenkind geb. August 2015, Würmchen März 2018