Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Menschlicher Kopf zu Roboterkopf

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Servomotor
× 3
Android-Gerät
× 1
Regulierte Netzteilplatine
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)

Apps und Onlinedienste

SensoDuino

Über dieses Projekt

Planen Sie etwas Neues, aber nicht so kostspieliges. Ich mag Robotik sehr. Aber aufgrund des Bedarfs an Servos und anderen Teilen möchte ich es nicht machen. Jetzt habe ich 4 Servomotoren kosten nur 13 $. Ich habe bereits Link es ein Board und Arduino Board.

Planen Sie also einen Roboterkopf, der sich in allen Achsen wie unser Kopf bewegt, aber billig. Studiere für verschiedene Sensoren und Methoden, finde aber endlich einen Weg mit allen Gegenständen in meiner Hand. Viele Dinge, die ich während dieses Projekts studiere. Komm, ich erkläre, was ich studiere. Ich erwähne in Fettdruck, was ich lerne.

Verwenden Sie den Smart Mobile Tilt-Sensor, um den Kopf zu steuern

Schritt 1:Benötigte Materialien

Von mir verwendete Materialien

1) Arduino uno.

2) Verknüpfe ein Board.

3) 3 Servomotoren.

4) SensoDuino kostenlose Android-App Hier herunterladen.

5) Geregelte Stromversorgungsplatine (12V,5V,3.3V).

6) Einfache Leiterplatte.

7) PCB-Stecker

8) Abfallaluminium, das geschnittenes Stück füttert.

9) Heißklebepistole.

10) 12V und 5V Adapter.

11) Einige weitere Gegenstände zum Dekorieren.

Warum Linkit ein Board und Arduino uno

Wenn Sie eine Linkit-Platine und einen 3V-Servomotor haben, ist Arduino UNO nicht erforderlich, da mein 5V-Servo in nicht einwandfrei funktioniert Verknüpfe ein Board.

Wenn Sie Arduino uno und ein Bluetooth-Modul haben, ist nicht erforderlich Verknüpfe ein Board.

Ich habe kein Bluetooth-Schild, also gehe ich mit Linkit One Board und Arduino uno.

Schritt 2:Eigenes Servoschild

1) Machen Sie ein Servomotorschild für Arduino. (Seien Sie vorsichtig, wenn Sie sogar 3V-Servos verwenden, Linkit hat nur 2 PWM-Pins)

2) Ich mache eine Abschirmung wie eine Platine für den Servomotor.

3) Mit dieser Platine können wir 6 Servomotoren von Arduino Pind (3,5,6,9,10,11) steuern.

4) Hier werden 3-Draht-Servos verwendet. wo die Stromversorgung über eine externe 5-V-Regler-Stromversorgungsplatine erfolgt.

5) Verwenden Sie während des Steuerservos die Adapterversorgung für das Arduino-Board. Weil PC-USB-Netzteile Vibrationen verursachen. Dies führt zu einer Überhitzung des Servomotors und einer Beschädigung des Servomotor . (einer meiner Servoschäden)

Schritt 3:Linkit zu einer Verbindung machen

1) Linkit möchte mit Arduino sprechen, um die Servos zu steuern.

2) Verbinden Sie dazu den Tx des Linkit-Boards mit dem Rx des Arduino-Boards und beide Gnd.

3) wann immer die empfangenen Daten an den Arduino gesendet werden.

Hinweis:-

Wenn Sie ein Arduino-Bluetooth-Schild haben, steuern Sie das gesamte Setup mit einer Platine.

Schritt 4:Servoposition

1) Stellen Sie alle Servomotoren auf 90 Grad ein. Laden Sie dazu das obige Programm auf arduino hoch..

2) Verbinden Sie die Servo- und Arduino-Stromversorgung mit der Netzteilplatine des Reglers an 5V- und 12V-Pins.

3) Verbinden Sie die Servobuchse mit dem Stecker, wenn die Platine in den Arduino-Digitalstiften 3,5,6 hergestellt wird.

3) Schließen Sie den 12-V-Adapter an die Stromversorgungsplatine des Reglers an.

4) Schalten Sie den Adapter ein.

5) Jetzt drehen sich alle Motoren um 90 Grad gemäß Programm.

Trennen Sie nun die Motoren zum Zusammenfügen, ohne den Rotor zu stören.

Position Arduino IDE-Code wird als Servoposition.ino angegeben


Schritt 5:Planen

1) Kopf rotiert in 3 Achsen x,y,z.

2) Die Drehungen sind

a) Gieren - Siehe links und rechts.

b) Pitch -Siehe nach oben und unten

c) Roll-Shake seitlich.

3) Verwenden Sie zuerst ein doppelseitiges Klebeband, um die Servos zu planen.

4) Schneiden Sie das Aluminium-Trennteil in L-Form, um das obere Servo am zweiten zu befestigen.

5) Schließen Sie das Servomotorhorn gemäß Ihrem Plan oder wie im Bild gezeigt an

6) Die gesamte Servomitte muss bei 90 Grad gerade sein.

7) Kleben Sie alle Servos und das Aluminium-L-Stück mit doppelseitigem Klebeband zusammen und überprüfen Sie, ob die Bewegung andere Servos stören kann.

Schritt 6:Konstruktion

1) Jetzt ist es an der Zeit, es dauerhaft zu reparieren.

2) Entfernen Sie die doppelseitigen Aufkleber einzeln und befestigen Sie sie dauerhaft mit einer Heißklebepistole.

3) Passen Sie auf, dass Sie die Servos nicht beschädigen.

4) Verbinden Sie den Servostecker erneut mit der Arduino-Platine und schalten Sie die Versorgung ein

5) Passen Sie alle an wie beim letzten Bild.

Schritt 7:Details zur Android-App

1) Öffnen Sie SensoDuino in Ihrem Android-Handy. Es hat Optionen, um alle mobilen Sensormesswerte anzuzeigen und sie über Bluetooth zu senden.

2) Alle neuesten Sensoren werden aufgelistet und wir können nur auswählen, welche Sensoren in unserem Telefon verfügbar sind.

3) Gehen Sie zum Menü und wählen Sie Bluetooth verbinden.

4) Die Liste zeigt die verfügbaren Bluetooth-Geräte.

5) Wählen Sie das Linkit One Bluetooth aus.

6) Für unser Projekt verwenden wir Orientierungssensor. Aktivieren Sie das erste Kästchen und das zweite Kästchen, um Daten über Bluetooth zu senden.

7) Wir stellen auch die Leistung jedes Sensors ein, indem wir die Leistungsoption im Menü auswählen. Ändern Sie das Zeitintervall für jeden Messwert.

Schritt 8:Codierung

1) Zwei Codierungen sind hier eine für Linkit.

Mit Bluetooth erhält es Daten vom Handy und sendet sie über den seriellen Port an den Arduino

2) Arduino-Programm

Wenn Daten an der seriellen Schnittstelle empfangen werden, werden die Zeichen als Zeichenfolge verkettet. Und mit indexof und substring teilen Sie ein vollständiges Ergebnis. Verwenden Sie in diesem Satz erneut den Indexof und den Teilstring, um jede Position zu erhalten. Verwenden Sie die Karte in Arduino, um das Servo von 0 bis 180 Grad zu steuern. Wenn Sie Bluetooth-Schild verwenden, ändern Sie das Programm entsprechend den Anforderungen.

Funktionsweise des Programms

1) Mit dem Orientierungssensor dreht der Roboter den Kopf wie wir.

a) Yaw ist die Drehung von 0 bis 360 Grad gemäß der magnetischen Position. Dafür verwenden wir 90 bis 270 Grad, wobei 180 der 90-Grad für Servo ist. Wir möchten also beim Tragen der Kappe 180 Grad als Schnur zeigen.

b) Pitch ist vorne oben und unten. Der Sensormesswert beträgt -180 bis + 180. Wir verwenden -90 bis +90.

c) Die Rolle ist auf der Schüttelseite 0 bis 90 bis 0 bis -90 bis 0. Wir verwenden -90 bis 90.


Linkit ein Code ist in Linkitonehead.ino angegeben

Arduino-Code wird in Arduinohead.ino angegeben


Schritt 9:Bestellen Sie die Platinen

1) Verbinden Sie beide Schirmplatinen mit der Oberseite beider Mikrocontroller.

2) Fügen Sie alles mit doppelseitigem Aufkleber übereinander ein.

3) Pass auf, dass du kein Terminal erschießt.

Schritt 10:Trail mit der Hand

Schalten Sie nun die gesamte Versorgung ein und verwenden Sie das Handy in der Hand. Setzen Sie sich mit dem Gesicht zu 180 Grad in die Gierung und verwenden Sie das Handy, um alle drei Servomotoren zu steuern.

Schritt 11:Gesicht reparieren

1) Es ist Weihnachtszeit, also habe ich viele Weihnachtsmann-Puppen im Laden gefunden.

2) Kaufen Sie eine Puppe und befestigen Sie den Kopf mit einem doppelten seitlichen Hahn am oberen Servoarm.

Schritt 12:Bereiten Sie einen Kontrollhut vor

1) Nimm einen normalen Hut.

2) Kleben Sie einen doppelseitigen Aufkleber auf die Vorderseite der Kappe, wie in der Abbildung gezeigt.

3) Kleben Sie Ihr Mobiltelefon über das doppelseitige Klebeband.

Schritt 13:Video testen

Niedrige Leistung testen bedeutet die Bildwiederholfrequenz des Sensors alle 250 Millisekunden.

Schritt 14:Endgültiges Video

Sehen Sie sich die Aktion bei einer Sensorleserate von einem Messwert pro 100 Millisekunden an

Code

  • Servoposition.ino
  • Linkitonehead.ino
  • Arduinohead.ino
Servoposition.inoArduino
#include  Servo leftright;Servo updown;Servo Shake;void setup () { Serial.begin (9600); leftright.attach(3); updown.attach(5); shake.attach(6); leftright.write(90); updown.write (90); schütteln.schreiben(90); }void loop() {}
Linkitonehead.inoArduino
#include #include int readval;String inputString ="";String outputString ="";int firstpoint=0;int secondpoint=0;void setup() { if(! LBTServer.begin((uint8_t*)"Sivam_LIO")) { zurück; } // Serial.begin (9600); Serial1.begin (9600); }void loop () { uint8_t buf[64]; int bytesRead; if (LBTServer.connected()) { while (true) { bytesRead =LBTServer.readBytes (buf, 32); if(!bytesRead) break; inputString=""; for(int j=0;j<32;j++) { char inChar =char(buf[j]); // zum inputString hinzufügen:inputString +=inChar; } // Serial.println (inputString); Serial1.println(inputString);// firstpoint=inputString.indexOf('>');// Serial.println(inputString);// Serial.println(firstpoint);// if (firstpoint>0)// {/ / secondpoint=inputString.indexOf('>',firstpoint+1);// if (secondpoint>0)// {// outputString=inputString.substring(firstpoint,secondpoint);// inputString=inputString.substring(secondpoint); // Serial.println (outputString); // } // } } Verzögerung (100); aufrechtzuerhalten. Sonst { LBTServer.accept(5); }}
Arduinohead.inoArduino
#include  Servo leftright;Servo updown;Servo shake;String inputString ="";boolean stringComplete =false;String teststr2;String sensorid;String sensorrecid;String sensorval1;String sensorval2;String sensorval3;int S1;int S2;int S3;int startchr=0;int endchr=0;int rot1;int rot2;int rot3;void setup() { Serial.begin (9600); // inputString.reserve (200); leftright.attach(3); updown.attach(5); shake.attach(6);}void loop() {}void serialEvent() { while (Serial.available()) { char inChar =(char)Serial.read(); if (inChar !='\n') { inputString +=inChar; } } startchr =inputString.indexOf('>'); if (startchr>=0) { endchr =inputString.indexOf('>',startchr+1); if (endchr>0) { teststr2=inputString.substring(startchr,endchr); inputString=inputString.substring(endchr); startchr =teststr2.indexOf(','); sensorid =teststr2.substring(1,startchr); endchr =teststr2.indexOf(',',startchr+1); sensorrecid=teststr2.substring(startchr+1,endchr); startchr=endchr; endchr =teststr2.indexOf(',',startchr+1); sensorval1=teststr2.substring(startchr+1,endchr); startchr=endchr; endchr =teststr2.indexOf(',',startchr+1); sensorval2=teststr2.substring(startchr+1,endchr); startchr=endchr; sensorval3=teststr2.substring(startchr+1); S1=sensorval1.toInt(); S2=sensorval2.toInt(); S3=sensorval3.toInt(); rot1=map(S1, 90, 270, 180, 0); wenn (rot1<0) rot1=0; sonst if (rot1>180) rot1=180; rot2=map(S2, -90, 90, 0, 180); wenn (rot2<0) rot2=0; sonst if (rot2>180) rot2=180; rot3=map(S3, 90, -90, 0, 180); wenn (rot3 <0) rot3 =0; sonst if (rot3>180) rot3=180; if (rot1!=0 &rot1!=180) { leftright.write (rot1); aufrechtzuerhalten. Wenn (rot1!=0 &rot1!=180) {updown.write (rot2); aufrechtzuerhalten. Wenn (rot1!=0 &rot1!=180) {shake.write (rot3); } Verzögerung (15); // Serial.print ("Sensor-"); // Serial.println (sensorid); // Serial.print ("Sensor Val1-"); // Serial.println (rot1); // Serial.print (" Sensor Val2-"); // Serial.println (rot2); // Serial.print ("Sensor Val3-"); // Serial.println (rot3); } } }

Herstellungsprozess

  1. Raspberry Pi CD-Box-Roboter
  2. Rollender Alarmroboter
  3. RaspiRobot Board V2
  4. Baue einen Minecraft-Creeper-Roboter
  5. Archimedes:Die KI-Roboter-Eule
  6. Offener CV-Roboter
  7. ROS-Roboter
  8. SONBI ROBOTER MENSCHLICHE ERKENNUNG MIT KINECT UND HIMBEE PI
  9. Einfacher Pi-Roboter
  10. Humankapital