So erstellen Sie einen Hardware-Navigator für einen Randonauten

Randonavting ( Randonauting ) - Dies ist, wenn Sie einen Zufallszahlengenerator verwenden, um Orte in der Nähe zu finden und zu erkunden. Es sieht so aus: Zuerst werden Breite und Länge zufällig ausgewählt, und dann besuchen sie den entsprechenden Ort auf der Erde.



Diese Aktivität hat einen metaphysischen Hintergrund: Es wird angenommen, dass die Absichten des Randonauten den Prozess der zufälligen Auswahl eines Punktes auf der Karte beeinflussen. Dies wird am besten im Artikel der NY Times angegeben: "Denken Sie: Das Gesetz der Anziehung trifft auf Geocaching."





Dujour Randonauts Navigator



Warum sollte das möglich sein? Tatsache ist, dass es Menschen gibt, die glauben, dass man mit Zufallszahlen, die aus Quantenprozessen abgeleitet wurden, beispielsweise mit einem Hardware-Zufallszahlengenerator (HRNG), die Kraft des Denkens nutzen kann, um zu beeinflussen, welche Koordinaten ausgewählt werden. Infolgedessen können überraschende, informative oder sogar unangenehme Konsequenzen auftreten. Ein dunkles TikTok- Video von jugendlichen Zufallsautoren, die einen Koffer voller Körperteile finden, ist ein gutes Beispiel für diese Idee .



Die Vorstellung, dass der Geist die Materie kontrolliert, ist möglicherweise nicht so unglaublich, wie es auf den ersten Blick scheint. Dort sind einige Studien , deren überraschende Ergebnisse auf die Möglichkeit hinweisen, dass Gedanken Zufallszahlen beeinflussen, die durch die Verwendung von Quantenprozessen erzeugt werden.



Was passiert, wenn Sie sich genau dann auf eine bestimmte Absicht konzentrieren, wenn zufällige geografische Koordinaten generiert werden? Dies ist die Essenz des Randonauting.



Es gibt verschiedene Unterschiede zwischen meinem Gerät für Randonauten und anderen Projekten mit ähnlichem Schwerpunkt.



Erstens habe ich die Funktionen meines Geräts auf Kosten der Zeiterfassung erweitert. Es gibt nicht nur zufällige geografische Koordinaten aus, sondern gibt auch eine zufällige Zeit an, um zum vorgeschlagenen Ort zu reisen. Diese Verbesserung basiert auf der Idee, dass es sinnvoller sein könnte, einen Punkt sowohl zeitlich als auch räumlich zufällig auszuwählen. Infolgedessen kann der Randonaut zu einem bestimmten Zeitpunkt zu einem bestimmten Ort reisen, was dazu beitragen sollte, das Beste aus der Randonaut-Idee herauszuholen.



Zweitens unterscheidet sich mein Projekt von anderen darin, wie Koordinaten darin ausgewählt werden. Ich benutze nur zwei Zufallszahlen, um geografische Koordinaten zu finden. Andere Implementierungen haben die Konzepte von "Hohlräumen" und "Attraktoren", die statistische Algorithmen verwenden, um die geeigneten Punkte auf der Karte zu bestimmen. Attraktoren sind im Wesentlichen Sammlungen von Werten, die geografische Koordinaten darstellen. Und Hohlräume sind im Gegenteil das Fehlen solcher Cluster. Ich glaube, dass dies die Dinge nur unnötig kompliziert.





Voids and Attractors ( Quelle )



Dies ist eines meiner schwierigsten Projekte . Sie benötigen einige Hardware- und Python-Programmierkenntnisse, um es zu reproduzieren. Ich nenne dieses Gerät "Dujour" (nach einem der Charaktere in The Matrix ). Um dasselbe Gerät zu erstellen, benötigen Sie Folgendes:





Sie fragen sich vielleicht, warum Sie einen Hardware-Zufallszahlengenerator verwenden, wenn die Zufallszahlen auch in Software generiert werden können. Das ist eine gute Frage. In HRNG zur Erzeugung wahrer Zufallszahlen unter Verwendung quantenphysikalischer Prozesse. Und Programme verwenden einige Algorithmen. Programme erzeugen tatsächlich sogenannte Pseudozufallszahlen. Solche Zahlen sind in den meisten Fällen für diejenigen in Ordnung, die sie verwenden, aber die durch Quantenprozesse erzeugten Zahlen sind wirklich (zumindest theoretisch) unvorhersehbar. Wenn Sie an das glauben, worauf Randonautting basiert , dh auf das Zusammenspiel von Bewusstsein und Materie, dann stellt sich heraus, dass es Forschung gibtderen Ergebnisse zeigen, dass mentale Anstrengung nur Zufallszahlen betrifft, die unter Verwendung von Quantenprozessen erzeugt werden.



Sie können mit nur einer Raspberry Pi-Karte eine Variante meines Projekts erstellen, indem Sie das HRNG an einen lokalen USB-Anschluss anschließen. Ich bevorzuge jedoch die Verwendung eines separaten Geräts. Ich habe viel mit Zufallszahlengeneratoren experimentiert und bin zu dem Schluss gekommen, dass es nützlich ist, einen Remote-RNG-Server zu verwenden, auf den mehrere Clientgeräte zugreifen können.



Das folgende Diagramm zeigt eine allgemeine Ansicht des Prozesses, auf dem Randonautting basiert. Das Hauptskript heißt rabbit.py



, es läuft auf dem ersten Raspberry Pi-Board, das ich nenne Dujour1



... Wenn es gestartet wird, sendet es (1) eine REST-Anforderung an das zweite Gerät - Dujour2



(an den Host des Hardware-Zufallszahlengenerators) und empfängt (2) einige zufällige Gleitkommazahlen von diesem. Diese Nummern werden verwendet (3), um einen nahe gelegenen Ort auszuwählen, der erkundet werden soll, und um anzugeben, wann dieser Ort besucht werden soll. Das Skript sammelt dann (4) die URL für den Google Maps-Dienst und sendet sie (5) als Textnachricht über den Twilio-Dienst an das Telefon.





Hochrangiges Projektdiagramm



Hier ist ein Videoclip meines in Betrieb befindlichen Geräts.









Raspberry Pis Navigator in Aktion Auf einem Raspberry Pi-Board namens Dujour1



muss Linux installiert und konfiguriert werden . Sie müssen ein Display daran anschließen ( hier finden Sie die Anweisungen für das Matrix Orbital VK204-25). Das folgende Bild zeigt meine Displayverbindung zur Platine.





Anschließen des Matrix Orbital VK204-25 an den Raspberry Pi



Ich habe den Raspberry Pi und das Display unter eine Glasabdeckung gelegt und einen LED-String an die 5V- und GND-GPIO-Pins angeschlossen. Die Glasabdeckung schien mir ein praktischer "Koffer" zu sein, in den alles passt, was Sie brauchen. Außerdem finde ich es toll, wie es aussieht.



Damit das Skript funktioniert,rabbit.py



benötigenSie Python und die folgenden Bibliotheken:



  • Mathematik
  • numpy
  • Unterprozess
  • sys
  • Zeit
  • json
  • urllib2


Wenn beim Ausführen des Skripts ein Fehler in Bezug auf Abhängigkeiten angezeigt wird, müssen Sie das fehlende Modul installieren.



Vor dem Ausführen des Skripts müssen mehrere Variablen festgelegt werden. Sie befinden sich alle im Skriptabschnitt User Defined Variables



. Hier ist eine Beschreibung einiger von ihnen:



  • loghandle



    : Pfad zu einer Textdatei, in der alle Skriptstarts protokolliert werden
  • window_secs



    : Die maximale Anzahl von Sekunden, die verwendet werden soll, um die Zeit für den Besuch des ausgewählten Standorts zu ermitteln.
  • meters_out



    : Die maximale Entfernung in Metern vom aktuellen Standort des Randonauten, die bei der Auswahl des zu besuchenden Standorts verwendet werden soll.
  • latitude1



    , longitude1



    : die aktuellen Koordinaten, die als Ausgangspunkt für die Suche nach Zielkoordinaten verwendet werden.
  • lcd_addr



    : Hexadezimale Adresse des LCD-Displays bei Verwendung der I2C-Schnittstelle.
  • HWRNG



    : IP- HRNG- XXX.XXX.XXX.XXX:YYYY



    .


Das Projekt hängt von mehreren externen Skripten ab. sendSMS.py wird verwendet, um Textnachrichten mit Koordinaten zu senden. orbitalWrite.py wird zur Anzeige-Manipulation verwendet. Beide Skripte müssen sich in demselben Ordner auf der Karte befinden, auf der sich Dujour1



das Skript befindet rabbit.py



. Bitte beachten Sie, dass mein Skript für die Verwendung mit einem bestimmten Matrix Orbital-Display (VK204-25) ausgelegt ist. Wenn Sie sich für eine andere Anzeige entscheiden, müssen Sie den Code entsprechend bearbeiten. Das Skript enthält Kommentare zu den Codeabschnitten, die für die Interaktion mit der Anzeige verantwortlich sind.



Damit das Skript sendSMS.py funktioniertbenötigt einige Umgebungsvariablen, mit denen es sich beim Twilio-Dienst authentifizieren kann: TWILIO_ACCOUNT_SID



und TWILIO_AUTH_TOKEN



. Hier finden Sie Anweisungen zum Festlegen dieser Variablen. Außerdem muss die Twilio Python-Hilfsbibliothek installiert sein .



Auf dem Raspberry Pi-Board, das ich als Dujour2



Server bezeichne, müssen Sie auch Linux installieren und konfigurieren . An diese Karte ist der Hardware-Zufallszahlengenerator angeschlossen. Ich habe ein OneRNG-USB-Gerät verwendet. Anweisungen zum Einrichten finden Sie hier .



Mein Server wird unten angezeigt.





HRNG-Server mit OneRNG



Nach Abschluss der ersten Serverkonfiguration müssen Sie ein Skript ausführen rngrestserver.py



, mit dem Zufallszahlen an das Gerät übertragen werden Dujour1



. Details zur Funktionsweise des REST-Serverskripts finden Sie hier .



Ergebnis



Wenn Sie mit meinem Tutorial ein eigenes Gerät erstellt haben, haben Sie jetzt alles, was Sie für die zufällige Navigation benötigen. Führen Sie einfach das Skript vom Terminal aus aus. Anschließend ./rabbit.py



wird eine Nachricht mit einem Link zur Karte an Ihr Telefon gesendet (was Sie nach dem Öffnen des Links sehen, sieht ungefähr so ​​aus wie das unten gezeigte).





Speicherort mit Hardware-Zufallszahlengenerator gefunden Beim



Testen meines Geräts sind mehrere seltsame Synchronizitäten aufgetreten. Aber selbst wenn nichts Außergewöhnliches passiert, kann Ihnen die Zufallsautonik zumindest helfen, etwas Erstaunliches zu sehen, das sich ganz in Ihrer Nähe befindet und auf das Sie vorher nicht geachtet haben.



Vielleicht mache ich eines Tages eine besondere Fähigkeit für Amazon Alexa. Dies würde es mir ermöglichen, meinen Randonautical-Server von meinem Telefon aus zu verwenden.



Hast du ein Rundonautenkostüm anprobiert?






All Articles