Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Untersuchen des Codes:
- Schritt 2: Der Rest des Codes…
- Schritt 3: Verbindung mit reinen Daten herstellen…
- Schritt 4:
Video: Verwenden des Complex Arts Sensor Board zur Steuerung reiner Daten über WLAN - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Wollten Sie schon immer mal mit Gestensteuerung experimentieren? Mit einer Handbewegung etwas bewegen? Steuern Sie die Musik mit einer Drehung Ihres Handgelenks? Dieses Instructable zeigt Ihnen, wie!
Das Complex Arts Sensor Board (complexarts.net) ist ein vielseitiger Mikrocontroller basierend auf dem ESP32 WROOM. Es verfügt über alle Funktionen der ESP32-Plattform, einschließlich integriertem WLAN und Bluetooth sowie 23 konfigurierbaren GPIO-Pins. Die Sensorplatine verfügt auch über die BNO_085 IMU – einen 9 DOF-Bewegungsprozessor, der integrierte Sensorfusions- und Quaternionengleichungen durchführt und superpräzise Orientierungs-, Schwerkraftvektor- und Linearbeschleunigungsdaten liefert. Das Sensor Board kann mit Arduino, MicroPython oder ESP-IDF programmiert werden, aber in dieser Lektion werden wir das Board mit der Arduino IDE programmieren. Es ist wichtig zu beachten, dass die ESP32-Module nicht nativ über die Arduino-IDE programmierbar sind, dies jedoch sehr einfach möglich ist. Hier gibt es ein großartiges Tutorial: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/, das etwa 2 Minuten dauern sollte. Das letzte Setup, das wir brauchen, ist der Treiber für den USB-to-UART-Chip auf dem Sensor Board, den Sie hier finden: https://www.silabs.com/products/development-tools/software/usb-to -uart-bridge-vcp-drivers. Wählen Sie einfach Ihr Betriebssystem aus und installieren Sie es, was etwa 2 weitere Minuten dauern sollte. Wenn das erledigt ist, können wir loslegen!
[Diese Lektion setzt keine Vertrautheit mit Arduino oder Pure Data voraus, behandelt jedoch nicht deren Installation. Arduino finden Sie unter aduino.cc. Pure Data finden Sie unter puredata.info. Auf beiden Seiten finden Sie leicht verständliche Anweisungen zur Installation und Einrichtung.]
Außerdem… die in diesem Tutorial behandelten Konzepte, wie das Einrichten von UDP-Verbindungen, das Programmieren des ESP32 mit Arduino und das grundlegende Pure Data-Patch-Building – sind Bausteine, die für unzählige Projekte verwendet werden können habe diese Konzepte runter!
Lieferungen
1. Sensorplatine für komplexe Künste
2. Arduino-IDE
3. Reine Daten
Schritt 1: Untersuchen des Codes:
Zuerst schauen wir uns den Arduino-Code an. (Die Quelle ist unter https://github.com/ComplexArts/SensorBoardArduino verfügbar. Es wird empfohlen, dass Sie dem Code folgen.) Wir benötigen einige Bibliotheken, von denen eine keine Arduino-Kernbibliothek ist muss es eventuell installieren. Dieses Projekt basiert auf der Datei SparkFun_BNO080_Arduino_Library.h. Wenn Sie diese nicht haben, müssen Sie zu Sketch -> Bibliothek einschließen -> Bibliotheken verwalten gehen. Geben Sie „bno080“ein und die oben erwähnte Bibliothek wird angezeigt. Drücken Sie auf Installieren.
Die anderen drei verwendeten Bibliotheken sollten standardmäßig mit Arduino geliefert werden. Zuerst werden wir die SPI-Bibliothek verwenden, um mit der BNO zu kommunizieren. Es ist auch möglich, UART zwischen ESP32 und BNO zu verwenden, aber da SparkFun bereits über eine Bibliothek verfügt, die SPI verwendet, bleiben wir dabei. (Danke, SparkFun!) Das Einschließen der SPI.h-Datei ermöglicht es uns auszuwählen, welche Pins und Ports wir für die SPI-Kommunikation verwenden möchten.
Die WiFi-Bibliothek enthält die Funktionen, die es uns ermöglichen, auf ein drahtloses Netzwerk zuzugreifen. WiFiUDP enthält die Funktionen, die es uns ermöglichen, Daten über dieses Netzwerk zu senden und zu empfangen. Die nächsten beiden Zeilen bringen uns ins Netzwerk – geben Sie Ihren Netzwerknamen und Ihr Passwort ein. Die zwei Zeilen danach geben die Netzwerkadresse und den Port an, an den wir unsere Daten senden. In diesem Fall senden wir es einfach, d. h., wir senden es an jeden in unserem Netzwerk, der zuhört. Die Portnummer bestimmt, wer zuhört, wie wir gleich sehen werden.
Diese nächsten beiden Zeilen erstellen Member für ihre jeweiligen Klassen, damit wir später leicht auf ihre Funktionen zugreifen können.
Als nächstes weisen wir die richtigen Pins des ESP den entsprechenden Pins auf dem BNO zu.
Jetzt richten wir das SPI-Klassenmitglied ein und legen auch die SPI-Port-Geschwindigkeit fest.
Schließlich kommen wir zur Setup-Funktion. Hier starten wir einen seriellen Port, damit wir unsere Ausgabe auf diese Weise überwachen können, wenn wir möchten. Dann beginnen wir WLAN. Beachten Sie, dass das Programm auf eine WiFi-Verbindung wartet, bevor es fortfährt. Sobald WiFi verbunden ist, beginnen wir die UDP-Verbindung und drucken dann unseren Netzwerknamen und unsere IP-Adresse auf den seriellen Monitor. Danach starten wir den SPI-Port und prüfen die Kommunikation zwischen ESP und BNO. Zuletzt rufen wir die Funktion „enableRotationVector(50);“auf. da wir in dieser Lektion nur den Rotationsvektor verwenden werden.
Schritt 2: Der Rest des Codes…
Bevor wir zur Hauptschleife() gehen, haben wir eine Funktion namens „mapFloat“.
Dies ist eine benutzerdefinierte Funktion, die wir hinzugefügt haben, um Werte anderen Werten zuzuordnen oder zu skalieren. Die eingebaute Map-Funktion in Arduino erlaubt nur Integer-Mapping, aber alle unsere Anfangswerte vom BNO liegen zwischen -1 und 1, also müssen wir sie manuell auf die Werte skalieren, die wir wirklich wollen. Aber keine Sorge – hier ist die einfache Funktion, um genau das zu tun:
Jetzt kommen wir zur Hauptschleife(). Das erste, was Sie bemerken werden, ist eine weitere Blockierungsfunktion, wie diejenige, die das Programm auf eine Netzwerkverbindung warten lässt. Dieser hält an, bis Daten von der BNO vorliegen. Wenn wir mit dem Empfang dieser Daten beginnen, weisen wir die eingehenden Quaternion-Werte Gleitkommavariablen zu und geben diese Daten auf dem seriellen Monitor aus.
Jetzt müssen wir diese Werte zuordnen.
[Ein Wort zur UDP-Kommunikation: Daten werden über UDP in 8-Bit-Paketen oder Werten von 0-255 übertragen. Alles über 255 wird an das nächste Paket gepusht und erhöht seinen Wert. Daher müssen wir sicherstellen, dass keine Werte über 255 vorhanden sind.]
Wie bereits erwähnt, haben wir eingehende Werte im Bereich von -1 – 1. Dies gibt uns nicht viel zu tun, da alles unter 0 abgeschnitten wird (oder als 0 angezeigt wird) und wir dies nicht tun können eine Tonne mit Werten zwischen 0 – 1 Nx.
Nachdem wir nun unsere zugeordneten Daten haben, können wir unser Paket zusammenstellen. Dazu müssen wir einen Puffer für die Paketdaten deklarieren und ihm eine Größe von [50] geben, um sicherzustellen, dass alle Daten passen. Dann beginnen wir das Paket mit der Adresse und dem Port, die wir oben angegeben haben, schreiben unseren Puffer und 3 Werte in das Paket to und beenden das Paket.
Zuletzt drucken wir unsere zugeordneten Koordinaten auf den seriellen Monitor. Jetzt ist der Arduino-Code fertig! Flashen Sie den Code auf die Sensorplatine und überprüfen Sie den seriellen Monitor, um sicherzustellen, dass alles wie erwartet funktioniert. Sie sollten die Quaternion-Werte sowie die zugeordneten Werte sehen.
Schritt 3: Verbindung mit reinen Daten herstellen…
Jetzt für reine Daten! Öffnen Sie Pure Data und starten Sie einen neuen Patch (Strg n). Der Patch, den wir erstellen werden, ist sehr einfach und hat nur sieben Objekte. Das erste, das wir erstellen werden, ist das Objekt [netreceive]. Dies ist das Brot und Butter unseres Patches, der die gesamte UDP-Kommunikation abwickelt. Beachten Sie, dass es drei Argumente für das [netreceive]-Objekt gibt; -u gibt UDP an, -b gibt Binär an und 7401 ist natürlich der Port, auf dem wir lauschen. Sie können auch die Nachricht „listen 7401“an [netreceive] senden, um Ihren Port anzugeben.
Sobald Daten eintreffen, müssen wir sie entpacken. Wenn wir ein [print]-Objekt mit [netrecieve] verbinden, können wir sehen, dass die Daten zunächst als Zahlenstrom zu uns kommen, aber wir möchten diese Zahlen analysieren und jede für etwas anderes verwenden. Sie können beispielsweise die X-Achsen-Rotation verwenden, um die Tonhöhe eines Oszillators zu steuern, und die Y-Achse für die Lautstärke oder eine beliebige Anzahl anderer Möglichkeiten. Dazu durchläuft der Datenstrom ein [unpack]-Objekt, das drei Floats (f f f) als Argumente hat.
Jetzt, wo Sie so weit sind, liegt Ihnen die Welt zu Füßen! Sie haben einen drahtlosen Controller, mit dem Sie alles im Pure Data-Universum manipulieren können. Aber hör auf damit! Probieren Sie neben dem Rotationsvektor den Beschleunigungsmesser oder den Magnetometer aus. Versuchen Sie es mit speziellen Funktionen der BNO wie „Doppeltippen“oder „Schütteln“. Alles, was es braucht, ist ein wenig in den Benutzerhandbüchern (oder dem nächsten Instructable …) zu graben.
Schritt 4:
Was wir oben gemacht haben, ist die Kommunikation zwischen dem Sensor Board und Pure Data. Wenn Sie mehr Spaß haben möchten, schließen Sie Ihre Datenausgänge an einige Oszillatoren an! Spielen Sie mit Lautstärkeregler! Kontrollieren Sie vielleicht einige Delay-Zeiten oder Reverb! die welt ist deine auster!
Empfohlen:
So fügen Sie jedem Projekt eine WLAN-Steuerung hinzu -- ESP32-Anfängerleitfaden: 5 Schritte
So fügen Sie jedem Projekt eine WLAN-Steuerung hinzu || ESP32-Anfängerhandbuch: In diesem Projekt zeige ich Ihnen, wie einfach / schwierig es ist, einen ESP32 mit der Arduino IDE zu verwenden, um jedem Elektronikprojekt eine WiFi-Steuerung hinzuzufügen. Unterwegs zeige ich Ihnen, wie Sie mit dem ESP32 einen einfachen WLAN-Server erstellen und wie Sie
Verwendung von Mikrocontrollern zum Betrieb und zur Überwachung des Fernbewässerungssystems : 4 Schritte
Einsatz von Mikrocontrollern zum Betrieb und zur Überwachung des Fernbewässerungssystems : Landwirte und Gewächshausbetreiber für ein kostengünstiges automatisches Bewässerungssystem. In diesem Projekt integrieren wir einen elektronischen Bodenfeuchtesensor mit einem Mikrocontroller, um Pflanzen automatisch ohne menschliches Zutun zu bewässern, wenn der Boden zu trocken ist
Vollständige Anleitung zur Verwendung des Bodenfeuchtesensors mit praktischem Beispiel: 7 Schritte
Vollständige Anleitung zur Verwendung des Bodenfeuchtigkeitssensors mit praktischem Beispiel: Sie können dieses und andere erstaunliche Tutorials auf der offiziellen Website von ElectroPeak lesen.ÜbersichtIn diesem Tutorial erfahren Sie, wie Sie einen Bodenfeuchtigkeitssensor verwenden. Es werden auch praktische Beispiele bereitgestellt, die Ihnen helfen, den Code zu beherrschen. Was Sie lernen werden: Wie Boden
Steuern Sie Geräte über das Internet über den Browser. (IoT): 6 Schritte
Steuern Sie Geräte über das Internet über den Browser. (IoT): In diesem Instructable zeige ich Ihnen, wie Sie Geräte wie LEDs, Relais, Motoren usw. über das Internet über einen Webbrowser steuern können. Und Sie können über jedes Gerät sicher auf die Bedienelemente zugreifen. Die Webplattform, die ich hier verwendet habe, ist RemoteMe.org visit
Verwenden des Suchmenüs: 3 Schritte
Verwenden des Suchmenüs: Einführung.Das Suchmenü bietet die Möglichkeit, Dateien, Ordner, Dokumente oder Fotos zu finden, die auf Ihrem Computer gespeichert sind. Wenn Sie über eine Internetverbindung verfügen, können Sie diese auch verwenden, um auf einer Website gespeicherte Informationen zu finden