Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
In diesem Instructable bauen wir einen Arcbotics Sparki-Roboter, der mit 3D-Gesten gesteuert werden kann. Das Schöne an diesem Projekt ist, dass kein zusätzliches Gerät wie Smartphone oder Handschuh benötigt wird, um den Roboter zu steuern. Bewegen Sie einfach Ihre Hand über die Elektrode (95 x 60 mm sensitiver Bereich). Für die 3D-Gesteneingabesensoren wird ein MGC3130 Hillstar Development Kit von Microchip verwendet.
Schritt 1: Erforderliche Komponenten
- Arcbotics Sparki, ein Arduino-basierter Roboter. Andere Arduino-basierte Roboter funktionieren ebenfalls.
- MGC3130 Hillstar Development Kit von Microchip, andere 3D-Gestenboards wie das Hover-Original oder das Hover 2.0 von Hover Labs oder das Flick! sollte auch funktionieren.
- Ein paar Knex-Teile (nicht so viel wie auf dem Bild)
- Klebeband
- Überbrückungsdrähte
Schritt 2: Montage
Das Hillstar 3D-Gestenkit besteht aus drei Boards:
- Das MGC3130-Modul. Dies ist die wichtigste Hillstar-Gestensteuerung, die auf der einen Seite mit einer Elektrode und auf der anderen Seite mit Strom und einer I2C-Schnittstelle verbunden ist.
- Eine vierlagige Referenzelektrode mit einer empfindlichen Fläche von 85 x 60 mm, auf der Unterseite dieser Platte befindet sich ein Anschluss zum Anschluss der MGC3130-Platine.
- Eine I2C-zu-USB-Brückenplatine. Mit diesem Board kann das MGC3130 Modul einfach per USB an einen PC angeschlossen werden.
Die I2C-zu-USB-Bridge-Platine wird nicht benötigt, da wir die I2C des MGC3130-Moduls direkt an die Roboter-IO-Ports anschließen, wie im obigen Schemadiagramm gezeigt.
Ein kleiner Knex-Trolley wurde hergestellt, um die Referenzelektrodenplatine zu unterstützen. Die Platine wird mit etwas Klebeband am Trolley befestigt und der fertige Trolley wird mit einer Ty-Wrap am Roboter befestigt. Schließlich wird das MGC3130-Modul mit den Überbrückungsdrähten an die IO-Ports des Roboters angeschlossen.
Schritt 3: Code
Die Software basiert auf der Hover-Bibliothek von Hover Labs und ist auf Github (https://github.com/jspark311/hover_arduino) zu finden.
Unten ist die Arduino-Skizze, die auf den Sparki heruntergeladen werden kann.
Es gibt eine spezielle Sparki-IDE namens SparkiDuino, aber ich bevorzuge es, nur die Standard-Arduino-IDE zu verwenden und die Sparki-Arduino-Bibliothek zu installieren, die von der Download-Seite heruntergeladen werden kann: https://arcbotics.com/downloads Es ist nicht so einfach wie SparkiDuino, und es wird nicht mit einem eigenen Treiber-Installer geliefert (der Sparki-Treiber-Installer ist auch auf der Download-Seite), aber es verwendet die gleichen Beispiele und den gleichen Bibliothekscode und ist einfacher in Kombination mit anderen Bibliotheken, wie Hover hier Fall.
#include // die Sparki-Bibliothek einbinden
#include #include // Pin-Deklarationen für Hover int ts = 0; int-Reset = 1; Schweben Schweben = Schweben (); Byte-Ereignis; String output_string = ""; bool Driving_forward = false; Void setup () { Verzögerung (4000); funki.clearLCD(); sparki.println("Initialisieren von Hover…bitte warten."); sparki.updateLCD(); schweben.begin (ts, zurücksetzen); funki.clearLCD(); sparki.println("Bereit für Gesten!."); sparki.updateLCD(); aufrechtzuerhalten. Void loop (void) { // Überprüfen Sie, ob Hover bereit ist, Gesten- oder Touch-Ereignisse zu senden if (hover.getStatus (ts) == 0) { // Holen Sie sich das Ereignis über i2c und drucken Sie es aus event = hover.getEvent (); //Dieser Abschnitt kann auskommentiert werden, wenn Sie das Ereignis nicht im Textformat sehen möchten output_string = hover.getEventString(event); if (output_string != ""){ sparki.print(event); sparki.println(" = " + Ausgabezeichenfolge); sparki.updateLCD(); aufrechtzuerhalten. Schalter (Ereignis) { Fall 40: Driving_forward = true; brechen; Fall 80: sparki.moveBackward(); brechen; Fall 36: sparki.moveLeft(); Verzögerung (500); sparki.moveStop(); brechen; Fall 34: sparki.moveRight(); Verzögerung (500); sparki.moveStop(); brechen; Fall 72: sparki.gripperOpen(); brechen; Fall 66: sparki.gripperClose(); brechen; Fall 68: sparki.servo(80); brechen; Fall 65: Sparki.servo(-80); brechen; Fall 48: Driving_forward = false; funken.greiferStop(); sparki.servo(0); brechen; aufrechtzuerhalten. Wenn (driving_forward) {sparki.moveForward(); aufrechtzuerhalten. Sonst {Sparki.moveStop(); } //Hover für das nächste Ereignis zurücksetzen hover.setRelease(ts); } }
Schritt 4: Genießen Sie
Liste der Befehle:
- Nach oben wischen - vorwärts fahren
- Zurück wischen - alle Bewegungen stoppen
- Nach links wischen – links abbiegen
- Nach rechts wischen – rechts abbiegen
- Oben tippen - Sensor um 90 Grad im Uhrzeigersinn drehen
- Unten tippen - Sensor um 90 Grad gegen den Uhrzeigersinn drehen
- Links tippen - Greifer schließen
- Rechts tippen - Greifer öffnen