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