Mechanischer Arm

Mechanischer Arm - Gunook

Ich habe vor einigen Tagen einen mechanischen Arm gekauft. Das Bild sieht ein bisschen süß aus. Die Verbraucher können zwischen zwei Farben wählen: Schwarz und Weiß. Ich habe mich für eine schwarze entschieden.

Es gibt vier Servos dafür. Zuerst muss man seine mechanische Hand steuern, um etwas zu fangen. Die zweite ist die Kontrolle der Höhe von Arm und Hand. Der dritte Servo dient zur Entfernung zwischen Mechanik und Objekt. Der letzte besteht darin, den mechanischen Arm nach links oder rechts zu drehen.

Zubehör:

Schritt 1: Wenn Sie die Konstruktion fertiggestellt haben, wie funktioniert es?

  1. Ich habe ein Arduino UNO-Board namens Freaduino ausgewählt, um es zu kontrollieren.
  2. Anschließen des ersten Servos mit D0-Pin in der UNO-Platine.
  3. Anschließen des zweiten Servos mit dem D1-Pin in der UNO-Platine.
  4. Anschließen des dritten Servos mit D2-Pin in der UNO-Platine.
  5. Anschließen des vierten Servos mit D3-Pin in der UNO-Platine.
  6. Überprüfen Sie, ob jedes Servo normal funktioniert. Am Ende der Passage werde ich Testcode hochladen.

Jetzt bin ich sehr begeistert davon, wie man diesen mechanischen Arm steuert. Wir können Potentiometer, Wippe oder Bluetooth verwenden, um es zu steuern. Potentiometer ist hier umständlich zu bedienen. Rocker ist universell und nicht cool genug. Also habe ich mich zuletzt für das Bluetooth-Modul entschieden.

Der letzte Schritt, das Bluetooth-Modul mit der Karte zu verbinden.

Schritt 2: Verbinden des Bluetooth-Moduls mit der Karte

Da vier Servos mit der Platine verbunden sind, geben wir der Platine zusätzliche Leistung. Andernfalls reicht die USB-Schaltung nicht aus, um dies zu unterstützen.

Wenn wir es mit der UNO-Karte steuern wollen, müssen wir die Bibliotheken von Servo in den Bibliotheksordner legen. Die Bibliotheken werden nach dem letzten Durchgang hochgeladen. Wir können die Servoklasse verwenden, um vier Variablen zu erstellen. Sowie:

Servo Servo_Catch;

Servo Servo_Height;

Servo Servo_Distance;

Servo Servo_Direction;

Und wir müssen ihnen die Nummer der Pins geben, um die entsprechenden Servos zu steuern. Wir verwenden die Funktion "Anhängen", um dies zu tun. Sowie:

Servo_Catch.attach (0);

Servo_Height.attach (1);

Servo_Distance.attach (2);

Servo_Direction.attach (3);

Diese werden von Servos initialisiert. Die nützlichste Funktion von Servos ist "write ()". Dies dient zur Steuerung der Servostufen. Wenn Sie eine Zahl in den Parameter eingeben, dreht sich das Servo in dem entsprechenden Maße. Wenn ich zum Beispiel möchte, dass das Fangservo sich um 30 Grad dreht, kann ich es wie folgt verwenden:

Servoschreiben (10);

Ist es sehr einfach zu bedienen? Als Nächstes versuchen wir, ein Programm zur Steuerung des mechanischen Arms über Bluetooth zu schreiben.

Schritt 3: Schreiben Sie ein Programm zur Steuerung des mechanischen Arms über Bluetooth

Hier verwende ich Bibliotheken von ElecfreaksCar direkt, um Daten vom Bluetooth-Modul zu empfangen. Es wird einfach, wenn ich die Bibliotheken benutze.

Wir können die Klasse ElecfreaksCar verwenden, um eine neue Variable mit dem Namen BluetoothModule zu erstellen, wie zum Beispiel:

ElecfreaksCar BluetoothModule;

Und wir verwenden die Funktion "recievedData ()", um Daten zu empfangen, die von Bluetooth stammen. Wir verwenden die Funktionen "getRoll ()" und "getPitch ()", um Daten der Wippe von APP zur Steuerung des mechanischen Arms abzurufen. Jetzt ist es ein Beispiel für die Verwendung von APP zum Ein- und Ausschalten der LED auf der UNO-Platine.

#include "ElecfreaksCar.h" ElecfreaksCar BluetoothModule; int ledPin = 13; void setup () {Serial.begin (115200); pinMode (ledPin, OUTPUT); } void loop () {while (Serial.available ()) {uint8_t c = Serial.read (); BluetoothModule.recievedData (& c, 1); } if (BluetoothModule.getRoll ()> 125) {digitalWrite (ledPin, LOW); } else {digitalWrite (ledPin, HIGH); }}

Schritt 4: Ändern Sie es, damit es den mechanischen Arm über Bluetooth steuern kann

Natürlich verwenden wir diese Funktionen nicht zur Steuerung der LED. Also modifizieren wir es, damit es den mechanischen Arm über Bluetooth steuern kann. Jetzt liste ich Funktionen zur Klasse ElecfreaksCar auf:

getRoll (); // Es werden Rolldaten von 0 bis 250 zurückgegeben

getPitch (); // Es werden Daten der Tonhöhe von 0 bis 250 zurückgegeben. setFun (void (* Function) ()); // Der Funktionssatz wird ausgeführt, wenn der Benutzer die APP-Taste drückt.

Dies ist ein Programm über den mechanischen Arm, den ich geschrieben habe. Und Sie können es ändern, um sich ein mechanisches Armprogramm zu erstellen.

#umfassen
"ElecfreaksCar.h"

#include "Servo.h

ElecfreaksCar BluetoothModule; //definieren
eine Variable der Klasse ElecfreaksCar mit dem Namen BluetoothModule

Servo Servo_Roll; // Dies ist ein Servo, um die Richtung zu drehen

Servo Servo_Distance; // Dies ist ein Servo, das den Abstand zwischen der mechanischen Hand und dem Objekt regeln soll.

Servo Servo_Catch; // Dies ist ein Servo, das die manchanische Hand steuern soll, um zu fangen oder loszulassen.

schweben
P = 125,00; // Dies ist der Wert der Tonhöhe. Dieser Wert ist Mittelwert, wenn die Wippe in der Mitte ist

float R = 125,00; // Dies ist der Wert von roll. Dieser Wert ist Mittelwert, wenn die Wippe in der Mitte ist

vorzeichenloses Zeichen Flag_Catch = 0; // Dies ist eine Flagge darüber, ob die maschinelle Hand fängt oder nicht

Leere
Taste () // Diese Funktion wird ausgeführt, wenn der Benutzer die Taste der APP berührt

{

if (Flag_Catch == 1)

{

Servo_Catch.write (0); //Fang

Flag_Catch = 0;

}

sonst

{

Servo_Catch.write (90); //loslassen

Flag_Catch = 1;

}

}

Leere
Konfiguration()

{

Serial.begin (115200); //Baudrate

BluetoothModule.setFun (Button); // Der Arduino führt die Funktion aus, die sich im Parameter befindet. Hier wird die Funktion von "Button" ausgeführt

Servo_Catch.attach (2); // das servo von catch ist mit pin D2 verbunden

Servo_Distance.attach (4); // Das Servo zur Steuerung des Abstands zwischen der mechanischen Hand und dem Objekt ist mit dem Stift D4 verbunden

Servo_Roll.attach (5); // Das Servo der Steuerrichtung ist mit Pin D5 verbunden

}

leere Schleife ()

{

while (Serial.available ()) // Wenn Daten von Bluetooth stammen, werden diese in die Funktion von while übernommen

{

uint8_t c = Serial.read (); // lese die Daten von serial com

BluetoothModule.recievedData (& c, 1); // erhalte die Daten

P = (float) BluetoothModule.getPitch (); // Hole die Daten der Tonhöhe

R = (float) BluetoothModule.getRoll (); // Hole die Daten von roll

P = P *
0,72; //Das ist wichtig. Der Wert der Wippe von APP liegt zwischen 0 und 250. Der Servo-Grad liegt zwischen 0 und 180 Grad.

// Also müssen wir den Wert von pitch multiplikativ machen (180/250).

R = R * 0,72; // das selbe wie pitch

}

Servo_Distance.write ((int) P); // Servo so einstellen, dass der Grad läuft

Servo_Roll.write ((int) R);

}

ElecfreaksCar
APP-Download:

http: //www.elecfreaks.com/wiki/index.php? title = Blu ...

Bibliotheken Download:

http: //www.elecfreaks.com/estore/download/Librarie ...

Weitere DIY-Elektronikprojekte finden Sie unter: http://www.elecfreaks.com/page/1