My 'bot "wilber" (now "ez Wilber")


Skip to comments
robot video thumbnail

Apologies if this is too long.

My .bot "Wilber"

Wilber was constructed from a Lego Mindstorm EV3 kit.
The self-balancing robot build instructions and EV3 program are from a tutorial by Laurens Valk.
He called the robot "BALANC3R".
Laurence Valk also wrote a very good book "The Lego Minstorms EV3 Discovery Book"

User-inserted image

I wanted to enhance the BALANC3R by giving it a voice, more control modes, speech recognition and video control.

This is the Arduino Wilber:

User-inserted image

From top to bottom:
Pixy CMUcam5 video camera
EV3 IR sensor
EasyVR microphone
EV3 Gyro sensor
Lego Mindstorms EV3 controller
2 1/2" speaker

The back pack’ had:
Arduino UNO single board computer, home made shield that included: Emic2 Text to Speech module, EasyVR Voice Recognition module, HC-06 Bluetooth module, and FrSky 4 channel RC receiver.

At this point he was pretty ugly but somewhat operational, and he balanced well.

Communication between the Arduino and EV3 was by I2C.
Dexter Industries sells many sensors for the EV3 and they provide EV3 blocks for their sensors. The one I used was the I2C block.

Wilber was to have 5 control modes, speech response, and video.
The modes were to be:
IR Control with EV3 Beacon controller
Voice Recognition Control
Cell Phone App Control
Radio Control
Video Control

Unfortunately, I was only able to get two control modes (IR, RC) and speech response working.
The communication between the Arduino and EV3 worked well, but the Arduino did not have the capacity to select and run the different control modes, and take care of the voice response and recognition.

I looked for another solution and was very fortunate to find the EZ Robot web site, Store and Forum. With the EZ Humanoid head, EZ-B4 controller and Ultrasonic distance sensor, and a lot of help from the great contributors on the Forum, Wilber was converted.

Now he is EZ Wilber!

User-inserted image

From top to bottom:
EZ Robot Humanoid Head with Camera, RGB Eyes, and LED mouth
Lego "Gyro" Sensor
Lego EV3 Controller
EZ Robotics Ping Sensor
Hacked EV3 Beacon controller
EV3 IR Beacon Sensor

User-inserted image

From the back he has:
EZ-B4 Wi-Fi Controller
Power distribution board
Audio Amplifier
2.5" Speaker

To my dismay, I could not use I2C to communicate between the EV3 and EZ-B4 yet I was able to do it with the Arduino. Why? The Arduino was in I2C Slave mode and the EV3 I2C sensor is a Master so it worked.

I put the problem to the EZ Forum and got these replies. (Much edited)

@DJ Sures:
The EZ-B is unable to be a slave

@Jeremy and @JustinRatliff both suggested that I use an Arduino to intervene between the two. Justin also suggested I use the Wi-Fi connection and the MonoBrick library. I also looked into using Bluetooth and a cell phone App. There is one for the EV3 but it controls the motors directly. Can't do that with a balancer.
I wanted a simple interface, no Arduino, no C+ IDEs, etc.

I realized that the EV3 IR controller was a reliable and simple control for the BALANC3R. So, I bought another IR Control and hacked it. I connected wires to the plus and minus power pads and to the 4 active side of the switch pads. The unit runs on 2 AA batteries so 3 Vdc is the power requirement.
How convenient! That is the data out voltage from the EZ-B4.

User-inserted image

The EZ-B assignments are:
D1 Button 1
D2 Button 2
D3 Button 3
D4 Button 4

Now EZ Wilber's capabilities are:
IR control with the EV3 Beacon Controller.
Movement control via the Custom Movement Panel.
Autonomous Movement using the Ultrasonic Sensor.
(Doesn't bump into things) <---Not finished
Video Movement Control. (Follow Colors, Face, Shapes) <---Not finished
Shows emotions with RGB eyes and LED Mouth.
Control of head movement during controlled movement, speeches, dance and video tracking. <---Not finished
Voice Recognition for Movement Control and Speech Response.
Speech Response
He is an Oracle/Soothsayer. He can answer any Yes or No question.
He can speak from text files.
He tells the time, date, and news headlines when asked.
Movement somewhat controlled by Music for a dance. (Random turns and direction changes adjusted to the tempo.)
Movement controlled via text. (Long speech) <--Not finished
Control via Cell Phone App. (Not yet implemented)

I'll post more details and a video if anyone is interested.

By — Last update


Upgrade to ARC Pro

Synthiam ARC Pro is a cool new tool that will help unleash your creativity with programming robots in just seconds!

very nice and good voice too
United Kingdom

Just to repeat myself from the other thread, I really do like the video. So much so I had to watch it again. You have done great with what you have done with Wilber. I've gotta ask, where or how did you get his voice? I love the sound of his voice and the way he speaks.:D
@OldBotBuilder... I have to agree with Steve.... you have some serious skills... Great programming and electronics interfacing....:)
@Steve G,
Thanks for the kind words.
The voice is from Cepstral then I chose the voice 'William' and I used the pvc_pipe effect. Read their tutorial.

@Richard R,
Praise from you is very much appreciated. Your InMoov bartender is a very high bar for us all to shoot for.

Your InMoov and my Wilber show how versatile the EZ Robotics parts and web presence really are. From one extreme (Wilber, the minimum) to the other, (your InMoov, the maximum).
This blows me away. Two wheel balancing robots are so cool. You've made it cooler with Wilber! *cool*
@Dave Schulpius,

Thanks gor the encouraging words.
I really like Wilber! I think its very cool how you integrated the Lego and EZB.
wilber is Neat! Was he named after Mr. Ed's Wilber?
No - Wilber was just a name I thought went well with the robot.
My other robot is called Lester.
I think the name suits him. He is a cool robot.
Yeah so, that's probably one of the coolest robots ever! Hats off to you, man. Hats off indeed! I really like the video as well - the important parts are displayed right away.
Thanks for the kind words. I am still working on getting my Bioloid talking to the EZ-B4 via UART.

I downloaded your script. I'll check it out later. Thanks.
Hey OldBotBuilder, cool build!

You should join our Lego/Vex Robot Builders Meetup group here in San Diego (! I'm getting some EZ-Robot parts soon, but for the time being I'm controlling my EV3 bot, Sadey, with a custom iPhone app that's doing face detection/recognition, speech recognition/synthesis, bi-directional video (via FaceTime, but soon-to-be custom to allow controls and video on the same device), reading EV3 sensor values, and controlling EV3 motors.

Feel free to get in touch with me via (I'm a co-organizer of the group)...I'd love to chat w/you about your projects.

It is projects like this that can help a LEGO builder move into something bigger. If you have more detailed info on this..this could be something I can present as a project to our 4H Lego club as someone just bought the ez-robot developer kit...

Thanks a bunch for sharing..
I was wondering if any of you know how to output the EV3 speaker to another device, such as a bluetooth speaker or any kind of speaker to amplify the sound? We have an open house, and need the robot to speak louder...thanks for any advice!
K. Dasho
Thank you so much PDP! I will explore the microphone options!