Raspberry Pi, musikmaskin för streaming
Raspberry Pi, musikmaskin för streaming
Hej!
Har under våren lekt lite med en Raspberry Pi som köptes för att agera "musiknav" hemma.
Såhär kommer det ungefär att vara kopplat.
[fixat]
* Knappsatsen - den byter låt, startar/pausar osv. Tagen från en gammal trasig DVD-spelare.
* 2,5" hdd kopplad till RPi:n - var mer problem än det låter, strömförsörjningen som kom med USB-hubben (1A) orkade inte så jag fick ta en på 2A.
* Mpdroid androidapp - startar upp med RPi:n och man kan styra musikuppspelningen väldigt smidigt. Åtkomst via WiFi.
* USB-ljudkort med digitala utgångar (för att få bättre ljud) - konfigurerats och fungerar nu bra med RPi
[kvar att fixa]
* En låda att ha allt i - beställt en:
kommer att bli trångt men kanske går
* LCD-displayen - jag har påbörjat försök att få ordning på den men just nu visas bara skräp på skärmen.
Displayen då.. Jag beställde en 1602 16x2 LCD Character Display + IIC/I2C/TWI Serial interface Board Module
http://www.ebay.com/itm/1602-16x2-LCD-C ... 0465203362
Interface-kortet bygger på någon grej som ska kunna kopplas till Raspberryn via I2C vilket gör att bara 2 utgångar för data behövs.
Jag har alldeles för dålig koll på detta, varför jag kämpar med att få det att fungera.
Har fått igång lcdprop och LCDd på raspberryn där det är konfigurerat med HD44780. Det startar och så och displayen verkar hittas på adress 27 när jag kör i2cdetect.
Men som sagt visas bara skräp på displayen.
Har ni några idéer?
Fortsättning följer
Har under våren lekt lite med en Raspberry Pi som köptes för att agera "musiknav" hemma.
Såhär kommer det ungefär att vara kopplat.
[fixat]
* Knappsatsen - den byter låt, startar/pausar osv. Tagen från en gammal trasig DVD-spelare.
* 2,5" hdd kopplad till RPi:n - var mer problem än det låter, strömförsörjningen som kom med USB-hubben (1A) orkade inte så jag fick ta en på 2A.
* Mpdroid androidapp - startar upp med RPi:n och man kan styra musikuppspelningen väldigt smidigt. Åtkomst via WiFi.
* USB-ljudkort med digitala utgångar (för att få bättre ljud) - konfigurerats och fungerar nu bra med RPi
[kvar att fixa]
* En låda att ha allt i - beställt en:
kommer att bli trångt men kanske går
* LCD-displayen - jag har påbörjat försök att få ordning på den men just nu visas bara skräp på skärmen.
Displayen då.. Jag beställde en 1602 16x2 LCD Character Display + IIC/I2C/TWI Serial interface Board Module
http://www.ebay.com/itm/1602-16x2-LCD-C ... 0465203362
Interface-kortet bygger på någon grej som ska kunna kopplas till Raspberryn via I2C vilket gör att bara 2 utgångar för data behövs.
Jag har alldeles för dålig koll på detta, varför jag kämpar med att få det att fungera.
Har fått igång lcdprop och LCDd på raspberryn där det är konfigurerat med HD44780. Det startar och så och displayen verkar hittas på adress 27 när jag kör i2cdetect.
Men som sagt visas bara skräp på displayen.
Har ni några idéer?
Fortsättning följer
-
- Inlägg: 8051
- Blev medlem: 18 januari 2009, 00:48:24
- Ort: Alvesta, Småland
Re: Raspberry Pi, musikmaskin för streaming
Kör med Adafruits libbar för displayen. Det är dock python men funkar bra. Även stöd för knappar via MCP23017 chippet.
Kan fixa lite länkar senare står med maten just nu.
Kan fixa lite länkar senare står med maten just nu.
Re: Raspberry Pi, musikmaskin för streaming
danielr112
det skulle uppskattas
Ska söka lite själv också.. Stött på det flera gånger under min jakt men behöver läsa in mig lite mer.
Python har jag programmerat knapparna med så det ska ska gå.
edit: Såhär ser "backpacken" ut till LCDn
Det står arduino på den men jag antog att det skulle gå att få igång till Raspberry Pi också.
det skulle uppskattas
Ska söka lite själv också.. Stött på det flera gånger under min jakt men behöver läsa in mig lite mer.
Python har jag programmerat knapparna med så det ska ska gå.
edit: Såhär ser "backpacken" ut till LCDn
Det står arduino på den men jag antog att det skulle gå att få igång till Raspberry Pi också.
Re: Raspberry Pi, musikmaskin för streaming
Jag sökte runt på Adafruit men hittade inget passande. Fanns många exempel men inget som jag fann användbart. Men kanske missat något.
Jag har kommit så långt att den visar tecken på skärmen, men det är inte riktigt som jag vill.
Ber den skriva ut och resultatet blir ------>
"abcdefghij" -----------------------> "abcd6f 4 FF"
"abcdefghij ------------------------> " "
att den skrev abcd var nog mest en slump för då jag försöker med annat blir det bara slumpat. "Hello" och "world" blir t.ex. "F c d" och inget på nedre.
Jag har följt informationen här:
http://www.rpiblog.com/2012/07/interfac ... ry-pi.html
Mode 0 och 2 lämnar bara skräp på skärmen. Mode 1 ger lite tecken ibland i alla fall.
Efter en del snokande verkar min backpack ha:
Jag har kommit så långt att den visar tecken på skärmen, men det är inte riktigt som jag vill.
Ber den skriva ut och resultatet blir ------>
"abcdefghij" -----------------------> "abcd6f 4 FF"
"abcdefghij ------------------------> " "
att den skrev abcd var nog mest en slump för då jag försöker med annat blir det bara slumpat. "Hello" och "world" blir t.ex. "F c d" och inget på nedre.
Jag har följt informationen här:
http://www.rpiblog.com/2012/07/interfac ... ry-pi.html
Mode 0 och 2 lämnar bara skräp på skärmen. Mode 1 ger lite tecken ibland i alla fall.
Efter en del snokande verkar min backpack ha:
Hur ser jag om det är så i programmet?I2C Address, Port, Enable pin, RW pin, RS pin, Data 4 pin, Data 5 pin, Data 6 pin, Data 7 pin, Backligh$
lcd = i2c_lcd.i2c_lcd(0x27, 1, 4, 5, 6, 0, 1, 2, 3, 7)
-
- Inlägg: 8051
- Blev medlem: 18 januari 2009, 00:48:24
- Ort: Alvesta, Småland
Re: Raspberry Pi, musikmaskin för streaming
Det är tyvär inte samma chip som Adafruit använder sig av och tvivlar att det kommer funka
Jag kör med MCP23017 och då finns det färdiga libbar här:
http://learn.adafruit.com/adafruit-16x2 ... spberry-pi
Jag kör med MCP23017 och då finns det färdiga libbar här:
http://learn.adafruit.com/adafruit-16x2 ... spberry-pi
Re: Raspberry Pi, musikmaskin för streaming
*dansar segerdans*
samtidigt är känslan lite såhär:
Men nu har jag lagt in det här pythonbiblioteket: http://think-bowl.com/raspberry-pi/i2c- ... pberry-pi/
Jag var lat förut då jag krånglade inte tillräckligt länge för att få igång "hjälpprogrammen". Den kunde inte hitta moduler och allt vad det var. Blivit så trött på det sedan jag fick igång krångla för att få igång Quick2Wire för knapparna. Var variabler som skulle sättas osv.. Svårt när man knappt kan något
Så istället körde jag vidare på massa sidospår.
Jag misstänkte att sidospåren förstörde för mig. Tog en apt-get --purge remove lcdproc
och sedan en omstart. Därefter körde jag det enkla lilla programmet (som jag kört 100 gånger förut) och det fungerade
Re: Raspberry Pi, musikmaskin för streaming
Jag är ingen fena på python. Kör i alla fall ett sånt här skript som en "demon" i bakgrunden som autostartas.
Den kör en "selector" som väntar på att något ska ske. Detta skulle vara väldigt resurssnålt (jämfört med att varje 1/10 sekund kolla om en knapp är nedtryckt t.ex.).
Det jag funderar på nu är hur jag får informationen från MPC (musikspelaren) att visas i displayen.
Trycker jag på en knapp är det OK, bara lägga till att den ska uppdatera displayen också.
Men om låtbyte sker "internt", t.ex. att låten är slut eller att man byter via Android-telefonen, då kommer displayen inte att uppdateras.
Så hur gör jag enklast detta?
Vill undvika något som ligger och kollar vilken låt som körs i onödan.
Skriptet nedan för att styra via knappar:
Den kör en "selector" som väntar på att något ska ske. Detta skulle vara väldigt resurssnålt (jämfört med att varje 1/10 sekund kolla om en knapp är nedtryckt t.ex.).
Det jag funderar på nu är hur jag får informationen från MPC (musikspelaren) att visas i displayen.
Trycker jag på en knapp är det OK, bara lägga till att den ska uppdatera displayen också.
Men om låtbyte sker "internt", t.ex. att låten är slut eller att man byter via Android-telefonen, då kommer displayen inte att uppdateras.
Så hur gör jag enklast detta?
Vill undvika något som ligger och kollar vilken låt som körs i onödan.
Skriptet nedan för att styra via knappar:
Kod: Markera allt
#!/usr/bin/env python3
import sys
# appends to PYTHONPATH the location of the example codes
sys.path.append(r'/home/pi/quick2wire-python-api/')
from quick2wire.gpio import pins, In, Out, Rising
from quick2wire.selector import Selector
import os, daemon
with daemon.DaemonContext():
#do_main_program()
print("do main program")
button1 = pins.pin(4, direction=In, interrupt=Rising)
button2 = pins.pin(5, direction=In, interrupt=Rising)
button3 = pins.pin(6, direction=In, interrupt=Rising)
with button1, button2, button3, Selector(3) as selector:
selector.add(button1)
selector.add(button2)
selector.add(button3)
while True:
selector.wait()
#check if button 1, next song
if selector.ready == button1:
if button1.value:
os.system('mpc next &')
print("next song")
#check if button 2, play song
if selector.ready == button2:
if button2.value:
os.system('mpc play &')
print("play")
#check if button 3, previous song
if selector.ready == button3:
if button3.value:
os.system('mpc prev &')
print("previous")
Re: Raspberry Pi, musikmaskin för streaming
Precis vad jag håller på att utveckla http://elektronikforumet.com/forum/view ... =3&t=66033 till. Dock med nätverksansluten display med styrning av fler saker än musikspelaren.
Första steget är en portabel batteridriven spelare med knappsats.
Första steget är en portabel batteridriven spelare med knappsats.
Re: Raspberry Pi, musikmaskin för streaming
Ja! Helt sant, jag har kikat på din tråd några gånger
Löste problemet ovan medelst ett bashskript som nyttjar "mpc idle" och "mpc current" som jag modifierat lite genom att ett pythonskript körs:
https://bbs.archlinux.org/viewtopic.php?id=75518
pythonskriptet ser ungefär ut:
edit: är det resurssnålt och hållbart i längden?
Löste problemet ovan medelst ett bashskript som nyttjar "mpc idle" och "mpc current" som jag modifierat lite genom att ett pythonskript körs:
Kod: Markera allt
#!/bin/bash
while : ; do
mpc idle
sudo python3 updatelcd.py
done
pythonskriptet ser ungefär ut:
Kod: Markera allt
import os
f = os.popen("mpc current &")
songname = f.read()
lcd.Write(songname)
Re: Raspberry Pi, musikmaskin för streaming
Vad är anledningen till att du tänkt köra en MiniDSP istället gör att göra beräkningarna direkt i processorn på Raspberry PI'n?
Re: Raspberry Pi, musikmaskin för streaming
Tänkte tanken och gjorde en del efterforskning . Fann dock inte många väldokumenterat projekt och tänkte att jag säkert skulle få krångla mycket med det. Var också rädd att prestandan eventuellt inte skulle räcka.
Det jag tänkt mig med MiniDSP:n är att göra korrigeringar i frekvensgången för att kompensera för lyssningsrummet samt boosta låga frekvenser på utgången som går slutsteget som driver baslådor (behöver således 4 mono-outputs).
MiniDSP har ett stort community, färdiga plugins och möjlighet att koppla till deras mätmikrofon för helt automatisk rumskalibrering. Så det är nästan tuta-och-kör.
DAC:en är såvitt jag förstått helt ok också.
edit:
någon som vet hur man får svensk teckenuppsättning på displayen? peka mig gärna rätt riktning
Det jag tänkt mig med MiniDSP:n är att göra korrigeringar i frekvensgången för att kompensera för lyssningsrummet samt boosta låga frekvenser på utgången som går slutsteget som driver baslådor (behöver således 4 mono-outputs).
MiniDSP har ett stort community, färdiga plugins och möjlighet att koppla till deras mätmikrofon för helt automatisk rumskalibrering. Så det är nästan tuta-och-kör.
DAC:en är såvitt jag förstått helt ok också.
edit:
någon som vet hur man får svensk teckenuppsättning på displayen? peka mig gärna rätt riktning
Re: Raspberry Pi, musikmaskin för streaming
Jo, det är nog mycket enklare att få igång en MiniDsp än att göra det i en Raspberry PI. Men lite beroende på hur du belastar din PI med övriga funktioner borde det nog gå att trycka in en EQ och delningsfilter, om det nu är det du ska ha.
Re: Raspberry Pi, musikmaskin för streaming
chille: jag tror det borde gå, för något som är kunnig på linux. hade gärna sluppit lägga 1500 på minidsp:n och letade därför en del. men fann liksom inget.
du kanske har tips på några projektbeskrivningar och liknande?
jag har löst de flesta problemen nu och det fungerar som jag har tänkt mig.
bortsett från en sak.. teckenuppsättningen som visas på displayen
Å,Ä,Ö blir inte så snyggt.
Sedan insåg jag att 16x2-display är väldigt lite. Så jag beställde en 20x4
Med samma i2c-interface så jag hoppas det nästan blir plug and play när jag får den. Får skriva om mitt python-program lite bara.
Då ska jag försöka visa något mer på skärmen: klocka, temperatur, hur långt kvar av låten, album, eller något helt annat. Möjligheterna blir fler
Beställde blå bakgrund och vita tecken. Ser lite trevligare ut faktiskt. Trodde den gröna skulle vara läcker men tröttnat lite på den redan.
63 kronor MED frakt är ju ingenting, kostar mindre än en öl på krogen här:
http://www.ebay.com/itm/310575296583
Tack Gud för flygplan, kineser och massproduktion.
du kanske har tips på några projektbeskrivningar och liknande?
jag har löst de flesta problemen nu och det fungerar som jag har tänkt mig.
bortsett från en sak.. teckenuppsättningen som visas på displayen
Å,Ä,Ö blir inte så snyggt.
Sedan insåg jag att 16x2-display är väldigt lite. Så jag beställde en 20x4
Med samma i2c-interface så jag hoppas det nästan blir plug and play när jag får den. Får skriva om mitt python-program lite bara.
Då ska jag försöka visa något mer på skärmen: klocka, temperatur, hur långt kvar av låten, album, eller något helt annat. Möjligheterna blir fler
Beställde blå bakgrund och vita tecken. Ser lite trevligare ut faktiskt. Trodde den gröna skulle vara läcker men tröttnat lite på den redan.
63 kronor MED frakt är ju ingenting, kostar mindre än en öl på krogen här:
http://www.ebay.com/itm/310575296583
Tack Gud för flygplan, kineser och massproduktion.