Inhaltsverzeichnis:
- Schritt 1: Teileliste
- Schritt 2: Schaltplan
- Schritt 3: Hand … Konzept
- Schritt 4: Hand … Prototyp
- Schritt 5: Hand … Konstruktion
- Schritt 6: Software … Android
- Schritt 7: Arduino-Software
- Schritt 8: Zusammenfassung
Video: Sprachgesteuerte Roboterhand - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Dieses anweisbare erklärt, wie man eine sprachgesteuerte Roboterhand mit einem Arduino Uno R3, einem HC-06 Bluetooth-Modul und fünf Schrittmotoren baut. [1]
Bluetooth-Sprachbefehle werden von Ihrem Android-Handy an den Arduino Uno R3-Interpreter gesendet, der die Hand steuert.
MIT AppInventor 2 wurde verwendet, um die Android-App zu schreiben, die die Leistungsfähigkeit von Google-Speech-To-Text nutzt. [2]
Die Hand, die aus einem 20 mm x 3 mm großen Aluminium-Strangpressprofil und einem Kleiderbügel aus Draht besteht, wurde konstruiert, um einige Ideen zu testen. Die Konstruktionstechniken und der Code können für andere von Interesse sein.
Features sind:
- Einfach zu machen
- Individuelle Fingerbewegungen
- Gruppenfingerbewegungen
- Programmierbare Handformen für verschiedene Aufgaben
- Leicht
- Jeder Finger ist kabelgesteuert …
- Funktioniert unter Wasser, sollte dies erforderlich sein (keine Motoren zu kurz)
Ohne Ihr Mobiltelefon betragen die geschätzten Kosten für den Bau dieses Projekts weniger als 100 $
Bilder
Foto 1 zeigt die mechanische Hand.
Foto 2 zeigt die an der Motorbaugruppe befestigte Hand.
Foto 3 zeigt den Bluetooth (Handy) Sprachcontroller
Foto 4 ist ein Screenshot mit einem typischen Dialog
Das Video zeigt die sprachgesteuerte Hand in Aktion
Anmerkungen
[1]
Die Schrittmotoren stammen aus vergangenen Projekten. Servomotoren sollten mit ein paar Codeänderungen gleich gut funktionieren.
[2]
MIT AppInventor 2 ist unter https://appinventor.mit.edu/ frei verfügbar.
Die VTT.apk-App (Voice To Text) und der VTT.aia-Code für dieses Projekt werden in diesem anweisbaren vorgestellt, falls Sie es anpassen möchten.
Schritt 1: Teileliste
Die folgenden Teile wurden von https://www.aliexpress.com/ bezogen:
- 1 nur Arduino UNO R3 mit USB-Kabel
- 1 nur Prototyp PCB Breadboard für Arduino UNO R3
- 1 nur HC-06 Bluetooth-Modul
- Nur 5 17HS3430 Nema17 12-Volt-Schrittmotoren
- Nur 5 Big Easy Driver v1.2 A4988 Schrittmotor-Treiberplatinen
- Nur 5 GT2 20 Zähne Aluminium Zahnriemenscheibe Bohrung 5 mm Breite 6 mm mit Schraube
- 5 nur GT2 Umlenkrolle Bohrung 4mm mit Lager für GT2 Zahnriemen Breite 6mm 20Zähne
- nur 5 GT2 Zahnriemengummi mit geschlossenem Regelkreis 6mm 160mm
- 1 nur Pkt 120pcs 10cm Stecker auf Stecker + Stecker auf Buchse und Buchse auf Buchse Überbrückungsdraht Dupont-Kabel für Arduino DIY-Kit
Folgende Teile wurden vor Ort bezogen:
- 1 nur Länge 20 mm x 3 mm Aluminium-Strangpressprofil
- 1 nur 120mm x 120mm Stück Altaluminium
- 1 nur 200 mm x 100 mm x 6 mm Kompositionstafel (für Hand- und Handgelenkverlängerung)
- 1 nur 500mm x 500mm x 6mm Verbundplatte (für Grundplatte)
- 1 nur kurze Länge (ca. 520 mm) Schrott 18 mm x 65 mm Holz (für Fußplattenbeine)
- 1 nur Kleiderbügel aus Draht (ca. 2,4 mm Durchmesser)
- 1 nur langer Vorhangdraht
- 1 nur Vorhangauge
- 1 einzige Rolle 30lb Nylon Angelschnur
- 1 nur kurzes Hut-Gummiband
- 1 nur pkt kabelbinder
- 1 nur 1200 Ohm 1/8 Watt Widerstand
- 1 nur 2200 Ohm 1/8 Watt Widerstand
- 1 nur 1N5408 3-A-Leistungsdiode
- 1 nur SPST (einpoliger Single Throw) Schalter
- 1 nur 2-polige Leiterplattenklemme
- 15 nur M3 x 9mm Nylon-Gewindeabstandshalter
- 30 nur M3 x 5mm Schrauben (für Nylon-Abstandshalter)
- 30 nur M3 x 10mm Schrauben (für Finger & Motorhalterungen)
- 2 nur M4 x 15mm Schrauben (für Handgelenkverlängerung)
- 5 nur M4 x 30mm Schrauben (für Umlenkrollen)
- 17 nur M4 Muttern (für Umlenkrollen)
- 12 nur Holzschrauben (für Fußplattenbeine)
Die geschätzten Kosten für diese Teile betragen weniger als 100 US-Dollar
Schritt 2: Schaltplan
Der Schaltplan für die Roboterhand ist in Foto 1 gezeigt
Der passende Motor / Bluetooth-Schild ist in Foto 2 gezeigt
Die Big Easy Drivers sind in Foto 3 zu sehen.
Die Big Easy Driver Motorcontroller unterstützen die Daisy-Chain-Verkabelung
Motorverkabelung
Es kann erforderlich sein, die beiden Mitteldrähte von jedem 17HS3430 Nema17 12-Volt-Schrittmotor umzukehren, da die Big Easy Driver v1.2 A4988 Schrittmotor-Treiberplatinen erwarten, dass die Drähte von jeder der Spulenwicklungen benachbart sind.
Um dies zu erreichen, müssen die beiden Mitteldrähte von jedem Motor ausgetauscht werden (Foto 4).
Die Standardfarbsequenz für die 17HS3430-Kabel (für meine Motoren) ist rot, blau, grün, schwarz. Die Farbfolge nach der Modifikation ist rot, grün, blau, schwarz.
Die rot-grüne Wicklung wird an die „A“-Klemmen des Big Easy Driver angeschlossen.
Die blaue, schwarze Wicklung wird an den „B“-Klemmen des Big Easy Driver befestigt.
Big Easy Driver Strombegrenzungen
Die Strombegrenzung jedes Big Easy Drivers muss auf 400mA (Milli-Ampere) eingestellt werden.
Um das zu erreichen:
- Schalten Sie den Strom aus [1]
- Trennen Sie Ihren Arduino
- Trennen Sie jedes Motorkabel
- Drehen Sie jedes der Strombegrenzungs-Potentiometer auf den A4988 Big Easy Driver Boards ganz im Uhrzeigersinn
- Legen Sie 12 Volt an die Big Easy Drivers an … Sie sollten einen Stromwert zwischen 90 mA und 100 mA erhalten. Dies ist der Strom, der von LEDs gezogen wird.
- Schalten Sie die 12-Volt-Versorgung aus [1]
- Stecken Sie den „Daumen“-Motor ein, legen Sie Strom an und stellen Sie den Versorgungsstrom auf 490 mA ein
- Schalten Sie die 12-Volt-Versorgung aus [1]
- Ziehen Sie den Daumenmotor ab.
- Wiederholen Sie die Schritte 6, 7, 8, 9 für jeden der verbleibenden Motoren
Stecken Sie alle Motorkabel in die entsprechenden Controller.
Der gesamte Versorgungsstrom beträgt etwas mehr als 2 Ampere, wenn Strom angelegt wird
Notiz
[1]
Stecken Sie NIEMALS einen Schrittmotor ein oder ziehen Sie ihn ab, wenn Strom anliegt. Der induktive „Kick“(Spannungsspitze) kann die Steuerungen beschädigen.
Schritt 3: Hand … Konzept
Meine erste Roboterhand, beschrieben in https://www.instructables.com/id/Robot-Hand-2/, hat viele kleine Teile und verwendet Klebeband für die Gelenke.
Diese alternative Hand ist robuster, hat weniger Teile und ist einfacher herzustellen.
Die obigen Fotos zeigen das Grundkonzept … wenn Sie den Mittelbolzen eines Stromabnehmers entfernen, hat das „Gelenk“eine Drehung von mindestens 90 Grad [1]
Notiz
[1]
Ich beabsichtigte, den Pantograph-Arm in meinem Aktuator-Plotter https://www.instructables.com/id/CNC-Actuator-Plo zu verwenden, gab die Idee jedoch auf, da es aufgrund der großen Anzahl von Gelenken zu viel unerwünschte Bewegung gab.
Schritt 4: Hand … Prototyp
Die obigen Fotos zeigen, wie aus einem Stück Aluminium-Strangpressprofil und einem Kleiderbügel aus Draht ein „Finger“hergestellt werden kann.
Das Gelenk hat eine glatte Aktion und ist bemerkenswert robust.
Schrauben und Muttern sind nicht erforderlich … ein Lötklecks an jedem Drahtende sichert sie.
Schritt 5: Hand … Konstruktion
Für diese Hand sind nur wenige Werkzeuge erforderlich … nur eine Bügelsäge, ein paar Bohrer und eine Feile.
Schritt 1
- Zeichne einen Umriss deiner Hand auf Papier. (Foto 1)
- Markieren Sie Ihre „Knöchellinie“und Ihre wichtigsten „Fingergelenke“
- Ignorieren Sie Ihre Fingerspitzen … sie verbiegen sich normalerweise nicht so stark … eine Fase reicht aus. Wenn eine leichte Biegung erforderlich ist, kann diese später hinzugefügt werden.
Schritt 2
- Schneiden Sie fingerlange Abschnitte aus dem Aluminiumstrang (Foto 2)
- Bohren Sie vier Löcher mit Kleiderbügeldurchmesser … eines in jede Ecke des Aluminiumprofils. (Foto 4)
- Bohren Sie hinter jedem der ersten Löcher ein Loch mit kleinerem Durchmesser. Diese werden für das Hutgummi und die Nylonsehnen verwendet. (Foto 4)
- Schneiden Sie Drahtstücke vom Kleiderbügel ab und biegen Sie jedes Ende um 90 Grad
- Überkreuzen Sie die Drähte, wenn Sie die Aluminium-Fingerabschnitte verbinden. Die Drähte werden von gegenüberliegenden Seiten eingeführt.
- Sichern Sie die Drähte, indem Sie an jedem Drahtende Lötzinn auftragen. Machen Sie sich keine Sorgen, dass das Lot am Aluminium kleben bleibt … das tut es nicht.
- Entfernen Sie Lötflussmittel von den Verbindungen mit Mineralterpentin (oder ähnlichem) und tragen Sie dann einen Tropfen Nähmaschinenöl auf. Tupfe überschüssiges Öl mit einem Papiertuch ab.
Schritt 3
- Befestigen Sie jeden Finger mit „L“-förmigen Aluminiumklammern, die aus einem Stück Aluminiumblech gefertigt sind, an der Holzhandform.
- Feilen Sie die Rücklaufsperren so, dass die Finger bei voller Streckung gerade sind. (Foto 4)
Schritt 4
Befestigen Sie den Daumen (Foto 2). Die Daumenhalterung sieht kompliziert aus, ist aber einfach ein „L“-förmiges Stück Aluminiumblech, das schräg geschnitten ist. Die 90-Grad-Biegung wird dann geschnitten und die Enden gespreizt
Schritt 5
- Binden Sie ein Stück Hutgummi zwischen die verbleibenden oberen Löcher (Foto 4).
- Passen Sie die Spannung an, bis sich die Finger gerade ausstrecken.
Schritt 6
- Befestigen Sie Nylonsehnen (Angelschnur) an den unteren Fingerlöchern.
- Führen Sie jede Nylonsehne durch Löcher mit einem Durchmesser von 2 mm, die in ein (gebogenes) Stück Holz gebohrt sind. Diese Löcher wirken wie Vorhangaugen. (Foto 2)
Schritt 7:
Eine Vorhangöse wird verwendet, um die Richtung der Nylon-Daumensehne zu ändern. Die Vorhangöse ist in einen Nylon-Abstandshalter mit M3-Gewinde eingeschraubt, der sich auf der anderen Seite der Hand befindet
Schritt 6: Software … Android
Foto 1 zeigt den „Design“-Bildschirm von MIT AppInventor 2 für meine VTT-Anwendung (Voice-To-Text).
Foto 2 zeigt die in dieser Anwendung verwendeten „Blöcke“.
Fotos 3 und 4 sind die kleinen PNG-Grafiken, die ich verwendet habe. Das Mikrofon ist eine kostenlose Grafik von irgendwo … das Bluetooth-Symbol ist von mir.
Code lesen
- Die oberen beiden linken "Blöcke" verbinden Ihr Telefon mit dem Arduino, wenn Sie die Taste "Bluetooth" drücken.
- Die mittleren beiden linken „Blöcke“senden Ihren Sprachbefehl an das Arduino, wenn Sie die „Mikrofon“-Taste drücken. Der Text wird mit Google Speech_To_Text erstellt.
- Alle Sprachbefehle erscheinen als Text über dem „Mikrofon“-Symbol.
- Die unteren beiden linken „Blöcke“übertragen diesen Text auf die Schaltfläche „Benutzerdefiniert“, falls Sie beim Testen einen Befehl wiederholen möchten.
- Die unteren beiden rechten Blöcke senden die Worte „open“und „close“an die Hand. Ich dachte, diese wären beim Testen nützlich.
- Die oberen drei rechten „Blöcke“steuern das Timing.
VTT.apk
Die angehängte VTT.apk-Datei ist die eigentliche Android-Telefonanwendung.
So installieren Sie VTT.apk:
- Kopieren Sie VTT.apk auf Ihr Telefon (oder senden Sie es sich als Anhang per E-Mail)
- Ändern Sie Ihre Telefoneinstellungen, damit Apps von Drittanbietern installiert werden können
- Laden Sie ein APK-Installationsprogramm von https://play.google.com/store herunter
- Führen Sie das Installationsprogramm aus.
VTT.aia
Eine alternative Methode zum Installieren des Codes besteht darin:
- Erstellen Sie ein MIT AppInventor-Konto
- Laden Sie MIT AppInventor 2 von https://appinventor.mit.edu/ herunter und installieren Sie es.
- Laden Sie „MIT AI2 Companion“von https://play.google.com/store herunter und installieren Sie es auf Ihrem Telefon.
- Imitieren Sie Foto 1 auf Ihrem „Design“-Bildschirm
- Replizieren Sie die in Foto 2 gezeigten Blöcke
- Führen Sie „MIT AI2 Companion“auf Ihrem Telefon aus
- Klicken Sie auf „Erstellen | App (QR-Code für.apk bereitstellen)“
- Klicken Sie auf die QR-Option auf Ihrem Telefon, wenn der QR-Code angezeigt wird
- Folgen Sie den Anweisungen.
Schritt 7: Arduino-Software
Installationsanleitung
Laden Sie die angehängte Datei „VTT_voice_to_text_7.ino“herunter.
Kopieren Sie den Dateiinhalt in eine neue Arduino-Skizze und speichern Sie.
Laden Sie die Skizze auf Ihren Arduino hoch.
Designhinweise
Die englische Sprache ist äußerst komplex.
Oft gibt es mehrere Möglichkeiten, dasselbe zu sagen. In den folgenden Beispielen haben „Hand“und Finger“die gleiche Bedeutung:
- „Öffne deine Hand“……………………………………… bezieht sich auf deine Hand
- „Öffne deine Finger“…………………………………… bezieht sich auf deine Hand
Keywords können aber auch unterschiedliche Bedeutungen haben:
- „Öffne deine Finger“………………………………….. bezieht sich auf deine Hand
- „Öffne deinen Zeige- und Mittelfinger“………… bezieht sich auf bestimmte Finger
Sinnvolle Befehle erfordern mindestens zwei Schlüsselwörter. Die folgenden Befehle führen nicht zu einer Handaktion, da sie nur ein Schlüsselwort haben:
- „offen“…………………………………………………..ein Stichwort „offen“[1]
- „Gib mir eine Hand“……………………………………….ein Stichwort „Hand“
- „Gib mir einen Schraubenschlüssel“………………………………… ein Stichwort „Hand“
Um diese Befehle zu interpretieren, habe ich Schlüsselwörter mit ähnlicher Bedeutung wie folgt gruppiert:
- Mehrere Finger: „Hand“, „Finger“, „Öffnen“, „Schließen“, „Loslassen“[1]
- Spezifische Finger: "Daumen", "Zeige", "Mitte", "Ring", "Klein"
- Finger öffnen: „öffnen“, „heben“, „strecken“, „loslassen“[1]
- Finger schließen: „schließen“, „senken“[1]
- Aufgaben: "tragen", "halten", "pick", "demo", "kalibrieren"
Jeder Keyword-Gruppe ist ein „Flag“zugeordnet. Um natürliche Sprache zu interpretieren, wird jedes Mal, wenn ein Schlüsselwort erkannt wird, ein Flag oder eine Flag-Gruppe ausgelöst. Der Sprachübersetzer muss sich nur die Flag-Kombinationen ansehen, um herauszufinden, welche Aktionen erforderlich sind.
Rekursion
Eine Rekursion tritt auf, wenn ein Befehl sich selbst einmal oder mehrmals aufruft.
Nehmen wir an, einige Ihrer Finger sind ausgestreckt und andere geschlossen. Nehmen wir auch an, dass Sie Ihren Daumen gestreckt und Ihre Finger geschlossen haben möchten, wie wenn Sie etwas tragen.
Methode 1
Die folgenden beiden Sprachbefehle erreichen dies:
- „Öffne deine Hand“
- „Schließe deinen Zeigemittelring und deine kleinen Finger“
Methode 2
Anstatt zwei separate Befehle auszugeben, können Sie eine „carry()“-Aufgabe erstellen:
„trage das für mich“
Dieser Befehl aktiviert die Funktion „carry()“, die dann Folgendes ausgibt:
- Prozess ("Öffne deine Hand");
- Prozess ("Schließen Sie Ihren mittleren Ring und kleinen Finger des Zeigefingers")
Diese rekursive Aktion ermöglicht die Erstellung komplexer Handformen.
Notiz
[1]
Der Einfachheit halber habe ich den Interpreter so programmiert, dass er „Öffnen“, Schließen und „Freigeben“als Einzelwortbefehle akzeptiert.
Schritt 8: Zusammenfassung
Dieses anweisbare zeigt, wie eine Roboterhand aus einer kurzen Länge von Aluminiumextrusion und einem Drahtkleiderbügel konstruiert werden kann.
Die Hand wurde konstruiert, um einige Ideen zu testen. An den Fingerspitzen sind Ohrstöpsel angebracht, um den Halt zu verbessern.
Features sind:
- Einfach zu machen
- Jeder Finger ist kabelbetrieben.
- Individuelle Fingerbewegungen
- Gruppenfingerbewegungen
- Programmierbare Handformen für verschiedene Aufgaben
- Kostengünstig
- Leicht
- Funktioniert unter Wasser, sollte dies erforderlich sein (keine Motoren zu kurz)
Jeder Finger ist kabelbetrieben. Angelschnur aus Nylon wird für die Sehnen verwendet, die jeweils durch ein Stück flexiblen Vorhangdrahts geführt werden.
Foto 2 im Intro-Bereich zeigt zwei Kabel … eines mit 2 Sehnen … das andere mit drei. Dies ist bei großen Biegeradien in Ordnung, da sonst die Finger beim Biegen der Kabel zum Kleben neigen. Dies wurde durch die Verwendung von fünf separaten Kabeln im Video überwunden
Während Nylon-Angelschnur funktioniert, neigt sie dazu, sich zu dehnen. Angelvorfach aus Edelstahl wäre die bessere Wahl … Ich habe eine Rolle auf Bestellung.
Die Aktuatoren bestehen aus Schrittmotoren und Endlosbändern. Die Spannglieder werden mit Kabelbindern an den Antriebsriemen befestigt.
Dieses Projekt sollte genauso gut mit Servomotoren funktionieren. Wenn Sie sich für die Verwendung von Servos entscheiden, sind geringfügige Codeänderungen erforderlich.
Bluetooth-Sprachbefehle werden von einer Android-Handy-App an Ihr Arduino gesendet.
Der Code für die Handy-App wurde mit MIT AppInventor 2 entwickelt und ist in dieser Anleitung veröffentlicht.
Der Arduino-Sprachinterpreter ist äußerst zuverlässig. Der Code, der in diesem instructable enthalten ist, kann in anderen Projekten von Nutzen sein.
Ohne Ihr Mobiltelefon betragen die geschätzten Kosten für den Bau dieses Projekts weniger als 100 $
Klicken Sie hier, um meine anderen instructables anzuzeigen.