Inhaltsverzeichnis:

Sound-Umschalter - Gunook
Sound-Umschalter - Gunook

Video: Sound-Umschalter - Gunook

Video: Sound-Umschalter - Gunook
Video: Douk Audio Dual Analog VU Meter 2-way Amplifier/Speaker Audio Switcher Box 2024, November
Anonim
Tonumschalter
Tonumschalter

Haben Sie jemals Ihre Musik bei der Arbeit aufgedreht und nicht bemerkt, dass jemand versucht, mit Ihnen zu sprechen? Schlimmer noch, Sie wollten schon immer bei der Arbeit schlafen, hatten aber keine gute Möglichkeit aufzuwachen, wenn jemand (wie Ihr Chef) in Ihre Kabine kommen würde. Ich habe. Um diese Probleme zu lösen, habe ich den Arduino-basierten SoundSwitcher erfunden. Im Grunde verwendet dies 6 Transistoren, um zwischen einer Klangquelle (in meinem Fall einem iPod) und Ladyadas Wave-Schild umzuschalten, um Sie wissen zu lassen, was los ist. Sie können dann den Arduino mit einem beliebigen Sensortyp verbinden. Meiner ist beispielsweise mit einem Parallax Ping-Ultraschallentfernungsmesser, einem Mikrofon, einer Türklingeltaste und einem Computer (Benachrichtigungen bei einer neuen E-Mail) verbunden. Sie können noch weiter gehen, indem Sie einen Fotowiderstand anschließen, um zu erkennen, wann Ihr Handy klingelt (der Bildschirm leuchtet), oder einen Parallax CH4-Sensor, damit Sie frühzeitig gewarnt werden, wenn der Methangehalt in Ihrer Kabine ansteigt, weil Ihr Kabinenkollege zu viel hatte Kohl zum Mittagessen. Wie auch immer, die meisten von Ihnen haben dieses Problem wahrscheinlich nicht (ich wünschte, ich hätte es nicht). Abgesehen davon, was das Projekt tatsächlich tut, gibt es auch Anweisungen zum Konvertieren von Text in eine WAV-Datei und zum Übertragen von Dateien auf die SD-Karte auf dem Arduino über Serial. Hoffentlich können diese für andere in ihren Projekten nützlich sein. HINWEIS: Ich bin ziemlich neu in all diesen Dingen, daher gibt es keine Garantie, dass ich die Dinge richtig mache. Dies ist das erste Projekt, das ich jemals mit Transistoren entworfen habe, daher fehlen mir möglicherweise irgendwo einige Kappen und Dioden… Wenn jemand einen Rat hat, würde ich mich freuen, ihn zu hören und zu integrieren.

Schritt 1: Teile

Teile
Teile
Teile
Teile

1- Arduino1- Wave Shield (Ladyada)6 - 2n3904-Transistoren6 - 330-Ohm-Widerstände6 - 22-Ohm-Widerstände2 - 10k Ohm-Widerstände (Pullups für Tasten)2 - Tasten2 - Stereo-Kopfhörerstecker1 - Stereo-Kopfhörerstecker Welche Sensoren Sie auch immer wollen, habe ich gemacht1 - Mikrofon1 - Parallax Ping Ultraschall-Entfernungsmesser1 - Fotozelle1 - Computer, auf dem ein Ruby-Skript ausgeführt wird, das E-Mails überprüft und über Seriell eine Verbindung zum Arduino herstellt

Schritt 2: Transistoren

Transistoren
Transistoren

Transistoren werden hauptsächlich verwendet, um Dinge zu verstärken oder als Schalter. In diesem Fall verwende ich die Transistoren als Schalter. Wenn ich den Arduino-Pin hoch drehe, ermöglicht der Transistor, dass der Ton von dem an sie angeschlossenen Gerät an meine Kopfhörer kommt. Drei Transistoren auf jeder Seite ermöglichen es mir, die Masse sowie den linken und rechten Stereokanal für jede Klangquelle zu schalten. Ich experimentierte mit mehreren Widerständen und entschied mich für diese. Die Transistoren werden nicht heiß und der Widerstand des Transistors selbst ist sehr niedrig, wenn der daran angeschlossene Arduino-Pin hoch ist. Dies ist wichtig, damit ich einen guten, ungedämpften Klang erhalte. Wie Sie im Schaltplan im nächsten Schritt sehen können, sind die Transistoren jeweils so verbunden, dass die Basis zum Arduino-Pin geht, um ihn zu steuern (mit einem Widerstand dazwischen). Der Emitter ist sowohl mit Masse (mit einem Widerstand) als auch mit dem Toneingang verbunden. Der Kollektor ist mit dem Tonausgang des Kopfhörers verbunden. Hier ist eine gute Webseite zur Verwendung von Transistoren als Schalter

Schritt 3: Verbinden Sie alles miteinander

Verbinde alles miteinander
Verbinde alles miteinander

Der Schaltplan ist ziemlich einfach. Eine Sache, die man beachten sollte, ist, dass der Wellenschild eine Reihe von Pins auf dem Arduino verwendet, also halte dich von diesen fern (ich habe sie mit Lötzinn auf meiner Platine gefüllt). Ich habe die Pins 8 und 9 für Transistoren verwendet (8 spielt Wellenabschirmung, 9 spielt externe Schallquelle). Für das Mikrofon wurde der analoge Pin 0 verwendet (es funktioniert jedoch nicht sehr gut, ich arbeite daran). Analog Pin 1 wird für die Schaltfläche "Ignorieren" verwendet. Wenn diese Taste gedrückt wird, werden alle Sensoren für einen vordefinierten Zeitraum ignoriert. Analoger Pin 2 ist eine "Türklingel". Es gibt noch einige freie Pins für andere Dinge. Ich habe vor, einen Fotowiderstand hinzuzufügen, den ich gegen einen Handy-Bildschirm lege, um zu erkennen, wenn es an Analog-Pin 3 klingelt. Ich werde das hier hinzufügen, sobald ich es ausprobiert habe.

Schritt 4: Sensoren

Sensoren
Sensoren

Im Moment verwende ich die folgenden "Sensoren" (wahrscheinlich sind Eingaben genauer), um Ereignisse auszulösen: -Druckknopf für die Türklingel - Dies ist ziemlich einfach, sodass jemand einen Knopf drücken kann und ein Ton über Ihre Kopfhörer abgespielt wird lassen Sie wissen, dass jemand in der Nähe ist. Der von mir verwendete Knopf schloss den Stromkreis standardmäßig und öffnete den Stromkreis, wenn der Knopf gedrückt wurde (ich hatte diese gerade in der Nähe). Vergessen Sie nicht Pullup-Widerstände (im Allgemeinen ein 10 k Ohm Widerstand, der an die Arduino-Pin-Seite des Drahtes geht, um ein gutes High-Signal zu geben, wenn der Stromkreis geöffnet ist). Meins ist mit Arduino Analog Pin 2 verbunden.-Parallax Ping Ultraschall-Entfernungsmesser - Lassen Sie mich wissen, wenn jemand in der Nähe ist (dh jemand ist dabei, Ihre Kabine zu betreten). Meins ist mit Arduino Pin 6 (am weißen Kabel des Sensors) verbunden. Das rote Kabel des Sensors geht auf 5 Volt und das schwarze Kabel geht auf Masse.-Mikrofon - Dies soll erkennen, wenn jemand mit Ihnen spricht. Du kennst die Typen, die nicht merken, dass du Kopfhörer aufhast und anfangen zu reden. Ich arbeite noch daran, es sieht so aus, als ob ich einen Vorverstärker brauche, um mit dem Mikrofon, das ich von Sparkfun habe, gute Messwerte zu erhalten. Ein interessanter nächster Schritt wäre, ein paar Sekunden des Sounds in eine Datei auf dem Wave Shield aufzunehmen und sie dann abzuspielen, damit Sie wissen, ob es etwas ist, das Ihnen wichtig ist, bevor Sie Ihre Musik ausschalten.-Computer - Im Moment verwendet dies einen Ruby Skript, um nach neuen E-Mails zu suchen, und sendet ein Signal an den seriellen Port, an dem sich das Arduino befindet, um es wissen zu lassen, dass eine neue E-Mail empfangen wurde. Damit könnte man natürlich noch viel mehr machen. Grundsätzlich können Sie alles, was der Computer alarmieren könnte, über Ihre Kopfhörer aktivieren. Es wäre cool, wenn ich den Computer mit einigen der AT & T-Stimmen automatisch eine Wave-Datei generieren lassen und sie dann seriell an den Arduino senden könnte. Das ist jedoch ein Weg da draußen. - Handy-Klingelsensor - Ich habe dafür eine Fotozelle von Radio Shack (The Shack) verwendet. Ich habe es an analogen Pin 4 und dann an 5 Volt angeschlossen. Sie müssen auch einen 10k Ohm-Widerstand von der Seite ausführen, die mit Pin 4 des Arduino mit Masse verbunden ist (sonst ändert sich das Signal nicht). Wenn für mein Telefon die von mir verwendete Fotozelle beim analogen Lesen auf dem Arduino über 400 geht, wird der Bildschirm beleuchtet. Andere potenzielle Sensoren - Klingelsensor für Schreibtischtelefon - Vielleicht könnte das Mikrofon dies aufnehmen. Abhängig vom Telefon gibt es wahrscheinlich mehrere Möglichkeiten, dies zu tun. Ich muss noch etwas darüber nachdenken, um zu sehen, ob ich eine Allzwecklösung finden kann. -Laser und ein Fotowiderstand - Sie könnten einen Laserpointer über Ihre Kabinenöffnung auf einen Fotowiderstand richten. Wenn das Licht kaputt geht, weil jemand Ihre Kabine betritt, könnten Sie einen Alarm auslösen. -CH4-Gasdetektor - Erkennen Sie steigende Methanwerte in Ihrer Kabine. Dies kann als Frühwarnsystem gegen Gas in der Nähe dienen.

Schritt 5: Befehlszeilentext zu Sprache

Hier ist ein kleines Dienstprogramm, das ich sehr schnell geschrieben habe, um Text in Sprache umzuwandeln. Es ist in C# mit der freeVisual C# 2008 Express Edition geschrieben. Sie benötigen wahrscheinlich. Net 3.5, um dies auszuführen. Der Code ist enthalten, aber wenn Sie nur die exe wollen, können Sie sie in CommandLineText2Speech/CommandLineText2Speech/bin/Release in der ZIP-Datei abrufen. Um das Tool zum Laufen zu bringen, öffnen Sie einfach eine Eingabeaufforderung, navigieren Sie zu dem Verzeichnis, in dem Sie die exe abgelegt haben, und geben Sie CommandLineText2Speech.exe ein. Es wird Folgendes ausgegeben: Verwendung: Um installierte Stimmen aufzulisten:CommandLineText2Speech.exe whatvoices

So konvertieren Sie Text in eine wav:CommandLineText2Speech.exe [Stimme] [Rate - Standard 0 (-10 bis 10)] [Lautstärke - Standard 80 (0 bis 100)] "[zu konvertierender Text]" [Ausgabedatei]Mit anderen Worten Sie möchten wahrscheinlich zuerst Folgendes ausführen:CommandLineText2Speech.exe whatvoicesDies listet auf, welche Stimmen Sie auf Ihrem Computer installiert haben. Sie benötigen den Namen einer Stimme, um das Tool auszuführen. Die Stimmen, die mit Windows geliefert werden, sind nicht großartig, AT&T hat einige, die ziemlich gut sind. Um Text in eine WAV-Datei zu konvertieren, tun Sie diesCommandLineText2Speech.exe "Microsoft Sam" 0 80 "Dies ist ein Test" test.wavHier ist die Bedeutung:"Microsoft Sam"- die Stimme, die mit Windows geliefert wird, haben Sie um es in Anführungszeichen zu setzen, da es ein Leerzeichen gibt0- Normale Geschwindigkeit (kann von -10 bis 10 gehen)80- Normale Lautstärke (kann von 0 bis 100 gehen)"Dies ist ein Test"- Der Text, der in einen WAV-Dateitest umgewandelt wird.wav - wie die wav-Datei heißen wird

Schritt 6:

Der angehängte Ruby-Code führt die folgenden Überprüfungen durch, um zu sehen, ob neue E-Mails vorhanden sind, und überträgt sie über die in den Arduino integrierte USB-zu-Seriell-Schnittstelle an das Arduino. Ich hatte Probleme mit Hochgeschwindigkeitsverbindungen über Seriell (wahrscheinlich die Größe des Puffers). Die Einstellungen für die Datei befinden sich alle oben in der Datei. Dies verwendet mein C#-Programm, um eine WAV-Datei zu erstellen. Ich sollte das wahrscheinlich alles in eine Sprache umwandeln, ich bin ein großer Fan von Ruby, aber es sah nicht so aus, als könnte es die WAV aus Text sehr einfach erstellen, also habe ich die kleine C#-App geschrieben. Du brauchst auch den Ruby Serienjuwel, das habe ich auch aufgenommen. Um es zu installieren (nachdem Sie Ruby installiert haben), geben Sie "gem install win32-serial-0.5.1-x86-mswin32-60.gem" in die Eingabeaufforderung des Verzeichnisses ein, in das Sie das Gem herunterladen. Das ist alles, was Sie brauchen, damit dieses Programm funktioniert.

Schritt 7: Code

Ich habe meine Arduino-Skizze angehängt. Es enthält viele Kommentare, die helfen. Es überprüft im Grunde alle Eingänge, wenn einer von ihnen ausgelöst wird, schaltet es den Ton auf das Wave Shield um und spielt die mit dieser Warnung verbundene WAV-Datei ab.

Schritt 8: Führen Sie die Programme aus

Okay, jetzt hast du alle Teile. Damit dies richtig funktioniert, müssen Sie1. Installieren Sie Wave Shield auf Arduino2. Verbinden Sie Arduino mit dem Computer (oder verwenden Sie XBee) - Ich gehe davon aus, dass Sie die Firmware bereits installiert haben3. Führen Sie das Ruby-Skript checkEmail.rb aus4. Genießen Sie Ihre Musik, der Arduino wird Sie unterbrechen, wenn er Ihre E-Mails lesen muss oder wenn er etwas in Ihrer Umgebung wahrnimmt.

Schritt 9: Video des fertigen Produkts

Hier ist der Soundswitcher bei der Arbeit