Digital / Analog Clock - Arduino + Papercraft

11 Schritt:Schritt 1: Sammeln Sie Ihre Materialien Schritt 2: Testen Sie die elektronischen Teile Schritt 3: Entwerfen Sie die Uhr Schritt 4: Schneiden Sie die Stücke Schritt 5: Construction Schritt 6: Fügen Sie die Ziffern Schritt 7: Fügen Sie die Servos Schritt 8: Fertig Bauprojekte Schritt 9: Anschlussklemmen verdrahten Elektronik Schritt 10: Programing Schritt 11: Fertig

Digital / Analog Clock - Arduino + Papercraft

Digital / Analog Clock - Arduino + Papercraft

Digital / Analog Clock - Arduino + Papercraft

In diesem instructable werden wir Neuerstellung einer Uhr inspiriert von Alvin Aronson ursprünglicher Entwurf. Als ich zum ersten Mal sah diese Uhr war ich sehr beeindruckt, wie sauber das elegante Design wurde das wollte ich sofort um diesen Effekt zu erstellen.

Alvin Aronson ursprünglicher Entwurf (hergestellt mit Corian und Holz):

Ich hoffe, dass einige von Ihnen das gleiche Gefühl und verwenden Sie diese als Leitfaden für sein Ein-Schritt näher an mit einem Ihrer eigenen

Im Wesentlichen haben wir eine Sieben-Segment-Takt, wo anstelle von LEDs haben wir Stellen, die in und aus dem Fensterbereich, wird der Schatten, die durch diese Ziffern ermöglichen es dem Benutzer, um die Zeit vor dem weißen Ziffern auf weiß zu lesen. Durch die Verwendung von 28 Servos, können wir eine Arduino zum ersten Prozess verwenden die aktuelle Zeit und drücken Sie die Ziffern aus entsprechend durch die Motorsteuerung. weitere werden in den späteren Seiten erläutert.

Ich habe versucht, die Teile so einfach wie möglich zu halten, unter Verwendung leicht verfügbarer Teile ohne tiefe Kenntnis der Elektronik kann man beginnen, erkunden ihre eigenen Takt. Ich habe keine 3D-Drucker so Konstruktion wird anhand eines Papierhand erfolgen.

Schritt 1: Sammeln Sie Ihre Materialien

  1. Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Hier sind die Dinge, die Sie benötigen. Ich hatte vor, diese in der Kategorie "kit Wettbewerb" passen, so habe ich den Aufbau, einfache Teile ohne Notwendigkeit zum Löten beschränkt. Alternativ. Arduino Uno und Motor-Controller ersetzt mit Arduino Mega die Wand ermöglichen die direkte Steuerung von bis zu 64 Servos können. Die Baukosten kostete mich rund 130 € in Teilen. Denken Sie daran, können Sie die Teile wieder verwendet, um andere große Projekte wie ein Hexapod zu schaffen!

    Die Elektronik Kit:
    Arduino Uno
    DS1307 oder RTC-Uhr Breakout Spur hält der Zeit
    Servomotor-Controller - steuert Servomotoren
    28 Servos - sie um 180 Grad drehen

    Konstruktion:
    Karton
    Hobby Aluminiumrohr * - Um Ziffern, sanft zu gleiten; benötigen einen Innen- und Außenrohr
    Doppelseitiges Klebeband
    Haftnotizen
    Büroklammer

    * Oder nutzen Sie eine Packung billige Bleistifte

    Werkzeuge:
    Papercutter - shiloutte Portrait (optional)
    Klebepistole
    Dremel - bis Schlauch geschnitten (optional)
    Messer (optional)

Schritt 2: Testen Sie die elektronischen Teile

  1. Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Servos
    So dass Sie einen schönen Ball von Servos haben jetzt. Besser testen sie zuerst. (Ein von mir waren defekt)

    Schließen Sie die SSC-32 mit dem Arduino mit dem beigefügten Bild als Anleitung
    http://marc-tetrapod.blogspot.ca/2012/10/arduino-ssc-32-servo.html

    RTC
    Was die RTC können Sie tun, ist Ihre Arbeitszeiten mit einem kleinen Lithium-Batterie. Jedes System, [Ihr Computer und Ihr Telefon] mit einer Uhr wird eine haben. Dies ist die am häufigsten verwendete Weg, um die Zeit zu, wenn die Dinge ein / aus ständig mit Strom versorgt. Wir werden später in diesem instructable hook up diese Schaltung

Schritt 3: Entwerfen Sie die Uhr

  1. Folgende Stücke wurden in Adobe Illustrator gestaltet. Mit der Absicht, auf Papier zu schneiden. Wenn Sie einen 3D-Drucker sind, werden Sie wahrscheinlich haben, um verschiedene Methoden verwenden, aber die Grundidee ist die gleiche. Auch bitte teilen Sie Ihre Designs :)

    Wir haben 6 Schichten:
    [01] Vordere Face - Clock Face
    [01] Frontseiten-Gesicht - Segment Gesicht
    [02] Frontschild - Hält Tubing
    [03] Basis - Hält Servo + Tubing
    [03] Basis - Hält Servo + Tubing
    [04] Zurück Shield - Hält Servo

    Hinweis: Einige Dateien müssen zweimal geschnitten werden. siehe oben für die Bestellung von Details

Schritt 4: Schneiden Sie die Stücke

  1. Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Alle 7 Artikel anzeigen
    Folgende Stücke wurden in Adobe Illustrator gestaltet und mit einem shiloutte Portrait geschnitten. Wenn Sie das Gefühl, dass Sie die Zeit haben möchten Sie vielleicht auch von Hand ausgeschnitten diese Schichten.

    Die Metallstäbe wurden mit einem Dremel zu schneiden. Ich schneide das größere Rohr 1cm und die eine, die in ihm gleitet, um 2cm

Schritt 5: Construction

  1. Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Alle 10 Artikel anzeigen
    In diesem Schritt werden Sie die Schichten zusammen mit einer gepolsterten doppelseitigem Klebeband, um den Körper zu bauen. Verwenden Sie die Bilder, die Sie durch diesen Prozess führen

    Anmerkung: Metallrohr wird in jedes Segment einge

Schritt 6: Fügen Sie die Ziffern

  1. Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Alle 8 Artikel anzeigen
    Front Steps:
    -Place Inneren Schlauch in Außenschlauch
    -Tragen Kleber
    -Legen Vorne raus Stück
    -Repeat

    Zurück Schritte:
    -Schnitt Und Biegung Büroklammer wie in Abbildungen gezeigt
    -Tragen Kleber
    -Einfüge
    -Kurve
    -Repeat

Schritt 7: Fügen Sie die Servos

  1. Digital / Analog Clock - Arduino + Papercraft
    Bringen Servos an die Büroklammern wir im vorherigen Schritt hinzugefügt. der Rahmen wird dafür sorgen, dass die Servos wird nicht rutschen. Sie können Kleber zu verwenden, wenn Sie es wünschen.

Schritt 8: Fertig Bauprojekte

  1. Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    In der letzten Schicht (die Rückseite Schild)

Schritt 9: Anschlussklemmen verdrahten Elektronik

  1. Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Digital / Analog Clock - Arduino + Papercraft

    Servo Controller
      Es gibt 32 Pins auf der SSC-32 Controller, stecken Sie Ihre 28 Servos in sicherstellen, dass Sie, um zu gehen. Schließen Sie den RX Pin an die TX Pint auf der Arduino Schließen Sie den Erdungsstift zu Arduino Erdungsbolzen
    RTC [DS1307]
    Weitere Informationen http://learn.adafruit.com/ds1307-real-time-clock-breakout-board-kit/overview
      Schließen Sie 5V bis 5V Arduino Connect GND zu GND Arduino Connect SDA analoge Stift 4. Schließen SCL Arduino analogen Pin 5 Arduino.

Schritt 10: Programing

  1. Algorithmus

    Hauptschleife
      Abrufen Zeit vom RTC-Modul (in Stunden und Minuten) Wenn die Zeit verschiedene Anzeigezeit Wiederholen
    Anzeigezeit
      Zwischenzeit in vier Ziffern. (Unter Verwendung von Modulo / div 10) Für jeden Sieben-Segment-Anzeige, Bewegen Segmente heraus stellige Anzeige
    Display Digit
      Zeigen Decoderlogik. Übersetzen int in Sieben-Segment-Bestellung. Bewegen benötigt Servos von X Grad. Bewegen Sie nicht benötigte Servos Y Grad (X steht für die Stellung und Y ist die Lage der Ebene.
    Beispiel

    #include <Wire.h>
    #include "RTClib.h"

    RTC_DS1307 RTC;

    Kurz Sega = 0; // Anzeigestift 14
    Kurz SEGB = 1; // Anzeigestift 16
    Kurz SEGC = 2; // Anzeigestift 13
    Kurz SEGD = 3; // Anzeige Pin 3
    Kurz Sege = 4; // Anzeige Pin 5
    Kurz segF = 5; // Anzeigestift 11
    Kurz SEGG = 6; // Anzeigestift 15

    Kurz segA_OUT = 110;
    Kurz segB_OUT = 110;
    Kurz segC_OUT = 110;
    Kurz segD_OUT = 110;
    Kurz segE_OUT = 110;
    Kurz segF_OUT = 110;
    Kurz segG_OUT = 110;

    Kurz segA_IN = 90;
    Kurz segB_IN = 90;
    Kurz segC_IN = 90;
    Kurz segD_IN = 90;
    Kurz segE_IN = 90;
    Kurz segF_IN = 90;
    Kurz segG_IN = 90;

    int TIME = 2000;

    Datetime datePast;
    Datetime dateNow;

    // Housekeeping
    Leere setup () {
    Serial.begin (9600);
    Wire.begin ();
    RTC.begin ();
    RTC.adjust (Datetime (__ DATE__, __TIME__));
    datePast = RTC.now ();
    }

    // Hauptschleife
    Leere Schleife () {
    dateNow = RTC.now ();
    if (! (datePast.hour () == dateNow.hour () && datePast.minute () == dateNow.hour ()))
    {
    Display- (dateNow.hour () * 100 + dateNow.minute ());
    datePast = dateNow;
    }
    }

    // Angesichts einer Reihe, zeigen wir 10.22
    // Nach dem durch die 4 Zahlen läuft, wird die Anzeige ausgeschaltet bleibt
    nichtig Display- (int toDisplay) {
    for (int Ziffer = 4; Ziffer> 0; digit--) {
    lightNumber (toDisplay% 10, Ziffer);
    toDisplay / = 10;
    }

    // Bewegung zu starten
    Serial.print ("T"); Serial.println (Zeit);
    }

    Leere move (int Servo, int Position) {
    Serial.print ("#");
    Serial.print (Servo);
    Serial.print ("P");
    Serial.print (Position);
    }

    // Angesichts einer Reihe, dreht sich auf jene Segmente
    // Wenn Nummer == 10, und schalten Sie dann Anzahl
    nichtig lightNumber (int numberToDisplay, int Segment) {

    int offset = (Segment - 1) * 7;
    Schalter (numberToDisplay) {

    Bei 0:
    bewegen (Sega + Offset, segA_OUT);
    bewegen (SEGB + Offset, segB_OUT);
    bewegen (SEGC + Offset, segC_OUT);
    move (SEGD + Offset, segD_OUT);
    move (Sege + Offset, segE_OUT);
    bewegen (segF + Offset, segF_OUT);
    move (SEGG + Offset, segG_IN);
    brechen;

    Fall 1:
    bewegen (Sega + Offset, segA_IN);
    bewegen (SEGB + Offset, segB_OUT);
    bewegen (SEGC + Offset, segC_OUT);
    move (SEGD + Offset, segD_IN);
    move (Sege + Offset, segE_IN);
    bewegen (segF + Offset, segF_IN);
    move (SEGG + Offset, segG_IN);
    brechen;

    Fall 2:
    bewegen (Sega + Offset, segA_OUT);
    bewegen (SEGB + Offset, segB_OUT);
    bewegen (SEGC + Offset, segC_IN);
    move (SEGD + Offset, segD_OUT);
    move (Sege + Offset, segE_OUT);
    bewegen (segF + Offset, segF_IN);
    move (SEGG + Offset, segG_OUT);
    brechen;

    Fall 3:
    bewegen (Sega + Offset, segA_OUT);
    bewegen (SEGB + Offset, segB_OUT);
    bewegen (SEGC + Offset, segC_OUT);
    move (SEGD + Offset, segD_OUT);
    move (Sege + Offset, segE_IN);
    bewegen (segF + Offset, segF_IN);
    move (SEGG + Offset, segG_OUT);
    brechen;

    Fall 4:
    bewegen (Sega + Offset, segA_IN);
    bewegen (SEGB + Offset, segB_OUT);
    bewegen (SEGC + Offset, segC_OUT);
    move (SEGD + Offset, segD_IN);
    move (Sege + Offset, segE_IN);
    bewegen (segF + Offset, segF_OUT);
    move (SEGG + Offset, segG_OUT);
    brechen;

    Fall 5:
    bewegen (Sega + Offset, segA_OUT);
    bewegen (SEGB + Offset, segB_IN);
    bewegen (SEGC + Offset, segC_OUT);
    move (SEGD + Offset, segD_OUT);
    move (Sege + Offset, segE_IN);
    bewegen (segF + Offset, segF_OUT);
    move (SEGG + Offset, segG_OUT);
    brechen;

    Fall 6:
    bewegen (Sega + Offset, segA_OUT);
    bewegen (SEGB + Offset, segB_IN);
    bewegen (SEGC + Offset, segC_OUT);
    move (SEGD + Offset, segD_OUT);
    move (Sege + Offset, segE_OUT);
    bewegen (segF + Offset, segF_OUT);
    move (SEGG + Offset, segG_OUT);
    brechen;

    Fall 7:
    bewegen (Sega + Offset, segA_OUT);
    bewegen (SEGB + Offset, segB_OUT);
    bewegen (SEGC + Offset, segC_OUT);
    move (SEGD + Offset, segD_IN);
    move (Sege + Offset, segE_IN);
    bewegen (segF + Offset, segF_IN);
    move (SEGG + Offset, segG_IN);
    brechen;

    Fall 8:
    bewegen (Sega + Offset, segA_OUT);
    bewegen (SEGB + Offset, segB_OUT);
    bewegen (SEGC + Offset, segC_OUT);
    move (SEGD + Offset, segD_OUT);
    move (Sege + Offset, segE_OUT);
    bewegen (segF + Offset, segF_OUT);
    move (SEGG + Offset, segG_OUT);
    brechen;

    Fall 9:
    bewegen (Sega + Offset, segA_OUT);
    bewegen (SEGB + Offset, segB_OUT);
    bewegen (SEGC + Offset, segC_OUT);
    move (SEGD + Offset, segD_OUT);
    move (Sege + Offset, segE_IN);
    bewegen (segF + Offset, segF_OUT);
    move (SEGG + Offset, segG_OUT);
    brechen;

    Fall 10:
    bewegen (Sega + Offset, segA_IN);
    bewegen (SEGB + Offset, segB_IN);
    bewegen (SEGC + Offset, segC_IN);
    move (SEGD + Offset, segD_IN);
    move (Sege + Offset, segE_IN);
    bewegen (segF + Offset, segF_IN);
    move (SEGG + Offset, segG_IN);
    brechen;
    }
    }

    Andere
    Sie müssen auch zu Ihnen setzen RTC-Uhr zum ersten Mal. Dadurch erhalten sie eine Startzeit gleich der einer auf Ihrem Computer. Sie müssen das RTC-Bibliothek, um den folgenden Code ausführen.

    # include
    #include "RTClib.h"

    RTC_DS1307 RTC;

    Leere setup () {
    Serial.begin (57600);

    Wire.begin ();

    RTC.begin ();

    if (! RTC.isrunning ()) {
    Serial.println ("RTC läuft nicht!");
    RTC.adjust (Datetime (__ DATE__, __TIME__));
    }
    }

Schritt 11: Fertig

  1. Digital / Analog Clock - Arduino + Papercraft
    Das ist es also. Ich hoffe, dass Sie eine Menge durch den Prozess und gelernt, dass Ihre Uhr stellte sich heraus gut. Ich werde die Aktualisierung dieser instructable als ich kleinere Anpassungen

    Wenn Sie mich mögen Bitte unterstützen Sie dieses instructable durch Abstimmung. Danke für das Lesen!