Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Wizard Walking Staff

Komponenten und Verbrauchsmaterialien

Arduino 101
× 1
$4 Pololu Spannungsregler
× 1
3x AA Batteriehalter mit Schalter
× 1
AA-Batterien
Jeder Typ ist in Ordnung. Du brauchst 3.
× 1
M Barrel Jack Adapter
$1,95 Diese erleichtern das Anschließen und Trennen der Stromversorgung
× 1
F Barrel Jack Adapter
$1,95 Diese erleichtern das Anschließen und Trennen der Stromversorgung
× 1
Adressierbarer LED-Streifen
Das Beispiel ist für alle NeoPixel-kompatiblen LEDs mit 60-Pixel-Streifen geschrieben.
× 1
Sportband
Jede Art von Gewebeband. Dies wird verwendet, um die Elektronik am Stab zu halten und einen guten Griff zu machen.
× 1
Gummibänder
Um zu helfen, die Teile auf dem Stab zu halten, bis Sie Klebeband verwenden können.
× 1
Ein Mitarbeiter. (Besenstiel, Sprinklerrohr, natürlicher Spazierstock usw.)
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Dieses Projekt verwendet den Arduino 101, eine Batterie und einen LED-Streifen, um einen gestengesteuerten Zauberstab zu machen. Wir werden drei verschiedene Licht-Anzeige-"Zauber" definieren, die du beschwören kannst, indem du den Stab mit einer von drei Gesten bewegst.

Technik:

Der Code verwendet die Inertial Measurement Unit im Arduino 101, um G-Kräfte zu lesen, verwendet jedoch nicht die Pattern Matching Engine (ein Beispiel mit PME finden Sie im PME-Projekt von Kitty Yeung). Stattdessen zählt dieser Code schnelle Impulse in X-, Y- und Z-Richtung und beschwört Zaubersprüche, wenn Sie eine bestimmte Kombination in kurzer Zeit ausführen.

Zaubersprüche wirken:

Zwei schnelle vertikale Antippen starten einen Zauber, dann können Sie den Stab entweder scharf nach vorne, links/rechts bewegen oder ein drittes Mal tippen, um einen der drei Zaubersprüche auszuwählen, dann wird der Zauber durch ein letztes Antippen gewirkt.

Visuelles Feedback:

Damit Sie verstehen, wo Sie sich in Ihrer Geste befinden, enthält der Beispielcode visuelles Feedback vom LED-Streifen. Wenn Sie zum ersten Mal einen Doppeltipp ausführen, blinken die Lichter schnell weiß und sagen Ihnen, dass ein Zauberspruch gestartet wurde. Sie erhalten visuelles Feedback für jeden Schritt, damit Sie wissen, welcher Zauberspruch ausgewählt wird.

Zaubersprüche wirken (im Detail):

Halten Sie den Stab so, dass das Arduino 101 zu Ihnen zeigt. Tippen Sie zuerst zweimal (sanft!) auf den Stab auf dem Boden oder machen Sie zwei schnelle vertikale Impulse in der Luft. Wenn Sie den weißen Blitz sehen, bewegen Sie die Notenzeile scharf nach vorne oder hinten, um Zauber 1 auszuwählen, oder neigen Sie die Notenzeile nach links oder rechts, um Zauber 2 auszuwählen, oder bewegen Sie sie ein drittes Mal vertikal, um Zauber 3 auszuwählen. Wenn ein Zauber ausgewählt wird, leuchten die Lichter wird grün (Zauber 1) blau (Zauber 2) oder rot (Zauber 3) leuchten. Sobald die Lichter durchgehend leuchten, beschwöre den Zauber mit einem letzten vertikalen Tippen. Die Lichter schimmern und blinken in der ausgewählten Farbe.

Gesten sind zeitkritisch! Du hast nur 1 Sekunde zwischen jedem Schritt einer Geste oder der Zauber wird zurückgesetzt. Das heißt, wenn Sie es vermasseln oder den falschen Zauberspruch auswählen, können Sie einfach eine Sekunde warten und von vorne beginnen. Das genaue Beschwören von Zaubersprüchen ist etwas schwierig zu meistern, aber die gute Nachricht ist, dass Zaubersprüche nicht versehentlich aufgerufen werden, wenn Sie nur mit dem Stab herumlaufen.

Aufbau der Elektronik:

Dies ist im Grunde nur ein Arduino 101, eine Batterie und ein Streifen NeoPixel-LEDs.

Es gibt mehrere Möglichkeiten, die Leistung zu konfigurieren. Am schnellsten wäre es, eine 9-V-Batterie zu verwenden und die LEDs direkt vom Arduino 101 zu betreiben - aber die Batterielebensdauer wäre sehr kurz. Sie können auch einen LiPo-Akku verwenden, um die Leistung/das Gewicht für einen "professionelleren" Aufbau zu maximieren - aber Sie benötigen eine sichere Möglichkeit, den Akku aufzuladen. Für mich besteht eine gute Balance zwischen Batterielebensdauer und Einfachheit darin, 3 AA-Batterien und einen Spannungsregler für 4 US-Dollar zu verwenden. Dies ist das gleiche elektronische Setup wie beim Shadow Theatre und dem Kaleidoscope Infinity Mirror.

Schritt 1

Sammeln Sie das Endkabel von Ihrem LED-Streifen, indem Sie etwa 1 cm vom Ende der Lichter abschneiden. Die Drahtenden abisolieren.

Schritt 2

Brechen Sie die gebogenen Header-Pins, die mit Ihrem Spannungsregler geliefert wurden, auseinander und löten Sie zwei davon an die Enden der grünen und gelben Drähte. Auf diese Weise können Sie sie einfach in die Pins des Arduino 101 stecken.

Schritt 3

Als nächstes löten Sie das rote Kabel an die VIN-Klemme des Spannungsreglers und löten zwei gerade Header in die GND- und VOUT-Pins wie gezeigt.

Schritt 4

Schließen Sie nun die Fassbuchsenadapter an. Entfernen Sie zuerst die Enden der Drähte, die von Ihrem Batteriegehäuse kommen, montieren Sie sie dann in den Klemmen der Steckerbuchse und ziehen Sie sie mit einem Schraubendreher fest. ROT geht an (+)-Klemme, SCHWARZ geht an (-)-Klemme.

Als nächstes verbinden Sie den Buchsenbuchsenadapter mit den losen Drähten, die vom Anfang des LED-Streifens kommen. GELB geht an (-) und ROT geht an (+).

Schritt 5

Verbinden Sie nun Ihren Kabelbaum mit dem Arduino 101. Das GRÜNE Kabel geht zu PIN 6, das GELBE Kabel geht zum GND-Pin in der Nähe von #13. Mit den beiden Header-Pins des Spannungsreglers geht GND zu GND und VOUT geht zum "VIN" -Pin des Arduino 101. Versteh das nicht falsch! Rückwärts einstecken führt zu Geruchsbelästigung und Verbrennungen. Ich weiß das.

Hochladen des Beispielcodes:

Schritt 1

Verwenden Sie bei ausgeschaltetem Akku ein USB-Kabel, um Ihr Arduino 101 an einen Computer anzuschließen, und laden Sie den beigefügten Beispielcode mit der Arduino IDE hoch.

Wenn Sie noch nie einen Arduino 101 programmiert haben, finden Sie hier tolle Anleitungen auf der Arduino-Website:https://www.arduino.cc/en/Guide/Arduino101

Sobald der Beispielcode erfolgreich geladen wurde, können Sie den USB trennen und den Code testen, indem Sie den Akku einschalten und einige der Zaubergesten mit dem USB-Anschluss des Arduino 101 nach unten und den Stiften zu Ihnen zeigen. Versuchen Sie, das Brett viermal vertikal zu bewegen, um den Roten Zauberspruch zu rufen.

Codediskussion:

(Wenn Sie nur den Beispielcode unverändert verwenden möchten, können Sie zu Mitarbeiteraufbau springen.)

Der Beispielcode verwendet die Schockerkennungsfähigkeit des Arduino 101, um Schocks zu zählen, während ein Timer läuft, der die Schockzählung nach kurzer Zeit ohne neue Schocks auf Null zurücksetzt. Wenn Sie die richtige Kombination treffen, bevor der Timer abläuft, wird eine "Zauber"-Funktion aufgerufen.

Da ein festes Klopfen auf den Boden tatsächlich den anfänglichen Stoß und mehrere "Lärm" -Stöße durch die Vibrationen im Stab registriert, versucht der erste Code in der Schleife nur, einen dominanten Impuls von jeder Stoßmenge zu finden und ihn einfach als zu kategorisieren vertikal, links/rechts oder vorne/hinten. Ich verwende eine Variable namens "Geste", um jeden dominanten Impuls zu halten:1 =vertikaler Impuls, 2 =vorderer/hinterer Impuls, 3 =linker/rechter Impuls.

Um Kombinationen zu verfolgen, verwendet der Code dann eine "switch"-Anweisung und bewegt sich durch diese, während sich Gesten ansammeln. Es ist so etwas wie ein Buch "Wähle dein eigenes Abenteuer", in dem jeder Schritt etwa sagt:"Wenn der nächste Impuls links/rechts ist, gehe zu Schritt 2, wenn der Timer abgelaufen ist, gehe zurück auf Null."

Zauber:

Hier können Sie ganz einfach ändern, was die einzelnen Zauber bewirken. Diese führen derzeit nur "Theater-Chase"-Beispielcode in verschiedenen Farben aus. Sie können hier problemlos weitere hinzufügen, die Farben ändern oder Ihre eigene Lichtfunktion schreiben. Die ersten drei Variablen in der theaterChase-Funktion sind Werte für Rot, Grün und Blau. Die letzte Zahl ist die Geschwindigkeit (höhere Zahl =langsamer).

/////////////////////////////////////////// /////zauber //////////////////////void tapspell () {///rote Theaterlichter theaterChase (strip.Color (127, 20, 0 .) ), 20); theaterChase (strip.Color (127, 20, 50), 55); Strip-Show(); aufrechtzuerhalten. Void leftspell () { theaterChase (strip.Color (0, 0, 100), 20); theaterChase (strip.Color (0, 30, 120), 75); Strip-Show(); aufrechtzuerhalten. Void forwardspell () { theaterChase (strip.Color (0, 127, 0), 30); theaterChase (strip.Color (0, 127, 90), 55); Strip-Show(); }  

Aufbau des Personals:

Hier ist viel Raum für Kreativität! Ich werde mich auf den grundlegenden technischen Build konzentrieren, aber viel Spaß beim Erstellen eines einzigartigen Stabs. Lichtdiffusoren wie Tüll, Seidenpapier oder eine Plastikflasche über den LEDs können sehr coole Lichteffekte erzeugen!

Schritt 1:Finden Sie einen Wanderstock/einen Stab

Sie können einen Besenstiel, ein Sprinklerrohr verwenden oder einen natürlichen Stock finden. Michaels Kunsthandwerksläden verkaufen auch schöne. (Im Stickbereich - wirklich.) Ich möchte einen Bereich mit Sportband umwickeln, um einen sauberen Arbeitsbereich für die Elektronik zu haben, aber das ist optional.

Legen Sie ein paar Gummibänder auf den Stab, um das Anbringen der Dinge zu erleichtern.

Schritt 2:Platzieren Sie das Arduino 101 mit dem USB-Port unten auf dem Stab

Verwenden Sie ein Gummiband, um das Arduino 101 an Ort und Stelle zu halten.

Schritt 3:Verwenden Sie ein Gummiband, um an beiden Enden zu helfen, wickeln Sie die LEDs ein

Schritt 4:Wickeln Sie Sportband ein, um das Arduino 101 und den Akku zu sichern

Achten Sie darauf, dass der Ein-/Ausschalter am Akkupack zugänglich ist. Sie möchten, dass der Akku für Stöße / Schläge sicher ist, aber denken Sie daran, dass Sie diese Batterien irgendwann austauschen müssen.

Schritt 5:Streuen Sie die LED-Lichter und dekorieren Sie

Code

  • Beispielcode für Assistent-Gehpersonal
Wizard Walking Staff BeispielcodeArduino
Zählen Sie Impulse auf der x-, y- und z-Achse, bestimmte Impulskombinationen rufen "Zauber" (Lichtanzeigen) auf einem Neopixel-Streifen hervor.
/* Copyright (c) 2016 Intel Corporation. Alle Rechte vorbehalten. Siehe Lizenzhinweis am Ende der Datei.*//* Arduino 101 "Wizard's Walking Staff". Dieser Code verwendet die Adafruit Neopixel-Bibliothek. Anweisungen zur Installation der Bibliothek finden Sie hier:https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-installation Stellen Sie sicher, dass Sie den neuesten Intel Curie Core installiert haben. Weitere Informationen finden Sie unter https://www.arduino.cc/en/Guide/Arduino101*/#include "CurieIMU.h"#include #define PIN 6 //// mit welchem ​​Pin sind die NeoPixels verbunden zu?Adafruit_NeoPixel-Streifen =Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800); /// der Streifen ist 60 Pixel lang.int tr =0; //Einige Variablen zum Halten des Farbziels und des Farbstroms zum Glätten...int tg =0;int tb =0;int r =0;int g =0;int b =0;long int globaltimer =0; /// Timer, um Gesten im Vergleich zur Zeit zu verfolgen ... für Dinge wie "Wenn der Timer 0,5 Sekunden nicht überschritten hat UND es zwei Taps gibt, dann ..." long int gestentimer =0;long int ledtimer =0;int verblassen =10; /// wie schnell Lichter verblassen. Wird zum Glätten verwendetint tap =0; // Zähler für vertikale Impulsesint lr =0; // Couter für linke/rechte Impulsesint fb =0; // Couter für Vorwärts- / Rückwärtsimpulse-Geste =0; // int-Zustand =0; /// für unseren Switch-Fall... dies wird jede Bewegung in einem series.void setup() verfolgen { // Geben Sie Ihren Setup-Code hier ein, um ihn einmal auszuführen://Serial.begin(9600); globaltimer =millis(); // Zeitnehmer zur aktuellen Zeit starten Gestetimer =millis (); LED-Timer =Millis(); /* IMU initialisieren */ CurieIMU.begin(); CurieIMU.attachInterrupt(eventCallback); /* Schockerkennung aktivieren */ CurieIMU.setDetectionThreshold(CURIE_IMU_SHOCK, 1500); // 1,5g =1500 mg CurieIMU.setDetectionDuration(CURIE_IMU_SHOCK, 50); // Millisekunden Spitze, die zum Aufrufen der Unterbrechung CurieIMU.interrupts(CURIE_IMU_SHOCK) erforderlich sind; strip.begin(); // Neopixelstreifen initialisieren strip.show(); // Initialisiere alle Pixel auf 'off'}void loop() { // füge deinen Hauptcode hier ein, um ihn wiederholt auszuführen:////Basisfilter – die IMU registriert mehrere Schocks von Rebound und Counteraction. Dadurch wird versucht, den dominanten Schock in jeder Geste einzufangen. if (millis() - globaltimer> 170) { /// Dies versucht, die dominante Bewegungsachse für jeden Stoß zu finden.. Vergleicht die Summe der Bewegungen von Tippen, Links-Rechts und Vorne-Hinten und wählt die größte aus. if ((tippen> lr) &&(tippen> fb)) {Serial.println ("tippen"); Geste =1; tippen =0; lr =0; fb =0; //// Werte zurücksetzen, nachdem eine Bewegung klassifiziert wurde. aufrechtzuerhalten. Sonst if ((lr> fb) &&(lr> tap)) {Serial.println ("lr"); Geste =2; tippen =0; lr =0; fb =0; aufrechtzuerhalten. Sonst if ((fb> lr) || (fb> tap)) {Serial.println ("fb"); Geste =3; tippen =0; lr =0; fb =0; } }///////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////// if (millis() - globaltimer> 1000) {////timeoutreset globaltimer =millis() - 170;tr =0; tg=0; tb =0; Zustand =0; //Geste=0; aufrechtzuerhalten. Wenn (Millis () - Gestentimer> 1000) { Gestentimer =Millis () - 350; Tr =0; tg =0; tb =0; Zustand =0; //Geste=0; }////////////////////////////////////////////// //////////////////////////////////////////////// ////////////////////////// switch (state) { // Dies verfolgt Gesten Fall 0:{ /// noch keine Gesten aufgezeichnet... höre auf tippen. Wenn es einen gibt, gehe zu Fall 1. if (millis() -gestetimer> 350) { if (gesture ==1) { state =1; Geste =0; Gestentimer =millis(); } } brechen; } Fall 1:{ ///// ein Tippen aufgezeichnet. Wenn ein zweites Tippen passiert, spielen Sie einen schnellen Flash ab und fahren Sie dann mit Schritt 2 fort. if (millis() - Gestentimer> 350) { if (geste ==1) { r=10;g=10;b=10; ///Rückmeldung Flash-Zustand =2; Geste =0; Gestentimer =millis(); } } brechen; } Fall 2:{ ///////Schaltpunkt - zwei Taps aufgezeichnet. Die drei Zaubersprüche divergieren hier basierend auf der nächsten Geste. Wenn es ein Tippen ist, gehen Sie zu Fall 3. Wenn es L/R ist, gehen Sie zu Fall 4. Wenn es vorne/hinten ist, gehen Sie zu Fall 5. if (millis() - Gestentimer> 350) { if (gesture ==1) { Zustand =3; Geste =0; Gestentimer =millis(); aufrechtzuerhalten. Wenn (Geste ==2) { Zustand =4; Geste =0; Gestentimer =millis(); } if (Geste ==3) { state =5; Geste =0; Gestentimer =millis(); } } brechen; } Fall 3:{ //// drei Taps aufgezeichnet... wir sind im Tap-Zauber, drehe den Stab rot und höre auf das letzte "Tippen", um den Zauber auszulösen. tr =20; tg =0; tb =0; globaltimer =millis()-250; if (millis() - Gestentimer> 350) { if (geste ==1) { state =0; Serial.println("tapppell!"); tapspell(); } } brechen; } Fall 4:{ ///// Zwei Taps und ein L oder R aufgenommen... wir sind im linken Zauber, drehe das Notensystem blau und höre auf das letzte "Tippen", um den Zauber auszulösen. tr =0; tg =0; tb =20; globaltimer =millis()-250; if (millis() - Gestentimer> 350) {; wenn (Geste ==1) { Zustand =0; Serial.println ("leftspell!"); leftspell(); } } brechen; } case 5:{ ///// //// Zwei Taps und ein Vor- oder Zurück aufgezeichnet... wir sind im Vorwärtsspell, drehe die Notenzeile grün und höre auf das letzte "Tap", um den Zauber auszulösen. tr =0; tg =20; tb =0; globaltimer =millis()-250; if (millis() - Gestentimer> 350) { if (geste ==1) { state =0; Serial.println ("forwardspell!"); forwardspell(); } } brechen; }Defaut:{ Pause; } } //Seriell.println(tr); if (millis ()-ledtimer> fade) { /// diesen nächsten Schritt nur periodisch alle (Fade-Wert) Millisekunden ausführen. Im Gegensatz zur Funktion "delay()" ermöglicht dies, dass zwischen Aktualisierungen andere Dinge im Programm passieren. /// Farbglättung. Tatsächliche Farbe bewegt sich in Richtung der Zielfarbe... Wenn das Ziel höher als die aktuelle ist, nach oben verschieben, wenn weniger, nach unten verschieben. wenn (tr> r + 1) { r++; } if (tg> g + 1) { g++; } wenn (tb> b + 1) { b++; } wenn (tr  

Herstellungsprozess

  1. Erfassen von elektrischen Wechselfeldern
  2. Leistungsberechnungen
  3. Sieben Möglichkeiten, Ihre Nachbearbeitungsphase sicherer zu machen
  4. Lebensmittelfarbe:Die wesentlichen Zutaten, um Lebensmittel ansprechend zu machen
  5. Wie kann jedes IoT-Geschäftsmodell funktionieren – oder nicht?!
  6. Erstellen Sie Ihr eigenes Google Voice HAT
  7. So erstellen Sie eine Arduino+Raspberry Pi-Roboterplattform
  8. Wie man Glasfaser herstellt
  9. Jeder Tag kann ein Produktionstag sein!
  10. So erstellen Sie eine Cutaway-Animation in Solidworks