Inhaltsverzeichnis:
- Schritt 1: Teile
- Schritt 2: PROTOTYPING
- Schritt 3: HANDSCHUH
- Schritt 4: SENDERBOX
- Schritt 5: ARM CONTROL BOX
- Schritt 6: PIN-VERGABE
- Schritt 7: KOMMUNIKATION
- Schritt 8: SKIZZEN und mehr…
- Schritt 9: WAS NOCH?
- Schritt 10: *** WIR GEWONNEN !!! ***
Video: Winken Sie mit der Hand, um den OWI-Roboterarm zu steuern ohne Schnürung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
DIE IDEE:
Auf Instructables.com (Stand 13. Mai 2015) gibt es mindestens 4 weitere Projekte zum Ändern oder Steuern des OWI-Roboterarms. Kein Wunder, da es sich um ein so großartiges und kostengünstiges Roboterset handelt, mit dem man spielen kann. Dieses Projekt ist im Geiste ähnlich (d. h. den Roboterarm mit Arduino steuern), unterscheidet sich jedoch im Ansatz. [Video]
Die Idee ist, den Roboterarm drahtlos mit Gesten steuern zu können. Außerdem habe ich versucht, die Modifikationen des Roboterarms auf ein Minimum zu beschränken, damit er weiterhin mit dem ursprünglichen Controller verwendet werden kann.
Klingt einfach.
Am Ende steht ein dreiteiliges Projekt:
- Ein Handschuh, der mit genügend Sensoren ausgestattet ist, um eine LED und 5 Motoren zu steuern
- Ein auf Arduino Nano basierendes Sendergerät, das Steuerbefehle vom Handschuh akzeptiert und drahtlos an das Arm-Controller-Gerät sendet
- Ein Arduino Uno-basierter drahtloser Empfänger und ein Motorsteuergerät, das am OWI-Roboterarm befestigt ist
MERKMALE
- Unterstützung für alle 5 Freiheitsgrade (DOF) und die LED
- Großer roter Knopf - um die Motoren am Arm sofort zu stoppen und Schäden zu vermeiden
- Tragbares modulares Design
Für mobile Nutzer: Das "Werbevideo" zu diesem Projekt gibt es hier auf YouTube.
Schritt 1: Teile
HANDSCHUH:
Sie benötigen Folgendes, um einen Handschuhcontroller zu bauen:
- Isotoner Smartouch Tech Stretch Stitched Handschuh (oder ähnlich) - auf Amazon.com
- Spectra Symboflex Sensor 2.2" - auf Amazon.de
- GY-521 6DOF MPU6050 3-Achsen-Gyroskop + Beschleunigungssensor-Modul - auf Fasttech.com
- 2X5 BOX HEADER GERADE - auf Phoenixent.com
- 2X5 IDC BUCHSE-BUCHSE - auf Phoenixent.com
- FLACHBANDKABEL 10 Leiter.050" Rastermaß - auf Phoenixent.com
- 2 x 5 mm LEDs - Grün und Gelb
- 2 x kleine Knöpfe
- Widerstände, Drähte, Nadel, schwarzer Faden, Klebepistole, Lötpistole, Lötzinn usw.
GETRIEBE-STRAP-ON-BOX:
- Arduino kompatibles Nano v3.0 ATmega328P-20AU Board - auf Fasttech.com
- nRF24L01+ 2,4 GHz Wireless Transceiver Arduino kompatibel - auf Amazon.com
- Gymboss ARMBAND - auf Amazon.com
- 9V Batteriehalter Box Case mit Drahtleitung EIN/AUS Schalter - auf Amazon.de
- 2X5 BOX HEADER GERADE - auf Phoenixent.com
- 9v Batterie
- 47uF (50V) Kondensator
- Widerstände, Drähte, Klebepistole, Lötpistole, Lötzinn usw.
OWI ROBOTERARM CONTROLLER BOX:
- Arduino kompatibles Uno R3 Rev3 Entwicklungsboard - auf Fasttech.com
- Prototype Shield DIY KIT für Arduino (oder ähnlich) - auf Amazon.com
- nRF24L01+ 2,4 GHz Wireless Transceiver Arduino kompatibel - auf Amazon.com
- 3 x L293D 16-poliger IC-Motortreiber mit integrierter Schaltung - auf Fasttech.com
- 1 x SN74HC595 74HC595 8-Bit-Schieberegister mit 3-State-Ausgangsregistern DIP16 - bei Amazon.de
- 47uF (50V) Kondensator
- Box für Arduino - auf Amazon.com
- Ein / Aus Schalter
- 2 x 13 mm Knöpfe (eine rote und eine grüne Kappe)
- 2 x 2X7 BOX HEADER GERADE - wie oben auf Phoenixent.com
- FLACHBANDKABEL 14 Leiter.050" Pitch - wie oben auf Phoenixent.com
- 9-V-Batterie + Clip-On-Anschluss
- Widerstände, Drähte, Klebepistole, Lötpistole, Lötzinn usw.
… und natürlich:
OWI Robotic Arm Edge - Roboterarm - OWI-535 - auf Adafruit.com
Schritt 2: PROTOTYPING
Ich empfehle dringend, jedes der Controller-Geräte zu prototypisieren, bevor Sie alle Komponenten zusammenlöten.
Dieses Projekt verwendet ein paar herausfordernde Hardware:
nRF24L01
Es hat eine Weile gedauert, bis die beiden nRF24 miteinander sprechen. Anscheinend bieten weder Nano noch Uno genug stabilisierte 3,3-V-Leistung, damit die Module konsistent arbeiten. Eine Lösung in meinem Fall war ein 47uF-Kondensator über den Strompins beider nRF24-Module. Es gibt auch ein paar Macken bei der Verwendung der RF24-Bibliothek im IRQ- und Nicht-IRQ-Modus, daher empfehle ich, die Beispiele wirklich sorgfältig zu studieren.
Ein paar tolle Ressourcen:
nRF24L01 Ultra Low Power 2,4 GHz RF Transceiver IC Produktseite
Seite der RF24-Treiberbibliothek
Wenn Sie nur nRF24 + arduino googeln, werden viele Links erstellt. Es lohnt sich zu recherchieren
74HC595 SCHALTREGISTER
Es überrascht nicht, dass ich 5 Motoren, eine LED, zwei Tasten und ein Wireless-Modul steuern musste, dass mir relativ schnell die Pins auf dem Uno ausgingen. Der bekannte Weg, Ihre Pinanzahl zu "erweitern", besteht darin, ein Schieberegister zu verwenden. Da nRF24 bereits die SPI-Schnittstelle verwendet, habe ich mich entschieden, SPI auch für die Schieberegisterprogrammierung (für Geschwindigkeit und um Pins zu sparen) anstelle der Funktion shiftout() zu verwenden. Zu meiner Überraschung funktionierte es von Anfang an wie ein Zauber. Sie können es in der Pinbelegung und in den Skizzen überprüfen.
Steckbrett und Überbrückungsdrähte sind deine Freunde.
Schritt 3: HANDSCHUH
OWI Robotic ARM hat 6 zu steuernde Elemente (OWI Robotic Arm Edge Picture)
- Eine LED am GRIPPER des Geräts
- EIN GREIFER
- EIN HANDGELENK
- Ein ELBOW - ist der Teil des Roboterarms, der am Handgelenk befestigt ist
- Eine SCHULTER ist der Teil des Roboterarms, der an der BASE befestigt ist
- EINE BASIS
Der Handschuh wurde entwickelt, um die LED des Roboterarms und alle 5 Motoren (Freiheitsgrade) zu steuern.
Ich habe einzelne Sensoren auf den Bildern markiert sowie eine Beschreibung unten:
- Der GRIPPER wird über die Tasten am Mittelfinger und am kleinen Finger gesteuert. Greifer wird durch Zusammendrücken von Zeige- und Mittelfinger geschlossen. Der Greifer wird durch Zusammendrücken von Ring und kleinem Finger geöffnet.
- Das WRIST wird durch den flexiblen Widerstand des Indexfinders gesteuert. Wenn Sie den Finger zur Hälfte kräuseln, senkt sich das Handgelenk, und wenn Sie ihn ganz krümmen, geht das Handgelenk nach oben. Wenn Sie den Zeigefinger gerade halten, wird das Handgelenk gestoppt.
- Der Ellenbogen wird durch einen Beschleunigungsmesser gesteuert - das Kippen der Handfläche nach oben und unten bewegt den Ellenbogen nach oben bzw. nach unten
- Die SCHULTER wird durch einen Beschleunigungsmesser gesteuert - das Neigen der Handfläche nach rechts und links (jedoch nicht auf den Kopf gestellt!) bewegt die Schulter nach oben bzw. nach unten
- Die BASE wird ebenfalls über einen Beschleunigungsmesser gesteuert, ähnlich wie bei der Schulter - das Kippen der Handfläche nach rechts und links ganz nach oben (Handfläche zeigt nach oben) bewegt die Basis nach rechts bzw. links
- Die LED am Greifer wird durch gleichzeitiges Drücken beider Greifersteuertasten ein-/ausgeschaltet.
Alle Tastenreaktionen werden um 1/4 Sekunde verzögert, um Jitter zu vermeiden.
Das Zusammenbauen des Handschuhs erfordert etwas Löten und viel Nähen. Im Grunde werden nur 2 Tasten, ein flexibler Widerstand, ein Accel / Gyro-Modul am Stoff des Handschuhs befestigt und die Drähte zur Anschlussbox verlegt.
Zwei LEDs an der Anschlussbox sind:
- GRÜN - Einschalten
- GELB - blinkt, wenn Daten an die Armsteuerbox übertragen werden.
Schritt 4: SENDERBOX
Die Senderbox besteht im Wesentlichen aus Arduino Nano, nRF24-Funkmodul, flexiblem Kabelanschluss und 3 Widerständen: 2 Pulldown-Widerstände mit 10 kOhm für die Greifersteuertasten am Handschuh und einem Spannungsteiler mit 20 kOhm für den flexiblen Sensor, der das Handgelenk steuert.
Alles ist auf einer Vero-Platine zusammengelötet. Beachten Sie, dass nRF24 über Nano "hängt". Ich hatte Bedenken, dass dies Störungen verursachen könnte, aber es funktioniert.
Die Verwendung des 9-V-Akkus macht das Strap-On-Teil etwas sperrig, aber ich wollte nicht mit LiPo-Akkus herumspielen. Vielleicht später.
Anweisungen zum Löten finden Sie im Schritt zur Pinbelegung
Schritt 5: ARM CONTROL BOX
Die Armsteuerbox basiert auf Arduino Uno. Er empfängt drahtlos Befehle vom Handschuh über das nRF24-Modul und steuert den OWI Robotoc Arm über 3 L293D-Treiberchips.
Da fast alle Uno-Pins verwendet wurden, befinden sich viele Drähte in der Box - sie schließt kaum!
Die Box startet konstruktionsbedingt im OFF-Modus (als ob ein Redstop-Knopf gedrückt wird), sodass der Bediener Zeit hat, den Handschuh anzuziehen und sich vorzubereiten. Sobald dies abgeschlossen ist, drückt der Bediener die grüne Taste und die Verbindung zwischen Handschuh und Steuerkasten sollte sofort hergestellt werden (wie durch die gelbe LED am Handschuh und die rote LED am Steuerkasten angezeigt).
VERBINDUNG MIT OWI
Der Anschluss an den Roboterarm erfolgt über einen 14-poligen zweireihigen Header (gemäß obigem Bild) über ein 14-adriges Flachbandkabel.
- LED-Anschlüsse sind über einen 220-Ohm-Widerstand mit Masse (-) und Arduino-Pin A0 verbunden
- Alle Motorkabel sind mit den L293D-Pins 3/6 bzw. 11/14 (+/-) verbunden. Jeder L293D unterstützt 2 Motoren, also zwei Pinpaare.
- OWI-Stromleitungen sind ganz links (+6V) und ganz rechts (GND) des 7-Pin-Anschlusses auf der Rückseite des gelben Oberteils. (Sie können die eingesteckten Drähte auf dem Bild oben sehen). Diese beiden sind an allen drei L293Ds mit den Pins 8 (+) und 4, 5, 12, 13 (GND) verbunden.
Bitte beachten Sie die restliche Pinbelegung im nächsten Schritt
Schritt 6: PIN-VERGABE
NANO:
- 3,3 V - 3,3 V zu nRF24L01-Chip (Pin 2)
- 5V - 5V zu Beschleunigungsmesserplatine, Tasten, flexibler Sensor
- a0 - flexibler Widerstandseingang
- a1 - gelbe "comms" LED-Steuerung
- a4 - SDA zu Beschleunigungsmesser
- a5 - SCL zu Beschleunigungsmesser
- d02 - nRF24L01 Chip Interrupt-Pin (Pin 8)
- d03 - Eingang Greifertaste öffnen
- d04 - Eingang Greifertaste schließen
- d09 - SPI CSN-Pin an nRF24L01-Chip (Pin 4)
- d10 - SPI CS-Pin an nRF24L01-Chip (Pin 3)
- d11 - SPI MOSI zu nRF24L01-Chip (Pin 6)
- d12 - SPI MISO zu nRF24L01 Chip (Pin 7)
- d13 - SPI SCK zu nRF24L01-Chip (Pin 5)
- Vin - 9v +
- GND - gemeinsame Masse
UNO:
- 3,3 V - 3,3 V zu nRF24L01-Chip (Pin 2)
- 5V - 5V zu Tasten
- Vin - 9v +
- GND - gemeinsame Masse
- a0 - Handgelenk-LED +
- a1 - SPI SS-Pin für Schieberegisterauswahl - an Pin 12 am Schieberegister
- a2 - ROTER Tastereingang
- a3 - GRÜNE Tasteneingabe
- a4 - Richtung Basis rechts - Pin 15 auf L293D
- a5 - Kommunikations-LED
- d02 - nRF24L01 IRQ-Eingang (Pin 8)
- d03 - Basisservo (pwm) Pin 1 oder 9 auf L293D aktivieren
- d04 - Richtung Basis links - Pin 10 am jeweiligen L293D
- d05 - Schulterservo (pwm) Pin 1 oder 9 auf L293D aktivieren
- d06 - Ellbogenservo (pwm) Pin 1 oder 9 auf L293D aktivieren
- d07 - SPI CSN-Pin an nRF24L01-Chip (Pin 4)
- d08 - SPI CS-Pin an nRF24L01-Chip (Pin 3)
- d09 - Aktivieren Sie Handgelenk-Servo (pwm) Pin 1 oder 9 auf L293D
- d10 - Greiferservo (pwm) Pin 1 oder 9 auf L293D aktivieren
- d11 - SPI MOSI zu nRF24L01 Chip (Pin 6) und Pin 14 am Schieberegister
- d12 - SPI MISO zu nRF24L01 Chip (Pin 7)
- d13 - SPI SCK an nRF24L01 Chip (Pin 5) und Pin 11 am Schieberegister
SHIFT REGISTER UND L293Ds:
- Pin QA (15) von 74HC595 an Pin 2 von L293D #1
- Pin QB (1) von 74HC595 an Pin 7 von L293D #1
- Pin QC (2) von 74HC595 an Pin 10 von L293D #1
- Pin QD (3) von 74HC595 an Pin 15 von L293D #1
- Pin QE (4) von 74HC595 an Pin 2 von L293D #2
- Pin QF (5) von 74HC595 an Pin 7 von L293D #2
- Pin QG (6) von 74HC595 an Pin 10 von L293D #2
- Pin QH (7) von 74HC595 an Pin 15 von L293D #2
Schritt 7: KOMMUNIKATION
Glove sendet 10 Mal pro Sekunde oder jedes Mal, wenn ein Signal von einem der Sensoren empfangen wird, 2 Byte Daten an die Steuerbox.
2 Bytes reichen für 6 Controls, da wir nur senden müssen:
- EIN / AUS für LED (1 Bit) - Ich habe tatsächlich 2 Bit verwendet, um mit den Motoren konsistent zu sein, aber einer reicht aus
- AUS/RECHTS/LINKS für 5 Motoren: je 2 Bit = 10 Bit
Insgesamt sind 11 oder 12 Bit ausreichend.
Richtungscodes:
- AUS: 00
- RECHTS: 01
- LINKS: 10
Das Steuerwort sieht so aus (bitweise):
Byte 2 ---------------- Byte 1 ----------------
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 LED-- M5-- M4-- M3-- M2-- M1--
- M1 - Greifer
- M2 - Handgelenk
- M3 - Ellbogen
- M4 - Schulter
- M5 - Basis
Byte 1 könnte bequem direkt in das Schieberegister eingespeist werden, da es die Rechts/Links-Richtung der Motoren 1 bis 4 steuert.
Für die Kommunikation ist ein Timeout von 2 Sekunden aktiviert. Tritt ein Timeout auf, werden alle Motoren gestoppt, als ob eine ROTE Taste gedrückt wurde.
Schritt 8: SKIZZEN und mehr…
HANDSCHUH
Handschuhskizze verwendet die folgenden Bibliotheken:
- DirectIO - verfügbar auf Github
- I2Cdev - verfügbar auf Github
- Draht - Teil der Arduino IDE
- MPU6050 - verfügbar auf Github
- SPI - Teil der Arduino-IDE
- RF24 - verfügbar auf Github
und drei von mir entwickelte Bibliotheken:
- AvgFilter - verfügbar von Github
- DhpFilter - verfügbar auf Github
- TaskScheduler - verfügbar auf Github
Handschuhskizze ist hier verfügbar: Handschuhskizze v1.3
ARMSTEUERUNGSBOX
Die Armskizze verwendet die folgenden Bibliotheken:
- DirectIO - verfügbar auf Github
- PinChangeInt - verfügbar auf Github
- SPI - Teil der Arduino-IDE
- RF24 - verfügbar auf Github
und eine von mir entwickelte Bibliothek:
TaskScheduler - verfügbar auf Github
Armskizze ist hier verfügbar: Armskizze v1.3
Datenblätter für verwendete Hardware
- 74HC595 Schieberegister - Datenblatt
- L293D Motortreiber - Datenblatt
- nRF24 Funkmodul - Datenblatt
- MPU6050 Beschleunigungsmesser/Gyroskop-Modul - Datenblatt
31. Mai 2015 UPDATE:
Eine neue Version von Handschuh- und Armsteuerkastenskizzen ist hier verfügbar: Handschuh- und Armskizzen v1.5
Sie befinden sich auch hier auf github.
Änderungen
- Zwei weitere Bytes zur Kommunikationsstruktur hinzugefügt, um die angeforderte Motorgeschwindigkeit für Handgelenk-, Ellenbogen-, Schulter- und Basismotoren als 5-Bit-Wert (0.. 31) vom Handschuh proportional zum Winkel der Steuergeste zu senden (siehe unten). Die Arm Control Box ordnet die Werte [0.. 31] den jeweiligen PWM-Werten für jeden der Motoren zu. Dies ermöglicht eine schrittweise Geschwindigkeitssteuerung durch den Bediener und eine präzisere Armhandhabung.
- Neue Gesten:
1. LED: Tastensteuerungs-LED - Mittelfingertaste - EIN, Kleinfingertaste - AUS
2. GRIPPER: Flexible Streifensteuerungen Greifer - halb gebogener Finger - OFFEN, vollständig gebogener Finger - SCHLIESSEN
3. HANDGELENK: Das Handgelenk wird durch Kippen der Handfläche aus der vollständig horizontalen Position nach OBEN bzw. UNTEN gesteuert. Mehr Neigung erzeugt mehr Geschwindigkeit
4. ARM: Der Arm wird durch Neigen der Handfläche aus der vollständig horizontalen Position LINKS und RECHTS gesteuert. Mehr Neigung erzeugt mehr Geschwindigkeit
5. SCHULTER: Die Schulter wird durch Drehen der Handfläche nach RECHTS und LINKS von der gerade nach oben zeigenden Handfläche gesteuert. Handfläche wird entlang der Ellenbogenachse gedreht (wie beim Winken mit der Hand)
6. BASE: Die Base wird genauso gesteuert wie die Schulter, wobei die Handfläche gerade nach unten zeigt.
Schritt 9: WAS NOCH?
FANTASIE BEI DER ARBEIT
Wie bei solchen Systemen üblich, könnten sie so programmiert werden, dass sie noch viel mehr können.
Zum Beispiel enthält das aktuelle Design bereits zusätzliche Fähigkeiten, die mit der Standard-Fernbedienung nicht möglich sind:
- Schrittweise Geschwindigkeitserhöhung: Jede Motorbewegung wird mit einer vordefinierten Minimalgeschwindigkeit eingeleitet, die alle 1 Sekunde schrittweise erhöht wird, bis eine Maximalgeschwindigkeit erreicht ist. Dies ermöglicht eine genauere Steuerung jedes der Motoren (insbesondere des Handgelenks und des Greifers)
- Schnellere Bewegungsabbruch: Wenn die Arm Box den Befehl zum Stoppen eines Motors empfängt, dreht sie den Motor kurzzeitig für etwa 50 ms um, wodurch die Bewegung "unterbrochen" wird und eine genauere Steuerung ermöglicht wird.
WAS SONST?
Vielleicht könnten aufwendigere Steuergesten implementiert werden. Oder simultane Gesten könnten für aufwendige Steuerungen verwendet werden. Kann der Arm tanzen?
Wenn Sie eine Idee haben, wie Sie den Handschuh neu programmieren können, oder eine Version einer Skizze haben, die ich testen soll - lassen Sie es mich bitte wissen: [email protected]
Schritt 10: *** WIR GEWONNEN !!! ***
Dieses Projekt gewann den ersten Preis im von Microsoft gesponserten Wettbewerb Coded Creations.
Hör zu! WOO-HOO!!!
Zweiter Preis in den codierten Kreationen
Empfohlen:
So erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow
So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir
So steuern Sie ein Gerät mit Raspberry Pi und einem Relais – DIE GRUNDLAGEN: 6 Schritte
So steuern Sie ein Gerät mit Raspberry Pi und einem Relais - DIE GRUNDLAGEN: Dies ist ein einfaches und unkompliziertes Tutorial zur Steuerung eines Geräts mit Raspberry Pi und einem Relais, das für die Erstellung von IoT-Projekten hilfreich ist folgen Sie, auch wenn Sie keine Ahnung von Raspberry haben
Messen Sie den Innenwiderstand der Batterie in 4 Schritten: 4 Schritte
4 Schritte zum Messen des Innenwiderstands des Akkus: Hier sind die 4 einfachen Schritte, die Ihnen helfen können, den Innenwiderstand des Akkus zu messen
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
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Hinzugefügte Informationen: 4 Schritte
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen … Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Zusätzliche Informationen: Wenn Sie jemals auf eine Website gehen und ein Lied abspielen, das Sie mögen und es wollen, dann ist hier das anweisbare für Sie, nicht meine Schuld, wenn Sie etwas durcheinander bringen (nur so wird es passieren, wenn Sie ohne Grund anfangen, Dinge zu löschen) ) Ich konnte Musik für