Follow me

Ab sofort werde ich meine Projekte und Gaming-Highlights auch auf Youtube stellen.

Wer möchte kann mir hier gerne Folgen:

youtube logo

Des Weiteren, da ich eh jeden Abend online Zocke, so habe ich mich auch hier entschieden auf Twitch zu streamen.

Fast täglich ab ca. 19 Uhr

twitch gameplay

 Instagram gefällig?

Instagram logo transparent PNG

Wir sehen uns 

top

Audioreactive LED-Strip mit Raspberry Pi - Part 1

Wie Eingangs erwähnt wird in diesem Beitrag beschrieben, wir Ihr einen LED-Stripe über ein Raspberry Pi steuern könnt. Entweder mit einer "externen" Audio-Quelle, die ihr über eine USB-Soundkarte am Pi mit Line-In anfahrt. Das Pi übersetzt das Audio-Signal und gibt es an den LED-Stripe weiter ODER, so wie in meinem Fall ist das Pi selbst die Audioquelle! Somit könnt ihr drei vordefinierte Muster wählen zum Takt der Musik.

Was wird benötigt?

  • Ein Rapsberry Pi (sollte nicht kleiner als ein 3er sein zwecks Performance!)
  • Ein LED-Stripe W281B
  • Ausreichende (EXTERNE) Stromversorgung für den LED-Stripe! Das ist ZWINGEND!
  • USB-Soundkarte, kann irgend eine günstige sein

 

Download-Quellen

FileZIlla (SFTP-Client): https://filezilla-project.org/

MobaXterm (oder Putty): https://mobaxterm.mobatek.net/

Raspberry Pi OS: https://www.raspberrypi.com/software/operating-systems/

Das Audio-Projekt selbst: https://github.com/scottlawsonbc/audio-reactive-led-strip

 

Raspberry Pi OS auf Karte installieren:

Falls etwas auf der Micro-SD Karte schon vorhanden ist dann löschen mit der Eingabeaufforderung. (als Administrator starten!)

diskpart
list disk
select disk <ID von eurer SD - Karte>
list partition <ID von den jeweiligen Partitionen>
delete Partion

 Hier an einem Beispiel:

 cmd diskpart

Sollte etwas schief gehen, dass die Partition sich auf diesem Wege NICHT löschen lässt, dann einfach "override" hinten dran schreiben:

delete partition override

Sieht dann so in der Datenträgerverwaltung aus:

datenträgerverwatlung

Rechter Mausklick auf die Karte und "Neues Volume" erstellen weiter weiter fertigstellen.

Danach das Raspberry Pi OS mit Win32Disk-Imager auf die SD-Karte spielen fertig!

Win32 Diskpimager

 

Um es euch einfacher zu machen, dass ihr KEINEN Monitor, Maus und Tastatur am Pi anschießen müsst, könnt ihr einfach (Karte muss noch im PC stecken!) eine Datei anlegen auf der SD-Karte erstellen Namens ssh (Klein geschrieben UND ohne Dateiendung!!!) Anschließend wird SSH automatisch beim "ersten" Start aktiviert und ihr könnt euch "remote" via MobaXterm oder Putty verbinden.

Habt ihr das Pi nun angeschlossen und die SD-Karte eingesteckt könnt ihr auch schon in z.B. eurer Fritzbox nachsehen, was für eine IP das Gerät bekommen hat. Der Standard-Hostname von dem Pi lautet "raspberry" <-- damit ihr es einacher findet.

Default ist der Benutzer "pi" und das Passwort "raspberry".

 

Inbetriebnahme des Pi's

Zunächst mit dem Standardbenutzer pi anmelden, da der root noch NICHT für SSH erlaubt ist!

Password von User Pi und root ändern:

sudo passwd pi (danach das gleiche mit dem root Benutzer)
<neues Passwort>
<neues Passwort wiederholen>

Grundsätzlich würde ich das Pi erst einmal Updaten:

apt update && apt upgrade -y

Nach einer meist längeren Wartezeit könnt ihr fast nur noch Copy & Pasten.

 

Installation der Voraussetzungen und LED-Stripe testen.

Seid ihr soweit, dann erst einmal die Voraussetzungen installieren:

(squeezelite nur dann, wenn ihr squeezelite auch als Player nutzen wollt, ansonsten euren Wunschplayer z.B. Volumio)

apt install squeezelite python3-numpy python3-scipy python3-pyaudio build-essential python-dev git scons swig python3-pip cmake libxml2-dev libxml2
apt install qt4-default <-- veraltet! Jetzt das hier: apt-get install python3-pyqt5
apt install python3-pyside pip3 install rpi_ws281x
pip3 install pyqtgraph
pip3 install PySid

Ordner anlegen (ich erstelle idR. einen temp Ordner, aber macht Ihr wie ihr möchtet!)

cd /
mkdir /temp
cd /temp/

Erst einmal ein kleines Script um zu Testen, ob Ihr den LED-Stripe ansteuern könnt.

Hierzu bitte den LED-Stripe an eine "EXTERNE" Stromquelle anschließen und die Steuerleitung auf GPIO 18 stecken!

git clone https://github.com/jgarff/rpi_ws281x.git
cd rpi_ws281x
scons
cd python python3 setup.py install cd examples
## Anpassung Testscript (DataPin hier 18 und Anzahl LED) nano strandtest.py
## Test starten python3 strandtest.py

Wenn alles bis hier her funktioniert hat, dann könt Ihr weiter machen! Es muss definitiv funktionieren ansonsten habt ihr hier schon ein Problem!

Audio vorbereiten

Eine Grundvoraussetzung ist es, dass wenn Ihr über das Pi Musik hören wollt und es nicht nur an einer externen AudioQUELLE betreibt, dass Ihr mit einem "LOOP" den Sound parallel fahrt! Sonst funktioniert das Ganze auch nicht. Hier müsst ihr ZWINGEND!!! auf die ID der Soundkarte achten!

# Loop
sudo echo 'snd-aloop' >> /etc/modules

# Default-Soundkarten deaktivieren nano /boot/config.txt
#dtoverlay=vc4-kms-v3d #dtparam=audio=on
wie gezeigt mit # auskommentieren!
reboot

Kontrolle

aplay -l

Ausgabe sollte ähnlich wie folgt aussehen:

#**** Liste der Hardware-Geräte (PLAYBACK) ****
#Karte 0: Loopback [Loopback], Gerät 0: Loopback PCM [Loopback PCM]
# Sub-Geräte: 8/8
# Sub-Gerät #0: subdevice #0
# Sub-Gerät #1: subdevice #1
# Sub-Gerät #2: subdevice #2
# Sub-Gerät #3: subdevice #3
# Sub-Gerät #4: subdevice #4
# Sub-Gerät #5: subdevice #5
# Sub-Gerät #6: subdevice #6
# Sub-Gerät #7: subdevice #7
#Karte 0: Loopback [Loopback], Gerät 1: Loopback PCM [Loopback PCM]
# Sub-Geräte: 8/8
# Sub-Gerät #0: subdevice #0
# Sub-Gerät #1: subdevice #1
# Sub-Gerät #2: subdevice #2
# Sub-Gerät #3: subdevice #3
# Sub-Gerät #4: subdevice #4
# Sub-Gerät #5: subdevice #5
# Sub-Gerät #6: subdevice #6
# Sub-Gerät #7: subdevice #7
#Karte 1: Headphones [bcm2835 Headphones], Gerät 0: bcm2835 Headphones [bcm2835 Headphones]
# Sub-Geräte: 8/8
# Sub-Gerät #0: subdevice #0
# Sub-Gerät #1: subdevice #1
# Sub-Gerät #2: subdevice #2
# Sub-Gerät #3: subdevice #3
# Sub-Gerät #4: subdevice #4
# Sub-Gerät #5: subdevice #5
# Sub-Gerät #6: subdevice #6
# Sub-Gerät #7: subdevice #7
#Karte 2: Device [USB PnP Sound Device], Gerät 0: USB Audio [USB Audio]
# Sub-Geräte: 1/1
# Sub-Gerät #0: subdevice #0

 

Hier ist also die ID der USB-Karten entscheidend! Die tragen wir in der nachfolgenden Config ein!

 

nano /etc/asound.conf
## Inhalt
#this will set your default output to a virtual virtual multi-channel device named CardAndLoop, which outputs to your USB-Card as well as the Loopback device
#Furthermore it sets the second Loopback device as your standard input
pcm.!default {
type asym
playback.pcm "CardAndLoop"
capture.pcm "hw:Loopback,1"
} # This is the interface you use for sound output
# It will send the output to the soundcard and loopback device
pcm.CardAndLoop {
type plug
slave.pcm MultiCh
route_policy "duplicate"
} ctl.!default {
type hw
card 2 #hier wird die oben gefunden Karte eingetragen!
} # Virtual multichannel device with four channels
# two the for the soundcard, two for the loopback
pcm.MultiCh {
type multi
slaves.a.pcm pcm.MixCard
slaves.a.channels 2
slaves.b.pcm pcm.MixLoopback
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave b
bindings.2.channel 0
bindings.3.slave b
bindings.3.channel 1
} # Mixer for the soundcard
pcm.MixCard {
type dmix
ipc_key 1024
slave {
pcm "hw:2,0" #hier wird die oben gefunden Karte eingetragen! Theoretisch sollte auch der Name anstatt 2 funktionieren
# rate 48000
rate 44100
periods 128
period_time 0
period_size 1024 # must be power of 2
buffer_size 8192
}
} # Mixer for the loopback
pcm.MixLoopback {
type dmix
ipc_key 1025
slave {
pcm "hw:Loopback,0"
# rate 48000
rate 44100
periods 128
period_time 0
period_size 1024 # must be power of 2
buffer_size 8192
}
}

 

In ROT ist die ID eurer Soundkarte!

 

Visualisierung: Ansteuerung des LED-Stripes

Von hier: https://github.com/scottlawsonbc/audio-reactive-led-strip die Zip herunterladen und entpackt auf das Pi (z.B. mit Filezilla) schieben

Anpassung auf ESP (hierzu folgt noch ein Beitrag) oder Pi, den Pin, die Anzahl der LEDs (gerade Anzahl!!!), FPS und ggf. visueller Graph

nano /temp/audio-reactive-led-strip-master/python/config.py
## Effekte kann man in der visualizing.py vor nehmen in Zeile 251 # visualize_scroll
# visualize_energy
# visualize_spectrum
# Starten mit: python3 /temp/audio-reactive-led-strip-master/python/visualization.py
# Zum Testen kann man auch gleich die Modis hinten angeben: python3 /temp/audio-reactive-led-strip-master/python/visualization.py scroll

 

Lautstärkeanpassungen

Um den Mixer zu öffnen müsst ihr einfach:

alsamixer

eintippen.

Um eure Einstellungen zu speichern

alsactl store

 

Viel Spaß beim nachbauen  biggrin


Teil2

Kommentare / Erfahrungsaustausch bitte hier!

Ihr habt eine Frage oder wollt eure Erfahrungen teilen, nutze einfach unseren Discord top (einfach unten rechts auf "Connect")

Einfach mal DANKE sagen!

Auch wenn ich oft etwas länger brauche um neue Beiträge zu verfassen, Videos zu drehen etc. So freut mich es immer wieder ein positives Feedback von euch zu bekommen bzw. neue Follower, daher liegt es mir sehr nahe ein besonderes Dankeschön an euch da draußen zu senden.

Ihr seid super top

Thats me!

Name: Mike
Nickname: Pampersjoe / LuMp
Bj.: 1981
Hobbys: (eindeutig zu viele)

  • Online Zocken
  • IT/EDV
  • Handwerk (eigentlich egal was)

Contact me!

Kontakt


discord logo png 7635 Telegram
discord logo png 7635 Discord

 

Streams


discord logo png 7635 Twitch
discord logo png 7635 YouTube

Rechtliches