Machen Sie ein digitales "Miau" von der analogen Uhr - Gunook

Machen Sie ein digitales "Miau" von der analogen Uhr - Gunook

Inhaltsverzeichnis:

Anonim

Macht Ihre analoge Uhr einfach nicht genug? Möchten Sie digitale Dinge mit einer analogen Uhr machen?

Dieses Tutorial zeigt Ihnen, wie Sie eine Kit Cat Clock mit dem Atmega 328P-PU über das Arduino Uno-Entwicklungsboard in präzisen Zeitintervallen einen „meow“ -Clip abspielen lassen. In meinem Beispiel wird das Miauen stündlich erfolgen. Dies muss auch keine Kit-Cat-Uhr sein. Diese Idee funktioniert möglicherweise mit anderen Uhren, die einen Magnetmotor verwenden.

Annahmen (überspringen, wenn Sie bereits ein Experte in allem sind)

Das Projekt umfasst viele fortgeschrittene bis fortgeschrittene Fähigkeiten wie das Brennen eines Bootloaders und das Löten von Drähten. Daher sind einige erforderliche Kenntnisse und Fähigkeiten erforderlich, bevor Sie fortfahren. Ich gehe davon aus, dass Sie wissen, wie oder zumindest bereit sind, Folgendes zu tun:

Brennen eines Bootloaders auf die Atmel328P-PU (es sei denn, Ihre hat bereits einen).

Hochladen von "Skizzen" auf die Atmel328P-PU über Arduino

Befehle in einen Terminalemulator oder eine Eingabeaufforderung eingeben (Windows)

Verwenden Sie einen Lötkolben, um Verbindungen zwischen Komponenten herzustellen.

Mögliche Verwendung eines Bohrers oder Dremel-Werkzeugs zum Trimmen / Schneiden von Kunststoffteilen und zum Bohren von Löchern.

Materialien

Arduino Uno R3 x 1

Steckbrett x 1

Überbrückungsdraht (genug Stücke)

Widerstände:

350 Ohm x 1

150 Ohm x 1

220 Ohm x 1

280 Ohm x 1

10 kOhm x 1

330 Ohm x 1 (optional, wenn Sie die LED während der Verwendung von Arduino im Breadboard-Setup verwenden möchten)

Kondensatoren:

100 uF x 1

10 uF x 1

22 pF x 2 (kann optional sein)

16 MHz Quarzoszillator

0,5 Watt kleiner Lautsprecher (ca. 50,8 mm Durchmesser) x 1

7,5-Volt-Netzadapter (ich habe die Marke Vtech von Toys R Us verwendet) x 1

7805 Spannungsregler x 1

Lötkolben und Lötzinn

Protoboard (oder ein anderes endgültiges Projektboard, das klein genug ist, um mit dem Uhrgehäuse zu passen)

Sekundenkleber

Schrumpfschlauch (optional)

Heißklebepistole (optional)

Takane Quarzuhr (vorausgesetzt, Sie müssen die Standarduhr in Kit Cat ersetzen, wie ich es getan habe)

Hall-Effekt-Sensor x 1

Ich habe die Hall-Effekt-Sensoren der SS41-Familie verwendet. Diese Sensoren sind empfindlich genug, um das relativ schwache Magnetfeld des Uhrmagnetmotors zu erfassen. Die spezifische, die ich gekauft habe, finden Sie hier

Zubehör:

Schritt 1: Allgemeine Projektübersicht:

Ein interessanter Aspekt dieses Projekts ist die Verwendung analoger Geräte (in diesem Fall einer analogen Uhr) zur Interaktion mit der digitalen Welt des Atmel 328P-PU. Arduino ist wahrscheinlich einer der einfachsten Wege, dies zu erreichen. Ich werde den typischen Uhrmotor der klassischen Kit Cat-Uhren verwenden, um einen digitalen Impuls zu erzeugen, der in den Atmel-Chip eingespeist wird. Der Grund dafür ist, dass der Uhrmotor einen Permanentmagneten verwendet, der sich in der Nähe einer Spule befindet, um das mechanische Drehmoment zu erzeugen, das zum Drehen der Uhrzeiger erforderlich ist. Ich werde dieses Magnetfeld ausnutzen, indem ich einen Hall-Effekt-Sensor verwende, um den Magnetfluss vom Uhrmotor zu erfassen. Der Sensor gibt ein digitales HIGH aus, wenn einer der Pole des Magneten dem Sensor zugewandt ist, und gibt dann ein LOW aus, wenn sich der gegenüberliegende Pol in der Nähe des Sensors befindet. Dieser Polübergang erfolgt jede Sekunde oder hat eine Frequenz von 1 Hz und ist der Grund, warum dies als idealer Motor zum Antreiben von Uhrzeigern dient.

Hinweis: Der Sensor berührt den Magneten nicht wirklich, er ist nur sehr nahe daran. Die Bilder zeigen, wie nah ich den Sensor platzieren musste, um Messwerte zu erhalten.

Die Bilder hier zeigen das Innere der aktuellen Uhr und den Magnetmotor auf der rechten Seite. Der Uhrentyp wird als "Takane-Quarz" bezeichnet und ist bei billigen Analoguhren weit verbreitet.

Sobald wir einen konstanten Impuls vom Sensor erhalten, können alle möglichen Dinge digital erledigt werden, und es ist wirklich nur auf Ihre Vorstellungskraft beschränkt, was Sie tun können. In diesem Tutorial erstelle ich einfach einen Zähler, der die Taktimpulse (vom Hallsensor) zählt und nach Abschluss der Zählung einen „Miau“ -Audioclip abspielt.

Der erste Schritt besteht darin, den Hallsensor nahe genug am Magnetmotor anzubringen, damit Sie einen guten Messwert erhalten. Ich musste den Sensor sehr nahe an meinem Magnetmotor platzieren, um eine Ausgabe zu erhalten. Sie können den Sensor testen, indem Sie so etwas wie eine LED am Ausgang des Sensors anbringen und dann die Uhr einschalten. Wenn dies funktioniert, sollte die LED jede zweite Sekunde blinken. Dies liegt daran, dass der Ausgang nur HIGH ist, während einer der Pole dem Sensor zugewandt ist (sagen wir als Beispiel den Nordpol). Wenn der entgegengesetzte Pol (Süden) zum Sensor zeigt, ist der Ausgang LOW.

Nachdem Sie einen geeigneten Ort und eine geeignete Entfernung festgelegt haben, um Ihre Messwerte zu erhalten, sollten Sie darüber nachdenken, wie Sie sie dauerhaft dort anbringen können. Ich habe mich für Sekundenkleber entschieden, um den Sensor an Ort und Stelle zu halten. Ich habe mir auch überlegt, wo sich das hintere Gehäuse befinden soll. Ich musste ein kleines rechteckiges Loch ausschneiden, damit die Sensorstifte zugänglich waren. Sie sollten bestimmen, was am besten funktioniert, denn obwohl diese Uhren fast gleich sind, ist das Layout im Inneren manchmal leicht unterschiedlich, und die Position des Sensors kann je nach verwendeter Uhr variieren.

Schritt 2: Löten Sie den Draht an die Eingangsstifte des Sensors

Jetzt ist es Zeit, die Stifte an den Draht zu löten. Ich habe dies aus zwei Gründen getan: Erstens möchten Sie den Sensor testen können, während Sie weiterarbeiten, und zweitens, weil Sie diese Drähte benötigen, wenn Sie sie an Ihr Steckbrett und schließlich an das Protoboard anschließen. Beachten Sie, dass die Verwendung eines andersfarbigen Kabels möglicherweise die Identifizierung der Stifte erleichtert. Das ist, was ich tat.

Die Pinbelegung finden Sie auf dieser Seite

Schritt 3: Vorbereiten der Audiodatei

Wenn Sie bereits wissen, wie man eine.WAV-Datei in eine C-Datei konvertiert, können Sie diesen Schritt überspringen oder überfliegen.

Nachdem der Sensor an den entsprechenden Stiften auf dem Steckbrett angebracht ist, müssen Sie die Audioskizze auf den Atmel328P hochladen. Aber zuerst müssen einige Modifikationen und "Massagen" durchgeführt werden. Hier können Sie einige Ihrer eigenen Modifikationen vornehmen, und ich werde einige (aber nicht alle) Details zur Verwendung der Programme Audacity und wav2c erläutern. Sie sollten den Code öffnen, den ich in Ihrer Arduino IDE bereitgestellt habe. Wenn Sie die Skizze in der Arduino IDE öffnen, ist die erste Registerkarte eine geringfügige Änderung der PCM-Audioskizze von Michael Smith. Das Original befindet sich auf der Arduino-Site:

playground.arduino.cc/Code/PCMAudio

Audacity ist ein Audiobearbeitungsprogramm. Es ist sehr leistungsstark und ermöglicht den Export einer WAV-Datei als 8-Bit-Mono-WAV-Datei ohne Vorzeichen. Dies ist erforderlich, um die Dateigröße zu verringern und die Kompatibilität mit der Audiowiedergabeskizze zu maximieren. Möglicherweise können Sie verschiedene Bitraten und -größen umgehen, aber ich habe nicht damit experimentiert. Wir werden nur die notwendigen Funktionen in Audacity verwenden, um die Arbeit zu erledigen.

Wie der Name schon sagt, kann Wav2c eine.wav-Datei in eine C-Datei konvertieren. Dies ist auch erforderlich, da die WAV-Datei für sich genommen zu groß ist, um in den Speicher der 328P-PU zu passen. Ab diesem Zeitpunkt können Sie den Quellcode direkt von github herunterladen. Möglicherweise können Sie auch kompilierte Versionen von anderen Websites erhalten. In jedem Fall sollten Sie es oder ein ähnliches Programm für den Konvertierungsprozess verwenden.

github.com/olleolleolle/wav2c

Schritt 4: Verwenden von Audacity und Wav2c

Ziel der Konvertierung von Audiodateien ist es, eine Audiodatei (.wav) in ein nützliches C-Header-Dateidokument umzuwandeln. Dies ermöglicht es dem Arduino, die Informationen in der Header-Datei zu verwenden, um als Ton über einen Lautsprecher ausgegeben zu werden.

-Zuerst in der Datei in Audacity öffnen.

-Ändern Sie die Projektrate auf 8000 Hz (in der linken unteren Ecke).

-Dann wählen Sie "Tracks" aus dem Menü und wählen Sie "Resample".

- Führen Sie als nächstes einen Export> anderer nicht komprimierter Dateien durch.

-Unter Optionen wählen Sie 8-Bit vorzeichenbehaftet.

Dies bereitet die Datei auf den nächsten Schritt vor, nämlich die Konvertierung in eine C-Datei.

-Öffnen Sie als nächstes ein Terminal und wechseln Sie in dasselbe Verzeichnis wie die Datei.

- Führe den folgenden Befehl (sox) aus, um den Schwanz zu kürzen (vorausgesetzt, es gibt einen)

- Führen Sie dann den letzten Befehl aus, um die Konvertierung durchzuführen

(Beachten Sie, dass eine Kopie der Originaldatei tatsächlich konvertiert wird.)

- Öffnen Sie als Nächstes die Arduino IDE und fügen Sie eine neue leere Registerkarte hinzu (die Schaltfläche zum Hinzufügen einer neuen Registerkarte befindet sich ganz rechts in der Arduino IDE).

-Nennen Sie die Registerkarte mit demselben Namen wie die Header-Datei.

-Kopiere und füge den Inhalt in die Registerkarte ein

Schritt 5: Testen Sie Ihren Sound

Nachdem Sie die Datei sounddata.h bereitgestellt und die Arduino-Skizze überprüft haben, sollten Sie sie jetzt auf Ihren Chip hochladen. Ich habe das Arduino-Board direkt für alle meine ersten Tests verwendet, aber später die Konfiguration "Arduino on Breadboard" für meinen verbleibenden Test verwendet. Ich habe das Diagramm hier angehängt.

Wenn alles gut geht, schalten Sie Ihre Uhr ein und testen Sie sie, um sicherzustellen, dass sie die Impulse von der Uhr zählt und dann die Ausgabe liefert. Hinweis: Als ich dies ursprünglich tat, stellte ich den Audiowiedergabezähler alle 60 Sekunden ein, damit ich nicht eine ganze Stunde warten musste, um zu sehen, ob es funktionierte. Später stellte ich den Zähler auf 3600 Sekunden oder 1 Stunde um.. Um das Miau-Intervall zu ändern, suchen Sie den Code in der Nähe der letzten Zeile und suchen Sie die Variable clockCount. Ändern Sie es auf einen beliebigen Wert.

Schritt 6: Löten Sie alles für ein dauerhafteres, kompakteres Design

Nun zum spaßigen Teil … Löten Sie alle wichtigen Teile von Ihrem Steckbrett auf ein kompakteres Protoboard. Sie benötigen nicht alles wie den LED-Ausgang oder die Reset-Taste (vorausgesetzt, Sie haben eine vom Arduino on Breadboard-Schaltkreis). Es gibt viel bessere Möglichkeiten, dies zu tun, aber wenn Sie nur über begrenzte Vorräte verfügen, ist Protoboard wahrscheinlich die beste Wahl. Viele Leute machen jetzt ihr eigenes PCB-Ätzen und -Verarbeiten. Wenn Sie das können, dann tun Sie es auf jeden Fall, denn es ist viel besser als ein Protoboard.

Sie müssen Ihr Netzteil auch an den positiven und negativen Knoten des Protoboards anschließen, wo es auf die Spannungsreglerstifte trifft. Ich habe das Vtech 7,5 Volt Modell verwendet. Das sind ungefähr 10 Dollar bei Target und 12 bei Toys R Us. Oder Sie verwenden etwas Ähnliches, das Sie im Haus herumliegen haben. Achtung: Sie sollten versuchen, die Spannungsdifferenz zwischen Regler und Adapter auf ein Minimum zu beschränken, da sie sich sonst aufheizt. Wenn der Unterschied groß ist, sollten Sie einen Kühlkörper am Regler anbringen, um die Wärmeableitung zu unterstützen. Die Spannungsdifferenz zwischen dem 7805 und dem Vtech-Netzteil beträgt nur 2,5 Volt bei 300 mA. Sie sollten jedoch immer noch einen kleinen Kühlkörper darauf platzieren.

Hinweis: Vergewissern Sie sich, dass Sie mit der Skizze auf dem Atmega-Chip zufrieden sind, da Sie diese nach dem Auflöten nicht mehr neu programmieren können.

Hinweis: Ich habe auch ein Dremel verwendet, um ein kleines Loch in den Boden des Uhrengehäuses zu bohren, damit das Netzadapterkabel ordnungsgemäß passt. Ich habe es auch für andere Dinge verwendet, während ich die Uhr modifiziert habe, wie zum Beispiel scharfe Kanten wegzuschneiden und das Innere im Allgemeinen aufzuräumen.

Schritt 7: Alles organisieren und in die Uhr einpassen

Nachdem Sie alle Drähte und Komponenten ordnungsgemäß verlötet haben, müssen Sie nun die Verdrahtung organisieren und über die richtige Platzierung der Platine im Kit Cat-Gehäuse entscheiden. Das Hauptanliegen hierbei ist es, alles an einer Stelle zu platzieren, die die Bewegung von Schwanz und Augen nicht beeinträchtigt. Ich wusste auch nicht, wie schwierig der Einbau in den Lautsprecher sein würde, und musste deshalb einige Löcher bohren, um den Lautsprecher an einer Stelle anzubringen, die den Heckmotor-Anker behindern würde.

Das Auffinden eines Platzes für das Board kann schwierig sein und erfordert möglicherweise einige Versuche und Irrtümer. Ich ließ mich auf einer Stelle links neben dem Batteriegehäuse nieder. Ich habe dann eine Heißklebepistole an den Rändern des Bretts verwendet, um es an Ort und Stelle zu halten. Möglicherweise finden Sie Krawatten oder Reißverschlüsse, mit denen Sie die Drähte ordentlich organisieren und gruppieren können.

Für welche Technik Sie sich auch entscheiden, es liegt an Ihnen, denn es hängt von Ihrer Uhr und der Menge der Dinge ab, die in das Gehäuse passen.

Finalist in der

Sensor-Wettbewerb