Showing posts with label robotstudio. Show all posts
Showing posts with label robotstudio. Show all posts
0

Robot Studio v1.0 - video online

Posted by Chris on Friday, August 07, 2009 in , , ,
A quick introduction to version 1.0 of Robot Studio.



A flash-based editor (so animations can be stored online and shared) for controlling servos using a 12-channel board with build-in eeprom playback. Add a point by clicking anywhere on the graph. Move points around by dragging. Delete points from anywhere in the graph and it will rebuild to "mend the hole" (for any nerdy-types interested in this kind of thing, it was achieved using a double-linked list, not nasty arrays!)

All points above the centre line mean the servo turns clockwise (at the very top of the graph = full right), and below means turn anti-clockwise (points at the bottom of the graph = full left). Servos can be designated as "angular" (normal motion) or "rotational" (hacked) and the distance of the point from the centreline then controls the speed of the servo.

Because different servos behave differently (one continuous rotation servo may be at dead stop at 50% pwm, whereas another may creep round until at 55%) each servo channel can have its own centre line. All points above this line turn the rotational servo clockwise, all points below turn it anti-clockwise.

The absolute minimum and maximum values for each servo can be set independently. Any points added outside these absolutes are snapped into the acceptable range.

Playback animation and watch the software servos onscreen. Press the export button and you're presented with a stream of bytes. Copy and paste these bytes into the eeprom loader application, and your servo-board is loaded up with data and ready to play back your animation!

The 12-channel servo board is controlled by USB and is recognised as a HID-compliant device (no nasty drivers to install and are even Mac-compatible). The board also supports serial communications, making it compatible with Arduino. The controller boards can be daisy-chained using serial comms, increasing the servo channels from 12 to 24, to 36 etc.

Version 1.0 of Robot Studio supports a single board.
Multi-board support is being developed for v2.0

The controller boards are available to buy at http://www.botbuilder.co.uk/store

2

Servo controller board. Complete?

Posted by Chris on Friday, August 07, 2009 in , , , ,
After a few problems at the RobotBrighton Demo (the least of which was not being able to get the board to work properly!) things were looking bleak for the multiple USB servo controller.

It didn't matter what sequence of bytes the online editor spat out, they could never be sent (and read back) from eeprom consistently.
Sometimes bytes were missing, sometimes byte values were changed for others, and sometimes, the bytes read back looked nothing like those that were supposedly written to the device!

It turns out that the problem was a timing issue, between the MCU and the eeprom.
You see, the processor is running at 20Mhz, whereas the eeprom can only manage a measly 400khz (yes, khz) at best. This obviously leads to timing issues, particularly when writing to eeprom.

Finding the exact cause of the problem was a nightmare, particularly with a demo that was running late (and looking quite likely to not happen at all). Luckily, the problem was easily resolved by added a 5ms delay after writing each 4-byte chunk to memory. So now the board works just fine.

Which is just as well, otherwise it would mean that this last week would have been wasted, as most of it has been spent perfecting the Flash-based servo editor interface



This spanky editor allows you to control up to twelve separate servos using a simple click-n-drag interface. It uses a double-linked list to keep track of each of the graph points, allowing them to be dragged around and their position within the horizontal timeline to be altered quickly and easily. As each point of the graph is dropped into its new location, the graph is redrawn quickly without the need for popping and pushing array elements around the place. Linked lists are perfect for when you need an array of items that could regularly change place within a list.

0

If you can't build it, simulate it

Posted by Chris on Tuesday, June 23, 2009 in , , ,
Despite the lack of news recently, it doesn't means things have gone quiet up here in Nerd Towers. In fact, it's the very opposite - beavering away making clever things means less time to write and tell you about them. But here's something that we're really quite proud of: a servo simulator.

In collaboration with botbuilder.co.uk we're making a USB/serial servo controller which uses EEPROM to store a sequence of commands to control the servo(s). The idea is that you can plug the robot into your USB port, download a "servo script" and sit back as your robot puppet performs it's sequence of tasks.

Using these excellent 360 degree servos the simulator allows you to set the min/max bands for each servo in a list, and to set the centre point. Servo movement over time is defined by plotting points on a graph. The editor also lets you play back (i.e. simulate) your servos movement so you can fine-tune your graph(s).

Here's an early version of the Flash-based online interface (in time it's hoped that users will be able to share servo scripts through the website, hence the online editor):



In this example, servos 1 and 3 have been hacked for continuous 360 degree rotation. Servo 2 is a "traditional" servo, moving through 0-180 degrees.

whos.amung.us

Copyright © 2009 .Nerd Club All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive Supported by Blogger Templates.