How to Make a Robo Dog Mini | Quarky and PictoBlox | DIY Robotics with Coding and Voice Control
Watch on YouTubeVideo summary
This comprehensive guide demonstrates how to construct a charming robotic dog named Minnie using just five simple steps: 3D printing, assembly, electronics and wiring, coding, and testing. The project begins by gathering essential components such as the Quirky robot kit with its battery and expansion board, four servo motors, an ultrasonic sensor, and custom-designed 3D printed parts like legs, a body top, bottom, and switch extension. Builders can download these designs from StemPedia or create their own using software like Autodesk Inventor, Tinkercad, or PictoBlox's 3D environment before printing them in approximately three to four hours. Once the physical pieces are ready, the assembly process involves carefully inserting the switch extension into the body top, securing the Quirky unit on top with bolts, attaching a 3.7-volt battery, and mounting the ultrasonic sensor while ensuring proper wire alignment for grounding connections.
The third phase focuses on intricate wiring where all four SG90 servo motors are connected to their respective ports on the expansion board, paying close attention to aligning brown wires as ground (GND) to prevent electrical issues. The builder emphasizes managing cables neatly inside the base and body parts to avoid entanglement or interference with moving servos during operation. Before closing the assembly completely, it is crucial to verify that no servo wires protrude from the top of the motors, which could hinder fitting the upper shell securely. After attaching all legs using double-arm servo horns—sometimes requiring minor trimming for a perfect fit—and securing them with screws, the robot's internal electronics are tested by connecting via Bluetooth and initializing the expansion board in PictoBlox to ensure every servo rests at exactly 90 degrees before final assembly is completed.
The coding segment introduces users to advanced functionalities within PictoBlox, starting with calibrating servos through a custom function that adjusts pulse widths from minimums around 400-500 up to maximums near 2500 to achieve precise angular alignment for standing or moving actions. Once calibrated, the robot can perform various programmed behaviors such as saying hello by raising one arm while balancing on three legs, dancing with rhythmic movements, doing splits, folding its body, performing push-ups when excited, and even simulating urination through specific leg motions. These complex sequences are built using modular functions that first return the robot to a default standing position before executing unique gestures like waving or moving forward/backward based on button inputs or voice commands triggered by speech recognition blocks.
Finally, the video concludes by integrating voice control capabilities where Minnie responds directly to spoken instructions such as "Mini dance," "say hello," or "go forward" thanks to an open-source speech recognition module initialized within the coding environment. This interactive layer transforms the static robot into a responsive companion capable of interpreting natural language commands to execute its programmed routines seamlessly. The creator encourages viewers to customize their own robo dogs by adding features like wiggling tails or moving ears and invites them to share ideas for future behaviors in the comments, fostering a community-driven approach to learning robotics through hands-on experimentation with coding platforms that make DIY automation accessible even to beginners.
Read the full video transcript
Minnie dance.
Minnie split.
Minnie stand straight.
Oh, there you are.
Of [music] course, she's very naughty.
You met Minnie, right? She's very
extrovert. I built Minnie and her best
friend Mickey in just five simple steps.
Hey, hey, this is Avni.
>> [music]
>> In this video, I'm super excited to show
you how to make your Robo dog like
Minnie and Mickey in just five simple
steps. Like step one, 3D printing.
[music]
Step two, assembly. Step three,
electronics and wiring.
>> [music]
>> Step four, coding. And step five,
testing. So, without waiting any more,
let's directly dive in. First, let's
gather all the components we need to
make Minnie Robo dog.
First of all, [music] of course, our
Quirky
with its battery, expansion board,
>> [music]
>> and its wires, ultrasonic sensor and its
wire, four servo motors with its [music]
accessories,
one screwdriver and maybe wire cutter or
a scissor if you need. Now, what is
missing over here? The 3D printed parts.
[music] So, let's get to our step one,
3D printing. You can click on the link
given below in description [music] and
go to the StemPedia website and download
the design. Or you can create your own
as well. I designed this in Autodesk
Inventor. You can use Tinkercad or
Pictoblox 3D environment, too.
Now, I'm keeping it for 3D printing.
And it will be ready in approximately 3
to 4 [music] hours.
Yay! Once it's done, let's remove it and
get to assembly, which is our second
[music] step.
Now, I have all the 3D printed parts
over here. So, let's understand them. Of
course, these are all four legs, which
we [music] need. This is the top part.
This is the bottom part and this is the
switch [music] extension.
Now first let's insert this switch
extension
into the slot of the body top over here.
Like this.
Then we will place the Quirky on top of
it.
And make sure [music]
the switch aligns
with the hole in this [music] switch
extension.
Similarly, do the same thing for all the
four bolts.
>> [music]
>> Once all the bolts are secured properly
like this and Quirky is secured on top
part like this, now I will attach this
3.7 volt battery. [music]
And now I will insert this battery in
this slots given over [music] here.
So that battery is now properly secured.
[music]
Now let me keep this part aside.
And now we will work on the base part
first.
Attach the ultrasonic sensor
like this
from this socket like this properly. And
now I will attach the ultrasonic wire.
[music]
Make sure when you're attaching the
ultrasonic wire,
>> [music]
>> the black wire must go on the GND.
Like this and then I will insert it like
this.
Now if the sensor pins are [music]
straightened like this, we can bend them
gently before continuing [music] with
the wire itself. Like this.
Now once the ultrasonic part is properly
inserted in the front slot of the body,
now I will snap the extension board.
We can keep the wire over here.
I'll snap the extension board on this
[music] area.
We can remove it for the moment
and insert it properly.
Now, it perfectly [music]
fits.
At the same time, I will also insert all
the SG90 [music] servo motors into their
respective slots.
Do check all the servo shafts
>> [music]
>> faces outwards like this.
Now, let's come to the third step
>> [music]
>> of wiring. So, first let me attach the
ultrasonic sensor over here.
On the sensor part, make sure the GND,
the black wire, is aligning properly
with the GND on the expansion board. For
reference, you can check out the
diagram.
Make sure this is very important. As and
when you're doing the wiring, you can
keep [music] managing the cables
properly so that it doesn't get
entangled
>> [music]
>> or come in between while we close the
assembly.
Now, I'm considering this as my servo
one, [music]
servo two, servo three, and four. So,
the servo one I am [music] attaching on
the servo one over here with yellow,
red, and black properly [music]
aligning with the
GND. The brown wire always consider as
[music] GND.
Same way, this on the second board.
You can check out the diagram for proper
[music] reference.
You can manage the wire
over here itself
of both the servo motors.
Make sure
>> [music]
>> you remember
none of the servo wires
are coming from top of the servo motors.
Otherwise, it will be difficult for you
to close the assembly.
Then, I [music] will attach the servo
three on this side of the servo port,
which is number five.
>> [music]
>> So, it's easy for me to know
that the forward two are connected on
this side
>> [music]
>> and the rear two are connected on the
right side.
Again, you need to manage the wires
properly [music]
on the side. You can also attach some
cable ties if you want to manage
properly. What I am doing is just
turning and twisting it a little [music]
bit. Make sure you keep your expansion
board on the internal mode like this.
[music]
Keep little space for the wires to
attach with expansion board and Quirky.
Now,
>> [music]
>> I'm going to attach
this wire, expansion board wire, which
will be attached to the top part of the
Quirky. So, first this part, again black
aligning with the GND. [music]
I'm putting it over here.
Now, the other end of this wire we will
be attaching
on the Quirky like [music] this. But,
make sure before that
you turn this part a little to create an
tail.
So, there are slots for wires over here.
I can [music] just directly put the wire
like this. Easy for me to manage.
Now, we have the servo wires which
[music] needs to be attached.
First, let's put the servo one wire.
Make sure you do not do mistake
>> [music]
>> in aligning with GND.
Now, these three wires will go inside
the [music] Quirky.
Make sure you measure the length
properly [music] and keep the same
amount of wires outside to attach with
Quirky,
>> [music]
>> and rest of it you can put it inside.
There are slots for this wire also to be
attached. This could be a little
difficult step to put wires inside the
slot. If it is possible, insert them.
Otherwise, you can arrange them manage
it them over here itself.
Now, before attaching the top part, make
sure your all the cables are neatly
inside the body base, managed properly
like this, and make sure no wires are
crossing over the servos [music] or any
of this screw points.
Making sure the wires are properly
inside, and this is getting attached.
Now, to secure the body, we will use six
of this M3 12 mm bolts. [music]
Let's start with the middle one first.
Now, let's do the forward one.
Now, the body is properly secured
[music]
like this.
Now, I'll attach these wires
like this, making sure the black is for
GND,
>> [music]
>> and insert it
like this, and
press it to create a
nice [music] tail.
This servo one block
over here like this.
Servo two wire here [music]
like this. Make sure the brown one is
always the GND. [music]
You can make it a tail like this or if
you want to secure it, you can put
[music] a cable tie and secure it as
well. Okay, now let's come to the legs
part. Now let's do
one by one each leg.
We will take the servo double arm.
Like this one. Let me keep this aside.
Like this one and I want to insert it
like [music]
like this. Okay?
But if you can see
it is a little extra, so I might have to
trim this
>> [music]
>> servo horn to fit exactly in this space.
So now to trim this, we can use this
wire cutter
or a very sharp scissor. [music]
Make sure you're very careful while
doing this.
So what I will do is there are 1 2 3 4 5
holes over here. So I will just trim the
first two.
Be very careful
and trim it like [music] this. Just one
side should be enough
and you can maybe remove the sharp edges
also a little bit.
Let's see if it fits.
I may have to cut a little bit extra
if it's not fitting properly.
So we can do [music] that.
Now it fits properly. [music]
What I will do is now I will take
this two screws [music]
given along with the accessories
servo accessories and
insert [music] them in the
holes like this.
Aligning with the
>> [music]
>> holes below this so that it gets
properly attached and gives us support.
Once this is done, you can do the same
thing for all the other three legs also.
Take the double servo arm.
Cut the extra three parts
like this
>> [music]
>> and then put this inside this.
Like this and then screw it.
Now [music] all the four legs are ready
as you can see all them screwed with the
servo horns properly. Now before
attaching them on the main body, we will
make sure that we [music] turn on the
Quirky connected to Pictoblox. And if
you don't have Pictoblox, [music] then
do download the latest version from the
link given below in description.
You can go to board, choose [music]
Quirky as a board and then switch on
your system Bluetooth and connect
[music] it.
Once connected, now we can check all the
servos.
By first, [music] you have to get the
extension for expansion board.
Initialize that.
When it shows done,
then we can check [music]
all the servos angle is at 90°.
Servo two, one,
five [music] and six as you remember
that.
Now make sure all are 90. Let's check
one by one each of them. [music] Let's
check the number two.
It moves, yes. Then let's check
number five. Yes, [music] it's at 90°.
Let's check number six.
Yes, it's at 90°. [music]
I'll change the servo one also back to
90°.
All right, so now all of them are at
90°.
Now I will [music] attach the legs.
You can attach it like this in standing
position perpendicular.
Now [music] minor misalignments in the
leg angles are fine because we will fix
them later with the servo calibration
[music] block. You can also
secure the legs
with these screws which come with
[music] servo accessories like this.
Do it same on all the four sides.
Perfect.
Okay, you can also attach some black
tape or sponge like this for decoration
and for a better grip like this [music]
I have attached.
So now we can start with the fourth
step, coding. So the first step is you
[music] connect your
Quirky,
switch it on,
go to boards,
and connect [music] it via Bluetooth.
Once connected, [music]
now what we will do is we will get an
extension
called as
expansion board.
Just choose expansion board over here
like this.
>> [music]
>> Now as you can see there is one new
block over here. Let's understand this
block. What does this block do?
This [music] block controls
multiple servos up to 12 at the same
[music] time. It can control that. And
you can also control their speed also in
milliseconds over here. [music]
So what we are going to do is first
let's calibrate all the servos so that
[music] their angles are properly
defined.
I will [music] take this block.
Set servo one pulse minimum from 500 to
maximum 2,500. This is the pulse range
usually from 0 to 180°.
Right?
>> [music]
>> So, let's check
if it is working properly. Similarly, I
can do that
for servo two.
For servo three,
but the [music] number is servo five
over here.
And for the next one,
servo
six.
Now,
these we can keep [music] on changing
after checking how each motor is
functioning.
All right. Now, what we can do is we can
check
with this block
angle of the four servos, okay? This
one, let's keep it at 90.
90
90 [music]
90. So, we can check the 90° of all the
four servos which we are using, S1, S2,
S5, and S6. [music]
However, the other servos we are not
using, but still let's keep them default
at 90 only.
And we can keep it 1,000 ms. 1,000 ms
means
>> [music]
>> 1 second.
Okay, let's check. But, we need to first
initialize the
work expansion board.
Now, let's check. [music]
So, you can see all the 90° are
perfectly aligning.
If sometimes if you feel this is not
aligning properly with this,
we can do [music] we can change the
pulse a little bit. So, I think maybe
this one I [music] can change it to 400
so that it properly aligns and this one
Okay, 180° should be okay actually. So,
[music] maybe I can check over here like
this from zero
to
the second one as 180.
Same way, I'll do [music] it for
S50
to 180.
Now, let's check.
So, as you can see, are they aligning
properly?
I think so.
Maybe this [music] one is not exact at
the angle of that one, which is this one
is
sixth one. So, maybe we can change
[music] this pulse and decrease it a
little bit. So, I'm going to make it as
350
so it aligns well. Similarly, you can
test and try all the other angles as
well and [music] check and change the
pulse accordingly. So, I'm going to make
the servo one also [music] on an
average, let's say 440
and this one around 380. [music]
Uh this one as
2,000
500
and this one is fine, I think.
>> [music]
>> We can attach them all together
and check.
Yes. So, now I think it is changed a
little bit
>> [music]
>> and now they are properly aligning and
you can keep on trying and testing this
and keep changing the pulse value. So,
this is for that calibration only so
that misalignment is not there anymore.
So, what I'm going to do is I'm going to
put a weight block in between them.
Maybe off
1 second.
So, it's easier for me to
check.
Okay.
Similarly, I would want to check check
the other angle also, vice versa, 180
and 0. So, what I'm going to do is maybe
add one more weight block.
And we duplicate this.
And here [music] I can make check the
90° angle
of all of them.
90° by the way will be the standing
position.
And [music]
similarly, I will do the
instead of 0 180, I will check 180 0 as
well.
180
0
180 [music]
and 0.
I can remove [music] the last weight
block.
And maybe let's try once more.
>> [snorts]
>> So, I think it's working fine on all the
sides.
Yes. [music]
>> [snorts]
>> Yes, all the four legs are properly
aligned, so it's working properly fine.
Now, I [music] can make this as a
function. Let's call it as maybe
calibrate.
And I can
>> [music]
>> define it
like this.
This block
we will attach it to maybe
>> [music]
>> when green flag. So, whenever we press
the green flag,
this is properly initialized. At the
same time, I would also want to
initialize the ultrasonic sensor.
So, I will go to
expansion board.
I'll go to sensors
and
initialize this.
Now, instead of D1 and D2, I will choose
S1 and
>> [music]
>> S2.
So, why S1 and S2? Because on the
expansion board, where we have connected
trig and echo were the ports S1 and S2
over there. [music] You can also adjust
the display brightness or whatever
initializing blocks you want, you can
>> [music]
>> keep it in this.
Now, whenever your servos are not acting
properly or not aligning properly, you
can always call this function calibrate
[music] so that you can check where is
the mistake and adjust the pulse
accordingly. Now, let's create all the
action blocks. So, I am going to give
many different actions. For example, say
hello, stand [music] straight, or sit
down, or dance. So, I'm going to give
different actions. For every action, I'm
going to create a separate function. So,
I will create [music]
block. First of all, let's do the first
action as stand
straight.
So, as you know, whenever I want
Minnie to stand straight,
what do I need to do? I need to align
all [music] the four
legs at 90°.
Correct? So, I'm going to use
this block
and make all of them at 90.
Make sure all your other servos, which
are not in use
are also always at 90. Just a default
angle we are putting.
>> [music]
>> All right?
And I can also attach some emotion
maybe.
Whenever it stands [music]
straight,
I can maybe have a
surprise emotion maybe.
>> [music]
>> Right? Let's see.
Yes, it is standing [music] properly at
90°. So, yes, it works.
Now, let's do the other function which
could be say hello.
So, I'm creating another function.
And [music] let's name it as
say hello.
>> [music]
>> So, let me add first of all some emotion
when it is saying hello. I want [music]
it to be happy or giggle emotion.
So, let's let's put giggle.
And now, we [music] will I can duplicate
just this block. And first, whenever it
has to say hello, I want to make sure
that in whichever position Mini is has
to come back to 90° standing [music]
straight and then saying hello. So, this
could be my default position which
[music] I'm putting whenever this
function is called. Now, after that, I
could ask it to [music] wait few seconds
maybe.
Let's put
wait maybe 2 seconds. Once it's back to
its original position, wait 2 seconds.
>> [music]
>> And then, we could Again, I'm going to
duplicate this block.
And now, I would want to change the
angle [music]
of this hand getting the raised.
So, when it has to get raised, [music]
it will go this position at this angle.
I'm going to make it as 180. [music]
And this one should be around This leg
should be going a little inside. So,
maybe I'll make it as
80.
>> [music]
>> And similarly, I would make the other
two legs also, the behind two legs also
so that it doesn't lose balance when it
is, you know, raising this hand.
>> [music]
>> So, I can make it as maybe 80, this one
as well, and this one could be a 100.
So, it is properly able to balance.
>> [music]
>> So,
this, and also, because it has to keep
on doing it again [music] and again like
this, so I am going to do the inside
angle also.
Um [music]
could be 80, and maybe it could come
down to, let's say, 140 or 145.
>> [music]
>> And rest of the angles, I think,
could be okay, fine, because I'm just
moving this one, right? [music] So, I
want
this to be repeated a certain number of
times. Let's say, two times or three
times.
>> [music]
>> So, it looks like proper hello.
Maybe we can run and check this if it
works.
It is doing it, but can you see it's
very slow.
Now, let's check if it works.
>> [music]
>> The wait 2 second looks a little more.
Maybe wait 1 second should be okay.
Let's try once [music] more.
I think that [music] looks fine. Now, we
will get it back to the normal angle.
So, I'm just going to duplicate
>> [music]
>> this block, so that once it says hello,
it will come back to its original
position.
So, I'm going to
which is
>> [music]
>> 90° all of them. So, standing straight
position.
Perfect. So, [music] I think let's try
this.
Now, it's normal position.
It's saying hello.
>> Back to normal position. Great, I think
this looks great. So, now similarly, you
can develop multiple functions like
this.
Now, let's check. I'm going to press D.
[music]
>> [snorts]
>> So, as you can see, it dances.
>> [music]
>> Now, if I press H,
it says, "Hello."
And if I press [music]
up,
it is already standing straight. And if
I [music] say
down, it's going to go down like this.
Legs stand down.
Interesting, isn't it? Now, similarly,
if I say fold,
it will get folded like this.
If I call the excited function,
it will get excited and start doing
push-ups.
If I ask it to pee, I've created a pee
function, so it's going to pee like
this.
>> [snorts]
>> I have also created a go forward
function. Let's see if it goes forward.
Now, let's see if it can go backward.
So, maybe we can press number five.
It can stand [music] straight. If I say
number three,
it will do a split. If I say number two,
it will start dancing.
Interesting, isn't [music] it?
Now, I can do the same thing with voice
recognition as well.
Now, as you can see, I have also created
[music] blocks for voice recognition.
Yes. So, in this case,
I have got the speech recognition
extension
like this one. [music]
You can see that over here. [music]
And I have put a condition that if
speech recognition result is mini stand
up, so it stands [music] up. You can see
whatever I'm saying, it's coming over
here. Right?
Because
I have started this open
speech recognition module in a new tab
like this. [music]
So, I have initialized the quirk
expansion board. And now, let's see if
it works. [music]
I've also put a block for mini go
forward. Mini dance.
You can see it's already listening to
me.
Okay.
Mini dance.
>> [snorts]
>> Mini, say hello.
Mini, go forward.
Wow, [music] great.
Mini, fold.
So nice. Good job, Mini.
Wasn't that so interesting? Now, it's
your turn to build your own robo dog
like Mini. Try maybe adding a wiggling
tail or maybe moving ears. If you really
enjoyed building your own robo dog, then
do like this video and subscribe our
channel for more interesting videos.
Also, do let me know in the comments
below what you want Mini to learn next.
Until then, happy learning.
>> [bell]