bzqp
Published © CC BY

Super Bot Gears - a 3D-printed Arduino starter kit

5in1 educational Arduino-compatible set I made for my nieces

BeginnerFull instructions provided2,959
Super Bot Gears - a 3D-printed Arduino starter kit

Things used in this project

Hardware components

3D printed plastic elements
×19
M3 washers
×3
M3 14mm bolt
×1
M3 12mm bolt
×4
8mm bolts + 4mm bolts (sold with servos)
×1
SG90 mini servo
×3
Dupont-style jumper wires, male-male, female-male
×420
10kOhm potentiometer
×1
Resistor 220 ohm
Resistor 220 ohm
×5
6800 Ohm - 10 kOhm resistors
×5
5V LED
×1
10-20 kOhm photoresistors
×4
HW-504 joystick
×1
5V powers supply unit or a 5V 450mA phone charger
×1
400 points solderless breadboard
×1
USB cable
×1
small screwdriver
×1
empty cardboard box - optional
×1
Arduino Nano R3
Arduino Nano R3
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

3D Printer (generic)
3D Printer (generic)

Story

Read more

Custom parts and enclosures

Instructions English

Assembly instructions of the Super Bot Gears set in English. A5 format.

Instructions Polish

Assembly Instructions of the Super Bot Gears set in Polish. A5 format.

Box Label English

The label for the box in English. A4 format.

Box Label Polish

The label for the box in Polish. A4 format.

1x_base

1x_base

1x_base_adapter

1x_base_adapter

1x_beam_constrained

1x_beam_constrained

1x_beam_free

1x_beam_free

1x_claw

1x_claw

1x_double_beam

1x_double_beam

1x_eyes

1x_eyes

1x_flower

1x_flower

1x_gripper

1x_gripper

1x_gripper_adapter

1x_gripper_adapter

1x_joystick

1x_joystick

1x_knob

1x_knob

1x_loops

1x_loops

2x_hinge

2x_hinge

6x_washer_(optional)

6x_washer_(optional)

Schematics

Blink diagram

Blink diagram

Fade Diagram

Fade Diagram

Power Flower Diagram

Power Flower Diagram

Robo Arm Diagram

Robo Arm Diagram

Wild Dragon Diagram

Wild Dragon Diagram

Code

BlinkSBG.ino

Arduino
Blink code
void setup() {

  pinMode(13, OUTPUT);
}


void loop() {
  digitalWrite(13, HIGH);   
  delay(500);                       
  digitalWrite(13, LOW);    
  delay(500);                       
}

Extra Fade code

Arduino
Extra Fade code
void setup() {

  pinMode(13, OUTPUT);
}


void loop() {
  digitalWrite(13, HIGH);   
  delay(map(analogRead(A0),0,1023,0,15));
  digitalWrite(13, LOW); 
  delay(map(analogRead(A0)+31,0,1023,15,0));                       
                 
}

DragonSBG.ino

Arduino
Wild Dragon code
#include <Servo.h>
Servo myservo1;
Servo myservo2;
Servo myservo3;
int x=0;
int y=0;
int z=180;
int posx=0;
int posy=0;
int posz=0;
int z2=180;
int u=0;
int v=0;

void setup() {

    Serial.begin(9600);
    pinMode(A5,INPUT_PULLUP);
myservo1.attach(9);
myservo2.attach(10);
myservo3.attach(11);
}

void loop() {

u=map(analogRead(A0),0,1023,0,6);

if(z2<posz-3){
  z2=z2+u+1;
}
else if (z2>posz+3){
  z2=z2-u-1;
}
else{
  int ran=random(0,2);
  z=(map(ran,0,1,150,180));
  digitalWrite(13,!ran);
  posz=random(130,180);
}


if(x<posx-3){
  x=x+u;
}
else if (x>posx+3){
  x=x-u;
}
else{
  x=posx;
  posx=random(0,180);
}
myservo1.write(x);
myservo2.write(y);
myservo3.write(z);


delay(60);
Serial.println();
Serial.println(posx);
Serial.println(x);
Serial.println(posz);
Serial.println(z);

}

Robo Arm code

Arduino
#include <Servo.h>
Servo myservo1;
Servo myservo2;
Servo myservo3;
int x=180;
int y=120;
int z=180;

void setup() {

    Serial.begin(9600);
    pinMode(2,INPUT_PULLUP);
myservo1.attach(9);
myservo2.attach(10);
myservo3.attach(11);
}

void loop() {

int dx=map((analogRead(A6)-512), -512, 512, -3, 4);
int dy=map((analogRead(A5)-512), -512, 512, -3, 4);

x=x+dx;
y=y+dy;


if(x<2){
  x=2;
}
if(x>178){
  x=178;
}
if(y<65){
  y=65;
}
if(y>150){
  y=150;
}

if (digitalRead(2)==LOW) {
  if(z==180){
    z=120;
  }
  else{
    z=180;
  }
  delay(150);
}


myservo1.write(x);
myservo2.write(y);
myservo3.write(z);
delay(50);
Serial.println();
Serial.println(x);
Serial.println(dx);
Serial.println(y);
Serial.println(dy);
Serial.println(z);
Serial.println(digitalRead(2));

}

FlowerSBG.ino

Arduino
Power Flower code
#include <Servo.h>
Servo myservox;
Servo myservoy;
int x=180;
int y=180;
void setup() {


    Serial.begin(9600);
myservox.attach(9);
myservoy.attach(10);
}

void loop() {

  
if(analogRead(A1)>analogRead(A2)&&abs(analogRead(A1)-analogRead(A2))>20){
  
  x=x+1;
}
else if(analogRead(A1)<analogRead(A2)&&abs(analogRead(A1)-analogRead(A2))>20){
  x=x-1;
}
else{
  x=x;
  delay(100);
}

if(analogRead(A3)>analogRead(A4)&&abs(analogRead(A3)-analogRead(A4))>20){
  y=y+1;
}
else if(analogRead(A3)<analogRead(A4)&&abs(analogRead(A3)-analogRead(A4))>20){
  y=y-1;
}
else{
  y=y;
  delay(100);
}


if(x<0){
  x=0;
}
if(x>180){
  x=180;
}
if(y<0){
  y=0;
}
if(y>180){
  y=180;
}
Serial.println(180-x);
Serial.println(y);
Serial.println();
Serial.println(analogRead(A1));
Serial.println(analogRead(A2));
Serial.println(analogRead(A3));
Serial.println(analogRead(A4));
Serial.println();
myservox.write(180-x);
myservoy.write(y);
delay(25);
}

Credits

bzqp

bzqp

4 projects • 8 followers

Comments