Raspberry Pi, musikmaskin för streaming

Berätta om dina pågående projekt.
glemmy
Inlägg: 206
Blev medlem: 30 juni 2010, 21:19:52

Raspberry Pi, musikmaskin för streaming

Inlägg av glemmy »

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.
Bild

[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:
Bild
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.
Bild

Har ni några idéer? :)
Fortsättning följer
danielr112
Inlägg: 8051
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av danielr112 »

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.
glemmy
Inlägg: 206
Blev medlem: 30 juni 2010, 21:19:52

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av glemmy »

danielr112
det skulle uppskattas :tumupp:
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
Bild
Det står arduino på den men jag antog att det skulle gå att få igång till Raspberry Pi också.
glemmy
Inlägg: 206
Blev medlem: 30 juni 2010, 21:19:52

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av glemmy »

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:
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)
Hur ser jag om det är så i programmet?
danielr112
Inlägg: 8051
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av danielr112 »

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
glemmy
Inlägg: 206
Blev medlem: 30 juni 2010, 21:19:52

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av glemmy »

Bild

*dansar segerdans* :D :D :D

samtidigt är känslan lite såhär:

Bild

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 :p

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 :D
glemmy
Inlägg: 206
Blev medlem: 30 juni 2010, 21:19:52

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av glemmy »

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:

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")
Användarvisningsbild
PaNiC
Inlägg: 2565
Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av PaNiC »

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.
glemmy
Inlägg: 206
Blev medlem: 30 juni 2010, 21:19:52

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av glemmy »

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:

Kod: Markera allt

#!/bin/bash
while : ; do
        mpc idle
        sudo python3 updatelcd.py
done
https://bbs.archlinux.org/viewtopic.php?id=75518

pythonskriptet ser ungefär ut:

Kod: Markera allt

import os
f = os.popen("mpc current &")
songname = f.read()
lcd.Write(songname)
edit: är det resurssnålt och hållbart i längden?
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av chille »

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?
glemmy
Inlägg: 206
Blev medlem: 30 juni 2010, 21:19:52

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av glemmy »

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 :)
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av chille »

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.
glemmy
Inlägg: 206
Blev medlem: 30 juni 2010, 21:19:52

Re: Raspberry Pi, musikmaskin för streaming

Inlägg av glemmy »

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 :D
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. :roll:
Skriv svar