Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

6 Schritt:Schritt 1: Schritt 1 Quelle für Xylophon Klangstäbe Formeln und Ideen aus nerdkits. Schritt 2: Schritt 2. ursprüngliche Projekt verwendet Hand gebaut Magnetspulen jedoch gab es eine bessere Lösung Schritt 3: Schritt 3: Montage der Magnetventile für Rex-O-Phone Schritt 4: Schritt 4: Die Input-Output-Lösung ... 74ls595 Tristate Oktal serielles Schieberegister Schritt 5: Schritt 5. Code-Entwicklung spark.io Seite Schritt 6: Schritt 6: Code-Entwicklung Web-Seite für spark.io

Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

Unsere Funkenbildung Nights am 13. November und 15. 2014 Blooming-labs waren eine Menge Spaß dank Spark.io und Instructables für die Herstellung der Build Nacht möglich! Ich war der Bau einer Glockenspiel von Magnetspulen von einem spielenden Piano spielte also warum nicht machen es wireless, auch?
D ie folgende Schritte notwendig, um ein WiFi gesteuert interaktive Xylophon sind unten aufgeführt und geben Ihnen einen Ausgangspunkt für den Aufbau Ihrer eigenen Versionen erfolgreich zu bauen.
Quelle für Xylophon Klangstäbe Formeln und Ideen aus Sonderling Kits. Initialprojekt mit Hand gebaut Magnete hier nicht weiter diskutiert. Erwerb Piano Magnete happenstance Besuch Vettern Klavier shop the 74ls595 Serien Tri State Schieberegister Treiberschaltung schema Prüfsoftware mit Arduino die Serienschaltbefehl, wie 16-Bit-Ganzzahl ohne Vorzeichen also das Web-Interface * ab RTTTL Fernspieler gehackt verschieben http: // Funken .io mehrere Schaltflächen auf Web-Benutzeroberfläche des Funken io Seite auch von RTTL Fernspieler Projektfotos Schaltpläne Ätzen des Board Auffüllen der Vorstand und andere Probleme mit TIP120 Darlington NPN-Transistoren sein mindfull der ordnungsgemäßen Prüfung von Stromversorgungen und Widerstandswerte. Jedes Projekt erfordert sorgfältige Prüfung. Inkscape-Dateien und Design Design Funken PCB-Design-Software. andere Projekte. http://microrexrobotics.com


Schlussfolgerungen nicht überstürzen und zögern Sie nicht ...
Fortsetzung des Projekts. nie getan und immer wieder verändert. nie zufrieden.

Schritt 1: Schritt 1 Quelle für Xylophon Klangstäbe Formeln und Ideen aus nerdkits.

  1. Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

    Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

    Frequenz in Hertz
    Länge Zoll beachten Zoll von jedem Ende der Stange
    ..bitte Siehe Referenztabelle ..
    Für die hartnäckigen Erbauer Bitte beachten: Das Projekt Klangstäbe wurden aus 1 geschnitten "x 1/4" Aluminium Stangenmaterial. Jeder Balken
    geschnitten auf eine Länge etwas länger so dass für Pitch-Verstellung. Es ist ein Android-Handy-Anwendung namens
    chromatische Klavierstimmer, die verwendet werden können, um die Bar Frequenz zu messen. Um den Ton Datei überschüssige schärfen
    off der Enden der Stäbe. Um den Ton Hain "grind" Material von der Mitte der Bar zwischen den Knoten zu glätten.

Schritt 2: Schritt 2. ursprüngliche Projekt verwendet Hand gebaut Magnetspulen jedoch gab es eine bessere Lösung

  1. Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

    Die bessere Lösung, wenn Sie finden können, sie sind Piano Magnetspulen.

Schritt 3: Schritt 3: Montage der Magnetventile für Rex-O-Phone

  1. Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

    Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

    Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

    Es ist ein wichtiger Vorteil, dass ein Mitglied einer Hacker Raum besonders Bloominglabs ist der Zugriff auf das gesamte Spektrum Laser-Cutter. Verwendung InkScape Ich entwarf Pläne für den Fall und Montagelöcher und Halterungen für das Xylophon.

Schritt 4: Schritt 4: Die Input-Output-Lösung ... 74ls595 Tristate Oktal serielles Schieberegister

  1. Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

    Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

    Eine insgesamt 16 chromatischen Klangplatten und Magnetventile wurden auf dem Xylophon Gehäuse montiert. Zum Antrieb der Magnetspulen von
    der Funke .io I (2) verwendet 74ls595 Tri State Oktal serielle Schieberegister, um die Output-Pins zu erweitern. Die 74ls595
    erfordert einen Dateneingang Spark.io D3, eine serielle Schiebetakt spark.io D4, eine Datenspeichertakt Spark.io D5 ein
    Daten-Latch-Tri-State-Steuerleitung Spark.io D6 und eine klare Schieberegister Daten-Latch-pin Spark.io D7. Beachten Sie, dass
    nach Ihrem Code die Stifte neu zugewiesen werden. Datenblätter in diesem instructable vorgestellt wurden
    von Jameco.com oder Digikey.com heruntergeladen. Die schematische stellt mit einem Netzwerk von 2N2222 und einen TIP120
    Darlington-Paar jedoch konnte man sich auch für die uln2804-Treiber-IC vereinfacht das Design, wenn 500 ma Antriebs
    Strom ist ausreichend für die Magnetspulen.

Schritt 5: Schritt 5. Code-Entwicklung spark.io Seite

  1. Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

    Spark.io Bauen Nacht Rex-o-Phone wifi Xylophon

    Vorläufige Hardware wurde mit Punkt gelegt, um Lötstelle. Initial Code-Entwicklung wurde abgeschafft
    ein Arduino Klon 328 .shiftOut (dataPin, clockPin, LSBFIRST, j); wurde die erste intstruction verwendet und
    Es wurde festgestellt, dass es nur eine Verschiebung aus einer Bit-Wort.
    / ************************************************* ************ /
    / * Spark.io Funktionen für die Bearbeitung die Homepage Interaktion * /
    / * Bloominglabs Spark.io bauen nacht november 13 und 15 2013 * /
    / * By Rex M Marling * /
    / * Derzeit wird ein Projekt im Gange für eine mikrocontrollergesteuerter * /
    / * Glockenspiel (Xylophon). Die Spark.io ermöglicht die drahtlose * /
    / * Schnittstelle mit der zugehörigen Datei abspielen RexOphone HTML-Datei * /
    / * Zwei 74ls595 Schieberegister verwendet wird, um zu erweitern * /
    / * Die Ausgangsdaten aus dem spark.io. 3. Januar 2015 * /
    / * Initialisiere Datentypen und TRIGGER Interrupt-Funktion / * / * Zeichendatentyp * /
    // Char * songPtr;
    / * Datentyp BOOL * /
    // Bool songDone = false;
    bool remoteTriggered = false; // Globale Zustandsgröße für remoteTrigger) Funktion (
    / * Byte-Datentyp *
    / Byte default_dur = 4;
    Byte default_oct = 6;
    Byte lowest_oct = 3;
    Byte-Note; Byte-Skala;
    / * Datentyp INT * /
    int x; int-Zeiger;
    int result;
    int bpm = 63;
    int num;
    int clr = 7;
    int data = 3;
    int clock = 4;
    int Latch = 5;
    int enable = 6;
    int Zähler;
    / * UNSIGNED INT DATA TYPE * /
    unsigned int Note;
    unsigned int Maske;
    / * Die folgenden unsigned int werden 16 Notizen zugeordnet * /
    unsigned int a1 = 0x0001;
    unsigned int b1 = 0x0002;
    unsigned int c1 = 0x0004;
    unsigned int C1P = 0x0008;
    unsigned int d1 = 0x0010;
    unsigned int D1P = 0x0020;
    unsigned int e1 = 0x0040;
    unsigned int f1 = 0x0080;
    unsigned int F1P = 0x0100;
    unsigned int g1 = 0x0200;
    unsigned int G1P = 0x0400;
    unsigned int a2 = 0x0800;
    unsigned int AP2 = 0x1000;
    unsigned int b2 = 0x2000;
    unsigned int c2 = 0x4000;
    unsigned int n [] = {0x8000,0x4000,0x2000,0x1000,0x0800,0x0400,0x0200,0x0100,0x0080,0x0040,0x0020,0x0010,0x0008,0x0004,0x0002,0x0001};
    / * Long-Datentyp * /
    Langwhole;
    langer Dauer;
    / * DEFINIERT * /
    #define DEBUG = false;
    / * SETUP Data Ports und TRIGGER INTERRUPT * /
    Leere Setup (void) {
    // If (DEBUG) Serial1.begin (115200);
    pinMode (D6, OUTPUT);
    pinMode (D7, OUTPUT);
    pinMode (Daten, OUTPUT);
    pinMode (Uhr, OUTPUT);
    pinMode (Riegel, OUTPUT);
    pinMode (Freigabe, OUTPUT);
    digital (Uhr, HIGH);
    digital (Daten, HOCH);
    digital (Riegel, HIGH);
    digital (Freigabe, LOW);
    digital (CLR, HIGH);
    Spark.function ("remote", remoteTrigger); }
    / * END SETUP Data Ports und TRIGGER INTERRUPT * /
    / * MAIN LOOP * / void loop (void) {
    / * Die Hauptschleife () verarbeitet die Web-Schaltfläche klicken Sie auf eine Note zu einem Zeitpunkt. * /
    / * Vermeiden, blockiert die Hintergrundaufgaben zu lange * /
    / * Oder aber der Funke Kern würde aus der Cloud zu trennen. * /
    if (remoteTriggered) {
    digital (D7, HIGH);
    // Licht der Onboard-blaue LED, während der Song spielt};
    Verzögerung (600);
    digital (D7, LOW);
    // Schalten Sie den Onboard-blaue LED.
    remoteTriggered = false;
    // If (DEBUG) Serial1.println ("Done!");
    Verzögerung (2000); }
    {
    // Der folgende Code wurde auf Uhr ein 16-Bit ausgelegt
    // Unsigned int "Notendaten oben" durch 2 x 74ls595
    // Schieberegister der shiftOut Funktion nur Transfers
    // 8 Datenbits
    // Syntax
    // ShiftOut (dataPin, clockPin, bitOrder, value)
    // Parameter
    // DataPin: der Stift, auf dem die Ausgabe jedes Bit (int)
    // ClockPin: der Stift einmal der dataPin umzuschalten ist auf den korrekten Wert eingestellt ist (int)
    // BitOrder: was Um zu Schalten Sie die Bits; entweder MSBFIRST oder LSBFIRST.
    // (Most Significant Bit zuerst oder, Least Significant Bit zuerst)
    // Wert: die Daten zu verschieben aus. (Byte)
    // Serial.println ("begin"); für (pointer = 0; Zeiger <= 15; pointer ++) {Maske = 0x8000; // & B1000000000000000 note = n [pointer]; Serial.println (Anmerkung); for (x = 0; x <= 16; x ++) {result = note & Maske; Maske = Maske >> 1; if (result> 0) {digital (Daten, HIGH); Serial.println ("hoch"); }
    if (result == 0) {digital (Daten, LOW); Serial.println ("low");} digital (Uhr, LOW); Verzögerung (15); digital (Uhr, HIGH); };
    // Ende der inneren Schleife
    digital (Riegel, LOW);
    Verzögerung (15);
    digital (Riegel, HIGH);
    Verzögerung (15);
    digital (Freigabe, LOW);
    Verzögerung (15);
    digital (Freigabe, HIGH);
    Verzögerung (250); };
    // Ende der äußeren Schleife
    // Aktiviere Ausgangsfreigabe für 74ls595 play note "Abtriebs Darlington-Transistoren" dann auf Tri-State-zurück
    }
    / ************************************************* ************* / / * * / / * END MAIN LOOP * / / ************************ **************************************
    ************************************************** ************ / / * Fernauslöser für SPARK.IO DEVICE * / / ************************* ************************************* / int remoteTrigger (String args) {if (args == "1") {counter = 1; };
    if (args == "2") {counter = 2; };
    if (args == "3") {counter = 3; };
    if (args == "4") {counter = 4; };
    if (args == "5") {counter = 5; };
    if (args == "6") {counter = 6; };
    if (args == "7") {counter = 7; };
    if (args == "8") {counter = 8; };
    if (args == "9") {counter = 9; };
    if (args == "10") {counter = 10; };
    if (args == "11") {counter = 11; };
    if (args == "12") {counter = 12; };
    if (args == "13") {counter = 13; };
    if (args == "14") {counter = 14; };
    if (args == "15") {counter = 15; };
    if (args == "16") {counter = 16; };
    // Das Argument von der Webseite Tasten vergangen ist
    // In den Zähler zur Steuerung der for-Schleife geladen
    // Sichtprüfung für die ordnungsgemäße Funktion der Webseite Daten
    // Auf Mausklick weitergegeben
    für (Zähler; Zähler> 0; counter--)
    {Digital (D7, LOW);
    Verzögerung (200);
    digital (D7, HIGH);
    Verzögerung (200);
    digital (D7, LOW); }
    remoteTriggered = true; zurück 200; }
    / * END WEBSEITE HANDLER * /

Schritt 6: Schritt 6: Code-Entwicklung Web-Seite für spark.io


  1. siehe beigefügte Code
    Um zu sehen, spark.io von dieser Web-Seite klicken Sie hier gesteuert ... http://microrexrobotics.com/rexophone.mp4