Thursday, June 29, 2006

Tiny Threads - Tiny Multitasking Threads for Microcontrollers

by: Regulus Berdin
Limitations:
  • Maximum 254 lines per thread.
  • Thread context switching will not work within a switch block.
Usage example:
     TT_DEF(1)
{
TT_BEGIN(1);
while (1)
{
...
TT_SWITCH(1);
...
...
TT_WAIT_UNTIL(1,keypress);
}
TT_END(1);
}

TT_DEF(LED_TASK)
{
TT_BEGIN(LED_TASK);
while (1)
{
LedOn();
delay=DELAY_1_SECOND;
TT_WAIT_UNTIL(LED_TASK,delay==0);
LedOff();
delay=DELAY_1_SECOND;
TT_WAIT_UNTIL(LED_TASK,delay==0);
}
TT_END(LED_TASK);
}

void main(void)
{
...
...
while(1)
{
TT_SCHED(1);
TT_SCHED(LED_TASK);
}
}
Visit Site

Wednesday, June 28, 2006

nBot Balancing Robot

David P. Anderson

b08.jpg

I've been working on a two-wheeled balancing robot, nBot .

This robot was featured as NASA's Cool Robot of the Week for 19 May 2003. Thereafter Scientific American's online website, SCI/Tech Web Awards, honored the NASA page as one of the top 10 engineering and technical web sites for 2003, referencing nBot in its text. nBot is also featured in a new O'Reilly book spun off from Make Magazine in 2006, called The Makers.

The basic idea for a two-wheeled dynamically balancing robot is pretty simple: drive the wheels ...

The robot hardware was built in my home machine shop. Here as some exploded views of the motor platform and drive components, as well as the castering tailwheel, now removed, which was used for testing and calibrating the motors and encoders before nBot was able to balance on two wheels. The robot uses the HC11 robot controller developed for the M.I.T. 6.270 Robotics Course, the same robot controller used on the LegoBot and SR04.


Rev 1. This began as an experiment to learn to control an inverted pendulum. I began with a three wheeled robot with a ball-bearing pivot used to attach a 3 foot wooden pole topped with an orange Nerf Ball. The pivot has a low-friction 5k potentiometer used for measuring the tilt angle of the pole. I moved the battery pack over the rear wheel to give more stability. Here is an mpeg movie (10 Meg) of the robot balancing the pole in my office. Here (3.3 Meg) is a shorter version, and here (3.7) is another.



Rev 2. After learning to balance the pole, the robot was re-built as a two-wheel version, with the battery mounted directly above the wheels. The ball-bearing pivot was attached to the bottom of the robot with a short aluminium feeler touching the floor. In this way the robot can sense it's angle to the floor and, assuming the floor is level, to gravity as well. The aluminium feeler has a teflon pad on the end to help it ride over cracks and joints in the floor.


Rev 3. For the third version a third deck was added and the batteries moved to the top deck. This allows the robot to generate more torque without having to tilt over as far. The side view of the platform shows the battery and user interface on the top deck, the microcontroller and h-bridge on the middle deck, and the motors...

Visit Site

Monday, June 26, 2006

Using Old Disk Drive Motors

Hobby Robotics

Hobby roboticists have been around almost as long as computer enthusiasts. They are the ultimate tinkerers, often turning inexpensive or used parts into highly autonomous robotic systems. The success of Lego's Mindstorms™ robot kits, which were developed in collaboration with MIT, punctuates the growing fascination of kids and grown-ups alike with building robots of their own. Then there is the huge success of robot competitions including robot soccer tournaments and robot demolition derbies (e.g. BattleBot).

Just like an industrial manipulator, a medical robot or a haptic device, hobby robotics is about mechatronics, requiring skill in and passion about electromechanical design and software.

Most hobby robots, though not all, have a relatively simply microcontroller (such as Motorola's 68HC11, Parallax's Basic Stamp), rather than the typical high speed microprocessor found in industrial robot controllers (e.g. Motorola 68040 in Adept controllers, PowerPC in Fanuc controllers, etc.).

Often, relatively inexpensive motors and sensors are found on these robots. Some of these robots employ high torque motors found on hobby racecars.

Hobby roboticists are excellent recyclers, often reusing components salvaged from used or surplus disk drives, radios, calculators, etc.

Images courtesy of CMU's Robotics Institute

Regardless of the costs of the system, many of these kit robots have interesting design and performance. Take for example the robot in the above image. This is a PalmPilot-driven robot developed by Carnegie Mellon University's Robotics Institute, which has garnered a great deal of recent press. This is a robot with three omni-wheels, which can rotate in two orthogonal directions, leading to a holonomic design in the sense that the robot can move in any direction at any time (typical wheels can only rotate in the plane normal to its axis, which is a non-holonomic constraint, so that it cannot always from from a given starting point to a given stop point in a direct path). The robot has a Pontech SV203 board for motor and IR sensor control and a PalmPilot for high level control. The use of a popular PDA for control provides relatively powerful computing and a graphical user interface at a low cost. More details about the software and hardware design can be found at CMU's website. Acroname is currently selling an unassembled kit as well as a preassembled version of this robot...


Visit Site

Sunday, June 25, 2006

Open Automation Project

The objective is to use readily available "off-the-shelf" low-cost consumer components where possible, and to design electronic subsystems where such components are either not readily available or are too expensive. In terms of affordability, the overall goal is to design a robot that can be made for around the price of a PC (US$1,500 to $2,000 is the target, but the actual cost of building a robot can vary greatly depending on how many of the electromechanical components are made in your own workshop versus purchased pre-fabricated).

* Overview

The block diagram below identifies the major hardware components that comprise the robot and its accompanying docking station. The cyan coloured blocks represent custom electronic circuits - all microcontroller based with firmware - that have been developed within the scope of this project.

block diagram

* Operating System

The free and open GNU/Linux operating system has been chosen as the foundation for the software in this project. Kernel and device-driver source code is readily available and well supported by the developer community.

* Mainboard

The requirements of the mainboard are:

  • at least two firewire ports
  • at least two serial ports
  • at least two USB ports
  • I2C port (optional)...
Visit Site

Thursday, June 22, 2006

Walking Robots

Welcome to WalkingRobots.com, a tome of information dedicated to the development of the walking style of robots.

Ever since the very creation of the word Robot, people think that robots should look and act like humans. But until recently, this has only been a fantasy. Making a true robot that can actually walk like a human, or remotely look like a human, has been trapped in the realm of science fiction movies and books.

Though the recent amazing humanoid robotic development efforts have been conducted by large corporations and research universities with multi-million dollar budgets, humanoid robots can actually be built at home by the average person.

I am hoping that the information that is presented here will help to inspire, and will help you to learn how to begin "walking" in your robotics development efforts.

Visit Site

Tuesday, June 20, 2006

First Entry

This is a new robotics site intended for hobbiest. Check out also my other hobby electronics circuits blog site.