Category Archives: Uncategorized
Introduction to the zBot Video Robotics Developement System
Mech Eng student builds 3d printed shell around zBot system, shares video
https://www.youtube.com/watch?v=JQtg1rrK7-4
Custom PCB Prototypes work well !
After giving up on solder paste and stencils, then realizing “acid” based solder flux will eat your board I’ve made the first working prototype of ZoneRobotics custom PCB board.
It works very well 20fps and crystal clear image. No scan lines, even with a 10 inch ffc 24 pin connector between the board and the camera.
We will be respining this board once more and if there are no huge issues with the next version it will be what we launch on kickstarter.
Look out for update videos and tutorials about how it works soon !
Keep an eye on my youtube channel
https://www.youtube.com/channel/UCCyniNshxe-2BgdsiMsUjqQ
Testing the zBot on the “Cloud”
Setup a test where my zEngineExample service ran on a free trial of openhosting.com linux VM. Unfortunately I used 5gb of network traffic in 2 days and expired my trial before I had a chance to do a lot of investigating.
To begin with the web client is the slowest most troublesome of the clients, on top of that the cloud server was somewhere on the east coast. There was so much latency between the web client and the cloud server that the messages timed out and were thrown away from the zEngine service. From what I could tell there was something like 300ms of latency to connect and do anything, this is unacceptable for real time applications
I had the zEngine service connecting even if there were no active clients, so this caused all kinds of traffic when no one was even using it.
Will have to retest and next time:
- Make service disconnect when no clients
- Test latency between me and cloud server
- Use lowest resolution
- Test native clients
Back to BlueTooth ! (Edit: or not)
Just an update the bluetooth seemed like a good idea at the time with the options available, but I made a lot of breakthroughs with wifi and finalized the bot to use wifi. I now get over 1Mbps and can get up to 4mbps, there is no need to in most cases though since I max out the camera at 20fps. I will be releasing another article soon.
—- Old Article
As I have moved along with wifi I started to have an enormous desire to allow the wifi to send all of the information into a browser instead of a custom application I write. This way the user simply starts up their browser and points it at the wifi bot and they get a video stream and a robot they can manipulate. From there the same controls and commands you can send with the ZEngine java API you could send over the url to your bot. This will allow developers to use pure javascript or other languages to interface with the bot. But this model does not allow any bluetooth, so I thought to myself what do I do with all of this bluetooth code I have written and this nice system I already have ? It must be useful to someone ? So I decided to split the bot into three, one for bluetooth, one for wifi and one for long range. You can read about it here
http://zonerobotics.com/wordpress/?page_id=314
Long story short I want to finish the hardware and the software by September. So my goal is to get all the bluetooth stuff that I already had working and make it work again and finalize it. The hardware will have support for all three bots but the first version and the software will use the bluetooth modules. This way I can finalize the body and the hardware and have a fun toy and then start long term development on the other bots.
I had big issues with the bluetooth before being inconsistent with the firmware. I would write drivers for one module then order some more and they didnt work the same. A really smart guy from France named Byron has documented how to burn a good or at least consistent version of software onto the HC-05 modules. I have made contact with Byron and he has graciously agreed to help me with the project should I have issues. http://byron76.blogspot.com/
So, for now its full steam ahead finalizing a bluetooth bot, for better or worse !
Zbot System RoadMap
Torn between perfection and “something that works” we have decided to draw the line on different features in different versions.
Version 1.0 Description
This version will be a board attached to the stm32F4 Discovery board. The board will contain all of the IC/connections for two motors and the camera. This way we can develop the games and SDK without setbacks related to creating complex circuits and the “slippery slope” of making things better/faster. We will have the full functionality to move around and “shoot” with lights. The main things we will lack are the ability to move the camera up and down, the lower cost associated with 1 board and the lack of high speed uart connectivity.
Parts:
$15 Stm32F4 Discovery Link
$10 OV2640 Board and Camera Link
$7 HC-05 Module with board Link
$25 Motor/Cam Connector board TBD!
Version 2.0 Description
This board will include a custom board layout where we connect directly with the camera module. There will be one “mainboard” where the stm32f4 chip connects to the 24pin camera connector directly. We will incorporate the required LDO’s and circuitry to interface directly with the camera module, saving us about $3 per board. The “mainboard” will have everything you need to get video over uart to whatever you want while exposing the gpio/pwm/i2c similar to the Ardruino. We will also add functionality for faster bluetooth and possibly wifi connectivity.
So going from version 1.0 to 2.0 the main thing that will be developed/finished is the SDK and the “development platform”. The finished product will be very useful for hobbyist and those developing proof of concept (senior projects, etc). It will be a circuit board with motors/track and camera. The end user will be able to develop directly in android or java to have the unit preform the desired operations. For version 2.0 we are going more for the consumer market. Version 2.0 will be an enclosed product with no exposed circuit board.
Doing things this way should get us something usable and reproducible within just a few months. We wont have to spend the next 2 months developing our own circuit board.
Update, better control via Sensitive UI joystick control and PWM
Fixed issues with circuit and software, and embedded app. Now you can use the “mincraft like” control on the right side of the screen to go anywhere from very very slow to as fast as possible and everything inbetween.
Video overview of the prototype and idea
The first in several videos outlining my progress. This very shaky video shows driving around the bot in early test stages.
Bluetooth streaming video at 7-11fps on Android
I have been neglecting this webpage quite a bit, but that does not mean I have not been making progress ! I’ve actually made huge progress after discovering some issues with the pin configuration on the stm32 “open407” board I was using. Turns out some of the pins were mapped to a int on one of the integrated IC’s on the discovery board itself. So I never could have gotten jpeg or correct raw images. This explained why my images were always off and distorted.Sorry for not updating and keeping track of everything on the website. I have found that the upkeep of the website, twitter feed and facebook page is quite a bit of work that I would rather spend on the code at this point. Once I have more exciting info and neat pictures then I think I should focus more on the social media aspect.
That said if you like this project please friend Zonerobotics and like us on Facebook. I will update that page the most.
https://www.facebook.com/Zonerobotics
Summary of whats been completed:
- Jpeg compression via the ov2640 camera
- Streaming output of camera data through bluetooth giving optimal throughput
- Java base code updated and working with streaming protocol
- Java base code has stubs and plans to open to GPB so we can support other languages
- Java base code implemented in android and simple client made
- Gpio read handling tested and validated in Android client
- ADC read tested and validated
- GPIO write, PWM (motor control) write and other commands implemented
- Joystick module implemented that converts XY into power for motors to give extreme control and sensitivity (Although my gui does not have a “joystick yet”)
So there’s a lot getting done, and the more that gets done the more there seems to do. I’ve also thought of a way to keep the base design modular and cheap. This is just a quick sketch of what I’m going for and nothing is set in stone till I’ve tried it and seen how it works. I know I left out some stuff, but hopefully you get the general idea.
TODO
I really like the rapid prototype model. So there is a lot of building and testing to do. Then there is still the circuit design, body design, motor selection etc, etc. I’m going to hopefully release the first workable solution that actually uses the stm32f4 discovery board, this way it will be big but it will be cheap and come with lots of extra components such as the accelerometer, speaker etc. So I really want to hold off on circuit design till I’ve added drivers for the pieces of the stm32f4 discovery components and decided which ones to import into my circuit design.
Like I said if you are interested please friend us on Facebook and like the project, tell your friends about it and if you want to volunteer your time let me know via Facebook.