Inhaltsverzeichnis:

LaserKitty !! - Gunook
LaserKitty !! - Gunook

Video: LaserKitty !! - Gunook

Video: LaserKitty !! - Gunook
Video: Laser Kitty!! ||_Kitkats_|| #funny #cat #comedy 2024, Oktober
Anonim
Image
Image
Holen Sie sich Ihre Sachen
Holen Sie sich Ihre Sachen

Es ist eine allgemein anerkannte Wahrheit, dass eine einzelne Katze, die Glück hat, kein Laserspielzeug haben muss. Wie bei alleinstehenden Herren ohne zukünftige Ehefrauen sind einige Vorsichtsmaßnahmen zu beachten. Aber gilt das nicht für etwas wirklich Wertvolles?

Wenn Sie Bedenken bezüglich Haustieren und Lasersicherheit haben, fahren Sie mit dem Ende dieser Anleitung fort, bevor Sie einen Kommentar abgeben. Wenn Sie Bedenken hinsichtlich einer zukünftigen oder sogar einer aktuellen Frau haben, müssen Sie sich wahrscheinlich woanders umsehen.

Jetzt könnten Sie zu Ihrem örtlichen Zoogeschäft gehen und einen Laserpointer kaufen und vielleicht sogar eine Vorrichtung, die eine rudimentäre Automatisierung hinzufügt. Sie würden etwas Geld sparen und können es zurückgeben, wenn es nicht funktioniert. Oder Sie bauen selbst etwas. Es gibt bereits viele Beispiele da draußen, aber hier ist mein Beitrag zum Kanon. Es verfügt über:

  • Volle Smartphone-Kontrolle
  • Manueller, automatischer und geplanter Modus
  • Benutzerdefinierte Anwendungsschnittstelle
  • Systemstatus zwischen mehreren Webclients synchronisiert
  • Systemstatus auf LaserKitty gespiegelt!! selbst
  • Konfigurierbare Schwenk- und Neigebereichsbeschränkungen
  • Konfigurierbare Länge und Häufigkeit der Spielzeitsitzungen
  • Konfigurierbare Spielfenster
  • Einrichtungsseite mit aktuellen Einstellungen auf einen Blick
  • NTP-Zeitsynchronisierung
  • WiFi-Manager für einfache Einrichtung in neuen Netzwerken
  • Tongenerator zum Abspielen des Mission Impossible-Themas vor jeder Spielsitzung: Ihre Katze mag die Ironie zu schätzen wissen oder nicht.
  • Pushbullet-Benachrichtigungen an alle deine Geräte, wenn eine neue Spielsitzung beginnt
  • Konfigurierbare Ausgangsposition, damit die Spielzeit am Futternapf oder stationärem Spielzeug endet
  • Alle Einstellungen im EEPROM gespeichert, damit sie bei Stromausfall nicht verloren gehen
  • Und vieles mehr! Nun, nicht wirklich, das ist es.

Schritt 1: Holen Sie sich Ihre Sachen

Das habe ich verwendet:

  • Eine Mini-Schwenk- und Neigungsbaugruppe. Dies ist sicherlich nicht das billigste, das Sie finden können, und es muss für unsere Zwecke modifiziert werden. Ich habe es gewählt, weil es ein wenig cooler aussieht als die Schnäppchen-Keller-Kunststoffbaugruppen. Als unerwarteter Bonus ermöglicht sein Design eine sehr einfache Montage des Lasers. Es wird mit ein paar Mikroservos geliefert, aber ich empfehle Ihnen dringend, eine Reihe zusätzlicher Servos zu Ersatzzwecken zu kaufen. Sie benötigen mindestens ein zusätzliches Servo (ein defektes ist in Ordnung).
  • Ein Gehäuse. Es schmerzt mich, 8 Dollar für eine Plastikbox zu bezahlen, und Sie könnten definitiv etwas Passendes für weniger finden. Etwas an der Größe des verknüpften Gehäuses stimmt jedoch.
  • Ein ESP8266-basiertes Entwicklungsboard. Ich habe die NodeMCU verwendet. Es ist nicht übertrieben zu sagen, dass ich diese Dinge liebe. Einfach in der Arduino IDE zu verwenden und viel Flash-Speicher für Ihre Webseiten. Auch billig und meiner Erfahrung nach sehr schwer zu braten.
  • Ein Mini-Laser. Zehn für 6 US-Dollar inklusive Amazon Prime. Willst du mich veräppeln?? Jetzt muss ich nur noch herausfinden, was ich mit den anderen neun machen soll.
  • Ein passiver Summer für die Töne.
  • Ein zweikanaliges Relais. Ich benutze diese zum Ein- und Ausschalten der Servos und des Lasers. Sie können diese Komponente möglicherweise eliminieren, wie ich später erklären werde.
  • 5VDC Stromversorgung. Hoffentlich haben Sie eines davon von einem längst vergessenen Gizmo herumliegen, aber wenn nicht etwas Billiges und Fröhliches, das etwa 1A von 5VDC produzieren kann, ist das, was Sie brauchen.
  • Verschiedene Verbrauchsmaterialien wie Widerstände, LEDs, Anschlussdraht, Schrumpfschlauch, Lötzinn, Heißkleber. Das Übliche. Ich habe auch eine Barrel-Buchse für die eingehende 5VDC-Stromversorgung von meiner peinlich großen Sammlung zerstörter Arduino-Knock-off-Boards verwendet.
  • Zu guter Letzt noch ein Vinyl-Aufkleber für den skurrilen letzten Schliff.

Also ja. Sie sehen insgesamt etwa 50 US-Dollar. Sie könnten es für weniger tun, aber verdient Ihr Kätzchen nicht das Beste?

Schritt 2: Tools und Ressourcen

Tools und Ressourcen
Tools und Ressourcen

Nichts Besonderes auf der Werkzeugseite hier. Nur ein anständiger Lötkolben, Multimeter, Bohrer und grundlegende Handwerkzeuge. Ein Tischnetzteil ist schön zum Experimentieren mit dem Laser, aber nicht unbedingt erforderlich.

Dieses Projekt nutzt die Fähigkeiten des ESP8266 und insbesondere der NodeMCU wirklich aus. Wenn Sie gerade erst mit dem ESP8266 beginnen, habe ich keine bessere One-Stop-Ressource als dieses Ding gefunden. Abgesehen davon dreht sich alles um das Googeln, um Antworten auf Probleme zu finden, die auf dem Weg entstanden sind.

Schritt 3: Bereiten Sie das Gehäuse vor

Bereiten Sie das Gehäuse vor
Bereiten Sie das Gehäuse vor
Bereiten Sie das Gehäuse vor
Bereiten Sie das Gehäuse vor

Wie ich vielleicht schon erwähnt habe, scheint es unverschämt, 8 US-Dollar für ein Kunststoffgehäuse zu bezahlen. Was noch schlimmer ist, ist, das Ding zu vermasseln, indem man ein Loch an der falschen Stelle setzt. Bevor Sie also Ihre Box mit dem Bohrer und / oder anderen Chaosmachern zur Verfügung haben, denken Sie über die Fehler nach, die ich gemacht habe.

  • Zuerst müssen Sie sich überlegen, wo die ganzen Sachen passen. Die gute Nachricht ist, dass das Gehäuse, das ich vorschlage, viel Platz bietet, selbst bei der sehr unordentlichen Verkabelung, die Sie hier sehen. Sie können sogar mit einer kleineren Box davonkommen, insbesondere wenn Sie die Relais eliminieren.
  • Am wichtigsten ist, wo Sie die Schwenk- und Neigebaugruppe im Deckel montieren. Mein erster Versuch ist hier gezeigt. Ich dachte, ich würde es künstlerisch aus der Mitte und ein wenig nach hinten platzieren, um Stabilität zu gewährleisten. Schlechte Idee! Sie benötigen die Montage so nah wie möglich an der Seite des Deckels, damit das Gehäuse selbst den Strahl bei großen Neigungswinkeln nicht stört. Außerdem denke ich, dass die ideale Anordnung darin besteht, den Schwenklaser senkrecht zur kurzen Seite und nicht wie bei mir zur langen Seite zu montieren. Ich habe es aus rein ästhetischen Gründen andersherum gemacht, auch wenn da etwas mehr Eingriffspotential ist.
  • Wie Sie sehen, ist die NodeMCU auf dem Perfboard montiert und hätte leicht so positioniert werden können, dass ihr Micro-USB-Anschluss von einem Steckplatz an der Seite oder Rückseite zugänglich war. Dies würde Software-Updates erleichtern (kein Abnehmen des Deckels erforderlich). Meine ursprüngliche Idee war es, die Over-The-Air (OTA)-Bibliothek für Updates zu verwenden, und Sie werden sehen, dass mein Code diese Funktionalität enthält, obwohl er auskommentiert ist. Das Problem war, dass der Tongenerator und OTA nicht gut zusammen spielten (die NodeMCU wurde während des gesamten Songs wiederholt zurückgesetzt). Dieses Problem ist wahrscheinlich behebbar, aber es war mir nie gelungen, SPIFFS anders als über USB zu aktualisieren, daher wäre es schön gewesen, Zugriff auf den USB-Anschluss zu haben. Als ich all dies herausgefunden hatte, hatte ich die NodeMCU so auf dem Perfboard montiert, dass es nicht möglich war, den Stecker ohne viel Faffing aus der Box zu stecken. Nun ja.
  • Wenn ich das Projekt erneut durchführen würde, würde ich die RGB-LED mit der roten "Power-On"-LED ausrichten. (Der Zweck der RGB-LED besteht darin, anzuzeigen, in welchem Modus sich LaserKitty!! befindet, ohne in die App schauen zu müssen.)

Der einzige etwas knifflige Teil beim Herstellen der Löcher ist der rechteckige für das Pan-Servo. Ich benutzte einen Bohrer und eine Feile. Wie Sie bei meinem ersten Versuch sehen können, ist es schwierig, es genau quadratisch (oder rechteckig, denke ich) zu machen. Aber wenn das Servo montiert ist, sieht man das nicht wirklich.

Sie müssen drei weitere Löcher bohren. Diese sollten auf der Rückseite der Box platziert werden und werden für die Stromversorgungsbuchse, den Summer und den Anschlusspunkt für das Neigungsservo und die Laserverkabelung verwendet. Alle diese Löcher können rund sein und mit nur einem Bohrer keine Schwierigkeiten bereiten.

Die großzügige Verwendung von Heißkleber sichert alles an Ort und Stelle (mit Ausnahme des Schwenkservos, das mit den Befestigungslaschen des Servos am Deckel verschraubt wird).

Schritt 4: Die Pan- und Tilt-Baugruppe

Die Schwenk- und Neigebaugruppe
Die Schwenk- und Neigebaugruppe
Die Schwenk- und Neigebaugruppe
Die Schwenk- und Neigebaugruppe
Die Schwenk- und Neigebaugruppe
Die Schwenk- und Neigebaugruppe
Die Schwenk- und Neigebaugruppe
Die Schwenk- und Neigebaugruppe

Als ich die Schwenk- und Neigebaugruppe erhielt, dachte ich, ich hätte einen weiteren großen Fehler gemacht. Zusammengebaut wie beschrieben handelt es sich nicht wirklich um einen Schwenk- und Neigemechanismus, sondern eher um eine Neige- und Drehkonstruktion - passend für den vorgesehenen Einsatz als Roboterarm. Ein Moment des ruhigen Nachdenkens ließ mich jedoch erkennen, dass es tatsächlich anders zusammengebaut werden könnte, um das gewünschte Ergebnis zu erzielen. Noch besser, die ursprüngliche Position des "Twist" -Servos könnte als Halterung für den Laser verwendet werden.

Wenn Sie die fertige Baugruppe in diesen Bildern betrachten, bekommen Sie die Idee. Sie werden mit einem kleinen Metallblock gelassen, der in diesem Design nicht benötigt wird.

Der Geistesblitz, den ich hatte, war, den ursprünglichen Standort des zweiten Servos zu verwenden, um den Laser zu montieren. Noch besser, wenn Sie ein Duff-Servo enthaupten und die verzahnte Armhalterung ausbohren, ist dies der perfekte Montageort für den Laser! Unterschätzen Sie nicht den Aufwand, der erforderlich ist, um das Servo auseinander zu sägen. Diese kleinen Mistkerle haben etwas Fleisch!

Stellen Sie nach dem Zusammenbau und der Installation im Gehäuse UND VOR DEM EINSCHALTEN DER STROMVERSORGUNG sicher, dass es um ungefähr 180 Grad über die Vorderseite des Gehäuses geschwenkt wird. Irgendwie habe ich, nachdem ich es einmal erfolgreich installiert hatte, die Schwenkhalterung wieder zusammengebaut, so dass die Schraubenköpfe an der Basis an dem erhöhten Bit des Servos befestigt sind, an dem der Arm montiert werden soll. Ergebnis war, dass das Servo sofort seine Zahnräder auszog. Auf der positiven Seite habe ich jetzt ein weiteres Duff-Servo, das ich als Laserhalterung verwenden kann.

Schritt 5: Verdrahten Sie es

Verdrahten Sie es
Verdrahten Sie es

Hoffentlich macht die Fritzing-Skizze die Dinge klar. Einige Punkte zur weiteren Klärung:

  • Wie später besprochen, wollte ich den Laser so dunkel wie möglich machen und gleichzeitig genügend Helligkeit beibehalten, um ihn bei allen außer dem hellsten Innenlicht verwendbar zu machen. Mit ein wenig Experimentieren entschied ich mich, es von einem 3,3-VDC-Pin an der Node-MCU mit Strom zu versorgen, und fügte zur Sicherheit einen 22-Ohm-Widerstand in Reihe hinzu. Mit diesem Setup zieht es etwa 10 mA, so dass es theoretisch direkt von einem GPIO-Pin mit Strom versorgt werden könnte, aber ich fand das auch ohne Widerstand zu dunkel.
  • Der Laser hat eine sehr begrenzte Fähigkeit, den Fokus (Kollimation?) zu ändern, was ich verwendet habe, um den Punkt zu vergrößern und dadurch die Laserenergie zu verteilen
  • Mein erster Gedanke war, die Servos mit einem Transistor ein- und auszuschalten, aber das führte dazu, dass die Servos verrückt wurden. Ich bin mir sicher, dass es dafür einen guten Grund gibt, aber da ich bereits einige Relais zur Hand hatte, habe ich den einfachen Weg gewählt und die Servos vollständig isoliert. Und da die Relais zwei Kanäle hatten, dachte ich, ich könnte den Laser auch so schalten (die lila Drähte sind das Steuersignal von der MCU). Ich mag auch das mechanische Klickgeräusch, das diese Lösung erzeugt. Sie können sich aber auch anders entscheiden. Nicht gezeigt, aber die Relais werden direkt von der 5 VDC-Versorgung gespeist – die NodeMCU hätte möglicherweise nur ein zweikanaliges Relais direkt mit Strom versorgen können, aber es gab keinen Grund, dies zu riskieren. Wenn Sie diese Relais bereits verwendet haben, müssen Sie die Brücke zwischen JD-VCC und VCC entfernen.
  • Die RGB-LED hat 220 Ohm Strombegrenzungswiderstände auf Rot und Grün und 100 Ohm auf Blau. Die rote "Power on" LED hat einen 450 Ohm Widerstand, da sie mit 5 VDC anstatt mit 3,3 VDC versorgt wird. Dies sind nur Standardwerte, um viel Helligkeit und eine angemessene Lebensdauer zu erzielen.
  • Der Summer ist ziemlich laut. Möglicherweise möchten Sie der Signalleitung einen Widerstand hinzufügen, um die Lautstärke zu dämpfen. Die Töne lassen sich über die Software komplett abschalten, aber etwas dazwischen könnte schön sein.

Schritt 6: Der Code

Der Code
Der Code
Der Code
Der Code
Der Code
Der Code
Der Code
Der Code

Trotz der recht langatmigen Erläuterung der Hardwareseite flossen hier 90% des Aufwands in den Code. Es wäre mehr gewesen, aber ich habe mir von hier einen tollen Code für die Bewegung des Lasers im Auto-Modus "ausgeliehen". Es macht keinen Sinn, das Rad neu zu erfinden. Tatsächlich können Sie sich auch entscheiden, diesem Projekt statt diesem zu folgen oder Aspekte von beiden zu kombinieren. Sicherlich gefällt mir die Idee, einige der Komponenten mit einem 3D-Drucker herzustellen, aber ich habe keinen.

Mein Code (hier auf GitHub zu finden) besteht aus drei Hauptteilen. Es gibt die Arduino-Skizze selbst, HTML-Dateien mit einer Menge Javascript für den Anwendungsinhalt und zugehörige CSS-Dateien für das Styling. Ich habe dieses Projekt genutzt, um ein wenig mehr über all diese Programmierelemente zu lernen, ausgehend von einer sehr niedrigen Basis, insbesondere auf der Seite der Anwendungsschnittstellen. Ich habe versucht, den Code ein wenig aufzuräumen, aber mein Hauptaugenmerk lag darauf, das Ding einfach zum Laufen zu bringen. Der Code verwendet Websockets für die bidirektionale Kommunikation zwischen dem NodeMCU-Server und verbundenen Clients.

Der Arduino-Code ist ausführlich kommentiert, so dass Sie ihn hoffentlich leicht nachvollziehen können. Nachdem Sie es von GitHub heruntergeladen haben, stecken Sie das Ganze in einen Ordner, laden Sie den Sketch auf Ihre MCU hoch und laden Sie dann den Inhalt des Unterordners "data" in SPIFFS hoch.

Kratze das eigentlich. Wenn Sie die Pushbullet-Benachrichtigungsfunktion verwenden möchten, benötigen Sie zunächst ein API-Zugriffstoken, das hier verfügbar ist. Es geht in Zeile 88 des Arduino-Codes. Pushbullet funktioniert gut, aber wenn Sie zum ersten Mal ein Konto auf Ihrem Telefon einrichten, müssen Sie sich möglicherweise anmelden, abmelden und erneut anmelden, bevor Benachrichtigungen wie in den Einstellungen Ihres Telefons konfiguriert angezeigt werden.

Es gibt drei Webseiten – einen Begrüßungsbildschirm, die eigentliche Anwendungsoberfläche und eine Einrichtungsseite. Durch diese Trennung der Inhalte wird die Bedienung der Oberfläche deutlich app-ähnlicher, vor allem wegen der umfangreichen Konfigurationsmöglichkeiten (der Screenshot zeigt nur einen Teil dieser Möglichkeiten).

Eine Eigenart, die NodeMCU dazu zu bringen, mehrere Seiten zu bedienen, bestand darin, dass ich alle Bilddateien direkt in den Datenordner legen musste - ich konnte es nur nicht zum Laufen bringen, wenn sie in Unterordnern abgelegt wurden. Ich habe alle Bilder, die ich verwendet habe, in das GitHub-Repository aufgenommen, damit es sofort funktioniert, aber Sie werden sie zweifellos durch Ihre eigenen Bilder ersetzen möchten.

Schritt 7: Feinschliff & Lasersicherheit

Feinschliff & Lasersicherheit
Feinschliff & Lasersicherheit
Feinschliff & Lasersicherheit
Feinschliff & Lasersicherheit
Feinschliff & Lasersicherheit
Feinschliff & Lasersicherheit

Trotz der atemberaubenden Kosten von 8 US-Dollar ist das Gehäuse eher zweckmäßig. Nach ein wenig Stöbern auf Etsy habe ich die Vinyl-Grafik gefunden, die Sie auf dem fertigen Produkt sehen (und die auf der Anwendungsseite gespiegelt wird). Der Versand aus Großbritannien war etwas teuer, aber es lohnt sich auf jeden Fall - und Sie erhalten zwei, falls Sie das Projekt replizieren möchten. Als letzten künstlerischen Schnörkel habe ich die kleinen "Grübchen" in den Augen der Katze so gedreht, dass sie auf die leuchtend rote Power-LED blicken, die für den Laserpunkt steht. Abhängig von Ihrem Appetit auf Laune können Sie diese Extrameile gehen oder auch nicht.

Die HTML-Datei des Begrüßungsbildschirms enthält Code zum Hinzufügen eines Symbols zu Ihrem iPhone-Startbildschirm.

Zu guter Letzt sollte ich Bedenken bezüglich der Verwendung eines Lasers zum Spielen mit Katzen nicht ignorieren. Es gibt zwei Haupteinwände:

  • Der Laser könnte die Augen der Katze blenden oder beschädigen
  • Das Spielen mit einem Laserpunkt ist für Katzen letztendlich unbefriedigend, da sie ihn niemals fangen oder "töten" können

Auf den Interwaves gibt es viel Gerede über beide Themen, manche scheinbar informiert, andere weniger. Letztendlich müssen Sie selbst entscheiden, ob dieses Projekt oder ein anderes Laserspielzeug für Ihre Katze geeignet ist. Ich habe versucht, das erste Problem zu lösen, indem ich den Laser so dunkel wie möglich machte, ohne es bei vernünftigen Lichtverhältnissen zu schwer zu sehen. Stellen Sie außerdem sicher, dass Katzen, die das Gerät verwenden, nicht dazu neigen, auf den Laser selbst statt auf den Punkt zu starren – insbesondere wenn Sie beabsichtigen, das LaserKitty zu verwenden! im Auto- oder Geplanten Modus. Ein Zweck der Pushbullet-Benachrichtigungsfunktion besteht darin, sie in Verbindung mit einer Überwachungskamera zu verwenden, damit Sie daran erinnert werden, Ihr Kätzchen während Ihrer Abwesenheit beim Spielen zu beobachten.

Was den zweiten Einwand angeht, habe ich die Möglichkeit aufgenommen, eine "Ausgangsposition" zu speichern, in die der Laser nach geplanten Spielsitzungen zurückkehrt. Wenn Sie dies so einstellen, dass es auf ein stationäres Spielzeug oder den Futternapf Ihres Kätzchens zeigt, bietet es hoffentlich eine gewisse Auflösung. Aber bei Katzen, wer weiß das wirklich?