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

Arduino Zweibeiner (Baby Dino)

Komponenten und Verbrauchsmaterialien

Arduino Mega 2560
× 1
9-V-Batterie (generisch)
× 1
SparkFun Ultraschallsensor - HC-SR04
× 1
SG90 Micro-Servomotor
× 5

Über dieses Projekt

Baby Dino ist ein zweibeiniger Roboter basierend auf Arduino. Es verwendet im Wesentlichen fünf Servomotoren, zwei für jedes Bein und einen für den Kopf. Es verwendet auch einen Ultraschallsensor, um Hindernisse zu erkennen und ihnen auszuweichen. Sehen wir uns nun an, wie man es macht!

Schritt 1:Einführung

  • Baby Dino ist ein DIY-Roboter, der Arduino verwendet.
  • Es besteht aus Pappe.
  • Es findet Hindernisse und bewegt sich dann nach links oder rechts.

Schritt 2:Erforderliche Komponenten

  • 1 X Arduino Uno, Nano oder Mega
  • 5 x 9g Servo
  • 1 X HC-SR04 Ultraschallsensor
  • 1 X LiPo-Akku (2s oder 9v Akku)

Schritt 3:Servo reparieren

  • Laden Sie das Programm herunter
  • Auf Arduino hochladen
  • Schließen Sie das Servo gemäß dem Diagramm unten an
  • Repariere das Servohorn
  • Stellen Sie sicher, dass alles im 90-Grad-Winkel steht
fix.ino

Schritt 4:Design

  • Laden Sie das Design herunter
  • Drucken Sie es auf A4
  • Auf Karton kleben
  • Hör auf

Schritt 5:Letzter Schritt

  • Befestige die Servos an Karton
  • Laden Sie das Programm auf Arduino hoch
  • Verbinde die Servos und den Ultraschallsensor
  • Verwalte das Kabel als Schwanz
  • Batterie anschließen

Das ist es!

uBipedino.ino

Code

  • fix.ino
  • zweibeinig
fix.inoArduino
#include Servo s1; Servo s2; Servo s3; Servo s4; Servo s5; Void setup () { s1.attach (8); s2.attach(9); s3.attach(10); s4.attach(11); s5.attach (12);}void loop () { s1.write (90); s2.write(90); s3.write(90); s4.write(90); s5.write(90); }
zweibeinigArduino
Bearbeiten Sie die Servo- und Ultraschall-Pins nach Ihren Wünschen
#include  #include // Bearbeiten Sie die Pins entsprechend Ihrer Verbindung#define IRsensorPin 13// wenn Sie stattdessen einen IR-Sensor verwenden Ultraschallsensor#define TRIGGER_PIN 12 // Arduino-Pin mit Trigger-Pin des Ultraschallsensors verbunden.#define ECHO_PIN 11 // Arduino-Pin mit Echo-Pin des Ultraschallsensors verbunden.#define LEFTLEG 7#define RIGHTLEG 10#define LEFTFOOT 8#define RIGHTFOOT 9#define HEAD 6#define MAX_DISTANCE 200 // Maximale Entfernung, die wir anpingen möchten (in Zentimeter). Der maximale Sensorabstand beträgt 400-500 cm. NewPing-Sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing-Setup der Pins und des maximalen Abstands.Servo Lleg; // Servo-Objekt erstellen, um ein Servo zu steuern Servo Rleg;Servo Lfoot;Servo Rfoot;Servo Head;int Hcenter =70; // Variable zum Speichern der mittleren Servoposition Int RLcenter =100;int RFcenter =65; // Variable zum Speichern der mittleren Servoposition Int LLcenter =90;int LFcenter =75;int tAngle =30; // Neigungswinkelint uAngle =35; // Drehwinkelint sAngle =35; // Schwenkwinkelint hAngle =Hcenter; Void Forward (Byte-Schritte, Byte-Geschwindigkeit) {Serial.println ("Forward"); TiltRightUp(tAngle, Geschwindigkeit); for (Byte j=0; j 0; i-=5) { Lfoot.write (LFcenter + i); Rfoot.write(RFcenter+i); Verzögerung (sp); }}void TiltLeftUp(byte ang, byte sp){// nach links kippen für (int i=0; i<=ang; i+=5){ Lfoot.write (LFcenter-i); Rfoot.write(RFcenter-i); Verzögerung (sp); }}void TiltLeftDown (byte ang, byte sp) {// nach links nach unten neigen für (int i =ang; i> 0; i-=5) { Lfoot.write (LFcenter-i); Rfoot.write(RFcenter-i); Verzögerung (sp); }}void LeftFootUp(char ang, byte sp){// nach links kippen für (int i=0; i<=ang; i+=5){ Lfoot.write(LFcenter-i); Verzögerung (sp); }}void LeftFootDown (byte ang, byte sp) {// nach links nach unten neigen für (int i =ang; i> 0; i-=5) { Lfoot.write (LFcenter-i); Verzögerung (sp); }}void RightFootUp(byte ang, byte sp){// nach rechts kippen für (int i=0; i<=ang; i+=5){ Rfoot.write (RFcenter+i); Verzögerung (sp); }}void RightFootDown (byte ang, byte sp) {// nach rechts nach unten neigen für (int i =ang; i> 0; i-=5) { Rfoot.write (RFcenter + i); Verzögerung (sp); }}void SwingRight (Byte ang, Byte sp) {// nach rechts schwingen für (int i=0; i<=ang; i+=5){ Lleg.write (LLcenter-i); Rleg.write(RLcenter-i); Verzögerung (sp); }}void SwingRcenter(byte ang, byte sp){//swing r-> center for (int i=ang; i>0; i-=5) { Lleg.write (LLcenter-i); Rleg.write(RLcenter-i); Verzögerung (sp); }}void SwingLeft (Byte ang, Byte sp) {// nach links schwingen für (Byte i=0; i<=ang; i=i+5) { Lleg.write (LLcenter+i); Rleg.write(RLMitte+i); Verzögerung (sp); }}void SwingLcenter(byte ang, byte sp){//Swing l-> center for (byte i=ang; i>0; i=i-5) { Lleg.write (LLcenter+i); Rleg.write(RLMitte+i); Verzögerung (sp); }}void RightLegIn (byte ang, byte sp) {// nach rechts schwingen für (int i=0; i<=ang; i+=5) { Rleg.write (RLcenter-i); Verzögerung (sp); aufrechtzuerhalten. Verzögerung (sp); }}void RightLegOut (byte ang, byte sp) {// nach rechts schwingen für (int i=0; i<=ang; i+=5){ Rleg.write (RLcenter+i); Verzögerung (sp); }}void RightLegOcenter (byte ang, byte sp) {//Swing r-> center for (int i=ang; i>0; i-=5) { Rleg.write (RLcenter+i); Verzögerung (sp); }}void LeftLegIn (Byte ang, Byte sp) {// nach links schwingen für (Byte i=0; i<=ang; i=i+5) { Lleg.write (LLcenter+i); Verzögerung (sp); }}void LeftLegIcenter (Byte ang, Byte sp) { // Swing l-> center for (Byte i =ang; i> 0; i =i-5) { Lleg.write (LLcenter + i); Verzögerung (sp); }}void LeftLegOut (Byte ang, Byte sp) {// nach links schwingen für (Byte i=0; i<=ang; i=i+5) { Lleg.write (LLcenter-i); Verzögerung (sp); }}void LeftLegOcenter (Byte ang, Byte sp) {//Swing l-> center for (Byte i=ang; i>0; i=i-5) { Lleg.write (LLcenter-i); Verzögerung (sp); }}void setup () { Serial.begin (19200); Serial.println("Bipedino-Setup wird ausgeführt."); Lleg.attach(LEFTLEG); Rleg.attach(RIGHTLEG); Lfoot.attach(LEFTFOOT); Rfoot.attach (RECHTER FUSS); Head.attach (KOPF); CenterServos(); Verzögerung (500); for (int i =0; i <5; ++i) { GetSonar(); Verzögerung (1000); } Serial.println ("Bipedino ist bereit.");} // setup ()void loop () { unsigned int cmCenter =MAX_DISTANCE; unsigned int cmLeft =MAX_DISTANCE; unsigned int cmRight =MAX_DISTANCE; HeadCenter(); cmCenter =GetSonar(); if (cmCenter <20) { HeadRight(); cmRechts =GetSonar(); HeadCenter(); if (cmRight> 20) { TurnRight (1, 30); aufrechtzuerhalten. Sonst { HeadLeft(); cmLeft =GetSonar(); HeadCenter(); if (cmLeft> 20) { TurnLeft (1, 30); } } } else {int nSteps =cmCenter / 5; if (nSchritte> 5) { nSchritte =5; aufrechtzuerhalten. Sonst { nSteps =1; } Serial.print ("Schritte <"); Serial.print (nSteps); Serial.println(">"); for (int n =0; n  

Kundenspezifische Teile und Gehäuse

Schaltpläne


Herstellungsprozess

  1. Schnuller
  2. Babytrage
  3. Babytücher
  4. Babynahrung
  5. Kinderwagen
  6. Arduino Spybot
  7. FlickMote
  8. Selbstgemachter Fernseher B-Gone
  9. Hauptuhr
  10. Hindernisse vermeiden Roboter mit Servomotor