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.http://robotsquare.com/2014/07/01/tutorial-ev3-self-balancing-robot/
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…)@DJ
The EZ-B is unable to be a slave…@Jeremy
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)