I was trying to design a Bo-robot based on miniQ platform. Thanks to the 3D printing technology, I can print a bionic case of high-quality and lightness in a low cost.


Step 2: ​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.

Step 3:

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

Step 4:

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

Step 5:

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

Step 6:

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)

Step 7:

Follow tutorial and assemble a miniQ car

Step 8:

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

Step 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.

Step 10:

And here comes our finished Beetle Car

Step 11: 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.

Step 12: 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.

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.

Program Running

#include // 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




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.

<p>Planning on making this, but where are the files for the 3D models?</p>
<p>Uploaded, sry for the late reply</p>

About This Instructable



More by EmmaSong:How To Build a  Basic Arduino Robot How to Make a Pet Wearable How to Make a Terrifying Halloween Gadget (Arduino-Based) 
Add instructable to: