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"
I wanted to enhance the BALANC3R by giving it a voice, more control modes, speech recognition and video control.
This is the Arduino Wilber:
From top to bottom:
Pixy CMUcam5 video camera
EV3 IR sensor
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
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!
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
From the back he has:
EZ-B4 Wi-Fi Controller
Power distribution board
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…)
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.
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.
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.
That is really an impressive hack into EZB land. Great work !
love to see the video.
Ditch the EV3 and replace the balancing code with an EZ-B or Arduino.
The EV3 is overload for a simple balancing function.
@DJ Sures, Where would I find the proper PID balance and drive software for the EZ-B4?
Ah, so you simply want to piece bits of work that other people have done? If so, I can write you something. It's not that complicated - specifically using our latest accelerometer add-on. It should be available very soon!
In the meantime, there are a kabillion arduino sketches for inverted pendulums. Simply adding an i2c slave function to the arduino to receive commands from the ez-b, voila
I think hacking the remote to control a function you already have working was a very clever solution.
@nomad18.08, @Orangejoe, and others.
Here is a video of EZ Wilber in action.
I included sub titles for those who might not be fluent in 'Robot'
Fantastic. I loved the George Carlin bit at the end.