Audio Treasure Hunt

14 Schritt:Schritt 1: Sehen Sie das Video Schritt 2: Materialien Schritt 3: Montieren Sie den Wave-Schild Schritt 4: Download und Installation des Wave-Bibliothek Schritt 5: Das Arduino-Code Schritt 6: Ändern der Meldungscodes und neue hinzufügen Schritt 7: Nehmen Sie die Audio-Dateien Schritt 8: Konvertieren Sie die Audiodateien in das WAV-Format Schritt 9: Legen Sie die Dateien auf der SD-Karte und installieren Sie es Schritt 10: Bohrungen im Gehäuse für die Buttons Schritt 11: Schließen Sie die Buttons in den Verwaltungsrat Schritt 12: Montieren Sie alle Teile im Inneren des Gehäuses Schritt 13: Blenden Sie die Clue Codes an jedem Standort Schritt 14: Geben Sie die Box, um Ihre Schatzjäger und den Spaß aufpassen.

Audio Treasure Hunt

Audio Treasure Hunt

Jeder liebt Schatzsuche. Herumlaufen auf der Suche nach Ihrem Geschenk zu finden macht jedes Geschenk besser. Also nur so zum Spaß, habe ich meine eigene Variante des Spiels. I kombiniert ein Arduino Mikrocontroller mit einem Adafruit Wave-Schild, eine Audio-Schatzsuche-Box zu machen.
Die Schatzsucher werden einen Code. Als sie den Code in das Feld eingeben, wird es mit einem kurzen Audio-Clip, der ihnen einen Anhaltspunkt, wo sie als nächstes gehen sollte zu spielen. Als sie an diesem Ort ankommen, werden sie einen anderen Code, der sie geben und erhalten Sie einen weiteren Hinweis zu finden. Dies dauert an, bis sie schließlich kommen am endgültigen Standort und finden ihre Gegenwart.

Schritt 1: Sehen Sie das Video


  1. Hier ist eine Video-Anleitung des Projekts.

Schritt 2: Materialien

  1. Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Alle 10 Artikel anzeigen

    Hier sind die Materialien und Werkzeuge, die Sie benötigen, um dieses Projekt zu vollenden.
    Materialien:
    Arduino Mikrocontroller
    Adafruit Wellenabschirmschicht Kit
    8-Ohm-Lautsprecher
    9 Volt Batterie
    Arduino Batteriestecker (9 Volt Battery Connector und 2,1 mm Gleichstromanschluss)
    Isolierten Projekt Enclosure
    Sechs Tasten (in der Regel augen öffnen)
    Header Pin-Verbindungsdrähte (oder andere Schaltdrähte)
    SD-Karte
    Wärmeschrumpfschläuche
    Werkzeuge:
    Lötkolben und Lötzinn
    Kabelschneider
    Abisoliergeräte

Schritt 3: Montieren Sie den Wave-Schild

  1. Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    The Wave Shield ist ein Add-On zu dem Arduino, die es zu Audio-Dateien zu spielen. Es kann an gekauft werden http://www.adafruit.com/product/94 . Dieses kommt als Bausatz, den Sie selbst zusammen gestellt haben. Der erste Schritt ist der Montage des Wave-Schild. Es ist eine sehr gute Anleitung, wie man dies auf der Website Adafruit hier tun:
    https: //learn.adafruit.com/adafruit-wave-shield-au ...
    Zuerst finden und zu identifizieren alle Teile . Die Teilenummern dürfen nicht übereinstimmen genau. Seien Sie sehr vorsichtig, um die zwei 8-Pin-IC-Chips korrekt zu identifizieren. Dann löten sie auf die Leiterplatte . Um es einfacher, beginnen Sie mit den Teilen, die am schwierigsten zu löten sind, wie die SD-Kartenhalter. Sie werden mehr Platz, um zu arbeiten, bevor die anderen Teile installiert sind. Weiter Anlöten von Teilen, bis sie alle installiert sind.
    Die Welle Schild verbindet sich mit dem Arduino Board mit Kopfstifte an der Unterseite des Wellenbrett. Diese Stifte passen in die Pin-Buchsen auf der Arduino. Angrenzend an die Stiftlöcher in dem diese Header-Stifte befestigt sind, einen zweiten Satz von Löchern, die mit ihnen verbunden sind. Diese können Sie externe Komponenten an die Pins auf dem Arduino zu verbinden. Sie können Drähte direkt mit diesen Löchern löten oder Sie können Header-Pins für abnehmbare Verbindungen verwenden. Das Kit kommt mit acht zusätzliche Header-Pin-Anschlüsse. Zwei von diesen I verlötet, um den 5V und GND Stiftlöcher. Die restlichen sechs I verbunden, um den analogen Eingangspins.
    Das Kit funktioniert nicht mit einem Lautsprecher kommen. Sie müssen also Ihre eigenen stellen. Der Draht aus dem Lautsprecher kann an den beiden offenen Stiftlöcher, die angrenzend an den Kopfhöreranschluss sind angebracht werden.

Schritt 4: Download und Installation des Wave-Bibliothek

  1. Audio Treasure Hunt

    Audio Treasure Hunt

    Um die Welle Abschirmung funktioniert, müssen Sie die waveHC Bibliothek installieren. : Sie können eine Kopie der ihn hier herunterladen https://code.google.com/p/wavehc/downloads/list .
    Laden Sie die Zip-Datei. Dann entpacken / extrahieren Sie die Dateien. Kopieren Sie die WaveHC Ordner in den Bibliotheken Verzeichnis Ihrer Arduino-Programmordner.
    : Sie können eine detaillierte Anleitung für die Bibliothek und wie es hier verwendet finden https: //learn.adafruit.com/adafruit-wave-shield-au ...

Schritt 5: Das Arduino-Code

  1. Audio Treasure Hunt

    // Hier ist die Kopie des Arduino-Code. Sie können entweder laden Sie die beigefügten Code-Datei, oder Sie können in eine neue Skizze diesen Text einfügen.
    // Sie dann das Arduino-Board mit dem Computer und laden den Code.
    # include
    # include # include # include "WaveUtil.h" #include "WaveHC.h"
    SdReader Karte; // Dieses Objekt enthält die Informationen für die Karte FatVolume vol; // Dies enthält die Informationen für die Partition auf der Karte FatReader root; // Dies enthält die Informationen für den Dateisystem auf der Karte FatReader f; // Dies enthält die Informationen für den Datei wir spielen
    WaveHC Welle; // Dies ist die einzige Welle (Audio) Objekt, da wir nur spielen ein zu einer Zeit
    #define DEBOUNCE 100 // Button Entpreller
    // Diese praktische Funktion wird die Anzahl der Bytes derzeit kostenlos im RAM für die Fehlersuche zurückzukehren, großartig! int FreeRAM (void) {extern int __bss_end; extern int * __ brkval; int free_memory; if ((int) __ brkval == 0) {free_memory = ((int) & free_memory) - ((int) und __ bss_end); } Else {free_memory = ((int) & free_memory) - ((int) __ brkval); } Return free_memory; }
    nichtig sdErrorCheck (void) {if (card.errorCode ()!) return; putstring ("\ n \ RSD-I / O-Fehler:"); Serial.print (card.errorCode (), HEX); putstring (","); Serial.println (card.errorData (), HEX); while (1); }
    // <----------------------------------------------- ------------------------------- Void-Setup Leere Setup () {// up serielle Schnittstelle Serial.begin (9600) festgelegt ; putstring_nl ("WaveHC mit 6 Tasten"); putstring ("Free RAM:"); // Dies kann bei der Fehlersuche zu helfen, aus dem RAM ausgeführt ist schlecht Serial.println (FreeRAM ()); // Wenn dies unter 150 Byte kann es Probleme buchstabieren! // Die Ausgangspins für die DAC-Steuerung ein. Diese Stifte werden in der Bibliothek pinMode (2, OUTPUT) definiert sind; pinMode (3, Ausgang); pinMode (4, Ausgang); pinMode (5, Ausgang); // PIN13 LED pinMode (13, OUTPUT); // Ermöglichen Pull-up-Widerstände auf Schalterblocks (Analogeingänge) digital (14, HOCH); digital (15, HOCH); digital (16, HOCH); digital (17, HOCH); digital (18, HOCH); digital (19, HOCH); // If (! Card.init (true)) {// mit 4 MHz spi spielen, wenn 8 MHz arbeitet nicht für Sie, wenn (! Card.init ()) {// spielen mit 8 MHz spi (default schneller!) putstring_nl (". Karte init failed!"); // Etwas schief gelaufen ist, können Druck warum sdErrorCheck (); while (1); // Dann "Halt" - nichts zu tun! } // Ermöglichen optimize lesen - einige Karten können Timeout. Zu deaktivieren, wenn Sie Probleme card.partialBlockRead (true); // Jetzt werden wir für eine FAT-Partition aus! uint8_t Teil; für (Teil = 0; Teil <5; Teil ++) {// wir haben bis zu 5 Steckplätze zu suchen, wenn in (vol.init (Karte, Teil)) zu brechen; // Wir haben ein, lässt bail} if (Teil == 5) {// wenn wir am Ende nicht einen zu finden :( putstring_nl ("Keine gültige FAT-Partition!"); SdErrorCheck (); // etwas schief gegangen ist, können ausdrucken, warum while (1); // dann "Halt" - nichts tun} // Ermöglicht dem Benutzer mitteilen, was wir gefunden putstring ("Verwendung von Partition");! Serial.print (Teil, DEC); putstring (" Typ ist FAT "); Serial.println (vol.fatType (), DEC); // FAT16 oder FAT32 // Versuchen Sie, das Root-Verzeichnis zu öffnen, wenn) {putstring_nl ((root.openRoot (vol!)" Can not offene root dir "); // ging etwas schief, while (1);!. // dann" Halt "- nichts tun} // Puh Wir haben an den harten Teilen putstring_nl ("! Ready ");}!
    // <----------------------------------------------- -------------------------------------- Void Schleife
    Leere Schleife () {// putstring ("."); // Kommentieren Sie dies zu sehen, ob die Schleife ist nicht Lauf int secretCodeOne [6] = {1, 2, 3, 4, 5, 6}; int secretCodeTwo [6] = {1, 1, 2, 2, 3, 3}; int secretCodeThree [6] = {2, 4, 6, 1, 3, 5}; int secretCodeFour [6] = {1, 2, 3, 5, 5, 5}; int secretCodeFive [6] = {1, 2, 3, 3, 2, 1}; int secretCodeSix [6] = {1, 2, 3, 4, 5, 1};
    int enteredCode [6] = {0, 0, 0, 0, 0, 0}; int correctKeys = 0; int Erfolg = 0; Byte gedrückt; // Speichert Werte der Taste int i = 0; // Schleifeniteration
    for (i = 0; i <6; i ++) // speichert gedrückt Werte in einem Array zu tun {{gedrückt = check_switches (); } While (gedrückt <1); enteredCode [i] = gedrückt wird; // Speichert gedrückt Werte in einem Array-Verzögerung (500); Serial.println (enteredCode [i]); // Print Taste}
    for (i = 0; i <6; i ++) {// Code One Überprüfen Sie, ob (enteredCode [i] == secretCodeOne [i]) {correctKeys = correctKeys +1; // Zählt Anzahl der richtigen Tasten}} if (correctKeys == 6) // wenn der eingegebene Code Code ein Spiele, Spielbahn ein {Serial.println ("Code One Correct"); playcomplete ("1.wav"); Erfolg = 1; } CorrectKeys = 0; // Zurückgesetzt richtigen Schlüssel Zähler
    for (i = 0; i <6; i ++) // Zwei-Code prüfen {if (enteredCode [i] == secretCodeTwo [i]) {correctKeys = correctKeys +1; // Zählt Anzahl der richtigen Tasten}} if (correctKeys == 6) // wenn der eingegebene Code Code ein Spiele, Spielbahn ein {Serial.println ("Code Two Correct"); playcomplete ("2.wav"); Erfolg = 1; } CorrectKeys = 0; // Zurückgesetzt richtigen Schlüssel Zähler
    for (i = 0; i <6; i ++) // Drei Kodex prüfen {if (enteredCode [i] == secretCodeThree [i]) {correctKeys = correctKeys +1; // Zählt Anzahl der richtigen Tasten}} if (correctKeys == 6) // wenn der eingegebene Code Code ein Spiele, Spielbahn ein {Serial.println ("Code Drei Richtige"); playcomplete ("3.WAV"); Erfolg = 1; } CorrectKeys = 0; // Zurückgesetzt richtigen Schlüssel Zähler
    for (i = 0; i <6; i ++) {// Vier-Code Überprüfen Sie, ob (enteredCode [i] == secretCodeFour [i]) {correctKeys = correctKeys +1; // Zählt Anzahl der richtigen Tasten}} if (correctKeys == 6) // wenn der eingegebene Code Code ein Spiele, Spielbahn ein {Serial.println ("Code Four Correct"); playcomplete ("4.WAV"); Erfolg = 1; } CorrectKeys = 0; // Zurückgesetzt richtigen Schlüssel Zähler
    for (i = 0; i <6; i ++) {// Fünf-Code Überprüfen Sie, ob (enteredCode [i] == secretCodeFive [i]) {correctKeys = correctKeys +1; // Zählt Anzahl der richtigen Tasten}} if (correctKeys == 6) // wenn der eingegebene Code Code ein Spiele, Spielbahn ein {Serial.println ("Code Five Correct"); playcomplete ("5.WAV"); Erfolg = 1; } CorrectKeys = 0; // Zurückgesetzt richtigen Schlüssel Zähler
    for (i = 0; i <6; i ++) {// Six-Code Überprüfen Sie, ob (enteredCode [i] == secretCodeSix [i]) {correctKeys = correctKeys +1; // Zählt Anzahl der richtigen Tasten}} if (correctKeys == 6) // wenn der eingegebene Code Code ein Spiele, Spielbahn ein {Serial.println ("Code Sechs Richtige"); playcomplete ("6.WAV"); Erfolg = 1; } CorrectKeys = 0; // Zurückgesetzt richtigen Schlüssel Zähler
    wenn (Erfolg == 1) {Serial.println ("Du hast einen Code richtig"); Erfolg = 0; } Else {playcomplete ("0.WAV"); Serial.println ("You Fail"); }}
    Byte check_switches () {static byte vorherige [6]; statische Langzeit [6]; Byte-Lesen; Byte gedrückt; Byte-Index; gedrückt = 0;
    für (byte index = 0; index <6; ++ index) {Lesen = digitalRead (14 + Index); if (Lesen == LOW && previous [index] == HOCH && millis () - Zeit [index]> DEBOUNCE) {// Schalter gedrückt Zeit [index] = millis (); gedrückt = index + 1; brechen; } Previous [index] = Messwert; } // Schalter Nummer zurück (1 - 6) return (gedrückt halten); }
    // eine vollständige Datei spielt von Anfang bis Ende ohne Pause. Leere playcomplete (char * name) {// können Sie unsere Helfer zu finden und spielen diesen Namen playfile (name); while (wave.isplaying) {// nichts tun, während seine Spiel} // nun ihre getan spielen}
    Leere playfile (char * name) {// sehen, ob die Welle Objekt gerade, etwas zu tun, wenn (wave.isplaying) {// spielt schon etwas, so hör auf! wave.stop (); // Stoppen} // schauen in das Root-Verzeichnis und öffnen Sie die Datei, wenn {putstring ("Konnte Datei nicht öffnen") (f.open (root, Name)!); Serial.print (name); zurück; } // OK die Datei lesen und es in einer Welle-Objekt, wenn {putstring_nl ("Keine gültige WAV") (wave.create (f)!); zurück; } // Ok Zeit zu spielen! starten Sie die Wiedergabe wave.play (); }

Schritt 6: Ändern der Meldungscodes und neue hinzufügen

  1. Audio Treasure Hunt

    Audio Treasure Hunt

    Ich habe sechs Muster in der Beispiel-Code eingestellt. Diese werden in Arrays mit "secretCodeOne", "secretCodeTwo" usw. Sie können weitere hinzufügen, um die Schatzsuche so lange wie Sie wollen gespeichert.
    Beginnen Sie, indem mehrere Arrays. Diese werden bei der ersten der Leere Schleife initialisiert. Dann fügen Sie eine weitere "für" Schleife, um das Muster zu prüfen. Dies sollte einen Verweis auf zusätzliche Audioclips enthalten.

Schritt 7: Nehmen Sie die Audio-Dateien

  1. Audio Treasure Hunt

    Als nächstes müssen Sie die Audiospuren, die die Hinweise in der Schatzsuche sein wird, zu erfassen.
    So müssen Sie zunächst, welche Art von Hinweisen, die Sie verwenden wollen, zu entscheiden. Sie haben eine Menge von Optionen. Sie können es einfach halten und einfach sagen, die Lage des nächsten Hinweis Code. Oder Sie machen es schwieriger, indem jeder Anhaltspunkt ein Rätsel sein. Sie können finden Sie einige gutes Beispiel Rätsel hier . Sie können auch zu zitieren Leitungen von Bücher, die sie gelesen haben und sie diese Passage in dem Buch oder die Objekte, die sie sprechen zu finden. Eine weitere tolle Möglichkeit ist, verschiedene Töne rund um das Haus aufnehmen und sie werden gehen müssen, finden Sie die Objekte, die diese Geräusche zu machen. Die Möglichkeiten sind endlos. Verwenden Sie einfach Ihre Fantasie.
    Machen Sie eine zusätzliche Tonspur, die spielen werden, wenn sie den Code falsch eingeben. Dies kann nur ein Summer sein, oder Sie sagen, "falsch".
    Sie wollen jede Spur in eine separate Datei zu sein. Ich habe ein paar Beispieldateien beigefügt.

Schritt 8: Konvertieren Sie die Audiodateien in das WAV-Format

  1. Audio Treasure Hunt

    Audio Treasure Hunt

    The Wave Schild kann nur Audio-Dateien im WAV-Format. Also, wenn Ihr Audio-Recorder speichert die Dateien in einem anderen Format, werden Sie brauchen, um sie zu konvertieren, um .WAV.
    Wenn Sie iTunes haben Sie dieses Tutorial benutzen können, um sie zu bekehren: https: //learn.adafruit.com/adafruit-wave-shield-au ...
    Sie können auch Online-Datei-Konverter verwenden, wie diese: http://audio.online-convert.com/convert-to-wav
    Unabhängig davon, welches Programm Sie verwenden, müssen Sie die Datei in das WAV-Typ zu konvertieren. Die Bit-Auflösung sollte auf "16-Bit" gesetzt werden. Die Abtastrate sollte auf 22050 Hz (oder 22,050 kHz) eingestellt werden. Die Audio-Kanäle gesetzt werden sollte "Mono".

Schritt 9: Legen Sie die Dateien auf der SD-Karte und installieren Sie es

  1. Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Als nächstes kopieren Sie die WAV-Dateien auf der SD-Karte. Sie müssen die Dateinamen der Audio-Dateien, um die Dateinamen im Code entspricht. Die Wellenschutzschild ist ein wenig wählerisch, wie die Dateien genannt werden. So der Einfachheit halber genannt ich die Dateien 0.wav, 1.wav, 2.wav, ... etc. Ich habe es so, dass 0.wav ist die Fehlermeldung, und der Rest der Sound-Dateien sind die Hinweise in Ordnung. Wenn Sie Ihre Sound-Dateien für dieses Spiel umbenennen, werden Sie nicht haben, um den Code zu ändern.
    Sobald die Dateien auf der SD-Karte, stecken Sie die Karte in den Wellen Schild.

Schritt 10: Bohrungen im Gehäuse für die Buttons

  1. Audio Treasure Hunt

    Um Konflikte mit anderen Teilen, die im Inneren des Gehäuses montiert werden zu vermeiden, versuchen, die Lautsprecher, die Bretter und der Batterie nach hinten passen, um zu sehen, wo es Platz für die Tasten sein.
    Sobald Sie auf einer guten Lage entschieden haben, bohren Sie Löcher in der Seite des Gehäuses für jede der Tasten. Wenn Sie fertig sind, möchten Sie vielleicht zu bereinigen Sie die Ränder mit einem Messer oder einer Datei.

Schritt 11: Schließen Sie die Buttons in den Verwaltungsrat

  1. Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Alle 7 Artikel anzeigen

    Zuerst müssen Sie die Tasten an der Seite des Gehäuses montieren. Die Befestigungsmutter von jedem Knopf abschrauben. Legen Sie den Button durch die Löcher. Dann ziehen Sie die Muttern wieder auf, um sie in Position zu halten.
    Jetzt können Sie die Tasten, um den Vorstand zu verbinden. Ein Anschluss von jedem Knopf wird an den analogen Eingangsanschlüssen verbunden werden. Der andere Anschluss der beiden Tasten mit GND verbunden werden.
    Um die Anschlüsse mit Masse zu verbinden, nahm ich einen einzigen Draht mit einem Buchsenleiste Pin-Anschluss an einem Ende und ich verdrahtet, dass mit einem Anschluss auf der ersten Schaltfläche. Dann habe ich den anderen Schalter um, dass mit einer Reihe von kurzen Drahtbrücken.
    Auf die andere Seite jedes Schalters in den Vorstand zu verbinden, habe ich einen sechs Terminal-Header Pin-Anschluss-Kabel. Die Header-Pin-Block an die Pins auf der Platine verbunden. Die Drähte wurden auf die andere Seite der Tasten verbunden ist. Ich empfehle isolierenden jede Verbindung mit Schrumpfschlauch.

Schritt 12: Montieren Sie alle Teile im Inneren des Gehäuses

  1. Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Alles was Sie jetzt tun müssen ist, montieren Sie alle Teile im Inneren des Gehäuses. Erste Folie in den Lautsprecher. Benutzen Sie Klebstoff, um es in Position zu halten, wenn nötig. Es gibt eine Menge von freiliegenden Metall auf der Rückseite des Lautsprechers. Also habe ich ein Stück Papier über es so, dass es nicht versehentlich zu einem Kurz mit einem der Anschlüsse auf dem Board. Dann vorsichtig passen in den Brettern. Das war ein wenig eng mit dem Gehäuse, die ich verwendet. Ich landete Entfernen der Lautstärkeregler auf der Wellenschutzschild, damit es besser passen. Schließlich verbinden die Batterie und passt, dass an Stelle. Achten Sie darauf, eine nagelneue Batterie verwenden. Wenn die Batterie zu schwach ist, wird das System nicht richtig funktionieren. Nun schließen Sie einfach das Gehäuse und Ihrer Audio-Schatzsuche-Box ist abgeschlossen.

Schritt 13: Blenden Sie die Clue Codes an jedem Standort

  1. Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Der letzte Teil der Installation ist es, die Schlüssel-Codes an jedem Ort zu verstecken. Sie können den Code auf ein Stück Papier schreiben, oder Sie können direkt auf die Objekte schreiben. Wenn Sie möchten, können Sie auch machen es ein wenig härter meine geben die Codenummer in Form von mathematischen Problemen.

Schritt 14: Geben Sie die Box, um Ihre Schatzjäger und den Spaß aufpassen.

  1. Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Audio Treasure Hunt

    Wickeln Sie die Audio-Schatzsuche-Box als reguläre Geschenk. Fügen Sie eine Notiz, um sie zu beginnen. Dann lehnen Sie sich zurück und beobachten Sie den Spaß.