Erstellen Sie einen Musikwiedergabeserver mit MPD und zeigen Sie den Songnamen, den Künstlernamen, den Albumnamen und das Jackenbild an, die auf der OLED abgespielt werden. Natürlich ist es auf Japanisch in Ordnung !! Außerdem können Sie mit drei Tasten "Vorheriges Lied", "Wiedergabe / Pause" und "Nächstes Lied" auswählen.
Vielleicht ist es eine der abgeschlossenen Formen von MPD in SingleBoard Computing (lacht) Da es sehr viel ist, werde ich es als vollständige Version einschließlich Umgebungskonstruktion senden.
Die linke Seite ist das NEO2 Complete Starter Kit. Es ist ausverkauft und es ist wunderbar, wenn es am 26.5. Für einen Moment auf Lager ist. Ein Juwel, das ich bekommen konnte. Die rechte Seite ist eine Kombination aus NanoPi-NEO + NanoHat PCM5102a + NanoHat OLED.
Der Code zum Anzeigen verschiedener Informationen auf der OLED von Python, diesmal der Hauptcode, ist unten registriert. https://github.com/blue777/NanoPi-NEO_OLED_MPD
Oder
Oder
NanoPi NEO
Wird als eine der oben genannten angenommen.
NanoPi NEO2
Wird als eine der oben genannten angenommen.
Es wird davon ausgegangen, dass das Boot-Image auf MicroSD übertragen und gestartet wurde.
timedatectl set-timezone Asia/Tokyo apt-get update apt-get upgrade npi-config
Ich werde mich vorbereiten. Wenn die feste IP gut ist, sieht sie wie die folgende aus.
nano /etc/network/interfaces
/etc/network/interfaces
allow-hotplug eth0
# iface eth0 inet dhcp
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
Installieren Sie mit dem folgenden Befehl. Ändern Sie nach Abschluss der Installation die Einstellungen.
apt-get install mpd nano /etc/mpd.conf
Suchen Sie die Linie und gehen Sie wie folgt vor: (Ich werde unter der Annahme unten erklären)
/etc/mpd.conf
music_directory "/media/"
Zuerst, cat /proc/asound/cards Gibt eine Liste der Soundkarten aus.
Es sieht aus wie das. Zur Zeit ist es in einem verbundenen Zustand (lacht)
NanoPi-NEO
root@NanoPi-NEO:~# cat /proc/asound/cards
0 [Pcm5102a ]: Pcm5102a - Pcm5102a
Pcm5102a
1 [sndhdmi ]: sndhdmi - sndhdmi
sndhdmi
2 [DAC ]: USB-Audio - USB Audio DAC
Burr-Brown from TI USB Audio DAC at usb-sunxi-ehci-1.2, full speed
3 [J20 ]: USB-Audio - JAVS USB Audio 2.0
JAVS JAVS USB Audio 2.0 at usb-sunxi-ehci-1.3, high speed
4 [N2 ]: USB-Audio - NuForce µDAC 2
NuForce, Inc. NuForce µDAC 2 at usb-sunxi-ehci-1.4, full speed
5 [AI301DA ]: USB-Audio - TEAC AI-301DA
TEAC Corporation TEAC AI-301DA at usb-sunxi-ehci-1.1, high speed
root@NanoPi-NEO:~# uname -a
Linux NanoPi-NEO 3.4.39-h3 #3 SMP PREEMPT Tue May 23 17:37:51 CST 2017 armv7l armv7l armv7l GNU/Linux
NanoPi-NEO2
root@NanoPi-NEO2:~# cat /proc/asound/cards
0 [Codec ]: H3_Audio_Codec - H3 Audio Codec
H3 Audio Codec
1 [USBCamera ]: USB-Audio - USB_Camera
KYE Systems Corp. USB_Camera at usb-1c1d000.usb-1, high speed
root@NanoPi-NEO2:~# uname -a
Linux NanoPi-NEO2 4.11.2 #1 SMP Wed Jun 7 03:24:53 PDT 2017 aarch64 aarch64 aarch64 GNU/Linux
Wenn Sie in der Reihenfolge von oben erklären,
InstanceNo. | DeviceName | Kommentar |
---|---|---|
0 | Pcm5102a | Es ist NanoHat Pcm5102a. NanoPi-NEO Kernel=3.4.Dies ist der Anzeigename für 39. Wenn sich die Kernel-Version ändert, ändert sich auch der Anzeigename. |
1 | sndhdmi | Ich denke, es ist ein HDMI-Audiosignalausgang, aber er kann nicht verwendet werden, da es keinen HDMI-Anschluss gibt. |
2 | DAC | Es ist ein USB-DAC. |
3 | J20 | Es ist ein USB-DDC. JAVS X.-Es ist ein USB-zu-SPDIF-Konverter namens DDC. |
4 | N2 | Es ist ein USB-DAC. NuForce μ DAC. |
5 | AI301DA | Es ist ein USB-DAC. Teac AI-Es ist 301DA. |
0 | Codec | NanoPi-Line Out auf der NEO2-Platine. Sie sollten es durch Löten verwenden können. Es scheint, dass der Grund, warum es H5 ist, aber H3, ist, dass der Fahrer gemeinsam ist. |
1 | USBCamera | Es ist eine Kamera mit Mikrofoneingang. Es kann nicht verwendet werden, da es kein Audio ausgeben kann. |
Dies ist die grundlegende Schreibmethode für jede. Ich werde es so schreiben. Es ist in Ordnung, mehrere audio_output-Tags zu haben. Wenn mehrere vorhanden sind, können Sie auch die gleichzeitige Ausgabe angeben.
Für NanoHat PCM5102a
audio_output {
type "alsa"
name "HanoHat PCM5102a"
device "hw:Pcm5102a,0"
mixer_type "software"
format "*:32:2"
replay_gain_handler "software"
}
J20(JAVS_X-DDC)Im Falle von
audio_output {
type "alsa"
name "JAVS X-DDC"
device "hw:J20,0"
mixer_type "none"
}
Für Codec
audio_output {
type "alsa"
name "NanoPi-NEO2 LineOut"
device "hw:Codec,0"
mixer_type "software"
}
Der jeweils angegebene Name ist der Anzeigename vom MPD-Client. Geben Sie InstanceNo. Oder DeviceName in den XXXX-Teil von "hw: XXXX, 0" des Geräts ein. Wenn Sie möchten, dass es automatisch über eine USB-Verbindung erkannt wird, geben Sie am Ende die Instanznummer ein. Es wird jedoch empfohlen, den Gerätenamen anzugeben, da er sich abhängig von der Zuordnung nach InstanceNo und der Verbindungsreihenfolge ändert. (Obwohl es möglich ist, die Reihenfolge der Nummernvergabe in ALSA zu ändern, wird sie weggelassen.)
Erstellen Sie die microSD mit dem installierten Betriebssystem in einem freigegebenen Ordner Musikdaten werden von einem externen PC auf Nanopi NEO hochgeladen.
Samba Installation und Erstellen Sie ein Verzeichnis in / media / local und legen Sie die Freigabe fest. Die Freigabeeinstellungen sind Vollzugriffseinstellungen. (Lol
apt-get install samba mkdir /media/local chmod 777 /media/local nano /etc/samba/smb.conf
/etc/samba/smb.conf
・
・
・
[Music]
comment = share folder
path = /media/local
public = yes
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
systemctl enable smbd systemctl start smbd
Bei Verwendung der Windows-Dateifreigabe oder beim Mounten eines NAS.
apt-get install cifs-utils mkdir /media/nas nano /etc/fstab
・
・
・
//192.168.1.9/Public /media/nas cifs username=guest,password=,uid=root,iocharset=utf8 0 0
Nach dem Einstellen
mount -a df
Stellen Sie sicher, dass es richtig montiert ist.
Ich habe die Songtitelanzeige und die Erfassung / Anzeige des Jackenbildes in Python geschrieben. Dieses Mal habe ich Python zum ersten Mal verwendet und es war in ungefähr zwei Tagen fertig. .. .. Unterwegs litt ich unter einer Mischung aus Tabulatoren und Leerzeichen, und es gab Drehungen und Wendungen. Es war besser als ich erwartet hatte und hat mich auch dazu inspiriert, diesen Artikel zu schreiben.
31.08.2017 Nachtrag: Fortsetzung "NanoPi-NEO-, MPD-, LCD-, I2S-DAC- und TDA7297-Musikwiedergabeserver (abgeschlossen)" Neben dem OLED-Display wird auch das LCD-Display unterstützt. Bitte verwenden Sie Ihre bevorzugte Anzeigesoftware.
Hauptspezifikationen
Mechanismus usw.
Gehen wir nun zum Hauptinstallationsverfahren
Referenz: http://wiki.friendlyarm.com/wiki/index.php/NanoHat_OLED
Führen Sie zur Installation die folgenden Schritte aus. (Installationsziel ist / root) NanoHat OLED arbeitet in zwei Konfigurationen, C-Programm und Python-Programm, und die OLED-Anzeige selbst ist in Python geschlossen, aber die Tastenoperation wird der Python-Seite nach dem Empfang auf der C-Programm-Seite mitgeteilt. Es war.
Auf der C-Programmseite wird auch das Python-Programm gestartet, sodass das Standardprodukt nicht gestartet wird. Im folgenden Beispiel habe ich dies vorerst kommentiert. (Alternativer Python-Code wird von rc.local aus gestartet.)
cd /root git clone https://github.com/friendlyarm/NanoHatOLED.git nano /root/NanoHatOLED/Source/main.c
/root/NanoHatOLED/Source/main.c
・
・
・
int load_python_view() {
/*
int ret;
char* cmd = (char*)malloc(255);
sprintf(cmd, "cd %s/BakeBit/Software/Python && python %s 2>&1 | tee /tmp/nanoled-python.log", workpath, python_file);
ret = pthread_create(&view_thread_id, NULL, (void*)threadfunc,cmd);
if(ret) {
log2file("create pthread error \n");
return 1;
}
//*/
return 0;
}
・
・
・
cd NanoHatOLED ./install.sh
Installieren Sie einschließlich extern abhängiger Pakete, damit diese automatisch in rc.local gestartet werden. Da der automatische Start (oled-start) von NanoHat OLED bereits geschrieben wurde, Ich werde in der nächsten Zeile einen Startbefehl hinzufügen.
apt-get install fonts-takao-pgothic apt-get install python-mutagen python3-mutagen
cd /root git clone https://github.com/blue777/NanoPi-NEO_OLED_MPD
nano /etc/rc.local
/etc/rc.local
・
・
・
/usr/local/bin/oled-start &
cd /root/NanoPi-NEO_OLED_MPD
python oled_mpd.py &
・
・
・
Versuchen Sie, von jedem Client im Netzwerk auf http zuzugreifen, und geben Sie ympd ein, damit Sie es steuern können.
python
apt install cmake
apt install libmpdclient-dev
apt install libssl-dev
cd /usr/lib
git clone https://github.com/notandy/ympd
cd ympd
mkdir -p build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX_PATH=/usr
make
make install
Es beginnt mit ./ympd, aber es ist schwierig, jedes Mal zu starten. Bearbeiten Sie daher rc.local so, dass es automatisch startet.
nano /etc/rc.local
/etc/rc.local
・
・
・
/usr/lib/ympd/build/ympd &
Der Zugangsport wird also 8080 sein http://YourMpdServer:8080/ Zugang in Form von.
Wenn port80 gut ist, geben Sie Folgendes an.
./ympd -w 80
Dies ist das Ende der Serverseite. Bitte neu starten und genießen.
reboot
Die Wiedergabe kann über den Webzugriff gesteuert werden, aber die dedizierte App ist immer noch gut! In diesem Fall fügen Sie bitte Ihren bevorzugten MPD-Client ein.
Verschiedene MPD-Clients wie iOS, Windows und Android sind verfügbar. Wenn Sie mit dem MPD-Client suchen, werden Sie verschiedene Dinge finden. Installieren Sie also die gewünschte.
Wir verwenden gmpc, weil es sich um einen Windows-Computer handelt. https://gmpclient.org/
In audio_output festgelegte Elemente können im Menü Server ausgewählt werden.
Im Standardzustand befindet es sich in Bezug auf die Hardware im Zustand De-Emphasis, Low-Latency. Insbesondere De-Emphasis hat einen Hochfrequenzschnitt bei 44,1 kHz und klingt etwas gedämpft. Es wird empfohlen, die Bereiche Deemphasis und Low-Latency zu löten.
Die Klangqualität ist normalerweise gut. Ein CD-Player der Klasse 100.000 kann nicht mithalten.
Wenn die Klänge jedoch eng miteinander verflochten sind (z. B. die Spitze des Skalenendwerts), ist die Verschlechterung der Auflösung spürbar und wird zu einem Knödel. Da es sich bei dem Netzteil jedoch um ein Schaltnetzteil handelt, das von NanoPi-NEO gemeinsam genutzt wird, wird es mit Sicherheit aktiviert, wenn Sie ein anderes Netzteil ändern.
Referenz http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO2
Das von NanoPi-NEO ausgegebene I2S-Signal ist
3 werden ausgegeben, aber NanoPi-NEO2 ist zusätzlich zu den oben genannten
Kann auch ausgegeben werden und wird an GPIOA6 ausgegeben. Dies ist eine Spezifikation nur für H5, und es scheint, dass H3 sie nicht unterstützt. (Soweit das Datenblatt zu sehen ist)
Und wenn Sie weiter schauen, sagt GPIO A6 PWM, aber weder H3 / H5 kann ein PWM-Ausgabeziel sein. Ich frage mich, woher die Fehlpflanzung kam (H2 + oder so?)
Ich hoffe, einen Treiber bereitzustellen, der I2S_MCLK heimlich ausgeben kann.
■ 2018/01/13 hinzugefügt Ich konnte endlich ausgeben! MCLK-Ausgang & 384 kHz kompatibel mit NanoPi-NEO2 I2S
Der Grund für die Verwendung von MPD in SBC (Single Board Computing) ist zweifellos das Streben nach Klangqualität. Die persönliche subjektive Bewertung der Klangqualität der Serien NanoPi und BeagleBone ist also so.
NanoPi-NEO < NanoPi-NEO2 << BeagleBoneBlack <= BeagleBoneGreen
Beide werden durch Verbinden mit SBC --- (USB) -> JAVS X-DDC (überarbeitet) --- (Coaxial spdif) -> DAC ausgewertet, und SBC und X-DDC werden mit Infineons SiC SBD ausgewertet. Es wird ein durch Brückengleichrichtung zusammengesetztes Seriennetzteil (LM350 auf der SBC-Seite, diskret mit dem SiC-FET von Cree auf dem X-DDC) verwendet. In diesem Fall wird der BeagleBone-Typ oder ein Spitzenvorhang deutlich hervorgehoben. Der Sound ist auch gut.
Ich freue mich auch sehr, dass lightMPD, eine Distribution für MPD, NanoPi-NEO und NanoPi-NEO2 unterstützt.
Es geht um das Display von OLED, das ich unterschiedlich geschrieben habe, zum Beispiel, dass es besser war als ich erwartet hatte, aber es wird in meiner Produktionsumgebung nicht verwendet. (Lol
Recommended Posts