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

Walabot-Touchpad

Walabot Touchpad Eine flache Lösung, die jede Oberfläche in ein Touchpad für Ihren Laptop verwandeln kann. Stellen Sie sich vor, Sie verwenden ein Buch, einen Tisch oder eine Wand als Touchpad. In Kombination mit der Projektortechnologie können Sie Touchscreens auf jeder Oberfläche nachbilden.

Dieses Projekt zielt darauf ab, diese Nützlichkeit und Benutzerfreundlichkeit durch einfache Socket-Protokolle und Walabot, ein 3D-Bildgebungsgerät für Verbraucher, bereitzustellen.

Da diese Lösung alltagspraktisch und universell zugänglich sein sollte, habe ich mich für das am wenigsten hardwareintensive Setup entschieden. Um die einfache Einrichtung mit der Bildgenauigkeit in Einklang zu bringen, habe ich eine grundlegende Konfigurationsschleife implementiert, die bei jedem Start des Walabot ausgeführt wird.

Dieses Tutorial behandelt die Einrichtung des Raspberry Pi und die Cursorsteuerung auf einem Host-Computer.

Wie funktioniert es?

Das Projekt basiert auf einem Raspberry Pi 3-Client, der Messwerte von einem Walabot Creator-Sensor aufnimmt (danke Walabot!) und einem Host-Computer, der in diesem Fall mein Laptop ist.

Der allgemeine Benutzerablauf ist wie folgt:

Vorführung

In Fortschritt

Einrichten des Pi

Zuerst müssen wir das Pi so einrichten, dass es verwendbar ist und alle notwendigen Bibliotheken installiert sind.

sudo apt-get update
CD-Downloads
sudo dpkg –i walabot_maker_1.0.34_raspberry_arm32.deb

Zusammengefasst aktualisieren die Befehle die Paketlisten des Systems und installieren das WalabotSDK

sudo apt-get dist-upgrade
sudo reboot

Dies aktualisiert die installierten Pakete und startet das RPi neu.

Für eine höhere Geschwindigkeit empfehle ich, die Desktop-GUI wie hier gezeigt zu deaktivieren.

Walabot-Schnittstelle

Hier kommt der Walabot ins Spiel. Es ist ein 3D-Mikrowellen-Bildsensor, der eine Menge Dinge tun kann, von der Atmungserkennung über das Sehen durch Wände bis hin zur Erkennung mehrerer Ziele. Du kannst sie dir auf ihrem YouTube-Kanal ansehen!

Die für dieses Projekt wirklich nützliche Funktion ist die dreidimensionale HF-Sensorik, die die x-, y- und x-Koordinaten eines Ziels erkennen kann. Außerdem kann seine dynamische Filterfunktion, die statische Signale entfernt, mit der Filterung fester Reflektoren kombiniert werden, sodass Sie ein Objekt auch durch andere Materialien genau verfolgen können.

Ein Nachteil bei der Verwendung eines so leistungsstarken Geräts ist jedoch der hohe Stromverbrauch. Der Walabot verbraucht 400-900 mA, was für den Standard-USB-Ausgang der Himbeere zu hoch ist. Dies kann gelöst werden, indem Sie zu /boot/config.txt navigieren und diese Zeile hinzufügen:max_usb_current=1.Das erhöht den maximalen Strom auf 1200 mA.

Zielerkennung

Sicherstellen, dass der Walabot nur meinen Finger erkennt, wenn ich es möchte, ist der Schlüssel, sonst bewegt mein Computer den Cursor zufällig, möglicherweise sogar außerhalb der Grenzen. Für mein Projekt habe ich über die Funktion GetSensorTargets() eine Schnittstelle zur Walabot-API hergestellt und den MTI-Modus (Moving Target Identification) deaktiviert, um die Filterung des Fingersignals über längere Zeiträume zu verhindern. Den Erfassungsradius (r) habe ich in meinem Projekt auf maximal 10 cm gesetzt, um die Arena auf den Bereich unmittelbar über dem Walabot einzustellen. Dies ändert sich je nach Materialstärke.

Ich habe versucht, die Arenaabmessungen in x-, y- und z-Werten festzulegen, aber das funktionierte nur am besten mit dem Nahbereichsprofil, das nur in der Walabot Developer Edition verfügbar war. Als ich dies im Standard-Scannermodus ausprobierte, erhielt ich fast keine Zielerkennung, wahrscheinlich weil der Scannermodus radial statt durch kartesische Koordinaten liest. Daher habe ich ein Standard-Scannerprofil eingestellt, die Arena radial eingestellt und die radialen Abmessungen in kartesische Koordinaten umgerechnet.

Die Zielobjekte haben x-, y-, z- und Amplitudenparameter, von denen ich nur die x- und y-Werte verwendet habe. Da sich die y-Achse entlang der Länge des Walabot befindet, habe ich dies auf die x-Achse auf dem Bildschirm übertragen, wenn der Walabot horizontal wie ein Touchpad platziert wird. Wenn ich die Koordinaten mit den Arenagrenzen vergleiche, kann ich die relative Position des Ziels zur Arena ermitteln und diese in die relative Position des Cursors auf dem Host-Bildschirm übersetzen.

Da meine Arena jedoch auf der Grundlage von r-, Theta- und Phi-Werten initialisiert wurde, musste ich die nutzbaren Arenagrenzen durch Messung der niedrigsten und höchsten Werte der x- und y-Koordinaten manuell finden. Ich habe dies dann beim Setup automatisiert, damit das Programm die Grenzen finden kann, wenn der Benutzer seinen Finger entlang der x- und y-Achse streicht. Obwohl es Formeln gibt, um Polarkoordinaten in Kartesisch umzuwandeln, wichen die eingestellten Grenzen von der tatsächlich messbaren Arena ab, da sie die Interferenz einer anderen Oberfläche auf der registrierten Fläche nicht berücksichtigen können.

Um festzustellen, ob ein Benutzer den Cursor bewegen möchte, einen Rechtsklick oder einen Linksklick macht, habe ich die Mehrfachzielerkennungsfunktionen des Walabot verwendet. Bewegung wäre 1 Berührungspunkt, ein Rechtsklick wäre 2 Berührungspunkte und ein Linksklick wäre 3. Es scheint solide zu sein, Zeit, es auszuprobieren.

Argh! Dies stellte sich als wesentlich schwieriger einzurichten heraus. Ich hatte ursprünglich geplant, dass der Code auf die entsprechenden Tasten auf der Maus klickt, wenn der Walabot zwei oder mehr Ziele erkennt, aber genau in dem Moment, in dem die Finger in das Sichtfeld gelangen, erkennt der Walabot ein Ziel und bewegt die Maus daher vor dem Klicken .

Das schwierige Gleichgewicht der Maximierung des Arenabereichs, ohne den Z-Bereich in der Mitte zu vergrößern Die offensichtliche Lösung besteht darin, den Arenabereich selbst zu verringern, wodurch der Z-Bereich natürlich verringert wird. Dies hat den Nebeneffekt, dass ein Touchpad erzeugt wird, das zu klein ist, um es zu verwenden. Der andere Weg, den ich eingeschlagen habe, bestand darin, Ziele mit einem zu hohen Z-Attribut manuell herauszufiltern, aber das funktioniert nicht, da ein Ziel entlang der Z-Achse immer noch am Rand höher registriert wird als entlang der Mitte. Amplitude funktioniert nicht so gut, da sie um den empfindlichsten Teil des Moduls zentriert ist. Ich habe überlegt, den Z-Parameterwert für alle Ziele manuell zu ändern, indem ich abs(Phi-Winkel – 90 Grad) * Multiplikator . addiere auf alle Ziele, aber leider ist der Phi-Winkelparameter kein zugänglicher Sensorzielparameter. Am Ende konnte ich dies nur lösen, indem ich entweder ein gebogenes Touchpad verwende, das der Krümmung des Erkennungsbereichs entspricht, oder indem ich mir eine Walabot Developer-Edition besorge.

Lesen Sie mehr Details:Walabot Touchpad


Herstellungsprozess

  1. Was ist VMC-Bearbeitung?
  2. MIG-Schweißen vs. WIG-Schweißen
  3. Überlegungen zur Schweizer Hochproduktionsbearbeitung
  4. Leitfaden zum CNC-Prototyping
  5. Den Wellenherstellungsprozess verstehen
  6. Was ist eine Edelstahlpassivierung?
  7. Posture Pal with Walabot
  8. Walabot-Touchpad
  9. Toiletten-Tracker (Powered by Walabot)
  10. Walabasquiat:Eine interaktive generative Kunstinstallation!