0

$USD

$USD
TUTORIALS Robotics3D Printing

How to Make a Bionic Beetle Robot

DFRobot Aug 10 2015 998

BACKGROUND
We were trying to design a Bo-robot based on miniQ platform. Thanks to the 3D printing technology, we can print a bionic case of high-quality and lightness in a low cost. This design for miniQ was also appreciated in MAKER FAIRE Bay Area 2015 and brings much more fun compared with the basic platform.


MATERIALS & TOOLS

1. Materials for the making of accessory
 

Item NO.

Name

Quantity
 

Picture

Description
1
“Skull”
 
1
3D printed
 
2
“Scalp”
1
3D printed
 
3
Wing
2
3D printed
 
4
“Mouth”
1
3D printed
 
5
M3 Screw & Nut

Several

PM Screw M3*5 (4)
PM Screw M3*8 (6)
Screw M3*12 (2)
KM Screw M3*8 (4)
KM Screw M3*15 (4)

 
6
 Mini Q Car
1
MiniQ Smart Car Exploration Kit
7
9g Steering Gear
 

 
2 TowerPro SG90 specs
 
8 Evading obstacle sensor 1 Proximity Sensor(4-30cm)
9
Lithium Cell
1
7.4V Lithium Cell
10
Iron Wire
2 -
Length: 50mm
Diameter: 1mm

 
 
 
2.tools

 

Item No.

Name

Thumbnail

Description
1
Screw-driver Kit
For fastening screws & Using it with pincer pliers makes screw-fastening faster
2
Pincer Pliers
For twisting iron wires & fixing nuts
 

MiniQ’s Body-building
1.  Assemble the components
Fix two TowerPro SG90 Servo on the “mouth” With M3*5 screws in the mounting hole 

 

Note: You need to adjust the servo angle to 90 degree before mounting.

2. Fix the two hinges in the sink on “Skull” with M3*15 screws & M3 nuts and then Mount the obstacle-avoiding sensor in front of the servos with M3*8 screws & M3 nuts

 
 

Note: KM screw (M3)for hinges to make them flexible for folding and unfolding

3. Combine “Mouth” and “Skull” with PM screws M3*12


4. Fix two wings on two hinges with KM Screws M3*8 and M3 nuts just as it is shown in the photo below.
 

5. Take two 50mm long iron wire and shape (refer to the picture on the bottom left) and then fix the twisted iron wire into the wings & the Servos with a nipper pliers ((refer to the picture on the bottom right)
 

   

6. Follow tutorial and assemble a miniQ car

7. Fix the “Scalp” inside the “Skull” with PM Screws M3*8
 
 

9. Refer to the circuit diagram and attached two of the Servos cables and one of the obstacle-avoiding sensor’s cables to the Romeo board. One of the Servos` cables shall be attached to D9 and the other shall be attached to D10 interface on the Romeo board. Obstacle-avoiding sensor cable shall be attached to Analog pin A0 on the circuit card.
 

10. And here comes our finished Beetle Car
 

Circuit
1. Circuit Diagram
To add the feature of avoiding obstacles on our Beetle car, Just connect the sensor and servo according to the following diagram.

Note: Turn the button switch to OFF side! Or, A0 won’t work right.

One of the servo’s cables is attached to No.9 digital interface and the other is attached to No.10 digital interface on the circuit card. Obstacle-avoiding sensor’s cable is attached to simulated interface A0 on the circuit card. Thus, when encountering obstacles, our Beetle car will unfold its wings.


Software
1. Program Flow Chart

The map above is a program flow chart that shows how Beetle avoids obstacles. he section between START and END is looping execution.

2. Introduction of Program
Three Steps:
A)  Data Preparation
B)  Evaluation of Conditions
C)  Delay System
Data Preparation: Process & store data collected by the obstacle-avoiding sensor;
Evaluation of Conditions?
A)  Check whether the obstacle-avoiding sensor has detected something  
B)  Check whether the servo’s rotation angle is the maximum rotating angle or the minimum rotating angle
Delay System: Adjust sequence of sections of the overall system with a delay function to make changes within the system smooth.


3. Program Running
#include <Servo.h>// Servo Usage Library
Servo myservo; // Definite the servo on the left
Servo myservo1; // Definite the servo on the right
int a=90,b=90; //Make the initial angle 90 degrees
uint16_t get_gp2d12 (uint16_t value) {// function for exchange of data about the process of avoiding obstacles. Change the figure to ***mm
        if (value < 30)
             value = 30;
        return ((67870.0 / (value - 3.0)) - 40.0);
}
void setup() {
  myservo.attach(9); // Make pin9 to be the servo on the left
  myservo1.attach(10); // Make pin10 to be the servo on the right
  pinMode (A0, INPUT); //Make Pin A0 the one for obstacle-avoiding sensor
}
void loop()  {// looping
  uint16_t range = get_gp2d12 (analogRead(A0)); // detection distance
  if(range<100){ // it’s true if the distance is less than 100mm
a++;//angle of the servo on the left increase
b--; //angle of the servo on the right decrease
  }
  else {
a--;//angle of the servo on the left decrease
b++;//angle of the servo on the right increase
 
  }
  if(a>130)a=130;//maximum rudder angle of the servo on the left to be 130 degrees
  if(a<85)a=85; //minimum rudder angle of the servo on the left to be 85 degrees
  if(b>95)b=95;//maximum rudder angle of the servo on the right to be 95 degrees
  if(b<50)b=50;//minimum rudder angle of the servo on the right to be 50 degrees
    myservo.write(a); //increase angle of the servo on the left
    myservo1.write(b);//increase angle of the servo on the right
    delay(50);//delay
}


4. Note
A) When you mount the servos on the beetle, make sure it has been 90 degree, keep them in a horizontal position;
B) According to the assembling order, when you want to disassemble the beetle car, it need to separate the miniQ platform and 3D printing material first, and then disassemble the 3D printing case;
C) Keep cable away from being squeezed when assembling;
D) Adjust MiniQ’s program once the assembling has completed. To adjust MiniQ’s program, you shall split 3D printed items and MiniQ first. Please download the program via Bluetooth and click HOW TO USE THE PROGRAM for details;
E) Once assembling has been completed, the servo and wings will connect together. Thus, please don’t try to unfold the wings in case that the servo might be broken. Metal servo is recommended.