Canadian Beer is pretty good, I don’t see a difference between it and American though…
I like all beer Unfortunately on the soft stuff at the moment as looking after the pub for a couple of friends … Never mind will make up for it tomorrow
Once I have the streaming sorted might bring it down here as a few of the locals have expressed an interest … Will just have to water / dog proof it first
Hi Folks,
Been a while since I did an update so here we go
Progress slow but steady, mainly because I am teaching myself all this as I go along
The webcam now streams to the net and is displayed on a page ( trikky2.com/live/ ), at the moment the image is updated ever 5 seconds whilst I test it out … This will be decreased once I get going properly. Also if the image you see does not change it means it is off line and just showing the last image. In the end this will probably stream at once a second and be for everyone to view, the actual operator will have access to the full video at a decent frame rate as well as audio.
My original idea was to use the i2c interface on the OOPic to connect to the Asus EEE, however I have now changed that and am using the Serial port. Have written my first code for the computer (C# .NET ) and the OOPic ( VB ) and they are quite happy talking to each other … So far have only done basic things like streaming the readings from the ultrasonic sensors through the OOPic to the Eee also sending information back to the OOPic.
I have wired in an i2c connection which I will probably leave exposed on the rear of the bot, so will be able to test out new sensors, displays etc easily.
I’ve hooked up the two servos on the pan / tilt to the CMUcam 3 and have started to re-write the standard colour tracking software so the camera will now turn towards the object to keep it in the middle of the view.
What I might do is take the output from the CMUcam and send that to the OOPic which can then control the servos … this will give me more flexibilty for later programming.
Although the Eee only has 4Gb even after installing XP home ( along with the .NET framework and quite a lot of other bits of software ) I still have around 2Gb of free space which is going to be available purely for my programming.
That’s about it for now. My pub day today so will probably come back with lots more ideas
All the best.
Richard
Hi Again Folks
Got a little more work done since the last update.
Now hardware is pretty much hooked up for the first attempt, I’ve been concentrating on the coding.
I wrote a small program ( but took me a while as had to learn most of it ) which communcates back and forth between the 701 and the OOPic. Was written in C# and here are two screen shots :
In the first you see the main tab of the program. The feed is live from the Orbit Webcam at about 10 frames a second.
The top button is used to set collision detection on or off, if on then you can not move Wire forward or back if anythng is in the way within the set distance.
The direction buttons move him in that direction for as long as they are depressed ( … Until they get happy ?? ).
The front and rear sonar readings are shown.
The speed can be set from 0 ( pretty pointless as does nothng ) to 100 … which is full speed ahead captain.
Connect and disconnect are just used to connect to and disconnect from Wire ( Duh )
The second image shows the settings, the COM port refers to the port the OOPic is connected to.
Have not yet played with Baud rates, just using 9600 at the moment. Will try higher later when I get time.
Collision Distance is a percentage where 0 represents the closest and 100 represents the furthest the Ultrasonics operate between.
Not really spent a lot of time on this as it will not be used in the final project but it did show communications between the 701 and OOPic through the serial com port are fine in both directions and working at the same time. It has also let me start on the protocol between the two processors, at the moment set to two bytes. The first is the command ( eg forward, turn left … From the 701 or frontsonar from the OOPic ) and the second is the value.
The actual program that will be runnng does not have an interface like this as the 701 will be doing the work itself without human interaction, however it is roughly how I see the web interface looking for remote users.
By the way still having fun … Although my brain seems to have fried, anyone know how to reboot it?
Also started looking at GPS so Wire knows where it is, problem is that in the big bad world ( Where I want it to eventually live ) this is ideal … But testing in the flat I would do better with just wheel encoders … Any ideas on that ?
All the best.
Richard
That is an amazing program! I don’t think anyone on the forums has done that with their OOPIC. Very cool.
Many thanks Joe.
However after reading your response maybe I should clarify things a bit more
One thing I have noticed on the OOPic mail list is that every now and again ( actually quite frequently as only joined it a while back ) is the question of machine vision or processing images from a webcam.
The OOPic can not process images as it just does not have the power, hence my using the 701 and the processor in the CMUcam.
This program comunicates with the OOPic on the serial port just using the two byte protocol I said about earlier … The Camera feed is direct from the Webcam.
All I did was to combine the two into one program which will run on the 701. So the images do not go through the OOPic. They are fed directly to the 701 which can then in turn decide how to treat them and send simple instructions to the OOPic.
Sorry if that seems obvious to you Joe ( as I do respect your opinions after reading most of this forum ) but thought I might point it out before people start asking me about image processing for the OOPic
I’m still a newbie at this so just finding my way.
All the best.
Richard
PS
Got the nasty feeling my bank account might take a hit as read here about all the bots with legs and sounds fun
Not at all, the important thing is you found a way around this. I knew the OOPic didn’t have the capabilities of image proccessing, but thought you had added another board to do the job. My mistake in not asking further.
I wouldn’t say it was obvious, it didn’t occur to me - too early in the morning here. I just like how you integrated the video from the 701 into the program controlling WIRE. A lot of the programs I have seen all have the video feed in another window which seems funny to me. This looks more proffessional. The controls look pretty simple to control which is another thing I like. Is there any delay time in image or controls? Is the bot tethered or is it using a virtual port (wireless ect)?
Forgive the reply as in pub
I have used the ASUS Eee 701 for ‘higher level’ programming … It is basically a ultra portable that fits in Wire, so in effect it is another board or ‘layer’ so you were right. If you look at the first photo I posted on this thread you will see the 701 just below the top deck.
The video from a Logitech Orbit Webcam feeds directly into the 701 as does the seral interface from the OOPic. The program I wrote basically takes both feeds and combines them.
There is a delay, but that is pretty much down to the processing power of the 701. At the moment is pretty much instantaneous … From the program the dely in video feed is around than 250ms. The delay from sending a command from the 701 to it being executed is slightly less. But as far as the OOPic goes have not raised the baud rate above 9600 yet
When I ran this it was sort of tethered
Because the program was a user interaction one, the 701 had to be out of it’s normal placement ( see the earlier mages ), but was connected by just the wires it will use when in place so it gave a good indication. Also there was no power needed from outside the ‘loop’.
Because the program was drawing windows it should work even better when doing its own thing as it does not have to fire events driven by a ‘human’ driver.
Hope that helps
All the best.
Richard.
PS
It is great to get feedback as so new to this … I JUST WANT TO LEARN
Ahh, yes I see now. 8)
Wow, no noticable delay, sounds good!
good luck with the rest of the project
Trikky, would you mind sharing your C# code you used for this? I’m curious to check it out, likewise if you could email me your visual studio project files on this @ [email protected] I would greatly appreciate it.
I’m looking at creating a custom interface myself and am just learning Visual C#.
Tyberius, just sent you an e-mail … The video handling was through another source ( will look it up if anyone interested ) but the rest of the code was mine.
All the best.
Richard
PS
I’m not worthy … Looked at your projects before, way beyond me
Hey Andrew, just tried to send you one of the files but the mail bounced
You can download it directly here :
trikky2.com/WireCode.zip
Some notes :
The prog sends the info to the OOPic over a serial line using :
serialPort1.Write(new byte] { 0001, 0000 }, 0, 2);
The first byte is the control :
0001 - Stop
0002 - Forward
0003 - Back
0004 - Left
0005 - Right
The second byte is the value, so for example :
serialPort1.Write(new byte] { 0002, 0064 }, 0, 2);
Sends the bot forward at half speed ( The OOPic takes 0-127 as speed ).
There’s no error handling so, for example, trying to move the bot before
connecting will crash it
As I said I wrote this mainly just to test out the serial communications so
it
is pretty rough and ready
If you have any questions let me know.
All the best.
Richard%between%
Much appreciated! Thanks a ton!
Bounce back maybe due to the content of the zip file? Filter probably thinks since there is an executable and/or code its a virus.
No problem Andrew
I had a thought … Rare I know … Rather than send you the hacked up code I wrote which includes the webcam thought you might just like the webcam bit then you can integrate it how you wish ( if you want that part ), had a search but could not find the page by the original author ( and no references in the code ) but here is the original project :
trikky2.com/C__Webcam_161075762003.zip
Hope that helps.
All the best.
Richard
Hi Folks,
Sorry about the delay in posting an update. But got no new pictures or code to show … However things are coming along nicely ( ish ).
Started working on the code for slightly more advanced stuff ( as in connectivity rather than movement ).
One of the problems I came across was connecting to Wire remotely, at first I started with a peer to peer type program to connect the client ( the computer the user is sitting at ) to the server ( the 701 mounted on Wire ). Which was going well, however then I thought about the situations where there was not going to be a fixed access point … Dealing with different WiFi hotspots and especially connection requirements is really beyond me at this time.
At this point I could have given in and used an ‘intermediate’ service … But was sure I could solve it myself ( and am too cheap to pay ).
So thought about writting code to a MySQL database on the hosting account I had … Unfortunately only allows connection through ‘localhost’ so could not directly access the db through the client or Wire … So wrote a couple of PHP pages that simply take information passed to them and enter it in the database.
It worked
Another thing I had been thinking about was how the user would see what Wire sees … On my previous programs this was through the same interface as the control. But wanted more I started thinking about Messenger.
I have now written a very small program ( for the 701 on Wire ) that launches windows messenger and connects to my ID … So it can initiate a video link with me wherever I am. As an added bonus I get two way voice communication as well
It is getting close to the stage where I will let it out on it’s first wander in the real world ( supervised )
All the best.
Richard
PS
Still would like ANY suggestions feedback
PPS
Sorry I don’t contribute more to the rest of the forum but as I am learning it just feels that I would be wrong offering advice that might lead someone astray
Hi Folks,
Sorry not posted much, i actually put my back out a while ago and have been out of the picture for some time … Just caught up with work, and now can start devoting some time back to this project. The latest photo is :
A real rats nest of wiring, I know
But was the first photo with all the main parts connected and in place.
Now starting on the proper programming, but still got a lot of bits and pieces I can connect when I want to go back to the build
Hopefully will start posting again on a regular basis.
All the best.
Richard