Robotics

Open Source Robotics Studio... Anyone?

There is a new(ish) product available called Microsoft Robotics Studio, which is an excellent product. It makes controlling commodity robots very easy, and makes the entry into robotics very easy. I am not going to dwell on how good Microsoft Robotics Studio (MSRS) is, as this has been blogged about by many people. What I am going to do it stick my finger in the air and guage the wind.

I have been designing various interfaces for my robots for a while, and each new interface incorporates more features and better modularity. Well, it got me thinking about creating a coherent modular well documented, and most importantly of all, open sourced robotics studio.

baz – Fri, 15/06/2007 – 17:27

Open Source USB to I2C Interface

An Open Source USB to I2C interface

*** NEW: Now available to buy in my RobotFUZZ webshop ***

Features of new (still all GPL'd) version on RobotFUZZ

  • High speed I2C Communications at up to 333KHZ
  • SPI capable
  • Can be used as an AVR programmer via avdude
  • Has more generic software examples

The hardware is virtually identical, but the software has changed to use the hardware TWI module, allowing for high speed I2C. There is also SPI support in the new firmware, as well as the ability to flash an AVR chip using Avrdude. Firmware and software is still released under the GPL, but is significantly different to the one below, based on Till Harbaums work. The new firmware is based on Dick Streeflands usbtiny SPI adapter, with I2C written in. The new RobotFUZZ site also has API interfaces for Microsoft Windows, Visual Studio.net 2005 (C++ and VB.net) and more generic software.

I will leave the page below for historical reasons, but all development will now focus primarily on the new improved firmware.

Here is a design for a simple USB to I2C interface. It is based on the terrific work on the I2C-tiny-USB by Till Harbaum. These modifications are designed to control the OpenServo servo motor controller, but will serve as a generic USB to I2C interface.

baz – Sun, 11/03/2007 – 19:11

OpenServo motion Profile Editor

Motion Profile commander for OpenServo:-

As an active member and admin of OpenServo.com I have to create a lot of tools and utilities to experiment with the OpenServo platform.

Recently Mike Thompson, and myself embarked on creating complex hermite curve motion profile following for the OpenServo. You pass the curve parameters to the servo, and it will follow precisely.

I have created a motion profile editor that is suitable for testing this curve functionality.

It is written in QT and is completely cross platform.

Completed application for Windows/Linux

baz – Wed, 14/02/2007 – 18:25

Robot Arm II - phase 2

Phase two of the construction of the robot arm will follow on from the initial research stage, phase 1. Here are the results of the testing and investigation I have undertaken.

There were a few key areas that I wanted to investigate:-
Host controller
Software for host controller
Hardware Interface methods
Hardware driver electronics
Calculations of servo torques and motor suitability

Host Controller
I was investigating the use of a Gumstix board for controlling the hardware, and acting as both an independant controlller, and a slave controller. I also investigated using a cypress FX2 chip as a bridge interface, but this did not work out too well. After discounting the FX2 for it's speed constraints, I was left with the Gumstix. I believe the gumstix is the best tool for the job, as I noted in phase 1 it has a lot of IO capabilities.

baz – Thu, 28/09/2006 – 19:33

Backplane bus board

RoboFUZZ motherboard.

6X Full size bus connectors

3X OpenServo mini driver socket

1X Programming header
2X I2C Sockets (2 discrete busses, i.e not shared)
1X Power Connector

DIP Sockets The DIP pins control the voltage levels going to the smaller OpenServo connectors. it it switchable from external regulated supply, or the battery supply.

DIP Configuration:
1+2 3+4 5+6 1st pin +12v second pin +batt

Schematic

PCB Both sides

baz – Sat, 15/07/2006 – 22:20

RoboFUZZ power bus board

Power driver board for roboFUZZ robotic arm

This regulator board takes 12V+ source and regulates it to 2x5V outputs.

The two 5V outputs are smoothed, and isolated to make sure the high current side doesn't interfere with the MCU.

The standard +5V source (source 1) can supply up to 5A peak. This is enough for the MCU circuitry of the application.

The second output is a 20A peak output, although the board would fry at near 15A. This can be used to power the motors on the application.

The board also has an I2C interfaces controller chip. This controller monitors the current usage, and also checks the temperature of the large power transistors.

baz – Sat, 15/07/2006 – 21:17

Robofuzz Servo driver v0.21

Version 0.21 of the Robofuzz driver board.

From the v0.01 description:
These larger motors are powered by an L6203 MOSFET H-Bridge. The whole operation is controlled by an OpenServo MCU with a couple of software alterations for the LED's and h-bridge enable. There is also another A/D line used for H-Bridge current sense as well as a current sense chip.

There are 5 connectors on the left of the schematic, these are all linked together providing a I2C tap. The wiring configuration is the same as the OpenServo. There is even a small openservo edge connector on the board.

baz – Thu, 13/07/2006 – 00:46

Robot Servo Controller

Here are schematics and a PCB for the driver of the large servos on my Robot Arm.

These larger motors are powered by an L6203 MOSFET H-Bridge. The whole operation is controlled by an OpenServo MCU with a couple of software alterations for the LED's and h-bridge enable. There is also another A/D line used for H-Bridge current sense as well as a current sense chip.

There are 5 connectors on the left of the schematic, these are all linked together providing a I2C tap. The wiring configuration is the same as the OpenServo. There is even a small openservo edge connector on the board.

baz – Tue, 04/07/2006 – 17:35

I2C voltage level converter

I have created a schematic and PCB to solve the problem of different host device I2C voltages.

Here is the original reference material used to create the PCB
AN97055

This will allow a 3.3v host I2C to communicate with 5v slave device, and vice versa.
This implementation is tolerant up to 12v I2C bus, resistor values may have to be changed to compensate.

The connectors on either end are edge connectors, but to minimise bus capacitance, I recommend soldering the cables.
The best results come when the adapter is connected close to the host end of the chain.

Construction is either single, or double sided. Single sided is achieved using 3 links as in the diagram below. For Double sided, just etch the link too.

It could be noted that this could be reduced in size with the substitution of SMT resistors for the full size through hole type I chose for convenience.

The MOS-FET used is an NDS351AN, which loosely fits the specification in the application note. A suitable SOT-3 substitution may be made.

Pins are laid out according to I2C specification regarding the adjacent placement of SDA and SCL lines.

Constructed board. Made by hand in a hurry.

Here is the schematic

baz – Mon, 26/06/2006 – 01:54

Servo Modification

This is a short guide to getting more from a basic servo.

OpenServo Modification:
Change from a standard servo to a digital servo.

Servo Battery Modification:
Servos are full of empty space. This is a guide to cramming a 7.2v Nicad into a servo.

More to follow when the camera works.

baz – Sun, 14/05/2006 – 16:36
Syndicate content