BIFFERBOARD + VSTONE NANO

Custom built or hacked Electronic boards and sensors
37 postsPage 2 of 31, 2, 3
37 postsPage 2 of 31, 2, 3

Post by billyzelsnack » Sun Feb 06, 2011 8:12 am

Post by billyzelsnack
Sun Feb 06, 2011 8:12 am

Bought. Thanks. This will allow me to rearrange some things and save some space in my robot controller.
Bought. Thanks. This will allow me to rearrange some things and save some space in my robot controller.
billyzelsnack offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 618
Joined: Sat Dec 30, 2006 1:00 am

Post by billyzelsnack » Sun Feb 06, 2011 8:24 am

Post by billyzelsnack
Sun Feb 06, 2011 8:24 am

Just wondering.. Have you found that the display is not as useful in practice as you thought it might be? Seems like the only time I even use the display on my robot controller is for feedback during bootup. I'm half tempted to just get rid of mine as it'll same some weight/volume/trouble.
Just wondering.. Have you found that the display is not as useful in practice as you thought it might be? Seems like the only time I even use the display on my robot controller is for feedback during bootup. I'm half tempted to just get rid of mine as it'll same some weight/volume/trouble.
billyzelsnack offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 618
Joined: Sat Dec 30, 2006 1:00 am

Post by Zacohk » Sun Feb 06, 2011 10:15 am

Post by Zacohk
Sun Feb 06, 2011 10:15 am

You are hitting my major concern now: should I keep the display or get rid of it in favor of another adapter (sound or bluetooth).

The weight and size are not my main concerne. The Coby DP151 is working well and is only 46 x 33 x 9 mm and 11 gms.

The issue is I have only 4 usb ports available (sd card, wlan, webcam, lcd). If I want to connect both lcd and another adapter , I need a 2nd hub. The weight and space are not an issue (my hub is 2gms and 3x2 cm actually, not 3x4) but I am concern with the extra power needed as I want to keep an 1 hour play time with a 1300 mah single lipo (3.7 v).
I will do more power measurement to get some data.

The dislay is indeed extremely helpful for debugging and check what is going on. In particular to see if the system boot up correctly, the wlan link quality and some events.
With lcd4linux I can display any system values, messages or program variables.
I am working on some scripts to monitor and display the Bifferboard Nano batterie status and the Nano batterie status (done).
I will also use the lcd to display the I2c accelerometer and distance values.

However, I can now fetch all these data through a wifi socket connection and display them on my computer Flash interface .

I can also use 2 or 3 leds from the gpio to inform about some system events (boot up completed, link quality by blinking, ...) or play the messages with espeak.

Conclusion: I will keep the Lcd for debugging and will probably get rid of it when everything will be fine tuned.
You are hitting my major concern now: should I keep the display or get rid of it in favor of another adapter (sound or bluetooth).

The weight and size are not my main concerne. The Coby DP151 is working well and is only 46 x 33 x 9 mm and 11 gms.

The issue is I have only 4 usb ports available (sd card, wlan, webcam, lcd). If I want to connect both lcd and another adapter , I need a 2nd hub. The weight and space are not an issue (my hub is 2gms and 3x2 cm actually, not 3x4) but I am concern with the extra power needed as I want to keep an 1 hour play time with a 1300 mah single lipo (3.7 v).
I will do more power measurement to get some data.

The dislay is indeed extremely helpful for debugging and check what is going on. In particular to see if the system boot up correctly, the wlan link quality and some events.
With lcd4linux I can display any system values, messages or program variables.
I am working on some scripts to monitor and display the Bifferboard Nano batterie status and the Nano batterie status (done).
I will also use the lcd to display the I2c accelerometer and distance values.

However, I can now fetch all these data through a wifi socket connection and display them on my computer Flash interface .

I can also use 2 or 3 leds from the gpio to inform about some system events (boot up completed, link quality by blinking, ...) or play the messages with espeak.

Conclusion: I will keep the Lcd for debugging and will probably get rid of it when everything will be fine tuned.
Zacohk offline
Savvy Roboteer
Savvy Roboteer
Posts: 38
Joined: Wed Jul 02, 2008 9:54 am

Post by billyzelsnack » Sun Feb 06, 2011 6:37 pm

Post by billyzelsnack
Sun Feb 06, 2011 6:37 pm

I don't know how the bifferboard works, but my chumby board will spit out info over its serial port while Linux is booting. After it is booted I believe you can SSH into it as well.

What I'd like to do is to have some sort of wireless serial connection that talks to an ios or android device without requiring Linux booted. I'm guessing this might need to be bluetooth. A BlueSMiRF could work, but it's expensive and a bit large. Once Linux is booted my ios/android app could switch over to wifi.

With this setup I could have debugging information at all times without the weight and volume of an onboard display. I also gain a nifty way of controlling the robot.
I don't know how the bifferboard works, but my chumby board will spit out info over its serial port while Linux is booting. After it is booted I believe you can SSH into it as well.

What I'd like to do is to have some sort of wireless serial connection that talks to an ios or android device without requiring Linux booted. I'm guessing this might need to be bluetooth. A BlueSMiRF could work, but it's expensive and a bit large. Once Linux is booted my ios/android app could switch over to wifi.

With this setup I could have debugging information at all times without the weight and volume of an onboard display. I also gain a nifty way of controlling the robot.
billyzelsnack offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 618
Joined: Sat Dec 30, 2006 1:00 am

Post by billyzelsnack » Sun Feb 06, 2011 8:44 pm

Post by billyzelsnack
Sun Feb 06, 2011 8:44 pm

I was inspired to look into a low cost bluetooth solution and think this could be it..
http://www.circuitsathome.com/mcu/bluet ... o-usb-host
With this you could plug in a $3 bluetooth dongle. Of course then you'd need the usb-host shield, but a usb-host shield is nothing more than a MAX3421E which cost $12 at quantity 1.

Oh. One other benefit of supporting bluetooth is that you could control your robot with a wireless PS3 or Wii controller too. My Robovie supported the use of a PS2 controller and it more interesting than expected.

Or. Maybe a little simpler could be this option..
http://www.cutedigi.com/product_info.ph ... de42c9c7f5

(OK. Enough thread jacking.)
I was inspired to look into a low cost bluetooth solution and think this could be it..
http://www.circuitsathome.com/mcu/bluet ... o-usb-host
With this you could plug in a $3 bluetooth dongle. Of course then you'd need the usb-host shield, but a usb-host shield is nothing more than a MAX3421E which cost $12 at quantity 1.

Oh. One other benefit of supporting bluetooth is that you could control your robot with a wireless PS3 or Wii controller too. My Robovie supported the use of a PS2 controller and it more interesting than expected.

Or. Maybe a little simpler could be this option..
http://www.cutedigi.com/product_info.ph ... de42c9c7f5

(OK. Enough thread jacking.)
billyzelsnack offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 618
Joined: Sat Dec 30, 2006 1:00 am

Post by i-Bot » Mon Feb 07, 2011 12:28 am

Post by i-Bot
Mon Feb 07, 2011 12:28 am

If you want a low cost serial bluetooth link I would recommend to use the simpler option. I've seen them as low priced as $5.95.

When I wrote the bluetooth code for circuits@home it was more intended for devices such as wiimote and PS3 which use bluetooth HID and this is less common on simple bluetooth devices.

If you do want to use a USB dongle and build an interface, the bluetooth code has also been adapted to Atmel devices with USB host and even Propeller with bit banged USB host!

There were some nice bluetooth linux picture frames available in UK which make a nice remote display.
http://sites.google.com/site/repurposelinux/df3120
I bought a couple for £10 each, but I think they have got more expensive now. Keep a lookout.
If you want a low cost serial bluetooth link I would recommend to use the simpler option. I've seen them as low priced as $5.95.

When I wrote the bluetooth code for circuits@home it was more intended for devices such as wiimote and PS3 which use bluetooth HID and this is less common on simple bluetooth devices.

If you do want to use a USB dongle and build an interface, the bluetooth code has also been adapted to Atmel devices with USB host and even Propeller with bit banged USB host!

There were some nice bluetooth linux picture frames available in UK which make a nice remote display.
http://sites.google.com/site/repurposelinux/df3120
I bought a couple for £10 each, but I think they have got more expensive now. Keep a lookout.
i-Bot offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by haratron » Mon Feb 07, 2011 2:30 am

Post by haratron
Mon Feb 07, 2011 2:30 am

Most impressive!

What kind of humanoid robot does Zacohk use?
Most impressive!

What kind of humanoid robot does Zacohk use?
haratron offline
Savvy Roboteer
Savvy Roboteer
Posts: 37
Joined: Thu Feb 03, 2011 10:16 pm

Post by Zacohk » Mon Feb 07, 2011 5:46 am

Post by Zacohk
Mon Feb 07, 2011 5:46 am

It is a Vstone Robovie Nano.

A neat little bot, with parallel leg mechanism and cheap servos.

I also choose this platform because the controller serial communication protocol is easy and well documented (well ...in Japanese! but Google translate helped a lot).
For examples:
To start a motion: send W 2009e2 01 00
To request the battery voltage: send R 2009dc 04
To control servo 246 (ec) position : send W 2009ec 7f 80 00 ff
It is a Vstone Robovie Nano.

A neat little bot, with parallel leg mechanism and cheap servos.

I also choose this platform because the controller serial communication protocol is easy and well documented (well ...in Japanese! but Google translate helped a lot).
For examples:
To start a motion: send W 2009e2 01 00
To request the battery voltage: send R 2009dc 04
To control servo 246 (ec) position : send W 2009ec 7f 80 00 ff
Zacohk offline
Savvy Roboteer
Savvy Roboteer
Posts: 38
Joined: Wed Jul 02, 2008 9:54 am

Post by Zacohk » Sat Feb 26, 2011 4:10 pm

Post by Zacohk
Sat Feb 26, 2011 4:10 pm

I order to play Flite (Text to Speech), audio file or stream I added the USB audio adapter "Music Fairy" pictured below. It has the smallest pcb.
I added 2 x 0.25 W speakers in the Nano hands.

Image
Image
Image
I order to play Flite (Text to Speech), audio file or stream I added the USB audio adapter "Music Fairy" pictured below. It has the smallest pcb.
I added 2 x 0.25 W speakers in the Nano hands.

Image
Image
Image
Zacohk offline
Savvy Roboteer
Savvy Roboteer
Posts: 38
Joined: Wed Jul 02, 2008 9:54 am

Post by Zacohk » Sat Feb 26, 2011 4:19 pm

Post by Zacohk
Sat Feb 26, 2011 4:19 pm

My Debian distro (Squeeze) compiled with all modules + my scripts and the kernel can be downloaded from my blog:

http://microrobotic.blogspot.com/
My Debian distro (Squeeze) compiled with all modules + my scripts and the kernel can be downloaded from my blog:

http://microrobotic.blogspot.com/
Zacohk offline
Savvy Roboteer
Savvy Roboteer
Posts: 38
Joined: Wed Jul 02, 2008 9:54 am

Post by limor » Thu Mar 17, 2011 2:48 pm

Post by limor
Thu Mar 17, 2011 2:48 pm

Hi Zaco,

I love your Bifferboard humanoid project and was wondering if you have done much progress the past month.

Here's an extract from your blog's todo list:

Build Debian kernel & rootf : (done) Debian Squeeze with headers. Linux 2.6.32.2
Wlan (done)
Remote motions control (done)
Remote master slave control : (done)
Video streaming - 2 ways : (done)
Vision/Blob recognitions (not started)
Sound streaming - 2 ways (wip) - can play stream, can record sound
Speech Synthesis (done) - flite working well, espeak is choppy but still usable
Speech Recognition (wip)
Remote Sensors monitoring (done) Battery level, accelerometer, distance, temperature
Lcd usb display (done) - hacked 1.5" key chain
Oled i2c display (wip)
Auto charging (not started)


Can you please expand a bit more on the status of items in your task list and also maybe share the source code for the video broadcast and remote video display and control GUI?

Image
Hi Zaco,

I love your Bifferboard humanoid project and was wondering if you have done much progress the past month.

Here's an extract from your blog's todo list:

Build Debian kernel & rootf : (done) Debian Squeeze with headers. Linux 2.6.32.2
Wlan (done)
Remote motions control (done)
Remote master slave control : (done)
Video streaming - 2 ways : (done)
Vision/Blob recognitions (not started)
Sound streaming - 2 ways (wip) - can play stream, can record sound
Speech Synthesis (done) - flite working well, espeak is choppy but still usable
Speech Recognition (wip)
Remote Sensors monitoring (done) Battery level, accelerometer, distance, temperature
Lcd usb display (done) - hacked 1.5" key chain
Oled i2c display (wip)
Auto charging (not started)


Can you please expand a bit more on the status of items in your task list and also maybe share the source code for the video broadcast and remote video display and control GUI?

Image
limor offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by Zacohk » Sat Mar 19, 2011 4:20 pm

Post by Zacohk
Sat Mar 19, 2011 4:20 pm

Thanks Limor,

I am currently working on properly installing a SRF-10 distance sensor and BMA180 accelerometer. I have some code working (in Python and C) and my concerns now are to decide where to install the SRF-10 (I will need to either make a new head or a new chest) and how to integrate these measurement to some (usefull) robot control (reading is quite slow in Python so I seriously need to improve my C/C++)


The GUI control is board is in Flash, it is quite simple: when pressed, a button send a string (for example “SON” when the button Servo ON/OFF is pressed once) to a socket server, in Python, running on the Bifferboard who then send the according serial command to the NANO controller (in this case W2009f60100\r\n which turn the servos on).

The master slave slides generate some variables that are , in the same way, directly converted to some servo positions.

These slides are more for debugging and testing the connection and respond now. My plan is to do some master slave control with some potentiometers or sensors (connected to an Arduino for which Flash communication is easy to setup).

The Flash (socket) also receive and display the variables (Battery level, I2c variable) and strings from another similar Bifferboard Python server (I am redoing it).

The green button on the right of the Speech Synthetiser text box, send the content of this box to the server which trigger flite and read it (cmd = 'flite -t %r &' %data2) on the Nano.

The Button Music start a webradio, I need to add a button to stop it .....

The Python Socket server and the Flash Adobe GUI can be downloaded here:

PYSERVER Link
https://docs.google.com/leaf?id=0B6rYc4n12uHTMjVhZDc4MzgtMDQ3YS00YzBkLWJmMDQtNGY4MWRmYWYzNWYy&hl=en&authkey=CPGYrIYL


NANO FLASH Link
https://docs.google.com/leaf?id=0B6rYc4n12uHTNWE2M2EzODUtMTM1MS00MTY2LWIxZDEtMzU3ZTdhNmQ4ZGY2&hl=en&authkey=CIO5y78M


Concerning some other tasks:

- Speech recognition (voice control):
I am still trying to install Cvoicecontrol :
http://www.kiecza.net/daniel/linux/cvoicecontrol/index-1.html

I did succeed, once, to install it on my Bifferboard running Debian Lenny but I had some mic calibration issues.
I didn’t succeed yet to install this program on Debian Squeeze.

- Color/blob tracking:
I am collecting some info. I don’t expect to run OpenCV on a 150Mhz board but I wonder if some pure C color tracking program could work. I am studying this project for example:
http://negativeacknowledge.com/2009/05/robot2-an-arm-based-colour-tracking-robot/

- Oled i2c display
Still sold out for the moment (this nice little color 128 x 64 oled I2c display).
Thanks Limor,

I am currently working on properly installing a SRF-10 distance sensor and BMA180 accelerometer. I have some code working (in Python and C) and my concerns now are to decide where to install the SRF-10 (I will need to either make a new head or a new chest) and how to integrate these measurement to some (usefull) robot control (reading is quite slow in Python so I seriously need to improve my C/C++)


The GUI control is board is in Flash, it is quite simple: when pressed, a button send a string (for example “SON” when the button Servo ON/OFF is pressed once) to a socket server, in Python, running on the Bifferboard who then send the according serial command to the NANO controller (in this case W2009f60100\r\n which turn the servos on).

The master slave slides generate some variables that are , in the same way, directly converted to some servo positions.

These slides are more for debugging and testing the connection and respond now. My plan is to do some master slave control with some potentiometers or sensors (connected to an Arduino for which Flash communication is easy to setup).

The Flash (socket) also receive and display the variables (Battery level, I2c variable) and strings from another similar Bifferboard Python server (I am redoing it).

The green button on the right of the Speech Synthetiser text box, send the content of this box to the server which trigger flite and read it (cmd = 'flite -t %r &' %data2) on the Nano.

The Button Music start a webradio, I need to add a button to stop it .....

The Python Socket server and the Flash Adobe GUI can be downloaded here:

PYSERVER Link
https://docs.google.com/leaf?id=0B6rYc4n12uHTMjVhZDc4MzgtMDQ3YS00YzBkLWJmMDQtNGY4MWRmYWYzNWYy&hl=en&authkey=CPGYrIYL


NANO FLASH Link
https://docs.google.com/leaf?id=0B6rYc4n12uHTNWE2M2EzODUtMTM1MS00MTY2LWIxZDEtMzU3ZTdhNmQ4ZGY2&hl=en&authkey=CIO5y78M


Concerning some other tasks:

- Speech recognition (voice control):
I am still trying to install Cvoicecontrol :
http://www.kiecza.net/daniel/linux/cvoicecontrol/index-1.html

I did succeed, once, to install it on my Bifferboard running Debian Lenny but I had some mic calibration issues.
I didn’t succeed yet to install this program on Debian Squeeze.

- Color/blob tracking:
I am collecting some info. I don’t expect to run OpenCV on a 150Mhz board but I wonder if some pure C color tracking program could work. I am studying this project for example:
http://negativeacknowledge.com/2009/05/robot2-an-arm-based-colour-tracking-robot/

- Oled i2c display
Still sold out for the moment (this nice little color 128 x 64 oled I2c display).
Zacohk offline
Savvy Roboteer
Savvy Roboteer
Posts: 38
Joined: Wed Jul 02, 2008 9:54 am

Post by billyzelsnack » Sat Mar 19, 2011 8:03 pm

Post by billyzelsnack
Sat Mar 19, 2011 8:03 pm

Zacohk wrote:- Color/blob tracking:
I am collecting some info. I don’t expect to run OpenCV on a 150Mhz board but I wonder if some pure C color tracking program could work. I am studying this project for example:
http://negativeacknowledge.com/2009/05/robot2-an-arm-based-colour-tracking-robot/


The LUT technique that the Darwin-OP is using is pretty fast and quite robust. I have a video about a tool I made here.. http://www.youtube.com/watch?v=4M5epYU0kdc

The basic jist is that you take the YUV values for a pixel and you use it to index into a LUT that gives you back a quantized color for the pixel. You end up with a frame with the background masked out and only a few color values to deal with. From this data it is much easier to robustly track an object.
Zacohk wrote:- Color/blob tracking:
I am collecting some info. I don’t expect to run OpenCV on a 150Mhz board but I wonder if some pure C color tracking program could work. I am studying this project for example:
http://negativeacknowledge.com/2009/05/robot2-an-arm-based-colour-tracking-robot/


The LUT technique that the Darwin-OP is using is pretty fast and quite robust. I have a video about a tool I made here.. http://www.youtube.com/watch?v=4M5epYU0kdc

The basic jist is that you take the YUV values for a pixel and you use it to index into a LUT that gives you back a quantized color for the pixel. You end up with a frame with the background masked out and only a few color values to deal with. From this data it is much easier to robustly track an object.
billyzelsnack offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 618
Joined: Sat Dec 30, 2006 1:00 am

Post by PedroR » Tue Mar 22, 2011 4:06 pm

Post by PedroR
Tue Mar 22, 2011 4:06 pm

Hi Zahcok

Allow me to jump in with a couple of suggestions.

Limor pointed out your post to me which, after reading it, is definitely very interesting.

We'll be receiving here on RoboSavvy some new products in the next weeks which I thought might be interesting in advancing your design.

One is a 1.44" LCD http://www.4dsystems.com.au/prod.php?id=120
Despite the small size it's powered by a GOLDELOX chip which is very powerful and can do quite a lot.
Check out the GFX or SGC section on the page. The module can work over serial (not sure about I2C) but the onboard processor can be programmed and operate stand alone; maybe even co-process some of the tasks on the robot.
I know it is capable of doing for example sound output and has some GPIO pins usable if you choose to program it in GFX mode.


The other one is a Serial JPEG camera http://www.4dsystems.com.au/prod.php?id=75
It would release a USB port from your webcam but the main reason for this suggestion is that you mentioned OpenCV.

If you want to do a simple color tracking mechanism (such as the one suggested billyzelsnack), it's quite easy to do that instructing the CAM to take small resolution frames and looking for BLOBs pixel by pixel.
I think the Bifferboard is of implementing such an algorithm which is fairly simple.
Also, since the CAM and data travels over the Serial line all the overhead of the USB stack is eliminated, releasing some processing power.
One sample algorithm can be found here http://geekblog.nl/entry/24

The CAM can also take higher resolution JPEGs should you wish to do simple streaming.

Pedro.
Hi Zahcok

Allow me to jump in with a couple of suggestions.

Limor pointed out your post to me which, after reading it, is definitely very interesting.

We'll be receiving here on RoboSavvy some new products in the next weeks which I thought might be interesting in advancing your design.

One is a 1.44" LCD http://www.4dsystems.com.au/prod.php?id=120
Despite the small size it's powered by a GOLDELOX chip which is very powerful and can do quite a lot.
Check out the GFX or SGC section on the page. The module can work over serial (not sure about I2C) but the onboard processor can be programmed and operate stand alone; maybe even co-process some of the tasks on the robot.
I know it is capable of doing for example sound output and has some GPIO pins usable if you choose to program it in GFX mode.


The other one is a Serial JPEG camera http://www.4dsystems.com.au/prod.php?id=75
It would release a USB port from your webcam but the main reason for this suggestion is that you mentioned OpenCV.

If you want to do a simple color tracking mechanism (such as the one suggested billyzelsnack), it's quite easy to do that instructing the CAM to take small resolution frames and looking for BLOBs pixel by pixel.
I think the Bifferboard is of implementing such an algorithm which is fairly simple.
Also, since the CAM and data travels over the Serial line all the overhead of the USB stack is eliminated, releasing some processing power.
One sample algorithm can be found here http://geekblog.nl/entry/24

The CAM can also take higher resolution JPEGs should you wish to do simple streaming.

Pedro.
PedroR offline
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

Post by PedroR » Tue Mar 22, 2011 5:28 pm

Post by PedroR
Tue Mar 22, 2011 5:28 pm

ah one last comment, we'll also be getting another LCD (a larger one with 3.2") which has a resistive touchscreen. The processor is a different - PICASO - but works in the same manner as the GOLDELOX. The PICASO just has more horsepower.

From reading your posts 3.2" may be a bit large for your robot but here are is the link in any case: http://www.4dsystems.com.au/prod.php?id=114

Regards
Pedro
ah one last comment, we'll also be getting another LCD (a larger one with 3.2") which has a resistive touchscreen. The processor is a different - PICASO - but works in the same manner as the GOLDELOX. The PICASO just has more horsepower.

From reading your posts 3.2" may be a bit large for your robot but here are is the link in any case: http://www.4dsystems.com.au/prod.php?id=114

Regards
Pedro
PedroR offline
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

PreviousNext
PreviousNext
37 postsPage 2 of 31, 2, 3
37 postsPage 2 of 31, 2, 3