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


Skip to comments

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
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
***EDIT*** not relevant, deleted post...
out-of-box is not possible to connect to a Bluetooth speaker.

Simple solutions:

post #8

Advanced solutions:

1) Open the EV3 add a big speaker and/or amplifier circuit.

2) Use EV3DEV Linux on your brick and then check the post:
Thank you so much PDP! I will explore the microphone options!