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 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!
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 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.
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.
That is really an impressive hack into EZB land. Great work !
oldbotbuilder
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.
Alan
Video!
@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'
Enjoy!
Fantastic. I loved the George Carlin bit at the end.
Alan
Nice job
very nice and good voice too
@OldBotBuilder.
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.
@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
http://www.cepstral.com/en/personal/download/?os=windows&refpage=windows 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?
@MovieMaker, 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.
OldBotBuilder,
Very cool project! Here's the sample code that I used to make balance bot with the MMA7455.
It was written about 2 years ago for the v3 board so some translation may be required for the V4 boards.
https://synthiam.com/Community/EZCloud/Download.aspx?id=484
Best,
Bill
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.
@DJ, Thanks for the kind words. I am still working on getting my Bioloid talking to the EZ-B4 via UART.
@EEGbiofeedback, 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 (www.meetup.com/San-Diego-Lego-Vex-Robot-Builders/)! 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 meetup.com (I'm a co-organizer of the group)...I'd love to chat w/you about your projects.
Best, Andre
@OldBotBuilder 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:
https://www.amazon.com/gp/product/B004MF39YS
https://www.amazon.com/gp/product/B002OO18NS
source: post #8 https://synthiam.com/Community/Questions/1395
Advanced solutions:
Open the EV3 add a big speaker and/or amplifier circuit.
Use EV3DEV Linux on your brick and then check the post: http://www.mindstormsrobots.com/lego-mindstorms/lego-mindstorms-ev3-audio-streamed-via-bluetooth-audio/
Thank you so much PDP! I will explore the microphone options!
That's really a great robot. What type of battery it's using. Battery reconditioning pdf