Připojení audio modulu RaspiDACv3

V tomto článku bych rád představil audio modul RaspiDAC revize 3. Bližší informace včetně návodu je možné najít na stránkách výrobce http://www.grulich.eu/audio.html Modul obsahuje kvalitní 32-bitový DAC převodník, nízko-šumový Hi-Fi sluchátkový zesilovač s výkonem 130mW na kanál a zkreslením do 0.005% při 35mW výkonu a nezávislým řízením hlasitosti, RCA (Cinch) výstup o amplitudě 2,1V RMS , dynamickém rozsahu 112dB a poměru signál / šum také 112dB, přijímač IR DO a HAT konfigurační paměť. Návod na instalaci najdete zde. Zakoupit ho můžete na našich stránkách http://eshop.raspishop.cz/audio-modul-raspidac-v3-p-61.html. Pojďme se podívat co všechno tento modul nabízí.

2015-09-27 13.51.03

Postup instalace

Nejdříve spuste aktualizace:

sudo rpi-update
sudo apt-get update
sudo apt-get upgrade

doplňte na konec souboru config.txt na SD kartě (Windows), nebo adresář /boot přímo v systému:

sudo nano /boot/config.txt
dtoverlay=raspidac3

Restartovat příkazem sudo reboot

Pro vyzkoušení funkce a nastavení hlasitosti použijte program alsamixer, kde si nastavte hlasitost Headphones.

alsamixer

Následné pro přehrávání už stačí nahrát nějakou hudbu a pustit ji například v programu mplayer. Program mplayer je potřeba nainstalovat pokud již ho nemáte: sudo apt-get install mplayer. Pro mp3 můžete využít program mpg123.

mplayer centryfuga.flac  nebo jiná skladba mpg123 xxx.mp3

Po spuštění přehrávání se na desce rozsvítí modrá dioda. Od výrobce je možné si stáhnout i jednoduchý ovládací program http://www.grulich.eu/files/hp.tar.gz kterým můžete ovládat hlasitost

wget http://www.grulich.eu/files/hp.tar.gz
tar -zxvf hp.tar.gz
cd hp-vol
./hp-vol

 

Infra red přijímač

Pro správnou konfiguraci přijímače je potřeba do config.txt v /boot doplnit

dtoverlay=lirc-rpi,gpio_in_pin=25,gpio_in_pull=up

Následné je nutné provést restart zařízení. Dále nainstalujeme LIRC.

sudo apt-get install lirc

Po instalaci Vám lirc napíše, že nemá konfiguraci a tedy že nebude pracovat. Dříve než provedeme konfiguraci, ještě ověříme, že IR přijímač funguje správně. Spustíme následující příkaz, který umožní ověřit, že IR čidlo přijímá příkazy.

mode2 -d /dev/lirc0

Pokud na obrazovce uvidíte sekvenci pulse a space, komunikace probíhá správně,

	pulse 595
	space 1644
	pulse 589
	space 1650
	pulse 589
	space 1651
	pulse 590
	space 1650
	pulse 590
	space 1658
	pulse 582

Nyní potřebujeme program LIRC naučit kódy našeho dálkového ovladače, které se zapíší do konfigurace. Spousta konfigurací již byla nějakou osobou udělána a můžete ji najít na stránkách http://lirc.sourceforge.net/remotes/ Já například jsem vzal ovladač od televize Samsung BN59-00939A. Dané číslo jsem v seznamu přímo nenašel a tak jsem vzal číslo nejvíce blízké a i fotka ovladače vypadala stejně BN59-00940A.

Konfigurace vypadá takto:

#
# this config file was automatically generated
# using lirc-0.8.6(default) on Tue Mar  2 21:12:37 2010
#
# contributed by               Tom van Leeuwen
#
# brand:                       Samsung
# model no. of remote control: BN59-00940A
# devices being controlled by this remote: LE-32B530
#

begin remote

  name  Samsung_BN59-00940A
  bits           16
  flags SPACE_ENC|CONST_LENGTH
  eps            30
  aeps          100

  header       4605  4344
  one           678  1551
  zero          678   436
  ptrail        679
  pre_data_bits   16
  pre_data       0xE0E0
  gap          107626
  toggle_bit_mask 0x0

      begin codes
          KEY_POWER                0x40BF                    #  Was: Power
          KEY_TV                   0xD827                    #  Was: TV
          KEY_1                    0x20DF                    #  Was: 1
          KEY_2                    0xA05F                    #  Was: 2
          KEY_3                    0x609F                    #  Was: 3
          KEY_4                    0x10EF                    #  Was: 4
          KEY_5                    0x906F                    #  Was: 5
          KEY_6                    0x50AF                    #  Was: 6
          KEY_7                    0x30CF                    #  Was: 7
          KEY_8                    0xB04F                    #  Was: 8
          KEY_9                    0x708F                    #  Was: 9
          KEY_0                    0x8877                    #  Was: 0
          KEY_FAVORITES            0x22DD                    #  Was: Fav.Ch
          Pre-Ch                   0xC837
          KEY_VOLUMEUP             0xE01F                    #  Was: Vol+
          KEY_VOLUMEDOWN           0xD02F                    #  Was: Vol-
          KEY_MUTE                 0xF00F                    #  Was: Mute
          KEY_CYCLEWINDOWS         0x807F                    #  Was: Source
          KEY_CHANNELUP            0x48B7                    #  Was: Chan+
          KEY_CHANNELDOWN          0x08F7                    #  Was: Chan-
          KEY_INFO                 0xF807                    #  Was: Info
          KEY_MENU                 0x58A7                    #  Was: Menu
          KEY_INFO                 0xF20D                    #  Was: Guide
          Tools                    0xD22D
          KEY_ENTER                0x1AE5                    #  Was: Return
          Ch.List                  0xD629
          KEY_EXIT                 0xB44B                    #  Was: Exit
          KEY_UP                   0x06F9                    #  Was: Up
          KEY_LEFT                 0xA659                    #  Was: Left
          KEY_RIGHT                0x46B9                    #  Was: Right
          KEY_DOWN                 0x8679                    #  Was: Down
          KEY_ENTER                0x16E9                    #  Was: Enter
          KEY_RED                  0x36C9                    #  Was: Red
          KEY_GREEN                0x28D7                    #  Was: Green
          KEY_YELLOW               0xA857                    #  Was: Yellow
          KEY_BLUE                 0x6897                    #  Was: Blue
          TTX/Mix                  0x34CB
          SRS                      0x7689
          P.Size                   0x7C83
          Dual                     0x00FF
          AD                       0xE41B
          KEY_SUBTITLE             0xA45B                    #  Was: Subt.
          KEY_REWIND               0xA25D                    #  Was: Rewind
          KEY_PAUSE                0x52AD                    #  Was: Pause
          KEY_FORWARD              0x12ED                    #  Was: Forward
          KEY_RECORD               0x926D                    #  Was: Record
          KEY_PLAY                 0xE21D                    #  Was: Play
          KEY_STOP                 0x629D                    #  Was: Stop
      end codes

end remote

Provedeme stáhnutí dané konfigurace a použijeme ji pro LIRC

wget http://lirc.sourceforge.net/remotes/samsung/BN59-00940A
sudo cp BN59-00940A /etc/lirc/lircd.conf

Následně je ještě potřeba upravit soubor /etc/lirc/hardware.conf podle následujícího vzoru:

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"
 
# Don't start lircmd even if there seems to be a good config file
# START_LIRCMD=false
 
# Don't start irexec, even if a good config file seems to exist.
# START_IREXEC=false
 
# Try to load appropriate kernel modules
LOAD_MODULES=true
 
# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"
# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

provedeme restart aplikace LIRC

sudo /etc/init.d/lirc restart

Nyní provedeme kontrolu pomocí programu irw. Pokud vše funguje správně uvidíte po stisku tlačítka rozpoznání daného tlačítka. Výstup může vypadat takto:

pi@raspberrypi2 ~ $ irw
00000000e0e0e01f 00 KEY_VOLUMEUP Samsung_BN59-00940A
00000000e0e0e01f 01 KEY_VOLUMEUP Samsung_BN59-00940A
00000000e0e020df 00 KEY_1 Samsung_BN59-00940A
00000000e0e020df 01 KEY_1 Samsung_BN59-00940A

Pokud daný výstup vidíte, tak je vyhráno. Pokud ne je problém v /etc/lircd.conf. Nyní nám zbývá definovat co daná tlačítka mají provádět. Existuje výce různých způsobů a programů, které dokážou daná tlačítka zpracovávat. Velice pěkně je to popsané v článku http://www.root.cz/clanky/lirc-dalkove-ovladani-pro-vas-linux/. Já se zde omezím jen na praktickou ukázku využití tlačítek zesilování a zeslabování hlasitosti, což je asi nejdůležitější funkcí audio modulu. Použijeme k tomu program irexec, který umožňuje spustit další programy na základě stisknutého tlačítka.

Konfiguraci akce stisku jednotlivých tlačítek je potřeba uložit do souboru /etc/lirc/lircrc

sudo nano /etc/lirc/lircrc

a do souboru vložíme následující kofiguraci

begin
   remote = Samsung_BN59-00940A
   button = KEY_VOLUMEUP
   prog   = irexec
   config = sh /home/pi/hp-vol/hp-vol up
   repeat = 10
end
begin
   remote = *
   button = KEY_VOLUMEDOWN
   prog   = irexec
   config = amixer -q sset 'Headphones' 1-
   repeat = 10
end

Pro vzkoušení je potřeba pustit program irexec na pozadí a například alsamixer, abychom viděli změnu hlasitosti. Při následujícím restartu raspberry se program irexec spustí automaticky. Konfigurace říká, jaké dálkové zařízení se má použít. Lze použít i hvězdičku jako náhradu za všechny. Položka button definuje tlačítko. Musí být pojmenované stejně jako v souboru lircd.conf. Prog definuje program a config říká, co má daný program udělat. Ve zmíněném příkladu jsem využil dva různé způsoby. První program hp-vol je dodávaný výrobcem hp.tar.gz  druhý způsob je využití programu amixer. Parametr repeat zajistí opakování v případě držení tlačítka.

Multimediální centrum OpenELEC

Daný audio modul funguje i pod multimediálním centrem. Způsob zprovoznění je velice podobný a to úprava souboru config.txt a přidání potřebných parametrů. Ve stabilní verzi distribuce OpenELEC zatím RaspiDACv3 není podporován, ale to se určitě již brzi změní. Lze najít vývojové verze a na jednu se podíváme níže. Pokud chcete ale zůstat u stabilní verze, je možné využít iqaudio-dac.

Je potřeba upravit soubor config.txt. Pokud jste využili pro instalaci NOOBS můžete daný konfigurační soubor změnit při startu raspberry. Je potřeba mačkat shift a až se dostanete na první instalační menu, můžete zde měnit i konfiguraci. Postup pro úpravu konfigurace za běhu přes ssh (službu ssh musíte mít v nastavení povolenou) je (Login: root Password: openelec):

mount -o remount,rw /flash
nano /flash/config.txt 
přidat na konec 
dtoverlay=iqaudio-dac

Následně provést reboot. Po spuštění najdete v nastavení – systém – audio nové audio zařízení, které vyberete.

 

Verze pro RaspiDAC

V tuto chvíli je možné si stáhnout připravený vývojový build pro RPI 1 ze stránek http://milhouse.openelec.tv/builds/master/RPi/OpenELEC-RPi.arm-6.0-Milhouse-20151002210242-%231002-g504eaa9.tar

Update openelec provedete tak, že tento soubor nahrajete do umístění \\openelec\update případně \\ip_adresa_vaseho_zarizeni\update z vašeho počítače. Případné další možnosti lze najít na http://wiki.openelec.tv/index.php/Updating_OpenELEC Následně provedete restart zařízení a při startu se daný soubor rozbalí a provede upgrade.

Dále je potřeba upravit soubor config.txt podobným způsobe popsaným výše. Jediná změna je:

	dtoverlay=raspidac3

Pokud budete používat výstup Headphones, je potřeba zvýšit hlasitost následujícím příkazem

	amixer sset 'Headphones' 40

Aby bylo dané nastavení zajištěno již při startu raspberry, je možné daný přikaz vložit do souboru autostart.sh.

nano /storage/.config/autostart.sh
vložit příkaz a soubor uložit
chmod 777 /storage/.config/autostart.sh

 

Konfigurace dálkového ovládání

I zde to je velice podobné. Provedeme stejným způsobem úpravu souboru config.txt a přidáme na konec souboru definici pro rpi-lirc.

dtoverlay=lirc-rpi,gpio_in_pin=25,gpio_in_pull=up

OpenELEC má již spoustu nastavení předdefinovaných a proto v mém případě stačilo přidat jen konfiguraci ovladače, která byla uvedena výše. Danou konfiguraci je potřeba uložit do souboru lircd.conf.

nano /storage/.config/lircd.conf
vložit konfiguraci ovladače (stejná konfigurace jako v případě instalace na raspbian výše)
uložit soubor a restartovat

OpenELEC si následně spáruje standardně pojmenovaná tlačítka jako jsou šipky a při restartu zařízení začalo ovládání fungovat.

Příspěvek byl publikován v rubrice Články a jeho autorem je Michal Pravda. Můžete si jeho odkaz uložit mezi své oblíbené záložky nebo ho sdílet s přáteli.

2 komentáře u „Připojení audio modulu RaspiDACv3

  1. Pingback: IR přijímač a dálkový ovladač pro raspberry | RaspiShop.cz

  2. Vážení!
    Napadá mě, zda by nebylo vhodné doplnit Váš velmi dobrý návod ještě o aplikaci modulu RaspiDACv3 s programem Volumio. Domnívám se, že díky přívětivému uživatelskému WebUI, které Volumio nabízí by se jednalo o ideální kombinaci pro všechny příznivce „Hi-Fi“, kterým se doma práší na starší, leč stále funkční audiosystémy.

    P.S.: Mohli byste mi prosím poradit jak rozsvítit modrou LED? Můj RaspiDACv3 se stále není schopen „domluvit“ s programem Volumio 1.55 na Raspberry Pi2. Nebo jsem se snad měl raději pořídit zahraniční HiFiberry?

    S díky a pozdravem
    Váš středně gramotný uživatel několika „malin“.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Connect with Facebook

Ochrana proti spamu * Time limit is exhausted. Please reload the CAPTCHA.