Inhaltsverzeichnis:
Video: PiPiano - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Synthetisieren Sie Ihr eigenes kleines Raspberry Pi-Klavier. Verwendet den FluidSynth SoundFont-Synthesizer. Verfügt über Polyphonie und Sustain, dh Sie können alle Noten gleichzeitig drücken und die Note wird länger gespielt, wenn die Taste gedrückt gehalten wird.
Schaltplan und PCB werden auf EasyEDA geteilt. Designs und Python-Code sind alle offen. Passen Sie es auf Ihre Weise an!
Dieses Projekt begann zuerst als Sound Fidget Board für mein Kleinkind, aber ich spielte mehr damit als er. Nach mehreren Überarbeitungen wurde es zu einem kleinen Klavier, das Erwachsene schätzen können.
Schritt 1: Planen für den Build
Benötigt einen Raspberry PI Zero, der über eine Internetverbindung verfügt, um Pakete zu installieren. Alternativ kann man mein minimales Image verwenden, das das Klavier spielt, wie ich es gebaut habe, auch die Vernetzung wurde entfernt. Ein Raspberry Pi normaler Größe könnte auch funktionieren, würde aber aus der Klavierplatine herausragen.
Abhängig von den verwendeten Lautsprechern können Sie JST- oder Schraubklemmen verwenden. Ich habe den JST-Anschluss mit beiliegenden Lautsprechern verwendet.
Sie können Raspbery Pi-kompatible USB-Sound-Lautsprecher oder -Adapter anstelle des Maxim-Verstärkerchips verwenden, für den Lötpaste erforderlich ist, um ihn unter den Chip zu löten. Ich habe es mit Mini-USB-Lautsprechern versucht, aber es klingt blecherner als die gezeigten Lautsprecher. Wenn Sie USB-Soundhardware verwenden, wird keine der Audiokomponenten auf der Platine benötigt. Sie befinden sich auf der linken Seite des Raspberry Pi.
Ich habe den Raspberry Pi Zero unter der Platine montiert, aber Sie können ihn oben aufsetzen. Stellen Sie einfach sicher, dass die SD-Karte auf der gleichen Seite wie Pin 1 auf der Platine markiert ist, und stellen Sie sicher, dass die Header-Pins des Pi Zero passend verlötet sind.
Dieses Projekt benötigt eine benutzerdefinierte Leiterplatte von Ihrem bevorzugten Leiterplattenhersteller. Ich habe 5 von JLCPCB für 14 USD bekommen.
Gerber-Datei auf Google Drive können Sie den Gerber auch aus EasyEDA generieren.
Ich habe auch eine Materialliste zur Verfügung gestellt.
Schritt 2: Erstellen
Ich habe bleifreie Niedertemperatur-Lötpaste und eine Heißluft-Lötstation auf den Amp-ICs verwendet. Ich konzentrierte die Hitze auf den IC, bis ich die Lötperle zu den Anschlüssen sehen konnte, die an der Seite des ICs sichtbar waren. Der Rest der Komponenten sind Durchgangslöcher oder große SMD-Größen, die leicht von Hand gelötet werden konnten. Ich habe meinen umgebauten Toaster verwendet, um eine frühere Überarbeitung zu reflowieren, aber am Ende habe ich vieles davon von Hand repariert.
Schritt 3: Software
SD-Karte mit Raspbian Lite vorbereiten
Pi-Unterstützung für Maxim IC einrichten
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Pakete installieren
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fluidsynth python-numpy python-pip
sudo pip installieren pyfluidsynth
Projektdateien übertragen
Verwenden Sie WinSCP oder eine andere SCP-Software, um die Python- und Soundfontdatei in den Pi-Home-Ordner zu kopieren
chmod +x piano.py
sudo nano /etc/rc.local
Scrollen Sie nach unten und geben Sie kurz vor der Zeile Exit 0 Folgendes ein:
python /home/pi/piano.py &
Schreibgeschützt
Es ist eine gute Idee, das Dateisystem schreibgeschützt zu machen, damit es einfach ausgeschaltet werden kann.
Der Schalter oben rechts ermöglicht es, den Schreibschutz auszuschalten, um das System ändern zu können.
wget
sudo bash read-only-fs.sh
Ja für Lese-/Schreib-Jumper GPIO = 3
Nein für GPIO-Halt
Ja für Kernel-Panik
Wählen Sie Option 1 für Pi Zero W und Pi Zero 1.3 und Option 2 für eine 1.2-Version (nicht W)
Laden Sie USBpiano.py herunter und benennen Sie es in piano.py um, wenn Sie USB-Soundhardware verwenden
Ich habe ein Kartenbild für das Klavier gemacht und so konfiguriert, wie ich es gebaut habe. Alles Unnötige wurde aus dem Image entfernt, einschließlich der Vernetzung. Verwendet das Standardpasswort: Himbeere