Inhaltsverzeichnis:

Prototyp Arduino-Raspberry Pi Soundboard - Gunook
Prototyp Arduino-Raspberry Pi Soundboard - Gunook

Video: Prototyp Arduino-Raspberry Pi Soundboard - Gunook

Video: Prototyp Arduino-Raspberry Pi Soundboard - Gunook
Video: Create 80s Sounds efects with Soundgin & Arduino/Raspberry PI - Part 1 2024, November
Anonim
Prototyp Arduino-Raspberry Pi Soundboard
Prototyp Arduino-Raspberry Pi Soundboard

Das Prototyp-Soundboard, das mit einem Arduino und Raspberry Pi erstellt wurde, soll eine einfache Möglichkeit sein, 4 verschiedene Sounds oder Geräusche abzuspielen, während Sie die Möglichkeit haben, Soundsets mit einem Knopf zu wechseln und das aktuelle Soundset auf einem LCD-Bildschirm anzuzeigen.

*Bitte beachten Sie: Der Code für das Projekt ist zu 99% vollständig, aber nicht funktionsfähig.

Der Raspberry Pi steuert den 16x2-LCD-Bildschirm und den Drehgeber, während der Arduino die analogen Eingänge von kraftempfindlichen Widerständen (FSRs) liest und ein Signal an den Arduino sendet, um einen Ton abzuspielen. Wir hatten beide vor diesem Kurs noch nie ein Arduino oder Pi verwendet, aber unser Professor gab uns alle notwendigen Werkzeuge und Anleitungen, um dieses Projekt einfach zu programmieren und zu erstellen. TinkerCad, ein kostenloses Online-3D-Modellierungstool von AutoDesk, wurde verwendet, um unser Projekt zu modellieren.

Der schwierigste Teil des Projekts bestand darin, einen Weg zu finden, um Arduino und Raspberry Pi dazu zu bringen, mit der seriellen Kommunikation zu kommunizieren. Wir wollten ursprünglich nur den Pi für das gesamte Projekt verwenden, aber wir brauchten den Arduino, um das analoge Signal von den FSRs auszulesen. Wir waren problemlos in der Lage, Wort- oder Zahlenzeilen vom Arduino zu senden und auf dem Pi anzuzeigen, aber das Problem trat auf, als wir versuchten, diese Werte in Python einzulesen und sie in Bedingungsanweisungen zu implementieren, um sie zu verarbeiten.

Fähigkeiten benötigt

  • Einfaches Verständnis von C/C++ für Arduino-Codierung
  • Einfaches Verständnis von Python für Raspberry Pi-Codierung
  • Wissen, wie ein Steckbrett verdrahtet ist
  • Grundlegende 3D-Modellierungskenntnisse
  • Der Wunsch, das Programmieren, Verdrahten und Bauen von etwas ordentlichem zu lernen und zu erweitern

Stückliste

1 x Raspberry Pi 3

1 x Elegoo Uno ODER Arduino Uno

1 x 830 Tie Breadboard

1 x GPIO-Breakout-Board (RSP-GPIO)

1 x Flachbandkabel für Breakout Board

4 x kleine kraftempfindliche Widerstände

1 x einfacher 16x2 Zeichen LCD-Bildschirm

1 x Drehgebermodul

24 x männliche zu weibliche Drähte

10 x männlich zu männlichen Drähten

4 x 10k Widerstände

1 x 10k Potentiometer

1 x Gartenschaum-Kniepolster (Dollar-Shop)

Schritt 1: Testen Sie den FSR mit dem Arduino

Testen Sie den FSR mit dem Arduino
Testen Sie den FSR mit dem Arduino

Wir haben uns zunächst entschieden, den FSR mit dem Arduino auszuprobieren. Die FSRs senden ein analoges Signal und daher mussten wir einen Arduino verwenden, da der Pi ohne andere Schaltungen kein Analog empfängt. Wir wollten Schwellenwerte testen, um sicherzustellen, dass die Pressen einen guten Druck hatten. Wir fanden es ungefähr 150 von insgesamt 1000. Der serielle Plotter auf der Arduino IDE war für diesen Schritt sehr hilfreich.

Schritt 2: Zeichnen Sie die Pläne für das Board

Zeichnen Sie die Pläne für den Vorstand
Zeichnen Sie die Pläne für den Vorstand
Zeichnen Sie die Pläne für den Vorstand
Zeichnen Sie die Pläne für den Vorstand

Wir haben dann die Pläne für die Platine erstellt und vermessen. Wir wollten 4 Pads zum Abspielen von Sounds, einen Platz für einen LCD-Bildschirm zur Anzeige der aktuellen Soundgruppe und einen Drehregler zum Ändern der Soundgruppe haben.

Schritt 3: Modellieren Sie das Board in TinkerCad

Modellieren Sie das Board in TinkerCad
Modellieren Sie das Board in TinkerCad
Modellieren Sie das Board in TinkerCad
Modellieren Sie das Board in TinkerCad
Modellieren Sie das Board in TinkerCad
Modellieren Sie das Board in TinkerCad

Nachdem die Pläne erstellt waren, haben wir die Platine auf einer kostenlosen Online-Website für 3D-Modellierung namens TinkerCad von Autodesk modelliert. Wir empfehlen es wärmstens für diejenigen unter Ihnen, die nicht viel Geld für große 3D-Modellierungssoftware ausgeben möchten, da sie einfach zu bedienen ist, Cloud-basiert ist und den 3D-Druck vollständig unterstützt.

Nachdem es modelliert war, mussten wir es in 2 Teile aufteilen, um es auf den Drucker zu passen. Es wurde wirklich gut gedruckt, aber mein Fehler war, den LCD-Bildschirmschlitz nicht sehr gut zu dimensionieren (machen Sie diesen Fehler nicht!). Wir haben die. STL-Dateien auf der linken und rechten Seite hochgeladen, wenn Sie sie überprüfen möchten.

Schritt 4: Testen Sie den LCD-Bildschirm

Testen Sie den LCD-Bildschirm
Testen Sie den LCD-Bildschirm

Wir hatten den Bildschirm bereits auf dem Arduino verwendet und es war sehr einfach einzurichten. Es war jedoch schwieriger, es mit dem Pi zu betreiben. Nach mehreren Stunden zur Fehlerbehebung bei Google und dem Herumfummeln mit Kabeln haben wir es endlich zum Laufen gebracht. Bitte sehen Sie sich den endgültigen Python-Code am Ende an, um zu sehen, wie er funktioniert hat. Wir haben einige Websites verwendet, um uns zu verdrahten und den Code zu schreiben. Schauen Sie sich diese an:

learn.adafruit.com/drive-a-16x2-lcd-direct…

www.raspberrypi-spy.co.uk/2012/07/16x2-lcd…

Schritt 5: Testen Sie den Drehgeber mit dem LCD-Bildschirm

Testen Sie den Drehgeber mit dem LCD-Bildschirm
Testen Sie den Drehgeber mit dem LCD-Bildschirm

Wir wollten dann sehen, ob wir den Text des LCD-Bildschirms ändern können, wenn der Encoder gedreht wurde. Der Encoder hat keine festgelegte Anzahl von Winkeln oder Drehungen, daher haben wir im Code gezählt, wie oft er im Uhrzeigersinn oder gegen den Uhrzeigersinn gedreht wurde, und bis 3 zählen lassen. Wenn er überschritten würde, würde er auf 0 zurückgehen und wenn es unter 0 ging, würde es wieder auf 3 steigen. Diese Zahlen können für beliebig viele Soundsets eingestellt werden, aber wir haben immer nur ein Soundset getestet. Stellen Sie sicher, dass sich Ihre Sounds im selben Ordner/Speicherort befinden, in dem der Python-Hauptcode ausgeführt wird.

Schritt 6: Montieren Sie die Platine

Den Vorstand zusammenbauen
Den Vorstand zusammenbauen
Den Vorstand zusammenbauen
Den Vorstand zusammenbauen
Den Vorstand zusammenbauen
Den Vorstand zusammenbauen

Die FSRs gleiten unter die vier verschiedenen Steckplätze. Wir haben sie zentriert und festgeklebt. Wir empfehlen Klebeband oder vielleicht sogar Kleben, da einfaches Klebeband schlecht am 3D-gedruckten Material klebte. Nach einem kurzen Ausflug zum Dollar-Laden fanden wir ein weiches, aber matschiges Gartenkniepolster, das wir in vier Teile schneiden konnten, um sie als Knöpfe für das Brett zu verwenden. Wir haben sie so geschnitten, dass sie an ihren Stellen eng anliegen, damit sie an Ort und Stelle bleiben, aber bei Bedarf auch leicht entfernt werden können.

Schritt 7: Verdrahten Sie alles

Alles verkabeln
Alles verkabeln
Alles verkabeln
Alles verkabeln

Nachdem wir die Platine zusammengebaut und die FSRs, den Encoder und den Bildschirm angebracht hatten, haben wir alles verkabelt. Sie könnten 2 Steckbretter verwenden, aber wir konnten alles auf einem unterbringen. Das Bild sieht unordentlich aus, aber wir haben ein schematisches Diagramm in einem kostenlosen Programm namens Fritzing erstellt. Beachten Sie, dass Sie ändern können, an welchen Pins Sie alles befestigen möchten, aber das Diagramm entspricht unserem Code.

Schritt 8: Beenden Sie die Codierung ALLES

Dies war der schwierige Teil. Wie im Intro erwähnt, konnten wir diesen Teil nicht abschließen. Der Code ist zu 99% vorhanden, aber der einzige Teil, der nicht funktioniert hat, war die serielle Kommunikation von Arduino zu Pi. Wir konnten die Informationen leicht senden, wenn wir den Arduino mit dem USB-Kabel an den Pi angeschlossen haben, aber der Pi konnte nichts tun, außer diese Informationen auf dem Bildschirm anzuzeigen. Wir wollten in der Lage sein, zu erkennen, welche Taste gedrückt wurde und einen bestimmten Ton abspielen zu lassen, aber die Daten, die über die Kommunikation kamen, konnten nicht in eine Bedingungsaussage gesetzt werden, um zu testen, welche Taste gedrückt wurde.

Bitte beachten Sie den angehängten Code, Anmerkungen wurden im Python-Code für den Pi kommentiert. Der Arduino-Code sollte 100% sein.

Schritt 9: Beenden

Daraus schließen
Daraus schließen

Insgesamt war dieses Projekt eine RIESIGE Lernerfahrung für uns beide und wir hoffen, dass dieser Artikel zukünftigen Schülern, Lehrern oder Bastlern Inspiration für ihr eigenes Projekt geben und sie durch das Lernen aus unseren Fehlern leiten kann. Gruß an unseren großartigen Robotik-Professor, der während unserer Unterrichtszeit immens geholfen hat und uns die Möglichkeit gab, eine Menge Spaß zu haben und viel in einem Senior COMP-Kurs zu lernen! Danke fürs Lesen:)

Empfohlen: