Home > Technologie > Noch ein Arduino Boombox

Noch ein Arduino Boombox

0
Advertisement

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Dies ist eine andere Version eines Musikgeräts mit einem Arduino UNO, einem Bluetooth-Empfänger, einem UKW-Radio, einer Uhr und einer kleinen IR-Fernbedienung, die alle mit einem kleinen Touchscreen ausgestattet sind, so dass eine Kombination von mehreren Instruktables, die Sie in diesem finden können Web-Seite (ich glaube, dass nicht einmal der Titel original ist). Dies ist keine eigentliche Boombox, sondern nur die Audio-Teil ohne Verstärker oder Box.

Es gibt vielleicht eine andere Sache in diesem Projekt. Viele Implementierungen, die ich versehentlich das Gleichtaktrauschen vom digitalen Teil des BT an den Audioprozessor übergeben habe. Ich löste die Frage, indem ich einen Differenzverstärker zwischen dem BT und dem Vorverstärker einfügte, so dass alle Gleichtaktrauschen in den positiven und negativen Anschlüssen des BT-Audioausgangs abgebrochen wurden und nur die Differenzsignale passieren.

In dieser Implementierung verwende ich einen Touchscreen, so dass es keine Tasten außer denen der IR-Fernbedienung gibt. Dies bietet verbesserte Informationen, Rekonfigurierbarkeit und ein einfaches Gehäuse ohne mechanische Elemente. Ich biete keine Gehäuse-Design, sondern nur die Hardware-und Software-Designs.

Wir haben vier Teile in diesem Projekt. Der erste ist ein Audioprozessor, der vom arduino gesteuert werden kann. Der Prozessor ist der eher alte TDA7439, der in vielen anderen Instructables-Projekten verwendet wird. Es bietet Multiplexi für vier Stereoeingänge. Einer der Eingang ist die Bluetooth, die schwimmt. Der schwebende Ausgang des Bluetooth ist so entworfen, dass das Gleichtaktrauschen, das durch den digitalen Abschnitt des Gerätes erzeugt wird, unter Verwendung von Differentialverstärkern zurückgewiesen werden kann. Also, ich entwarf einen einfachen Differenzverstärker mit einem Paar Op Amps LM 4562, die loszuwerden, die Gleichtaktrauschen. Der TDA7439 und die Differenzverstärker werden mit einem einfachen Regler 7808 in der gleichen Platine versorgt. Wir werden weitere 7808 diesem Board hinzufügen, um das Arduino und den Touchscreen zu versorgen.

Im zweiten Teil wird ein weiteres Board für die BT, das Radio, die Uhr und die Pins für die IR-Fernbedienung gebaut. Diese beiden Boards werden gestapelt und mit Pinheads mit dem Arduino verbunden, so dass wir keine Kabel mit Ausnahme der Stromversorgung, des Audioausgangs und der zusätzlichen Audioeingänge verwenden.

Der dritte Teil ist die Steuerung der verschiedenen Geräte zum arduino. Insbesondere verwenden der Audioprozessor, das Radio und die Uhr den I2C-Bus, so daß die Steuerung derselben fehlerhaft ist. Der Bluetoot wird über die UART-Schnittstelle gesteuert, aber da er bereits vom Touchscreen benutzt wird, müssen wir einen anderen in den Arduino-Pins 10 und 11 simulieren.

Der vierte Teil besteht aus der Software, die das gesamte Gerät steuert. Als Programmierer sauge ich, so dass Sie sehen werden, dass mein Skript riesigen Verbesserungen unterliegt. Sowieso verwende ich einen Satz Arduino Bibliotheken für den Touchscreen, bluetooth, Radio, IR, Multiplexer und so weiter.

Trotz schlechter Programmierung ist das Gerät funktionsfähig. Die Bluetooth und das Radio zeigen die Metadaten, wenn verfügbar, und die TDA kann gesteuert werden, um die Quellen, Lautstärken und Equalizer Ebenen, plus das Gerät zeigt die Uhrzeit und Datum oder optional eine analoge Uhr Gesicht. Das Programm, wie es ist, erschöpft die Erinnerung an die Arduino, aber bessere Implementierungen benötigen weniger Speicher, so dass neue Funktionen für das Gerät.

Schritt 1: Design des Audioprozessors

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Die Eagle-Dateien des Audioprozessors werden bereitgestellt. Sie sehen hier den TDA, der an die Differenzverstärker und den Rest der Eingänge angeschlossen ist. Ich habe auch zwei Stromquellen, eine für die Geräte auf der Platine, und die andere zur Stromversorgung der Arduino. Die männlichen Pinheads werden so platziert, dass sie den weiblichen der anderen Platine entsprechen.

Die Differenzverstärker sind mit zwei LM456 Niedervolt-Audio-Operationsverstärkern aufgebaut. Ein Verstärker ist das Differential selbst, und das andere ist eine konstante Spannungsreferenz, die eine doppelt polarisierte 2,5-Volt-Polarisation simuliert. Ich versuchte, Eingangs- und Ausgangsimpedanzen zusammenzubringen.

Das Board ist doppelseitig. In meiner Implementierung habe ich es zu Hause geätzt und ein Tonertransferverfahren und eine einfache Mischung aus Essig, Hidrogenperoxid und Salz verwendet. Ich bin nicht erklären, wie es zu tun, weil es eine Reihe von instructables, die es tun, und viele Alternativen, um einen besseren Job zu tun. Da ich keine Durchkontaktierungen herstellen kann, müssen alle gelöteten Komponenten auf beiden Seiten verlötet werden, was das Ergebnis sehr schmutzig macht, wie man auf dem Bild sehen kann, aber es funktioniert und es ist solide.

Vier Sätze von männlichen Headern müssen in der Unterseite der Karte platziert werden, um die entsprechenden weiblichen in der BT und Radio-Board entsprechen:

  • 2-Header in den Pads, die als Vout bezeichnet sind. Das macht den Rest der Boards
  • 3-Header in den Pads, die als SCL / SDA bezeichnet sind. Dies ist der I2C-Bus zum TDA7439
  • 3-Header in den Pads, die als L2 / R2 bezeichnet sind
  • 4-Header in den Pads, die als BT bezeichnet sind

Der Rest der Pads befindet sich auf der Oberseite für Spannungseingang (von 9 bis 12 Volt), zwei Audioeingänge (unbenutzt in diesem Prototyp, aber funktional) und dem Audioausgang. Die Kabel, die Sie sehen, sind da, weil ich nicht kaufen 4 der 12 0.47 uf Mylar-Kondensatoren, so dass ich gerade überbrückte sie für den Test. Sie müssen kein Kabel zu den Karten hinzufügen.

Stückliste

Ihre Orte in der Platine sind in den Adler-Dateien unten beschrieben.

  • Spannungsregler:
    • 2 x 7808
  • Kondensatoren
    • 12 x 0,47 uF, Keramik oder Mylar
    • 4 x 22 nf, Keramik oder Mylar
    • 4 x 100 nf, Keramik oder Mylar
    • 2 x 5,6 nf, Keramik oder Mylar
    • 2 X 2,2 uf, Tantatium, nicht polarisiert
    • 2 x 100 nf, Keramik
    • 2 x 10 uf, elektrolitisch
  • Widerstände
    • 8 x 47 K
    • 5 x 2,7 K
    • 2 x 5,6 K
  • Integrierte Schaltkreise
    • 1 x TDA7439
    • 2 X LM456
  • Standard- und Buchsenleisten

Schritt 2: Design der BT und Radio Board

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Das bluetooth, das ich wählte, ist das Sparkfun Ausbruchbrett von RN 52. Es ist einfach, in ein Design einzuschließen und alle Arduino Akten und Dokumentation werden auf der Sparkfun Webseite zur Verfügung gestellt. Es ist ein wenig teuer. Ein Sparkfun Breakout Board, das den Tuner SI4703 beinhaltet, wird in diesem Design verwendet. Die Bibliotheken und Kommentare sind auch in Sparkfun verfügbar. Ich brauchte, um die BT-Firmware vor dem Design zu aktualisieren, damit es möglich ist, die Musik-Metadaten zu erhalten. Auf der Webseite der RN 52 finden Sie die benötigten Anleitungen und Dateien. Die RN52 verwendet 3,3 Volt, und der Rest der Geräte verwenden 5V. Die Si4703 Seite in Sparkfun gibt an, dass dieses Gerät bei 3,3 V max betrieben werden müssen, aber die Si7403 Datenblatt sagt deutlich , dass es sicher und 5,5V betrieben werden kann. Ich habe dann alles mit den Stromausgängen mit der Arduino-Platine geliefert, und ich brauchte Pegelwandler, um die BT mit dem Arduino zu kommunizieren. Der Konverter ist auch ein Sparkfun Breakout Board. Ich benutzte eine Chronodot RTC als Uhr.

Das Brett wird von den männlichen Vorsätzen gebildet, um die brechen Bretter zu verbinden. Auf der Oberseite müssen Sie Header für die BT und das Radio zu legen, und dann diese Breakout Bretter löten. Die Unterseite enthält den Pegelwandler und die Uhr. Beachten Sie, dass diese beiden nach hinten gelegt werden. Die Kabel, die Sie in der Abbildung sehen können, sind zwei bereits korrigierte Störungen, also in der hochgeladenen Version dieses Brettes gibt es keine Kabel.

Zwei 47K 1/8 w Widerstände * müssen * in den markierten Positionen im Chronodot platziert werden. Sie sind die Pullup-Widerstände für alle am I2C-Bus angeschlossenen Geräte. Anscheinend hat das Radio Pullup-Widerstände, die den Job machen würde, aber meine Schaltung funktionierte nicht ohne die Taktgeberwiderstände darauf.

Es gibt auch zwei Sätze von 8 männlichen Kopfstücken in einer der Seiten des BT und zwei Sätze von 8 und 10 männlichen Kopfstücken auf der anderen Seite. Sie sind an der Unterseite zu verlöten.

Schließlich hat das Radio einen Kopf, um die Antenne zu verbinden.

Es gibt auch weibliche Header in der Oberseite. Sie entsprechen den männlichen Headern, die sich auf der Unterseite des Audioprozessors befinden, so dass sie miteinander verbunden sind.

Ich habe auch einen Piezobuzzer, der klingt, wenn eine Taste gedrückt wird, und eine Fernbedienung.

Stückliste

  • 2 X 47 K 1/8 W Widerstände
  • 1 X Chronodot RTC Board
  • 1 x Piezobuzzer
  • 1 X r Emote und Sensor . Ich habe die eine der Bilder und Link in eBay für weniger als $ 3. Es nutzt den NEC-Standard. Es gibt viele andere. Um sie funktionieren zu lassen, können Sie sich auf diese sehr nützliche instrustruable.
  • 1 X bidirektionaler Pegelwandler
  • 1 X RN 52 Breakout - Board
  • 1 X Si / 403 Breakout - Board

Schritt 3: Verbindung zum Mikrocontroller

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Ich habe eine arLCD , die ein Arduino UNO - Klon mit einem TouchScreen angebracht ist. Ich wählte es, weil ich es schon hatte, sondern auch, weil es nur Pins 0 und 1 entsprechend der Arduino UART verwendet. Ich brauche ein weiteres UART für das Bluetooth, welches in Software in den Pins 10 und 11 implementiert ist.

Sobald alles angeschlossen ist, sieht es ziemlich kompakt, und es ist bereit, programmiert werden.

Wie Sie sehen können, habe ich keinen Verstärker, nur getestet es mit einigen Computer-Lautsprecher. Es gibt eine Menge von instrustruables wo Menschen Design boomboxes und sie sind sehr gut. Sie können mein Gerät mit jedem von ihnen verbinden.

Schritt 4: Die Software

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Noch ein Arduino Boombox

Die Arduino-Datei finden Sie weiter unten. Ich biete nicht die Bibliotheken, aber sie können im Internet gefunden werden. Ich biete die Links. Sie müssen die Header (.h-Dateien) und die cpp-Dateien aller Bibliotheken herunterladen und diese in Arduino einbinden. Für die Links unten, klicken Sie einfach auf ZIP herunterzuladen, und dann, in Arduino, klicken Sie einfach auf Skizze, Bibliothek importieren, hinzufügen Bibliothek, und klicken Sie dann auf das heruntergeladene ZIP. Dadurch werden Bibliotheken und Beispiele extrahiert und hinzugefügt. Sie sind:

IRremote.h

TDA7439.h

RN52.h

EzLCDLib.h

SparkFunSi4703.h

Wire.h (enthalten in den Arduino IDE-Bibliotheken)

EEPROM.h (in den Arduino IDE-Bibliotheken enthalten)

Chronodot.h

Auch hier gibt es eine Menge von Instruktionen, wie man Programm-oder Upload-Skripte auf die Arduino, so dass ich keine Erklärung hier.

Das Programm ist ziemlich kommentiert, aber als EE bin ich nicht stolz auf das, was ich tat, da es nicht gut strukturiert und optimiert ist. Viele von Ihnen können eine viel bessere Arbeit zu tun. Trotzdem funktioniert es. Das Programm steuert alle Geräte und Sie können die Quellen und Einstellungen sowohl vom Bildschirm als auch von der Fernbedienung ändern.

Das Gerät verfügt über einen Hauptbildschirm, der von BT zu Radio und zum Equalizer wechselt. Außerdem gibt es eine analoge Uhr, die beim Klicken in CLK erscheint. Der Bildschirm ist ein GIF, und Sie können Ihre eigenen tun. Ziehen Sie einfach Ihre Schaltflächen und entfernen Sie dann den Alphakanal, damit die GPU es lesen kann. Das Bild muss 320x240 sein. Das Bild muss im arLCD-Speicher, im Ordner / EZUSER / IMAGES gespeichert sein und das Arduino findet sie sofort (keine Notwendigkeit, den Pfad anzugeben)

Das Radio kann bis zu 9 Kanäle im Speicher speichern und hat Suchfunktion. Die Einstellungen und die Stunde sind dauerhaft, wenn Sie das Gerät vom Stromnetz trennen.

Das ist so ziemlich alles. Zögern Sie nicht, mit mir für alles in Verbindung zu treten und wenn Sie die Sache verbessern (es gibt viel Raum für Verbesserungen), lassen Sie mich wissen. Danke fürs Lesen.

Related Reading