Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!

9 Schritt:Schritt 1: Was Sie von diesem erhalten kann - die Grundelemente, die Twitr_janus Arbeit zu machen Schritt 2: Mit Verarbeitung auf die Bahn auf Befehle hören (mit vollständigen Code) Schritt 3: Unter Verwendung Arduino physische Aktionen auf der Grundlage der Steuerdaten empfangen werden (mit Code) Schritt 4: Wie Twitr_janus spricht mit Text-to-Speech (in Bearbeitung) Schritt 5: Entwerfen der Puppenkopf Schritt 6: Geben Twitr_janus Sicht und mit einer Webcam Augapfel zu hören Schritt 7: Die vollständige körperliche Elektroniksysteme im Inneren des Kopfes Schritt 8: Mögliche Wege, um auf die Konzepte, die Twitr_janus zeigt bauen Schritt 9: Mehr Informationen, Broschüren und Links

Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
Wie man ein physisches Objekt über das Web nur mithilfe gemeinsamer Web-Services und deren zugänglichen Daten-Feeds, mit einigen zusätzlichen Open-Source-Zeug zu entschlüsseln und diese Daten zu manipulieren, und letztendlich auf die Daten zu bewegen und zu steuern physikalische Hardware zu manipulieren.

Twitr_janus - ein Prototyp Web gesteuerte Marionette


Diese Instructable beschreibt Twitr_janus - eine Marionette machte ich zu sehen, ob es möglich, mash up kostenlose digitale Web-Services (Twitter, Google Spreadsheets und Formen, Netvibes und Skype) mit Open-Source-Hardware und Code (Arduino Sprache und Umgebung, Herstellung und der damit verbundenen Verarbeitung war Bibliotheken) und nutzen sie, um ein Objekt über das Internet zu manipulieren.

Es stellte sich heraus, dass es tatsächlich möglich war!

Sehen Sie, wie Twitr_janus funktioniert und sehen Sie, wie Sie diese Ideen verwenden, um eigene ferngesteuerte physische Objekte zu bauen. Es wurde von der preiswerten, leicht verfügbar Sachen gebaut, einige davon geborgen. Ich machte eine Marionette, weil ich nur komisch, gruselig Dinge. Die Prinzipien es zeigt, könnte leicht angewendet werden, um alle möglichen anderen Gegenstände konnte man selbst bauen zu steuern.

Hier ist Twitr_janus in Aktion, selbst zu beschreiben und wie es funktioniert ...




Zusammenfassung dessen, was sie tun können ...

Ein Puppenspieler kann aus der Ferne Kommunikation über das Internet mit Twitr_janus 'Daten-aktivierte Kopf.

Die Puppe kann: sprechen tweets seine Twitter-Konto gesendet sprechen mehr Sätze, die Eingabe als Text in einer Google-Tabelle gewesen in ein Feld bewegen, seine Kiefer in der Zeit mit seiner Rede, mit einer Autotür-Schlossantrieb (Linearmotor) von Arduino kontrolliert die Audio-Ausgabe in Steuerdaten konvertiert, um Lippen synchronisierten Bewegungsposition seiner Fernbedienung Augäpfel mit Arduino gesteuerten Mikroservos von Daten aus Feldern in der gleichen Google Spreadsheet getrieben von einer Steuerungsschnittstelle in einem Netvibes-Seite gehostet befohlen werden auslösen - erstellt von Hosting eine gehackte Version der Standard-Google Eingabeformular (durch Änderung der Form html, um die Daten-Werte zu beschränken, sondern fahren die Google einreichen script hat. remote über das Internet mit Skype geweckt werden, um auf Sehen und Hören über eine HD-Videokamera drehen verwenden Sie die Webcam, damit der Puppenführer, um zu sehen, was die Puppe Auge betrachten kann sehen, verwenden Sie die Webcam eingebaute Mikrofon, damit der Puppenführer zu hören, was die Puppe kann Hinweis zu hören - das instructable ist eine Zusammenfassung der wichtigsten Schritte, wurden in den Aufbau einer Arbeits, datengesteuerte physisches Objekt beteiligt. Es werden die Konzepte und erläutert die Möglichkeiten, seine Funktionen gemacht werden, um zu arbeiten, aber nicht in kleinste Detail zu gehen.

Weitere detaillierte und vollständige Beschreibung der einzelnen Schritte sind auf meiner in Beiträge machen Weird Stuff Blog
Es gibt viele von ihnen - zu viele für einen Instructable. Wo aber relevant, werden diese eingehenden Gesprächen auf den Stufen hier verlinkt.

Eine sehr kurze Zusammenfassung des Projektes ist auch hier zur Verfügung:
makingweirdstuff.blogspot.co.uk/2012/11/twitrjanus-overview-november-2012.html

Verarbeitung und Aruino Code erstellt, damit es funktioniert ist auf GitHub verfügbar (so gerade Datei-Downloads). Für Details siehe die Schritte weiter unten in diesem Instructable. Seien Sie gewarnt, es ist so in etwa wie meine körperliche Handarbeit gefertigt. Entschuldigung an Programmierer puristisch. Es ist frei für Ideen geteilt, aber enthält etwas links über Funktionen und Schnipsel, die entwickelt wurden, aber nicht notwendigerweise verwendet. Einige wurden in den Skizzen links, so dass alles, was das Kopieren nicht zu empfehlen. Einige davon können nützlich sein. Es ist auf der Oberseite des Open-Source anderer Leute Sachen gebaut, so nehmen, was Sie verwenden können.

Dieses Projekt wurde zunächst als ein Arbeitsdatengesteuerte Objekt Prototyp zeigen, an der Hacking Workshop gezeigt:
"Slack Day" am Museum Computer Network, Seattle 2012.

Ich bin zu dem Hinzufügen zu Instructables, da gibt es jede Menge Leute hier, die zumindest einige der es nützlich finden könnten. Fühlen Sie sich frei zu hacken und Ideen zu modifizieren hier. Ich habe viel gelernt, dies zu tun aus den verschiedenen Open-Source-Communities, insbesondere Arduino und Processing.

Schritt 1: Was Sie von diesem erhalten kann - die Grundelemente, die Twitr_janus Arbeit zu machen

  1. Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Twitr_janus war ein Versuch, um zu sehen, ob ich hack up Web-Zeug, um eine Fernbedienung Marionette zu machen - eine Art physischen Avatar. Es ist wirklich nur eine Marionette Kopf, ein bisschen wie eine Bauchrednerpuppe, aber eine, die bis zu dem Netz verdrahtet ist, um sie lebendig werden!

    Als ein bisschen wie Hacks, funktionierte es ein Genuss.

    In diesem Instructable habe ich die verschiedenen Elemente, die es funktioniert getrennt, so können Sie alle Ideen, die helfen, zu stehlen. Ich habe versucht, es hier einfach zu halten. Wenn etwas von potentiellem Nutzen sind die nähere Erläuterungen in der Regel in Beiträge auf meinem verfügbar machen Weird Stuff Blog. Links werden hier gegebenenfalls zur Verfügung gestellt.

    Die Grundbausteine, die Twitr_janus Arbeit zu machen sind:
    Die physische Kopf, aus Pappmaché gebaut und Kunststoffform (Heißkleber in der Tat) Eingangssensoren für Augen und Ohren (unter Verwendung eines gemeinsamen Webcam mit eingebautem Mikrofon) Servos zur Steuerung eyball und Kieferbewegung LEDs zur Anzeige, wenn Ihr Daten wurden als erhielt einen angeschlossenen Computer ein Programm für die Wiedergabe von im Web für Befehlsdaten, um den Kopf durch die Kommunikation über eine serielle Schnittstelle mit einem Arduino-Board ermöglicht Text steuern (mit URL-Analyse in einem Verarbeitungs Skizze) gesprochen werden (mit einem Text-to- Sprachbibliothek in der Verarbeitung Skizze) läuft Skype, damit der Kopf zum Relais, was sie sehen und hören, zurück zum Bediener sendet Audiosignale an die Arduino ein Arduino Board Hören für Steuerdaten von der Mutter-Computer: um sie in Ausgangsleistungssteuerdaten zu konvertieren für die Augapfel Servos an analogen Audiosignale in Steuersignale umzuwandeln für die Backen Motor separate LEDs zu aktivieren, um die Datenquellen (Google RSS und Twitter API) Fernbedienung mit einem beliebigen Web angeschlossene Gerät lauffähig Skype, Twitter und Google Doc anzuzeigen. Dies war mit einem iPad oder iPhone möglich, war aber nur praktisch mit einem großen Computer (Laptop) ein Steuerformular in einem Netvibes HTML-Seite eingebettet, gepimpt um Huckepack die Rückseite eines Google Spreadsheet-Formular-Skript Dieses instructable zeigt, wie , falls Sie jemals könnte nick einige der Ideen, geneigt sein.
    Die nützlichsten Dinge beinhaltet: wie Daten Streifen aus RSS-Feeds und APIs mit Verarbeitung immer wieder hören Sie die Web-how, um Ausdrücke in Google Spreadsheets verwenden, um spezielle begrenzten Zeichenfolgen übergeben, um verschiedene Daten zu unterscheiden, wie Sie eine benutzerdefinierte HTML-Formular mit Vor- Steuerwerte eingestellt, dass eine Google-Tabelle Formular-Skript, um die Tabellenkalkulation, wie neue Daten erfassen, verwendet, aber alte Nachrichten, die bereits, wie Sie die Daten über eine serielle Schnittstelle zu senden an ein Arduino Grundservo empfangen wurden, zu ignorieren, Relais und LED-Steuerung mit die Arduino Text-zu-Sprache-Umwandlung mit dem kostenlosen Verarbeitungsbibliothek Audiospitzenerfassung mit Arduino ein Servo auslösen, um den Kiefer, wie Remote-Kick-Start eine Ruhe Skype-Kontakt, um aufzuwachen, Augen und Ohren machen ein leichtes Schädel mit Pappmaché über ein Betrieb remeable Modell mit Heißkleber als Gussmaterial zu neu eine Gesichtsmaske Modell viele andere dumme Kleinigkeiten, die es alle Arbeits Erläuterungen in diesem Instructable Abdeckung die meisten Dinge kurz zu machen. Für einige Komponenten können die vollständige Angaben über die Entwicklung der spezifischen Elemente der über Links sein, auf meine Beiträge machen Weird Stuff Blog. Diese bieten viel detailliertere Erklärungen.

    Twitr_janus ist eine Reflexion darüber, wie wir für selbstverständlich "freien" Web-Kommunikations-Tools zu nehmen - Handy-Dienste wie Twitter, Google, Skype - und wie, wenn mit ihnen entwickeln wir Online-Personas. Allerdings sind diese Personas, die unsere Worte darstellen sind in der Regel nicht mehr als Textfelder auf dem Bildschirm mit einer zugeordneten und in der Regel eher langweilig 2D-Foto.

    Twitr_janus war ein Versuch, eine echte physische Darstellung Online-Aktivitäten zu machen. Die Herausforderung war, um zu sehen, ob ich eine solche Ungeheuerlichkeit Arbeit mit den gemeinsamen, aber eigentlich schon recht weit fortgeschritten, Daten-Kommunikationskanäle zu machen und Features, die Web-basierte Dienste kostenlos.

Schritt 2: Mit Verarbeitung auf die Bahn auf Befehle hören (mit vollständigen Code)

  1. Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Das Wichtigste, was benötigt wird, um Twitr_janus Kontrolle über das Internet ist selbstverständlich in der Lage sein, um das Web zu hören.

    Das Gehirn, die Daten erhält, um Twitr_janus 'Kopf zu aktivieren ist ein Programm (sketch) läuft in Bearbeitung. Dies läuft auf einem Computer an dem Kopf befestigt. Der Computer mit dem Internet verbunden.

    Die Verarbeitung ist einfach zu erlernen und hat eine große offene Gemeinschaft und leicht zugänglich und Dokumentation. Die Macher von Verarbeitung beschreiben es als ...

    "Ein Open-Source-Programmiersprache und Umgebung für Menschen, die Bilder, Animationen und Interaktionen erstellt werden soll. Ursprünglich entwickelt, um als Software-Skizzenbuch dienen und Grundlagen der Computer-Programmierung in einem visuellen Kontext zu lehren, Herstellung auch hat sich zu einem Werkzeug zum Erzeugen entwickelt fertig professionelle Arbeit. Heute gibt es Zehntausende von Studenten, Künstlern, Designern, Wissenschaftlern und Hobbyisten, die Verarbeitung für das Lernen, Prototyping und Produktion zu nutzen. "

    Die Verarbeitung ist kostenlos herunterzuladen und zu verwenden. Besuchen Verarbeitung .org

    Die wichtigsten Bearbeitungsfunktionen zur Twitr_janus "Gehirn zu machen sind:
    eine praktische Methode namens loadStrings (); denen, die in Vorschub Daten aus einer externen URL ziehen können (zB RSS-Feed oder API-Aufruf) verschiedene praktische Möglichkeiten, um die Futter Strings parsen erhalten, um die tatsächliche Steuerdaten zu extrahieren die Möglichkeit, eine serielle Verbindung mit dem USB-Anschluss zum Senden von Daten einrichten auf den Arduino einem fremden Text-zu-Sprache-Bibliothek GURU TTS, die Text in Audio-Sprach wenden können
    Siehe http://www.local-guru.net/blog/pages/ttslib die Komplettbearbeitung Skizze ist hier von GitHub als Text-Datei herunterladen:
    github.com/downloads/rosemarybeetle/Twitr-Janus/twitr_janus_code15.txt

    Es enthält Code, um: importieren Sie die Guru Text-zu-Sprache-Bibliothek
    >>>
    importieren guru.ttslib. *; // NB dies auch geladen werden muss (von http://www.local-guru.net/projects/ttslib/ttslib-0.3.zip)
    Serielle Schnittstelle;
    TTS TTS;
    <<<
    Referenzierung Twitter-API-Aufrufe
    >>>
    String twitterApiString = "https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name="+twitterUsername+"&count=0";
    <<<
    Verweisen auf Google Spreadsheet RSS Anrufe
    >>>
    String gssApiString = "https://spreadsheets.google.com/feeds/list/0AgTXh43j7oFVdFZJdklXTU1lTzY5U25sc3BJNjRLRUE/od6/public/basic?alt=rss ";
    <<<
    Parsing-Feed Daten in Steuerdaten zu extrahieren (das ist die Google-Tabelle Daten in ein Array aus dem RSS-Feed analysiert)
    >>>
    String [] = texty loadStrings (gssApiString);
    String [] texty2 = split (texty [0], '¬'); // Herausziehen von Daten mit Stoppzeichen

    String [] texty3 = split (texty2 [4], '<'); // Der nachfolgende Text nach <loswerden
    gssText = texty3 [0];
    gssTextLength = gssText.length ();
    <<<
    , einen seriellen Anschluss >>>
    println (Serial.list ()); // Anzeige Kommunikationsanschlüsse (verwenden Sie diese in Test Ablöse-Häfen anlaufen)
    // If (Serial.list () [2]! = Null) {// Fehlerbehandlung für Port Tod am PC
    port = neue Serien (this, Serial.list () [2], 115200);
    //}
    <<<

    Senden von Daten an den Arduino über die serielle Schnittstelle
    >>>
    (Dieser Code schreibt den Augapfel Position aus den Daten von Google in den Hafen abgestreift. Die Arduino es verwenden, um eine Reihe von voreingestellten Positionen verweisen)
    port.write (gssEyeballUpDown); // senden up down Wert an Bord

    Dieser Code wird das Senden einer Codenummer, die dem Arduino, die, wenn festgestellt wird auslösen die blaue LED ...
    port.write (30);
    <<<
    Umwandeln der Daten in Rede durch den Aufruf der TTS-Bibliothek
    >>>
    Das Google-Textdaten als Sprache verwendet ...
    tts.speak (gssText);

    Die Twitter tweet als Sprache verwendet ...
    tts.speak (tweetText);

    <<<

    Download der vollständigen Verarbeitung Sketch

    Es ist nicht perfekt, aber die komplette Verarbeitung Skizze ist hier von GitHub als Text-Datei herunterladen:
    github.com/downloads/rosemarybeetle/Twitr-Janus/twitr_janus_code15.txt
    Für die einfache Anzeige, hier ist ein Bild Faksimile des Textes
    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    NB - ich inititally soll ein Arduino-Skript, dies zu tun bekommen, aber könnte einen Weg, es zu tun, nicht zu finden. Das Arduino müsste eine direkte Internetverbindung verfügen und in der Lage sein, um die Bahn immer wieder abrufen können. Dies kann möglich eine Ethernet- oder WLAN Schild sein, aber ich konnte sie nicht finden eine einfache Möglichkeit, dies zu tun.

Schritt 3: Unter Verwendung Arduino physische Aktionen auf der Grundlage der Steuerdaten empfangen werden (mit Code)

  1. Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Sobald die Daten hatte aus dem Internet mit der Verarbeitung Skizze extrahiert wurde, ein Arduino Mikrocontroller benutzt, um Twitr_janus Kopf zu aktivieren. Die Daten wurden für Servos innerhalb Twitr_janus 'Kopf, der seine Augen und Kiefer zog in Steuersignale umgewandelt. Dies wird nachfolgend erklärt ...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Das Arduino tut mehrere Dinge: Es wird an den Master Computer angeschlossen - digital über eine USB-Verbindung und auch mit Analogeingang aus dem Audio-Ausgang des Computers
    Es unterhält eine serielle Verbindung mit dem Master-Computer, über die es prüft laufend nach neuen Steuer digitalen Daten, die über das Internet an den Leitrechner gesendet wurde.
    >>>
    Diese Linie ist Arduino so dass die serielle Verbindung ...
    Serial.begin (115200);

    Diese Zeile ruft eine Routine, die die Verbindung fo rdate prüfen wird ...
    checkSerial ();
    <<<
    Es prüft alle 10-30 Sekunden und vergleicht eingehende Daten auf den letzten empfangenen Action und wirkt nur auf, wenn es anders.
    >>> Nichtig checkSerial ()
    {
    Es prüft, ob es einen Zusammenhang ...
    if (Serial.available ()> 0) {

    Liest die Daten ...
    incomingByte = Serial.read ();
    }

    Wenn die Daten 30, wird es die Twitter-Routine auslösen (Twitter () ...
    if (incomingByte == 30) //
    {
    Twitter ();
    }

    Wenn die Daten zwischen 0 und 25 ist, ist es Google Daten, so rufen Sie die Funktion Google Überprüfung - googleCheck ()
    if ((incomingByte <= 25) && (incomingByte> 0)) // google Daten Daten als Ganzzahl zwischen 0 und 25 codiert ist
    {
    googleCheck ();
    } Else {// Keine Punkt Berufung Kontrollfunktionen, wenn keine seriellen Daten empfangen. Dies ist die Fehlerbehandlung Klausel
    Serial.println ("Ich habe nichts");
    }
    } // Enf von checkSerial
    <<< Wenn neue Daten empfangen werden, wird es auf der Stirn leuchtet Anzeige Warzen. Diese werden durch LEDs beleuchtet.

    Eine orange Warze leuchtet, wenn Daten von Google (ganze Zahl zwischen 0 und 25) empfangen worden ist, werden die Daten verwendet werden, um die Servos neu zu positionieren und die blaue Warze ist deaktiviert
    >>>
    nichtig googleCheck ()
    {
    digital (twitterFlagPin, LOW);
    eyeLeftRight = 2 * (incomingByte-1);
    eyeUpDown = (2 * incomingByte) -1;
    if (incomingByte <= 25)
    {
    digital (googleFlagPin, HIGH);
    servoLeftRight.write (eyePos [eyeLeftRight]);
    servoUpDown.write (eyePos [eyeUpDown]);
    }
    }
    <<<

    Eine blaue Warze leuchtet bei Twitter Daten empfangen wurden (integer 30) und der orangefarbenen Warze ist deaktiviert
    >>>
    nichtig Twitter ()
    {
    // Diese Funktion
    digital (twitterFlagPin, HIGH);
    digital (googleFlagPin, LOW);
    }
    <<<
    Es wird eingehenden Augapfels Daten in einem von mehreren vorbestimmten Positionssteuerwerte für jede der zwei Servos in den Kopf umzuwandeln. Eine für oben / unten, eine für links / rechts. Es nutzt die Arduino servo.h Bibliothek, dies zu tun
    >>>
    Die eingehenden Daten wird auf Daten aus einer Anordnung, die im voraus bestimmt wurde, Werte darin (das sind die Servo-Werte) verwendet,
    int eyePos [] = {115, 60, 115, 60, 115, 90, 115, 115, 115, 115, 115, 60, 115, 60, 115, 90, 115, 115, 115, 115, 90, 60, 90, 60, 90, 90, 90, 115, 90, 115, 60, 60, 60, 60, 60, 90, 60, 115, 60, 115, 60, 60, 60, 60, 60, 90, 60, 115, 60, 115};
    <<<
    Es wird die Kieferlippensynchron durch die Überwachung der analogen Audioeingang zu aktivieren. Es nutzt Spannungsspitzenerfassung, dies zu tun. Wenn die Schallwelle über einen vorgegebenen Schwellenwert steigt, wird der Kiefer öffnen, und wird es zwangsweise in der Nähe sein, wenn die Spannung unter den Schwellenwert fällt. Dies ergibt eine angenehm überraschende Stakkato.
    >>>
    nichtig analogPeakCheck ()
    {
    //@@@@@Diese Funktion verwendet wird, wenn Sie mit raw-Audioausgang von einem analogen Verstärker in den Analog pin 0
    valueAnalogIn = analogRead (ANALOG); // Das ist die Überprüfung für die Ausgabe über einer Schwellenspannung an Kiefersignal auszulösen
    if (valueAnalogIn> thresholdAnalogIn)
    {
    digital (speechFlagPin, HIGH);
    digital (speechFlagPinLED, HIGH);

    }
    else {
    digital (speechFlagPin, LOW);
    digital (speechFlagPinLED, LOW);

    } //@@End Schwelle Überprüfung //
    }
    <<< Die individuellen Code zur Steuerung des Arduino aus Grundcode auf angepasst arduino.cc/

    Download der vollständigen Arduino Sketch

    Der komplette Arduino Sketch ist hier von GitHub als Text-Datei herunterladen:
    http://cloud.github.com/downloads/rosemarybeetle/Twitr-Janus/twitr_janus_arduino_09.txt

    Für die einfache Anzeige, hier ist ein Bild Faksimile der Volltext Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!

Schritt 4: Wie Twitr_janus spricht mit Text-to-Speech (in Bearbeitung)

  1. Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!

    Apropos offene Daten

    Ein wesentlicher Punkt Ich habe versucht, mit Twitr_janus prüfen war, ob ich eine Marionette zu offenen Daten über das Internet zu sprechen kommen. Anfänglich würde dies nur sein, Tweets von beabsichtigt war twitr_janus Konto auf Twitter und das war, wie Twitr_janus seinen Namen erhielt.

    Twitr_janus tatsächlich erfolgreich sprechen Tweets, von der Twitter-API mit Verarbeitung abgezogen.

    Erstellen Twitr_janus sprechen tweets wurde ohne API-Schlüssel und durch Analysieren der API String, anstatt Referenzierung Felder richtig gemacht. Dies war zu vermeiden, melden Sie sich als Twitter-Entwickler etc. Dieses rohe Methode hatte einige Einschränkungen, zum Beispiel Tweets mit Steuerzeichen, verwirrt die Parsing-Skripts, die zu Nachrichten abgeschnitten, wenn sie decodiert.

    Die Parsing-Modell hat viel besser mit Google Spreadsheets, in dem die Rohdaten könnte mit zusätzlichen Stopp Daten angehängt werden, um die Analyseprozesses mit Ausdrücken in der Tabelle Felder helfen. Google-Tabelle Daten war nicht nur einfach zu verwenden für die Sprach, war es möglich, einfach verwenden Sie es zum Augapfel Kontrolle. Weil die Google Spreadsheet-Methode ist die einfachere und vielseitigere der beiden Ansätze, das ist, was ist unten beschrieben.

    Wie die Daten gesendet werden, codiert und decodiert werden, Schritt für Schritt


    Es hilft, durch den Fluss der Daten zu denken ...

    Vor dem Start auf diese fand ich es hilfreich, kritzeln ein Flussdiagramm, um ein Gefühl für die Bausteine ​​brauchte. Mund und TTS stellen die Funktion der Text-zu-Sprache-Umwandlung.

    Dies ist keine technische Zeichnung!

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Teil 1 - Eingeben von Daten in der Google-Tabelle

    Es wurden drei Stücke von Daten, die von der Tabellenkalkulation gesendet werden, um durch die Verarbeitung decodiert werden benötigt. Dies waren die beiden Variablen eyeballUpDown_stop (Spalten F) und eyeballLeftRight_stop (Spalte G), die codierten Positionsdaten sind. Später einmal decodiert sie verwendet werden, um Servos mit einem Arduino an den Puppenkopf befestigt zu treiben. Der dritte Teil der Daten war text_stop, was ist, was war es, in Verarbeitung weiterverarbeitet, um den Text in Sprache zu schaffen.

    In der endgültigen Fassung nur zwei Daten wurden gesendet. Die Sprachdaten, und eine einzelne Augapfel Datenwert. Dies kann zu Verwirrung führen, bei der Auslegung des Code! (EyeballUpDown wurde verwendet, obwohl nicht umbenannt),

    Eine einzelne Augapfel Position variable könnte anstelle von zwei verwendet werden, da die gesendeten Daten einfach eines der 25 Positionen dargestellt werden. Obwohl zwei Steuerwerte werden durch den Arduino benötigt, um die Augäpfel (eine für die Aufwärts / Abwärts-Servo, eines für das linke / rechte Servo) positioniert wurde die einzige Variable für den Zugriff gesendet entsprechende Wertepaare in einer Anordnung innerhalb des Arduino gespeicherten Skizze.

    In den Zellen, sieht man, dass die Daten von der ¬ Charakter vorausgegangen. Dies ist, was auch immer Daten manuell mit einem concatonating Zellexpressions eingegeben wird hinzugefügt. Es wird als ein Stopp-Zeichen, um die Datenfolgen später begrenzen verwendet. Diese Zeichen zeigen sich in den RSS-Feed und die Verarbeitung Skript nutzt sie, um zu sagen, wo ein Stück von Daten hält und die nächste beginnt. (Steuerzeichenbegrenzung)

    Anfangs Daten manuell in die Felder in der Tabelle, wie unten angegeben. Das ist nicht ideal, wie Sie wissen, die genauen Positionswerte zu senden, die schwer zu merken und leicht zu durcheinander ist, haben ...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Um zu vermeiden, manuell in die Tabelle der Dateneingabe, die eingebaute Google Form verwendet. Dies ist für alle Google-Tabelle verwendet wurde.

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!

    Die sieht so aus ...
    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Allerdings fehlen noch die Standard-Google Form des Augapfels numerische Positionswerte exakt eingegeben werden, so modifiziert werden sie gebraucht.

    Um eine sinnvolle Form mit einfachen Steuerung über voreingestellte Werte für die Variablen, die Grund Augapfel html der Form wurde auf einer Web-Seite übertragen (eine HTML-Widget auf einem NetVibes Seite), wo es ein wenig gepimpt werden zu erstellen.

    Die Form, in Netvibes, wie es aussah, um der Puppenführer

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Die freie Texteingaben wurden für Radiobutton-Eingänge mit voreingestellten Werten und entsprechenden Menschen lesbare Textposition getauscht.

    Die Hauptsache war, immer noch die ursprüngliche Google Feldnamen, damit die Daten-Optionen würden alle in die gleiche Zelle im Arbeitsblatt gefeuert werden, wenn das neue Formular abgeschickt wurde

    Dies können Sie in der HTML-Ansicht der folgende Formular sehen. Alle Optionen, folgen dem gleichen Muster wie unten

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!

    xxx ist ein Steuerwert, der Daten, die auf den physikalischen Augapfel-Position "positionxxx" Der Wert xxx ist eigentlich eine Referenznummer auf den Wert innerhalb eines bestimmten Element eines Arrays entspricht (es gibt 25 verschiedene Preset-Positionen, daher gibt ein sendet Radio-Button für jede ganze Zahl zwischen 1 und 25, verwendet, um die Array-Werte zwischen Array referenc benötigt [1] und Array [25] ist ein positionxxx einfachem Englisch Beschreibung, um den Bediener zu zeigen, ihnen zu ermöglichen, eine Zielposition Augapfel wählen Sie "Eintrag .1.single "ist die Google Feldnamen, der gleich gehalten werden müssen, so wird es den Wert xxx in die richtige Zelle im Arbeitsblatt setzen. Dies ist das gleiche für jedes Optionsfeld, da die verschiedenen Werte sind effektiv Wahl der Werte um in diesem einen Bereich setzen
    Durch die Überarbeitung der Form wurde eine weitere visuelle Schnittstelle erstellt, so dass es leichter zu sehen, wo die Augäpfel bewegen würde, obwohl trotzdem noch Rede Text eingegeben werden.

    Die andere Linie, die wichtig sind, die auch von der ursprünglichen Google Form html genommen ist, ist diese:

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!

    Es ist das Formular Aktion und muss die gleiche bleiben.

    Diese Technik der Zuhälterei eine einfache Google-Form hat einige Vorteile: Es ermöglicht Ihnen andere Möglichkeiten wie das Hinzufügen von kontinuierlichen Regler mit der HTML-5-Funktion <input type = "Bereich" /> können Sie ein Verfahren zum Einspritzen von Daten in die Tabellenkalkulation ohne jegliche erstellen API-Schlüssel. Sie müssen nur wissen, wie man HTML-Formular-Steuerelemente und Werte zu zwicken. Sie können die Eingabedaten in ein Feld, aber die Daten aus einem anderen Feld, das die Eingabedaten verwendet zu ziehen, aber in gewisser Weise modifiziert werden, um seine Vielseitigkeit zu verlängern, je nach Bedarf der Nachteil ist,
    Auf dem Absenden des Formulars, Google bringt Sie zurück in die ursprüngliche Form nicht Ihre gepimpt Form annehmen, so dass Sie, um eine Aktualisierung der Seite nach jeder Übermittlung tun, um neu zu laden Sie bilden müssen

    Die Form, in Netvibes - HTML-Quellcode (Bild unten)


    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Teil 2 - bekommen die Daten am anderen Ende der Bahn

    Die oben beschriebene Dateneingabemethode stellt das erste Glied in der am Anfang der Seite angezeigt und nicht Müll Datenflussdiagramm (auch wenn es zeigt, Twitter als Datenquelle, nicht Google). Das Dateneingabeschritt geschieht auf einem Steuergerät, durch den Bediener entfernt von dem Twitr_janus Puppenkopf verwendet. Es ist in der Tat, die primäre Steuerungsschnittstelle.

    Am anderen Ende der Bahn wurde Twitr_janus 'Kopf an einen separaten Computer mit seiner Verarbeitung Gehirn Skizze angeschlossen. Dies war Polling ein RSS-Feed aus der veröffentlichten Tabelle. Um diesen Feed zu erhalten, musste die Tabellenkalkulation auf publiziert. Wenn Sie eine Google-Tabelle veröffentlichen, wird es einen öffentlichen RSS-Feed, mit einer engagierten URL angegeben. Dies wird später in der Verarbeitung Skript verwendet werden, um die Daten zu analysieren. Die URL sieht für ein Google RSS wird wie folgt aussehen ...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Und die Ausgabe sieht wie folgt aus ...
    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    In den RSS-Ausgang, ist das Stoppzeichen ¬ deutlich sichtbar (vorletzte Zeile, bevor die Feldnamen: "eyeballupdownstop", "eyeballleftrightstop" und "textstop", und die entsprechenden Werte von 13, 22 und "Hallo mein Name ist .. . "

    Die Verarbeitung Skizze, die Twitr_janus 'Gehirn ist Polling diese URL wiederholt, und verwendet die ¬ Zeichen Streifen aus die Daten ...

    Hier ist der Code, der Parsen ist das Google Spreadsheet-Feed, um die Steuerdaten zu extrahieren und übergeben Sie in ein Array. Es ist für die Charakter ¬ zuerst suchen, ist das Zeichen <
    >>>
    String [] = texty loadStrings (gssApiString);
    String [] texty2 = split (texty [0], '¬'); // Herausziehen von Daten mit Stoppzeichen

    String [] texty3 = split (texty2 [4], '<'); // Der nachfolgende Text nach <loswerden
    gssText = texty3 [0];
    gssTextLength = gssText.length ();
    <<<

    Diese wird dann in Verarbeitung gegen die zuletzt empfangenen Daten überprüft. Wenn sie verschieden sind, dann wird ein neuer Befehl empfangen wurde.


    Teil 3 - Drehen Sie die Daten in Rede

    Alle neuen Daten werden in eine Text-To-Speech-Bibliothek übergeben, und kommt in einer ziemlich rohe raspy computergenerierten Stimme gesprochen.

    Ehre, wem Ehre gebührt.

    Die Bibliothek ist GURU TTS, erhältlich von http://www.local-guru.net/projects/ttslib/ttslib-0.3.zip
    Ein großes Dankeschön an die Person, die diese gemacht. Der Blog von der diese heruntergeladen wurde ist ein bisschen flockig und Es ist nicht so klar, wer der Autor eigentlich war, aber es jemandem namens Nikolaus Gradwohl erscheint. Ich hoffe, das ist richtig!

    Die Guru tts Bibliothek heruntergeladen und musste in die Verarbeitungs Ordner installiert werden, so dass es in die Bearbeitungsskizze importiert werden konnten.

    Der Blog der Report on ist hier:
    http://www.local-guru.net/blog/pages/ttslib

    Dieser kurz gesagt, ist, was ermöglicht Twitr_janus um durch Sprechen Daten sprechen.


    Teil 4 - Herstellung der Backen Umzug in die Zeit der Rede


    Der Ton wird über den erzeugten Sprach benötigt, um den Kiefer bewegen. Das heißt, es brauchte Lippen synchronisiert sein. Eine Ausgangsleitung wurde an den Computer angeschlossen, und dies wurde übergeben Trog eine einfache Audio-Verstärkerschaltung, aus einem alten Computerlautsprecher geborgen (dies wird hier auf der rechten Seite der Chelsea Buns gezeigt).

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Es wurde eine groß genug, Schallwelle, um zuverlässig zu erfassen (ca. + -3 V) ...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Um Twitr_janus 'Kiefer bewegen sich Zeit, um seine Rede zu halten, die Audio-Ausgabe aus der Verarbeitung text-to-speech benötigt lippensynchron zu der Backenmechanismus zu sein.

    Die Grundidee ist, dass der Arduino-Skript immer wieder überprüft die Audio für Spitzen, und verwendet diese, um den Motor ein und aus auslösen. Dies wird dargestellt (und nicht etwa) unter ...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Das verstärkte Laptop Tonausgangssignal wurde direkt an den analogen Eingang des Arduino Platte zugeführt. Auf der Arduino ist eine Steuer Skizze wiederholt überprüft die Spitzenspannung Arduino wandelt das analoge Eingabe in eine Zahl, die es mit einem voreingestellten Spitzen Schwellenwert überprüft.

    Wenn das Signal erhob sich über der Spitze, ausgelöst das Arduino eine Relaisschaltung zum Einschalten einer 12V Autotürantrieb (Linearmotor). Wenn der Spannungsabfall unterhalb des Gipfels wäre es die Macht abgeschnitten. Dies ergab eine ruckartige Bewegung, basierend auf den Gipfeln der Rede.

    In der Arduino Sketch, ten Code sah so aus ...
    >>>
    nichtig analogPeakCheck ()
    {
    //@@@@@Diese Funktion verwendet wird, wenn Sie mit raw-Audioausgang von einem analogen Verstärker in den Analog pin 0
    valueAnalogIn = analogRead (ANALOG); // Das ist die Überprüfung für die Ausgabe über einer Schwellenspannung an Kiefersignal auszulösen
    if (valueAnalogIn> thresholdAnalogIn)
    {
    digital (speechFlagPin, HIGH);
    digital (speechFlagPinLED, HIGH);

    }
    else {
    digital (speechFlagPin, LOW);
    digital (speechFlagPinLED, LOW);

    } //@@End Schwelle Überprüfung //
    }
    <<<

    Perfect!

    Hier sehen Sie den Klapp Mund der Puppe, auf die die Autotür Stellantrieb befestigt war zu sehen ...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Für einen detaillierten Blick auf, wie die Verarbeitung Gehirn funktioniert, können Sie Befehl für Befehl Beschreibungen zu diesem Beitrag auf meinem machen Weird Stuff Blog zu lesen: makingweirdstuff.blogspot.co.uk/2012/08/twitrjanus-is-now-speaking-data- sent.html

    Obwohl diese Beschreibung gilt für eine Google-Tabelle RSS-Feeds als Datenquelle, gilt das gleiche Prinzip auf einen String, indem Sie die Twitter-API erhalten.

Schritt 5: Entwerfen der Puppenkopf

  1. Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Der römische Gott des Türöffnungen und Übergänge: Twitr_janus ist ziemlich vorhersehbar, nachdem Twitter Janus benannt, aber auch. So gut wie jeder einen Namen für eine Marionette von Web-Portale angetrieben.

    Die Hauptfederzeichnung zeigt eine intiial Design, das auf Twitr_janus eine zweiköpfige Puppe zu machen war. (Janus war in der Regel mit zwei Kopf oder zwei Gesichter, ein Blick nach vorn, der andere nach hinten gezeigt.) Dies würde die Puppe Bediener die Möglichkeit, sowohl das Publikum und die Marionetten aussehen lassen.

    Schließlich wurde diese für eine Reihe von Gründen abgelehnt. Stattdessen wurde eine Reihe von Ideen unten gekritzelt, mit dem Blick zu spielen. Jeder hat seine eigene Methode zur Ideengeneriere. Ich mag schnelle Skizzieren entweder mit Bleistift, Kohle oder Tinte und Wäsche. Dies ist vor allem, da sie alle ermöglichen Linien oder Schattierungen, um rasch gebaut werden.

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Ich wollte, dass es ziemlich grotesk aussehen, und zumindest ein bisschen gruselig!

    Einige Varianten dargestellt. Einige der Ideen herauskommen schien, Erinnerungsspuren des Gehirns von Pinky und der Brain haben ...
    Die rechte Hand eines erkundet eine große Klappbacken Version ...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Die ungewöhnlich große Schädel in diesen Skizzen ist nicht ganz einfach für groteske Wirkung. Es ist auch, weil die Puppe würde schließlich zum Haus Servos und Steuerschaltungen und Elektronik müssen ...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Schließlich ein gewählt.
    Auf dieser Basis benötigt eine 3-D-Puppenkopf gebaut werden, so ein Gesicht war in Ton modelliert als eine Form gegossen. Hier ist der große Klumpen Ton ...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Und hier ist das fertige Modell, bereit zum Gießen. Hinweis - Die Augenhöhlen sind breiter als das Original-Design, damit die eventuelle Augäpfel, eine größere Blickfeld zu haben. Wenn Sie genau hinsehen, können Sie sehen, dass das Modell auf einem Plexiglas-Plattenteller ruht (wie für Kuchen Dekoration verwendet werden). Es erleichtert den Zugang bei der Modellierung.

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Um die endgültige Gesichtsmaske zu bekommen, wurde eine Form aus dem Modell unter Verwendung von Silizium-Guss Latex genommen ...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Für die vollständigen Angaben, wie die Silikonform wurde mit einem Karton Gehäuse gemacht siehe diesen Beitrag:

    makingweirdstuff.blogspot.co.uk/2012/09/making-silicon-latex-mould-for.html

    Das Gesicht und Schädel: Der Kopf wurde in zwei Hauptteile gebaut. Die Gesichtsmaske ist hier nicht die endgültige Version. Es ist eine von mehreren Latex Kopien beim Probelauf. Es wird verwendet, hier als eine Vorlage zu beurteilen, wie groß der Schädel sein sollte und zu schnitzen sie passen ...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Das Polystyrol wurde in mehreren Schichten von laminierten Papiermache (braunes Papier und PVA) abgedeckt. Das Polystyrol wird entfernt, um eine hohle Schädel bilden

    The final hard face was created from the silicon mould (see previous step). The moulding material used was hot glue. This was melted into the mould and left to set.

    Here you can see the two parts before joining...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    And below after the two halves have been joined. You can see that the lower lip has been cut out and hinged to allow mouth movement for the puppet later...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    For more details of how this head was built up see:

    makingweirdstuff.blogspot.co.uk/2012/09/making-twitrjanus-skull.html

    For details of papier mache techniques see this post:

    makingweirdstuff.blogspot.co.uk/2011/12/head-for-pantomime-goose-costume-part-2.html

Step 6: Giving Twitr_janus sight and hearing with a webcam eyeball

  1. Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    To allow Twitr_janus to react to its surroundings it needed to be able to sense them. The simplest way to do this was to use a webcam with a built-in mic. This enabled the puppeteer to remotely see and what Twitr_janus could see and hear.

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    The eyeballs are made from deodorant balls, which conveniently are hollow. As well as being easy to cut open, they are also rigid and do not deform if you cut bits off them.

    They also come with ready-made housings from the bottles they are contained in. These were cut off and glued into the back of the eye sockets of the puppet face mask.

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Below you can see the exploded eyeball, the Microsoft LifeCam and the control rod. This is used to add leverage. Later the rods from the two eyes are jointed into a rig, that is attached to the servos to allow position-control...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    To make Twitr_janus see, Skype was loaded onto the computer that was attached to the puppet head. Skype was signed into a specially set up account. Skype can be set to be woken up from standby and to connect to a call just by dialling it. You can also specify that only specified Skype contacts can do this.

    The net effect was that it was possible to wake up Twitr_janus' webcam eyeball. The webcam also had a built-in microphone. This meant that it was possible to activate both sight and hearing remotely inside the puppet head from a remote location, as long as the control device had Skype loaded and was logged into an account with permission to activate the Twitr_janus Skype account.
    .
    In this picture, the web cam is being tested by aiming it at the Arduino...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    And here you can see an iPad (left) being used as a remote control. It is making a Skype call over the web to the computer (right) to which the eyeball is attached. The close up of the Arduino on the iPad is what the eyeball on the floor is pointed at (slightly dark, in the centre).

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Here you can see the webcam still in its original casing being tested for rotation clearance inside the face mask. You can also see the hot glue and the reinforcing plastic gauze used to provide strength.

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Here are the two eyeballs inside the skull. They are fixed into a jointed parallogrammatic rig. The two control servos are visible.
    the servo to the left of the picture inside the rig, causes left-right motion by shearing the rig parallelogram, which is partly made up of the eyeball control rods (as above). the servo to the right is coupled to the rig via a flexible, but rigid bike cable, via which it controls up/down motion. Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


Step 7: The full physical electronics systems inside the head

  1. Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Eventually all the various parts of the head were put together inside the head...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    Looking something like this...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    A new bone coloured base coat of paint was applied and the LED-illuminated warts were added...

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!


    With some extra texturising colour coats and with a stand added, eventually Twitr_janus was finished.

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!

Step 8: Possible ways to build on the concepts that Twitr_janus demonstrates

  1. Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!

    Mashed up data-driven objects


    The central objective in building Twitr_janus was to demonstrate a working example of a physical object that could be controlled using web applications and their data feeds and communicate in both directions.

    This aim was achieved. Twitr_janus could sense its surroundings with video and audio and could respond to remote interactions by sending web data and using that data to manipulate its postion and make it talk.

    In simple terms, it is a data-driven object.

    Although it's a puppet, it could have been almost anything. It could also have had different sensors, such as PIR (Infra red) sensors for detecting motion, or smoke detector technology for chemicals or thermostats for heat.

    Similarly, although the sensory data here was monitored manually by a puppeteer, an object could just as easily be built to react to stimuli automatically.

    Fabrication of bespoke objects using 3D printing


    Although not really to do with the data principles, there are also possibilities to produce rapid prototypes of such objects with 3d printing.

    In this prototype, the head here was created manually by modelling in clay. It could as easily have been built from 3-d scanning of objects. For example a scan of a real person's face could make the puppet look like that person. The head could be constructed by scanning the various components (such as the face of a person, the lip of the deodorant bottles that form the eye sockets, the shape of the skull, etc.) and combining meshes to print a single monocoque shell...

    A (crude) 3d mesh of the original physical face mask is available on Autodesk's 123D community here:
    www.123dapp.com/obj-Catch/Twitr-Janus-Mask/842675

    A 3d rendering of Twitr_janus showing the physical form is available here:
    http://www.123dapp.com/AssetManager/Index.cfm?stgaction=getProduct&subaction=preview&step=1&inttype=4&intproductid=1151611

Step 9: More information, credits and links

  1. Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Twitr_janus was built upon the generosity of various open source communities. Here are some references to further information...

    Verarbeitung

    In Twitr_janus, Processing was used to create a master brain. This received data streams from the web services, stripped out control data and then communicated it to an Arduino microcontroller board attached to the puppet head.

    The Processing function used to strip the data from feeds and APIs was the loadStrings(); function.

    Processing is free, open source and has a strong artist-led community of coders so there is a fair amount of help available on the web. It has it's own environment to code in, which is Java-based, so that may be an issue for some people, but does appears to be offering some javascript. I have not used the javascript version.

    processing.org/
    The main Processing site

    processing.org/reference/
    Processing look up reference

    www.openprocessing.org/
    OpenProcessing is an "online community platform devoted to sharing and discussing Processing sketches in a collaborative, open-source environment."

    You can upload and try out some sketches (mainly useful for visual ones, for which Processing was originally designed). Lots of sketches to down load and fork.

    Twitr_janus eyaballs on open processing .org
    This is an example sketch on Openprocessing.org. Its a sketch that I wrote to test out eyeball positioning functions. It moves 2-d eyeball graphics onscreen, in response to keyboard arrow keys. Freely available to download and hack/rip off as much as you want.

    www.local-guru.net/projects/ttslib/ttslib-0.3.zip
    GURU TTS (text-to-speech library for use in Processing) by Nikolaus Gradwohl (I think)
    Guru TTS is the Processing library that enables Twitr_janus to speak. This was downloaded and needs to be installed into the Processing folders:

    The complete Twitr_janus Processing sketch is available to download here from GitHub as a text file:
    github.com/downloads/rosemarybeetle/Twitr-Janus/twitr_janus_code15.txt



    Arduino

    In Twitr_janus, Arduino is the microcontroller circuit board that manipulates the hardware inside the puppet head. This includes eyeball movement, jaw lip-sync to speech and illumination of the indicator warts on its head that light up as incoming data is received.

    www.arduino.cc/
    Arduino is "an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments."

    Arduino language is based on Wiring and the Arduino programming envirinment is based on Processing as above.

    Arduino is really similar to Processing. Sketches in both have a basic structure of:
    initialisation code (include libraries, declare and initialise variables) definitions for functions (such as checking twitter, moving eyeballs, etc.) a central looping function (the main repeating function that checks for new states when the skethc is running)
    arduino.cc/en/Reference/Servo
    The eyeballs inside Twitr_janus' head are driven by servos. Within the Arduino sketch, the servo.h library is loaded. This does the heavy lifting, so you just have to send a position number to the board, and the library will convert it to a servo command.

    The complete Arduino sketch is available to download here from GitHub as a text file:
    cloud.github.com/downloads/rosemarybeetle/Twitr-Janus/twitr_janus_arduino_09.txt

    Twitr_janus and other related posts on Making Weird Stuff

    makingweirdstuff.blogspot.co.uk
    This is my blog where I post about making things. Mostly rather silly. These posts are about individual pieces of work needed to create Twitr_janus. Some otehr posts are included tha toffer more information on relevant techniques in other projects.

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Making a video eyeball - How to take apart a Microsoft Lifecam and insert it into a deodorant ball to make a video eyeball.
    makingweirdstuff.blogspot.co.uk/2012/10/hacking-microsoft-lifecam-to-make-video.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Detailed description of stripping speech data from Google spreadsheet:
    makingweirdstuff.blogspot.co.uk/2012/08/twitrjanus-is-now-speaking-data-sent.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Making video and audio connections over Skype
    makingweirdstuff.blogspot.co.uk/2012/06/twitr-janus-has-sight-and-hearing.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Building a relay circuit to handle car door lock power switching from Arduino
    makingweirdstuff.blogspot.co.uk/2012/08/a-self-contained-relay-circuit-unit.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Hacking a computer amplifier to get a measurable audio signal for lip-sync triggering, including Arduino peak-detection code
    makingweirdstuff.blogspot.co.uk/2012/10/hacking-out-audio-amplifier-for-text-to.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Creating a silicon latex mould from a plaster face mask model.
    makingweirdstuff.blogspot.co.uk/2012/09/making-silicon-latex-mould-for.html
    Separate papier mache technique post
    makingweirdstuff.blogspot.co.uk/2011/12/head-for-pantomime-goose-costume-part-2.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Prototyping face masks with latex test-mouldings, inclduing use of sawdust as latex strenghtening
    makingweirdstuff.blogspot.co.uk/2012/09/first-mouldings-from-twitrjanus-face.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Designing and creating a clay face mask model for face.
    makingweirdstuff.blogspot.co.uk/2012/08/modelling-twitrjanus-face-puppet-mask.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Brief overview of Twitr_janus
    makingweirdstuff.blogspot.co.uk/2012/11/twitrjanus-overview-november-2012.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Building the puppet head by papier mache over positive cranium moulding
    makingweirdstuff.blogspot.co.uk/2012/09/making-twitrjanus-skull.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Fixing servo mountings inside puppet head
    makingweirdstuff.blogspot.co.uk/2012/10/making-servo-mounts-inside-twitrjanus.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Testing Processing script for eyeball control. Includes use of onscreen eyeball simulation
    makingweirdstuff.blogspot.co.uk/2012/08/remote-control-eyeballs-using-remote.html

    Wie man eine Remote-Control-fühlenden web-Marionette durch Hacken Twitter, Google, Skype, Arduino und Verarbeitung machen!
    Setting up audio connections
    makingweirdstuff.blogspot.co.uk/2012/10/hacking-out-audio-amplifier-for-text-to.html



    Sonstiges


    These pages explain in fantastic detail, how someone took apart their Microsoft LifeCam. This was so useful - respect to this guy!
    Gary Honis - Hacking open a Microsoft LifeCam
    ghonis2.ho8.com/lifecam/lifecam1.html