Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bouw Sauron: De Semi-Humanoïde Robot – Complete Arduino Mega 2560 Handleiding

Onderdelen en benodigdheden

Onderdeel Aantal
Arduino Mega 2560 1
1Sheeld (Bluetooth shield voor smartphone sensoren) 1
Android toestel 1

Benodigde tools en machines

  • Lasersnijder (voor houten delen)

Apps en online services

  • Arduino IDE
  • 1Sheeld Mobile App (Google Play)
  • 1Sheeld Bibliotheek

Over dit project

Bouw Sauron: De Semi-Humanoïde Robot – Complete Arduino Mega 2560 Handleiding

Bouw een mensgrote semi-humanoïde robot geïnspireerd op Sauron uit Lord of the Rings. De robot heeft twee 3-DOF armen, een 3-DOF hoofd en een vast fundament. Drie bedieningsmodi, schakelbaar via twee drukknoppen (of 1Sheeld toggle buttons):

  1. Standby-modus – Autonome bewegingsserie voor demonstraties.
  2. Gamepad-modus – Handmatige besturing via 1Sheeld Gamepad shield.
  3. Imitatie-modus – Robot kopieert armenbewegingen van de gebruiker via smartphone sensoren (orientatie/gyroscoop) in een handschoen.

Ontworpen voor New York Maker Faire om kinderen te inspireren voor techniek (Arduino, 1Sheeld). Alle bestanden (CAD, schema's, code, DXF voor lasersnijder) zijn bijgeleverd.

Stap 1: Robotkop bouwen

Gebruik van open-source robotkop "Fritz" van xyzbot. Lasergesneden 3mm multiplex. 3D-geprinte oogdelen, wenkbrauwen en lippen weggelaten voor kosten/tijd. Volg de originele bouwvideo, maar sla basis- en 3D-print stappen over.

Stap 2: Robotlichaam bouwen

Draagconstructie van Artelon staven (50mm, 25mm, 15mm) en 3mm multiplex, verbonden met tong-en-groef verbindingen en schroeven (M4x20, M12x30, M4x10). Modulair ontwerp voor transporteerbaarheid. Zie bijgevoegde PDF-tekeningen.

Stap 3: Robotbasis maken

6mm staalplaat met gewichtsverlichtende openingen. Bevestiging aan bureau met 3 schroeven of 4-inch C-klemmen. DXF-bestand bijgeleverd.

Stap 4: Robotarmen bouwen

Modulaire armen met 3-DOF. Schulder: aluminium pan/tilt. Voorarm: gelasercut gesneden platen (Autodesk 123D Make). Wapen: balza hout zwaard/hak. SolidWorks model bijgeleverd voor momentberekening (3kg/cm servo's, zwaardere gekozen).

Stap 5: Sauron helm en armor (cosplay)

Gebaseerd op Instructables: Sauron Cosplay en Helm. Aangepast aan robotdimensies.

Stap 6: Electronica

  • Arduino Mega + 1Sheeld voor servo-besturing (9 servo's: 3 per arm, 2 nek, 1 mond)
  • 5V/5A voeding voor servo's en Arduino
  • Kleine printplaat voor gemeenschappelijke VCC/GND
  • 1Sheeld shields gebruikt: Gamepad, Orientation, Music Player, Toggle Button, Terminal

1Sheeld werking: Hardware shield op Arduino, Bluetooth naar Android app. Smartphone sensoren (gyroscoop, toetsenbord, audio) worden beschikbaar in Arduino.

Stap 7: Arduino Code

Code gebruikt OneSheeld en Servo bibliotheken. Interrupts op pin 2 en 3 voor moduswisseling. Drie modus-functies: standbyMode(), gamePadMode(), imitationMode().

#define CUSTOM_SETTINGS
#define INCLUDE_GAMEPAD_SHIELD
#define INCLUDE_MUSIC_PLAYER_SHIELD
#define INCLUDE_TERMINAL_SHIELD
#define INCLUDE_ORIENTATION_SENSOR_SHIELD

#include <OneSheeld.h>
#include <Servo.h>

Servo rightArm_Motor1, rightArm_Motor2, rightArm_Motor3;
Servo leftArm_Motor1, leftArm_Motor2, leftArm_Motor3;
Servo neckHorizontal, neckVertical, mouth;

const int modePin1 = 2, modePin2 = 3;
volatile int modeState1 = LOW, modeState2 = LOW;
volatile boolean gamepadMode_Enabled = false, imitationMode_Enabled = false;
const int ledPin1 = A0, ledPin2 = A1;

void setup() {
  OneSheeld.begin();
  pinMode(modePin1, INPUT); pinMode(modePin2, INPUT);
  pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT);
  digitalWrite(ledPin1, HIGH); digitalWrite(ledPin2, HIGH); // Sauron's ogen
  attachInterrupt(digitalPinToInterrupt(modePin1), gampadMode_ChangeISR, CHANGE);
  attachInterrupt(digitalPinToInterrupt(modePin2), imitationMode_ChangeISR, CHANGE);

  rightArm_Motor1.attach(4); rightArm_Motor2.attach(5); rightArm_Motor3.attach(6);
  leftArm_Motor1.attach(7); leftArm_Motor2.attach(8); leftArm_Motor3.attach(9);
  neckHorizontal.attach(10); neckVertical.attach(11); mouth.attach(12);

  // Home positie
  rightArm_Motor1.write(95); rightArm_Motor2.write(150); rightArm_Motor3.write(20);
  leftArm_Motor1.write(90); leftArm_Motor2.write(45); leftArm_Motor3.write(180);
  neckHorizontal.write(105); neckVertical.write(30); mouth.write(100);
}

void loop() {
  modeState1 = digitalRead(modePin1);
  modeState2 = digitalRead(modePin2);
  if (modeState1 == HIGH) { Terminal.println("GamePad Mode"); gamePadMode(); }
  else if (modeState2 == HIGH) { Terminal.println("Imitation Mode"); imitationMode(); }
  else { Terminal.println("Standby Mode"); standbyMode(); }
}

// Standby: voorgeprogrammeerde bewegingsserie met mondbeweging en geluid
void standbyMode() { /* ... uitgebreide sequentie met 9 posities ... */ }

// Gamepad: direct besturen via Gamepad shield knoppen
void gamePadMode() {
  if (GamePad.isUpPressed()) { /* beide armen omhoog */ }
  if (GamePad.isDownPressed()) { /* beide armen omlaag */ }
  if (GamePad.isRightPressed()) { /* rechter arm zijwaarts */ }
  if (GamePad.isLeftPressed()) { /* linker arm zijwaarts */ }
  if (GamePad.isRedPressed()) { /* combo 1 */ }
  if (GamePad.isOrangePressed()) { /* combo 2 */ }
  if (GamePad.isGreenPressed()) { /* combo 3 */ }
  if (GamePad.isBluePressed()) { /* combo 4 */ }
}

// Imitatie: smartphone orientatie → servo hoeken
void imitationMode() {
  if (OrientationSensor.getY() > -90 && OrientationSensor.getY() <= 90)
    leftArm_Motor1.write(map(OrientationSensor.getY(), -90, 90, 0, 180));
  if (OrientationSensor.getZ() > -70 && abs(OrientationSensor.getZ()) <= 70) {
    leftArm_Motor2.write(map(OrientationSensor.getZ(), 0, 60, 100, 160));
    leftArm_Motor3.write(map(OrientationSensor.getZ(), 0, 60, 160, 100));
  }
}

// Interrupt handlers voor moduswisseling
void gampadMode_ChangeISR() {
  if (gamepadMode_Enabled && !imitationMode_Enabled) { gamepadMode_Enabled = false; imitationMode_Enabled = false; }
  else { gamepadMode_Enabled = true; imitationMode_Enabled = false; }
}
void imitationMode_ChangeISR() {
  if (imitationMode_Enabled && !gamepadMode_Enabled) { gamepadMode_Enabled = false; imitationMode_Enabled = false; }
  else { gamepadMode_Enabled = false; imitationMode_Enabled = true; }
}

Stap 8: Sauron op Maker Faire New York

Foto's van de robot in actie tijdens de Maker Faire.

Stap 9: Toekomstige verbeteringen

  • Bouwvideo opnemen
  • Hoofd completeren met 3D-geprinte ogen, wenkbrauwen, lippen
  • Vaste basis vervangen door 4 mecanum wielen voor mobiliteit

Schema's

Bouw Sauron: De Semi-Humanoïde Robot – Complete Arduino Mega 2560 Handleiding

Alle bijlagen: CAD-bestanden (SolidWorks, DXF), Arduino code (F5KJZGXIKMXG3DG.ino), 1Sheeld bibliotheek.

Productieproces

  1. Industriële Robots: Ontwerp, Productie en Toekomstige Trends
  2. Bouw een DIY SCARA-robot met Arduino – Stap-voor-stap Handleiding
  3. Efficiëntie Maximeren: Een Multi‑Robot Injectie‑Moulding Cel Produceert Een Complete Shaker Cup In Één Cyclus
  4. De toekomst van automatisering: Zelfreplicerende robots vormgeven Industry 4.0
  5. Bouw het ideale ERP-implementatieteam: Bewezen strategieën voor succes
  6. Raspberry Pi Robot Bouwen: Beginner Handleiding & Projecten
  7. Consistentie verbeteren met autonome spuitrobots
  8. Hoe verfrobots herwerk reduceren, consistentie verhogen en kosten besparen
  9. Herwerkkosten in productie reduceren: strategieën voor efficiëntie en kwaliteit
  10. Robotvisie in de Industrie: Van Visie naar Zelf-Programmering
  11. Wat Is Een Zelf-Programmerende Robot En Waarom Het Belangrijk Is