Inhaltsverzeichnis:

PiPiano - Gunook
PiPiano - Gunook

Video: PiPiano - Gunook

Video: PiPiano - Gunook
Video: Izzac piano play#1 2024, November
Anonim
Image
Image

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