Ferngesteuerte Roboter-Arm (MeArm) mit pfodApp

3 Schritt:Schritt 1: Construction Schritt 2: Kalibrieren des Gripper Schritt 3: Probleme mit der MeArm

Ferngesteuerte Roboter-Arm (MeArm) mit pfodApp

Einführung


Dieses Projekt zeigt, wie Sie Ihre Kontrolle MeArm von Ihrem Android-Handy, mit pfodApp . Mit Schiebereglern auf Ihrem Handy können Sie jeden der vier Servomotoren zur Drehung nach unten steuern, auf / in / out und Greifer öffnen / schließen.
Hinweis: Es gibt ein Problem mit der Steuerung dieser Roboterarm die unten besprochen wird, mit Kommentaren von phenoptix.
Das hier verwendete Skizze muss mit pfodApp V1.2.57 laufen + so aktualisieren Sie Ihre pfodApp, wenn Sie eine frühere Version sind.
Diese Hinweise sind auch auf www.pfod.com.au unter Remote Controlled Robotic Arm
Schritt 1: Construction

Ferngesteuerte Roboter-Arm (MeArm) mit pfodApp

Ferngesteuerte Roboter-Arm (MeArm) mit pfodApp

Hier ist die Stückliste .
Erste verdrahten Sie die Prototypen-Board, wie oben gezeigt
An den Servoanschlüsse ist die braune Leitung GND und die mittlere rote Kabel ist + 5V und das gelbe Kabel ist die Steuerleitung. Die Steuerleitungen sind verdrahtet D6 (Rotation), D9 ausgibt (in / out), D10 (oben / unten), D11 (Greifer).
Die 1000uF Kondensator wird über die + 5V und GND verdrahtet. Die -ve-Kennzeichnung wird auf GND verdrahtet (siehe Foto oben) (siehe auch Fragen unten diskutiert)
Herunterladen und Installieren der pfodParser Bibliothek und programmieren Sie Ihre Arduino Uno mit dieser Skizze (dann RoboticArmRemoteControl.ino ). Diese Skizze muss mit pfodApp V1.2.57 laufen + so aktualisieren Sie Ihre pfodApp , wenn Sie eine frühere Version sind.
Stecken Sie den Bluetooth-Schild in die Uno und stecken Sie das Prototypen-Board auf und schließen Sie das USB-Versorgung. Hinweis: Sie müssen die Bluetooth-Schild unplugged zu haben, während Sie Ihre Uno programmieren oder die Programmierung fehl.
Installieren pfodApp auf Ihrem Android-Handy und eine Verbindung zu dem Bluetooth-Schild gesetzt wie in der beschriebenen pfodAppforAndroidGettingStarted.pdf Führer.
Sie können nun mit Ihrem Handy um die Servos von 0 bis 180 Grad zu positionieren, wie Sie die MeArm zu konstruieren. Die Skizze hat Anstiegsgeschwindigkeitsbegrenzung hinein gebaut, so, wenn Sie den Schieberegler bewegen sich die Servos langsam an ihre neue Position zu verschieben.
Meine MeArm war V0.4 und ich folgte dieser Anleitung Taschenformat-Roboter-Arm-meArm-V04.pdf . Obwohl, wenn ich fertig war, fand ich meine Greifer Servoarm war 90degs von ihrem Bild anders, aber es funktionierte so ließ ich es. Ich brauchte, um zwei der Kunststoffscheiben Raum im Greifer Verknüpfung hinzufügen, um die Höhenunterschiede auszugleichen.
Bolt die Uno-Stack auf die MeArm Grundplatte (Sie müssen einige zusätzliche 3 mm Schrauben und Muttern für diese, habe ich solche aus Kunststoff) .. Schritt 2: Kalibrieren des Gripper

Ferngesteuerte Roboter-Arm (MeArm) mit pfodApp

Der Bewegungsbereich für den Greifer ist sehr klein zu 19degs in meinem Roboterarm. Sie benötigen, um die Skizze an Ihre Greifer Bewegung entsprechen. Diese Codezeile am unteren Rand der send_menuContents () Methode setzt den Bereich der Greiferbewegung.
parser.print (F ("` 2080`1884 ~% Geschlossen ~ 0,510204 ~ -1884 ")); // Das für Ihre Greifer Einstellungen
Die 2080 ist die max Sie uns für dieses Schieberegler. Der 1884 ist der min Sie uns für dieses Schieber (0 bis 180 DEGS ist 544 bis 2040uS) Die 0,510204 ist der Maßstab und die -1884 der Offset, so dass die pfodApp zeigt 0 bis 100% für den Schieber. Siehe pfodSpecification.pdf für die Details.
Für Ihren Arm, müssen Sie die Maximal- und Minimalwert zu öffnende bestimmen, und schließen Sie den Greifer. Um dies zu tun, zeitlich trennen Sie das Servohebel aus dem Greifer und schließen Sie den Greifer Servokabel mit einem der anderen Servoausgänge. Die sorgfältig bewegen Sie den Servo, mit der pfodApp Schieber, und bestimmen Sie den Bewegungsbereich für vollständig geöffnet und vollständig geschlossen ist.
Öffnen Sie nun die Debug-Bildschirm auf pfodApp aus dem Menüpunkt mobil und finden Sie die Befehle, die in Ihren Arm gesendet werden sehen. Zum Beispiel {B`2080}
In dem Screenshot habe ich zeitlich auf die In / Out-Laufwerk (D9) und 2045 verbunden den Greifer ist der Maximalwert für Greifer vollständig schließen, damit wird die erste Nummer. Einstellung der Greifer geöffnet und die Überprüfung der Debug-Bildschirm gibt, sagen wir 1900, dass die zweite Anzahl und auch die letzte Nummer (Offset) wird.
parser.print (F ("` 2045`1900 ~% Geschlossen ~ ???? ~ -1900 "));
Diese ersten beiden Zahlen begrenzen die Reichweite des Schiebers auf pfodApp so dass Sie nie versuchen, über Nähe oder über den Greifer öffnen. Die letzten beiden Zahlen sind der Maßstab und Offset, die durch pfodApp verwendet werden, um zu berechnen, was mit Ihnen auf dem Bildschirm angezeigt. Wenn Sie 1,0 und 0,0 eingestellt, dann wird der Bildschirm einen Schieberegler von 1900 bis 2045 zeigen Die verwendete Formel Anzeigewert = (Schieberegler Einstellung + Offset) * Skala
Also bis 1900 erhalten, um 2045, um anzuzeigen, wie 0 bis 100% Wir setzen den Offset -1900 und die Waage 100 / (2045-1900) = 0,68966 so wird der Code
parser.print (F ("` 2045`1900 ~% Geschlossen ~ 0,69866 ~ -1900 ")); Schritt 3: Probleme mit der MeArm


Es gibt eine Reihe von Problemen mit der Fernsteuerung des MeArm V0.4 von denen der schwerwiegendste ist die Instabilität in der Drehstellung.

Instabilität der Drehservo


Zuerst ein wenig Informationen über die Servos. Das Arduino Servo-Bibliothek sendet der Servos einer befohlenen Position mittels variabler Pulsbreite. Ein Impuls 544uS lange Mittel 0 Grad und ein 2400uS Puls bedeutet 180 Grad. Der Servo misst den Puls, um festzustellen, wo es sein sollte, und dreht sich, bis seine interne Positionssensor der befohlenen Position passt dann.
Das Problem ist jetzt, dass heißt, wenn der Arm ist sein Gewicht und Flexibilität gedreht, dass, wenn der Servo nicht mehr dreht den Arm in Bewegung bleibt und schiebt den Servo Vergangenheit, wo es sein sollte. Der Servo sieht, dass seine internen Positionssensor ist falsch und beginnt, wieder in die entgegengesetzte Richtung fahren. Aber, wenn der Servo bleibt wieder das gleiche passiert, und der Arm wieder drückt der Servo weiter.
Die Servos sehr mächtig und die Bewegungen sind bösartig und so eine Schwingung ist eingerichtet. In meinem Fall der Arm schüttelte nur hin und her. Ich konnte es dämpfen mit meiner Hand, aber jede geringfügige Moment oder Beule des Arms könnte es wieder auf den Weg.
Dies betraf nur die Drehservo, die In / Out, Up / Down und Greifer, wo Sie auf OK. Ein Re-Design des Hauptdrehlager kann die Situation zu verbessern, aber ich bin mir nicht sicher. Zusätzlichen Widerstand in der Drehung würde helfen, diese Schwingungen dämpfen. Hoffentlich V1.0 von MeArm besser sein wird.
Update von phenoptix.com 26. Januar 2015: "Ein Blick auf Ihre Statur und der auf meinem Schreibtisch, die ich gebaut am Freitag und lief in Probleme mit Nervosität, ich denke, das Problem könnte unsere neue, stärker, Digital-Servos sein. Ich bin in das Problem suchen und lassen Sie wissen, wenn ich kommen mit einem Heilmittel. "

Interdependenz der In / Out, Up / Down Bereiche.


Ein weiteres Problem ist, dass die zulässige Bewegungsbereich auf In / Out und Up / Down voneinander abhängig. Es wird als eine Übung für den Leser, um zu bestimmen und den Code diese voneinander abhängigen Grenzen verlassen.

Servo Stromversorgung Störungen.


Ein weiteres Problem ist, dass die Servos ziehen viel Strom, wie sie arbeiten. Ohne die 1000uF Kondensator der Uno setzt und / oder die Bluetooth-Verbindung verliert Schild regelmäßig. Mit der 1000uF Kondensator passiert es selten, aber immer noch gelegentlich. Bessere Isolation des Servoversorgung von der Uno / bluetooth Versorgung würde helfen. Dies wird auch als Übung dem Leser überlassen.
Update von phenoptix.com 26. Januar 2015: "Wenn Sie die Servos auf meine Vin anstatt 5V und Leistung von einer 6V (idealerweise 3A) Stromversorgung Sie weniger braun outs aus Mangel an Macht und setzt von Gegen-EMK zu erhalten. USB ist nur gut für 1A vor dem Polyfuse auf den Ardunio zurückgesetzt! "
Ich weiß nicht ganz einverstanden mit diesem Rat für eine Reihe von Gründen: -
a) 6V 3A Versorgungen sind keine Ware Artikel im Gegensatz zu USB liefert 5V und
b) die Servos bei 4,8 V Nenn so ein 6V Versorgung 20% ​​Nennspannung und
c) 6V Vin ist weniger als die empfohlene Zufuhr für Arudino aufgrund der Spannungsabfall in der an Bord Regler.
Also mein Vorschlag ist es, eine gut geregelte 5V 3A oder höher Versorgung direkt an den Uno 5V Schiene verbunden (über den Prototypen-Board + 5V-Schiene) verwenden. Hinweis: Die Versorgung muss auch geregelt werden (dh glatte Ausgangsspannung), wie es die Befugnisse der Mikro -Prozessor direkt.
Ich habe nicht diese Lösung zu implementieren, noch nicht.

Abschluss


Während es war großartig macht den Arm und Fernsteuern es von meinem Android, die Schwingungen in der rotatorischen Position den Spaß verdorben und seine Nützlichkeit stark einschränkt. Ich bin gespannt auf die fix aus phenoptix.