Microbit Talking Robot

by Quantum Admirer in Living > Toys & Games

19247 Views, 57 Favorites, 0 Comments

Microbit Talking Robot

IMG_1748.JPG

As we know, Tinkercad introduces a new feature in the Tinkercad circuit, which is Microbit. We can make a virtual prototype in making things related to Microbit, and even can do a simulation. We can save lots of money to build an experiment without having to damage our electronic components. Moreover, we can add some codes to bring the experiment to work.

Unfortunately, after reading Tinkercad's blog, this launch has a drawback. When exporting the code, Tinkercad only transfers it into JavaScript language. You need to change the code by using a third-party like Microsoft Makecode, for it requires a hex file to work directly in Microbit.

Initially, I made a simulation in Tinkercad to build and explore this experiment. Turnout, my simulation is not like I expected. My next step is I prepared the code using Microsoft Makecode, for I will use continuous servos instead of micro servos, which Tinkercad only provided micro servos in the circuit.

I decided to make a robot using Microbit as its brain. To make the robot more pleasant and challenging, I added some motions using servo motors, LEDs, images, and talking features.

For those who do not work yet with Microbit, please read the overview guide of Microbit in this link.

For downloading the enclosure, click Cults3D.

I also attached the Microbit HEX Files.

Downloads

Supplies

Materials you will need:

Tinkercad

Microbit

Microsoft Makecode and Python Editor

3D printer

PLA filament (Metal, blue, yellow, red, wood, and green)

Speaker

Alligator clip

Electrical wires

Jumper wires

Electrical tape

Hot glue

Makita Drill

Dremel rotary tool

Cutting Pliers

Solder iron

Solder

2 LEDs

4 Batteries of AA + holder

2 Batteries of AAA + holder

Make Simulation in Tinkercad

Microbit Robot in Tinkercad.png

Before we make a prototype, it is crucial to make a simulation in Tinkercad. By doing this simulation, we can play around with the electronic circuit, so we become aware and understand whether we make a mistake in our circuit or not. As I mentioned previously, Tinkercad only has micro servos in its library, while I would like to use continuous servos (because I have enough continuous servos in my inventory instead of micro servos). How to solve this problem? Well, I had to use another alternative, which is making the block code in another third party, such as Microsoft Makecode.

At least, Tinkercad helps a lot in my simulation. Here I screenshot my electronic circuit. Actually, Microbit requires a maximum of 3V (two batteries of AAA) as its power source. But to operate two servos, it needs an additional four batteries of AA (6V). Otherwise, the servos would not propel.

The Servos

image003.png

In this project, I used two continuous servos to rotate the hands.

The servo has three lines, which are signal lines (orange-1), electric power line positive (red-2), and negative/ground line (black-3).

  • Signal lines, which are represented as blue and green wires in the circuit diagram above, in servos connected to pin 1 and 2 in Microbit, respectively.
  • The positive line in both servos should connect to the positive pole of the battery, and so the negative line (ground) should connect to the negative pole of the battery.
  • Both servos connect to the ground (GND) in Microbit, and only one servo connects to the negative pole of the battery as well.

The LEDs

IMG_1793.JPG

I used two LEDs for my robot, which I used white LEDs. These LEDs are utilized for the eyes of the robot. Therefore, I connect the positive legs of the first LED to pin 1 in Microbit and the second LED to pin 2 in Microbit. The first LED is supposed to be for the left eye and the second one is for the right eye. Both negative legs of the LEDs are connected to the ground (GND) in Microbit.

The Speaker

IMG_1508.JPG

Connect the speaker to the Microbit as follows:

· Positive wire connects to Pin 0 in Microbit

· Negative wire connects to Pin GND in Microbit

The Code

image004.png

I made the block code in Microsoft Makecode. The code should be like in the image. Also, I shared my code. Here is the link.

In this code, if we press button A, it will show some images first and then, turn on the LED for the left eye, and rotate the left hand. It will have the same condition if we press button B, only this time for the right side.

Advance Code for Making the Robot Talks and Understand the Code

example.png

In making the robot talks, it cannot be done with a coding block. To overcome this problem, we need to convert all the codes into Python. Here is the link for Python Editor for online and offline (you need to download it first).

Before converting, try to convert all codes in Makecode by using the Python language. Turnout, the converting is not compatible with the Python editor. We need to change few codes, so Python can understand the code. Here is the preference link for Python codes.

For all the codes in Python, click this link.

Here are the explanations of the codes.

To rotate the servo in pin 1 in Microbit and pause 1000 milliseconds (1 second)

pin1.write_analog(180)sleep(1000)

To turn on the LED eye in pin 1 in Microbit and pause 1000 milliseconds (1 second)

pin1.write_digital(0)sleep(1000)

To make the robot talks, first import the speech module. I used 2 types of speak commands, which are "speech.pronounce" and "speech.say".

When using "speech.say", we need to add some words inside the parentheses after the command as parameters.

speech.say("Let's play with me.", speed=92, pitch=60, throat=190, mouth=190)

We want the robot to talk " Let's play with me." With speed, pitch, throat, and mouth as we desired. To know more about these parameters, click this preference guide.

When we use "speech.pronounce", we use Phonemes as the parameter. For more information about phonemes, click this link.

speech.pronounce("Woh5oh3t ahahr yuhuh duhuhihihnx nnahah3uh5uh8", speed=92, pitch=60, throat=190, mouth=190)

In the code above, we make the robot to talk, "What are you doing now?"

Just play around with the speech command as you desired.

Save and download the code into the HEX file.

Enclosure

Tinkercad.jpg
IMG_1743.JPG

To make the enclosure for the robot, I made it in Tinkercad.

For download, click Cults3d.

Microbit Case

image006.png
image007.png
image008.png

We need to build the case for Microbit, so the Microbit could stand in place in the body of the robot. To make it, I used the simple shape of a box with dimension:

Length: 66 mm

Width: 21 mm

Height: 50 mm

Cut the box with some box holes as shown in the pictures. To make it easier, use the Microbit feature from the Tinkercad circuit.

Body- Front Part

image009.png
image010.png
image011.png

For the front body, drop a box in the work area. Make a hole in the cylinder on the top with the same measurement as the hole in the head. Make some holes for the speaker,
Microbit, and the servo. Add four placeholders for placing the screws on each corner.

Body- Back Part

image012.png

For the back part of the body, use two boxes, and stack them. The dimension should be the same as the front part of the body and the head. Group them together.

Legs

image013.png
image014.png
image015.png

For the legs, use a box and combine it with a wedge. For the dimension, see the images. Group them together.

Hands

image016.png
image017.png
image018.png
image019.png

For making hand, drag and drop two roofs into the work area. Cut each roof with a box hole. Group them together. Duplicate the hands, so you have two hands now.

Head

image020.png
image021.png
image022.png
image023.png

Use a box for the head. Make some holes for the back part of the head. Make a placeholder for the screw.

Mouth

image024.png

For the mouth, use a sphere and resize it as shown in the image.

Tail

image025.png

Make the same shape as a mouth for the tail, only it is wider.

Prototype and Test

IMG_1508.JPG

In doing an electronic project, it is crucial to make the prototype before assembling the electronic circuit. By building a prototype, we can test whether our code and electrical circuits are correct or not. The test is quite successful. All electrical components are working smoothly.

Printing

IMG_1598.JPG

Save each of the parts of the 3D Model into .stl files. Using Cura slicer, slice the .stl files and print them with the color of PLA filament as you desired. The printing settings are layer height 0.2 mm, infill 20%, using brim, and no support, except the Microbit case.

After Printing

IMG_E7402.JPG
IMG_E7403.JPG

Remove the support in the Microbit case after printing.

Drilling After Printing

IMG_1620.JPG
IMG_1624.JPG
IMG_1626.JPG

Make holes for the eyes to the head casing. I use a Makita drill to make the holes. Drill two holes in the head and measure the holes for LED about a diameter of 5 mm. Also, drill five holes for bolting the body and drill two more holes for bolting the hands.

Tidying the Speaker

IMG_E7406.JPG

I used a speaker from my old microphone set. Because of it, the speaker's edges are not tidy. Cut the excess of the speaker and file with Dremel rotary tool.

Assemble the Printing Parts

Assemble mouth - Copy.JPG
assemble tail - Copy.JPG
Assemble legs - Copy.JPG
Assemble head - Copy.JPG

Glue the mouth to the front body. Glue the tail to the back part of the body. Assemble the legs to the body and finally, glue the head to the body.

Build the Electrical Circuit

IMG_E7455.JPG
IMG_E7460.JPG
IMG_E7454.JPG
IMG_E7456.JPG
IMG_E7459.JPG
  • Put the Microbit in the case.
  • Insert alligator clips to pin 0 (red), 1 (yellow), 2 (white), and Gnd (black).
  • Place the servos on each side as shown in the picture and glue them to the body.
  • Solder the LEDs with wire. Red wires connect to the positive legs of LED and black wires connect to the negative legs. Insert the LEDs to the head and secure them with electrical tape.
  • Connect all the alligator clip wires like in the previous prototype.

Construct the Robot

IMG_E7461.JPG
IMG_E7463.JPG
IMG_E7464.JPG
IMG_1746.JPG
IMG_1742.JPG
  • Upload the hex file to the Microbit.
  • Put the Microbit and speaker inside the enclosure. Connect the Microbit with the batteries. Tidy up all the wires and secure them with electrical tape.
  • Close the enclosure with screws. (We need 5 small screws).
  • Attach the hands with servos.

Final Result and Test the Robot

IMG_1744.JPG
IMG_1745.JPG

Here is the final result of the Microbit Talking Robot.

When we press button A, it will show some images of hearts and smile first and then, turn on the LED for the right eye, and rotate the right hand. It will have the same condition if we press button B, only this time for the left side.

Note: I installed Microbit upside down due to the tight enclosure, so the result would be the opposite of my previous code.

For more project ideas, visit our website:
DIY 4 Pro, 3D Printing Center, and Learning and Assignments