11.01.2008

Build a Tracked Drive Robot - How I built TrakBot

I got a comment on this blog a few days ago and I decided to take on the project someone suggested. While they thought the TrakBot was interesting, they wanted more of a "how-to" so they could build their own trakBot.

From TrakBot: Build Your Own Track Drive Robot


Since, as many of my readers know, I'm deeply involved in creating a new website which is all about "how-to" do things. How to put together a dual H-Bridge, to how to put together or mod a robot, or just about anything else.

I made the commitment! I would create an article for CwhatIcanDo.com about how to build the actual robot that I showed on this website. I really just talked about it and generalized about things like software, how it all worked and most of all, no schematic.

So I decided to make a project for CwhatIcanDo just to see how long it took and at the same time, to answer the comment on this blog.

The result lives Here This is the project broken out in a How-To complete with schematics and software on the CwhatIcanDo Alpha Website. It's not quite ready for a full Beta release, and doing this project just reminded me what I still have left to do. But, even so, I built a nice project. It took about 4 hours with a ton of interruptions. I think the time to create a project will get better in the future (before the site actually opens to the public) but I'm pretty excited about the outcome.

(Updated Nov 3, 2008): There are a couple of other work-around type bugs, but the point is, it can be done. And the results are pretty nice. But I'll let my blog questioner answer that. Does he believe he could build his own trakBot and learn a lot in the doing?

The current workaround, Nov 3, 2008 is simple: You'll have to supply your videos from your own YouTube or Google Video account, the software is not yet set up to allow you to upload videos and pictures from the Creator's Tools. Enjoy becoming an alpha tester!! But a lot of ppl have YouTube Accounts anyway. And, soon, the tools will all be implemented.

If you want to visit the website in Alpha Test (Release Candidate 1), you'll have to go "around" the main page, that doorway won't be open until the actual Beta Site release. We are shooting for "around Thanksgiving" to open the Beta Site.

Visit the Open Alpha Test at cWhatIcanDo.com/main/ Open for ppl who are guided there on my Blog (here) or other fairly private links on various Blogs as the site is "discovered"...

10.01.2008

TriCycle Bot

Check this guy out.  Why build such a thing?  Because I want to create a Ball Bot.  That's right. This month I've been pondering making a ball robot. So I've been thinking about what and how to do it.  Here's where I went at first.  I figured a couple of wheels inside a ball wouldn't work unless one of the wheels allowed me to move in all directions.

So I figured, why not just one wheel?  Standing up would be a problem.  That was easy to fix, you just make a triangle.  Use a couple of wheels expressly to hold the rest of the bot, that's all.  The tricycle would exist inside a large round ball instead of moving around the floor.  The tricycle bot serves as kind of an experiment in "can you do it?"  The answer is, YES!  And the video is the proof.



So what's next?  Find a suitable ball to set the tricycle inside and see if the ball moves around.  Maybe next time I make an entry???

UPDATE on CwhatIcanDo.com:  
It's being used and we've had a couple of bugs. I'm glad it's only family and friends alpha!  On time for a Fall Beta, but that decision is still a month away.  This is another video featured on the CwhatIcanDo website.

9.12.2008

RFL AI-01 Ultimate Football Machine

It's gotta be the Ultimate Football Machine to live up to the promise. And it does! I wish I could send you to the new CwhatIcanDo.com website to see the whole project. You can sneak a peek...



While you charge the batteries (getting ready for the full experience.) Put the extenders on your bot and it will surprise you just how well it will be able to stand up "around the house." My bumpy back deck is a favorite robot test area, as you know from all the videos. In the "out of the box" video above, you will see the bot in the raw, out of the box, so to speak. I recommend, unless you are putting one of these bots into a real RFL American Football Robot Game, put the extenders on. You have to charge the battery anyway, so you might as well start with the extenders, it will run better on carpets, in fact most bumpy surfaces around most houses.



This is one tough bot. I'm thinking it is a candidate for a really great bot body. It does everything I hoped DogBot would do, like climb the hill in front of my house. It can stop on a hill. It has enough power to last long enough for an hour's walk. Did I mention it is tough? Mega thick reinforced plastic frame parts can take a drop, and a hit from another robot. Now I'm rethinking that robot that I take on walks with me.

I played around with the upright robot base enough to appreciate the balance and power transfer to the wheels and all that. With the extenders, this baby could negotiate sidewalks and my back deck, it's still fairly light and easy to grab and haul up on the curb. So now it is the candidate for my own cyber pet...

8.23.2008

Weekend Project L298 Dual H-Bridge

Tadah!

This is kind of a monumental time for the new website. Notice I posted this video on CwhatIcanDoProjects YouTube account.

Congratulations to Andrei and Me for getting the CwhatIcanDo website ready for Alpha Testing! You get to see it here!

About the project itself. This is one of those watch it get built videos like some of the more popular ones on my YouTube Channel (We R bots)

This is a dual H-bridge Motor Controller that delivers 4Amps total (2A / motor). The 293, the little brother of this controller, only handles an amp. This one doubles its capability. Since the pinout is a little strange, I bought the whole thing with a PC board from HVTech, or Solarbotics, no matter, they are all the same now.

Anyway, it went together in a blink. Alright, true, a long blink, say a couple of hours, but together it went and passed the operation test as soon as it was hooked up.

Next expect me to do something freaky with the Motor Driver...

I'm back to building robots N stuff again. Though I'm also finishing off CwhatIcanDo and nursing it through the Alpha Testing period. The bug list has gotten much smaller and the things to do list has shrunk to a manageable size.

The website is coming!!!!

8.01.2008

How's The New Website Effort Going?

With a few bugs still left, but a manageable list, and no way yet to log into the website, alpha testing will none the less begin.

That's because Phase One of Alpha Testing is all internal. We, the developers will now begin to develop projects on CwhatIcanDo.com. Phase One testing will continue till mid-August when we will invite creators to participate in wringing out the final issues and making suggestions to make the site easy to use and understand.

After what we expect to be a month and one half of actual development using the site and the Creator Tools, we will open the website to the general public. Most likely this will be at the end of November, just in time for holiday web marketing pushes. Because CwhatIcanDo is not exactly a gift shop, we are not driven by retail deadlines, but we are also sure that with our "buy here" parts lists, we are going to stimulate purchasing of parts and tools to create another's version of the projects on CwhatIcanDo.

So this month's blog entry is not going to be very interesting until somewhere around the end of the month when I will redirect you via this blog to the new C What I Can Do website!

Whoopee! Almost There!!!!

7.22.2008

When Will I Create Another Robot?

It shouldn't be long now. By the end of July, we expect to open the back doors of CwhatIcanDo.com for Alpha Testers. As well as recruiting new creators, I'll be loading in the couple-three projects I created most recently.

Most recently I made a video of building the L 298 Electric Motor Controller. I haven't put the How-To up on this site yet, because I'm busy making CwhatIcanDo.com, basically a souped up Super-Blog designed specifically to allow project creation and display on the web.

We are on schedule for the late August-September Alpha Test, Debug, and Develop Phase. We are also still on target for a Fall Beta Opening of the Website. I'm betting on Late Fall - Early winter for the Grand Opening. Hopefully in time for you to put your favorite "How I Assembled a Kid's Trike for Christmas" project!

6.09.2008

Using the Ext 2.1 - 2.0

This is a quick blog entry. Just to let any blog visitors know what I'm up to.

I've been involved in my own learning curve for using a javascript framework: Ext 2.x. I'm far enough down the road to know enough about using this framework for a genuine website. Here's the downlow for the CwhatIcanDo website which is scheduled for a target public release in the fall. Behind the obvious URL homepage, we have a couple of issues:

Ext 2.x (and other frameworks) that fill in div tags with information - Lousy with Search Engines
Very clean and makes easy to use interfaces - Does this wildly well

Thus, CwhatIcanDo uses traditional php on the "outside" pages where you browse projects and steps quickly and lowest potential bandwidth. On the "inside" pages, where you actually develop your projects, use tools built with the Ext 2.x interface. Since the inside pages use Ext, everything shows to Search Engines, yet provides the most powerful tools for project development because the "inside" pages are not used by SE's anyway...

Monetization of the website occurs through 3rd party revenue sharing. A project creator can actually make money directly through showing a project on CwhatIcanDo. So in addition to racking up bragging rights, creators retain all publishing rights (write a book - produce a video) so the site becomes a great place for people to not only get glory, but make money through 3rd party sales, but also through direct sales of the creators' projects by themselves or another publisher.

It is a great concept. We are finished with the technical research and have started the actual site buildout. We are targeting Alpha Testing for late summer with the Beta Site scheduled to open for business in the fall of 2008. Meanwhile, I've got to leave now so I can do more development work...

Wish me and Andrei (A. Peshakov) luck! And look for robotics updates when summer is over... Maybe I'll be able to jam in another robot video before too long...

5.23.2008

RFL Upright Bot Base Hilights

So here I am, generally making an entry in this blog, because I'm tied up with another project: and it has taken away any free-time for bots. But I was digging around and found a couple of fun clips for this RFL bot.

Hope You enjoy it. I'll be back later with more on that new project...

3.03.2008

Weekend Project: Making Robot Frames Using Sturdy Solid Wire

Here's a fun weekend project creating a Buggy Bot robot base... Later we can add sensors to it, but for right now, it's a simple weekend project touting the benefits of using #12 wire to build bots...
From Making Robot ...

It's more research into building my upright RFL Football Robot! So far things are working pretty well, but I've got to work the pc board into the design, plus build a Cage around my bot, just in case I have to do battle.

Anyway, that got me thinking about wire as a base for the kinds of little bots I build around here, and very applicable to the RFL Football Bot (see March, this blog)...
From Making Robot ...

It looks like tying together rebar for pouring a cement foundation.
From Making Robot ...

Eventually, you solder the wires, then clip the excess, the solder holds the structure together, the wires help create the structure...
From Making Robot ...

The tabs have to be parallel to the axle, so you bend the wire appropriately...
From Making Robot ...

Now a top view
From Making Robot ...

From Making Robot ...

Dropping in the battery pack, so the switch is accessible while the bot runs...
From Making Robot ...

From Making Robot ...

Notice how the servo is held by bending a square around it, then tucking a piece of wire firmly against the servo... This makes the servo have a slight angle, but it is very strong... As you can see in the next photo...
From Making Robot ...

From Making Robot ...

Motor controller with picAxe 14m and a brand new Toshiba 1 amp motor driver (with dynamic breaking built-in... This thing is sweeeeeet! It uses two pins from the microprocessor to control the four operational modes: forward, reverse, stop, and brake... Very nice indeed.
From Making Robot ...

Soon (after the Pilot Test Run), I'd find out that it wouldn't steer because the front axle is fixed and what is transmitted to one wheel also goes to the other, this isn't good for making turns... In fact, with the batteries on the backend, there is som much weight I can't get the bot to steer at all...

The answer: Move the battery pack to shift the weight to the front wheels... as you can see in the next picture...
From Making Robot ...

The new shape of the weekend project bot!
From Making Robot ...

From the back....
From Making Robot ...

The side....

And, of course, like all good bot-builders and mashup dudes, here is the video: A step-by-step "weekend project" sure, it's about the wireframe idea for bot-bodies, but it's also all about this little Buggy-Bot...


Next stop for the Buggy Bot, get some sensors, so it can do object avoidance...

3.02.2008

RFL Inspired Stand Up Bot Base Phase I Complete

Putting the picAxe 18x plus motor drive (same one as in dogbot) would be the bees knees... Except for one thing... The power! Oh the power! I used a simple turn right, turn left kind of approach for the initial testing and with one motor, then the other running, each would dig-in to the carpet, not really run along it...

Let's dig into the software and see what we can do to make our bot civilized, using it's brains to direct it's brawn....

The wheels came in the mail, they just push right on to the twin motor gearbox... I've got things taped and wired together, just to be sure this whole idea will work...

We're off...


These are seeming to be disasters... I got the new wheels, they provide better traction, but now the upright bot has falling over issues when it jumps forward or backward...

I figured I'd have to readjust things a bit... Then I got myself a handful of these grounding straps... These things are easy to bend and that allows me to clean up the design by bending brackets for the "shoulder pads." Now the batteries transfer their weight to the wheels by virtue of angled brackets that attach to the screws that hold the motor-body together. This works well...

From RFL Inspired ...


Things are working very well now, some tweaks to the new front stabilizing suspension and the picAxe 18x does it's job. We now have motor control... Check out the Final Motor Control and RFL Football Inspired Upright Bot Base Video...

Phase II Next Up... How 'bout some "eyes", some IR so this guy can either home in on an opponent, or avoid said opponent bot... Maybe I'm going to have to work that big frame back into the bot design? Stay Tuned...

3.01.2008

RFL Football Type Robot

I get robot ideas from other robots... Like, I was inspired by some guy's robotic dog, that I started out to build dogBot... That was a great experience and spanned an exposure to both the 14m and 18x picAxe chips along with an H-Bridge, actually, two of 'em (one per wheel.)


Sparkfun.com sells these, that's where I saw them first, then in YouTube videos... These things are cool, so I'll take a whack at makin' my own, from my junkbox!








I love the RFL, sometimes called the Robot Football League, but really the Robot Fighting League - Football...

The bots run upright, powered by wheels, and not held upright with fancy inertial guidance system.


From RFL Inspired ...






















Well, my junkbox has a limited number of parts in it, so I had to create a kind of "junk parts available" kind of approach.

From RFL Inspired ...


Then came the problem with mounting the batteries...

When the thing took off, it would over-drive its own wheels, and fall over...
After some unsuccessful attempts at attaining balance, I discovered you need the batteries to distribute their weight directly on the motors to maximize power transfer to the bot wheels...


From RFL Inspired ...


Finally, after some rework we have some motor drive that looks like it will make it...

From RFL Inspired ...


Blog entry, we find out whether our scheme works as planned by putting some tires on this bot and doing something about those front wheels, they keep unscrewing, they are entirely wrong for this application, but they are what I have in the junk box...

From RFL Inspired ...


It's a robot project, so here's the video of the motor testing, with a lot of the failures removed :-)



Next Time We Get Some Nicer Wheels (Come on Mailman!!!)...
From RFL Inspired ...


One last item... And it's a tricky one: Where to mount the batteries in our junkbox version...

From RFL Inspired ...


Why not divide the pack in two using two X 2-AA battery holders??? This would make the design more compact, lower the center of gravity... Something like this...

From RFL Inspired ...


The two 9-volt battery clip holders get mounted as a pair, they rest on flanges from the twin motor gearbox, so make a holder out of plastic and Voila!

From RFL Inspired ...


Woo Hoo! It works... Now the bot is not top-heavy, this should make it more powerful... And, it does:

From RFL Inspired ...


Check out the modified football player bot now---



Now we've got power to wheels, stability, and oh boy! is this gonna be fun.

Let's hookup the motor drivers and picAxe 18 and see what we've got!

2.11.2008

MouseBot Get's Brains - Software

Software for Wall Hugger Action:



Part 5 Software Makes it Go!


This is the basic wall follower software... This software makes the bot turn left to hug the wall, with the values given, you will find MouseBot is FUN!!!

There are routines for left and right turn and the object detection operation as well as a speaker (squeaker) for your mouse. I'm still waiting for the piezo-speaker to come in the mail... I had one, but it was already in use. By using pin0 as a multi-purpose pin, we can add a speaker, which gives us some noise when downloading, but allows the little picAxe m8 to serve of the brains for the BEAM style "Wall Hugging Mouse" conversion to BEAM with BRAINS...

I know you'll want to do crazy things with your bot, so have at it, put the link to your MouseBot with Brains video so we can all see it...

' ------------------------------------------------------------
' BEAM bot Brains
'
' Basic Operation of mouse as "wall hugger" just like original
' Except for:
' IR detector "whiskers" lets the mouse find it's way
' Follows walls without physically touching
' Still has basic motor control with microcontroller picAxe m8
' Copyright 2008 Jim Huffman
' Permission granted to experimenters to use all or part
' Note copyrighted material frequency chart at the end


' Basic Interpreter Directives
#picaxe 08m


' Microprocessor pinouts and layouts 08m
symbol LED = 0 '(leg 7) Serout/LED
symbol rightDrv = 1 '(leg 6) High = motor on
symbol pout = 2 '(leg 5) PWMout2
symbol IRin = 3 '(leg 4) Input only pin3
symbol leftDrv = 4 '(leg 3) High = motor on
' (leg 1 Vdd, leg 8 = Vss, leg 2 = Serial In)
symbol spkr = 0 'extra symbol, speaker drive

' Variables used in program
symbol xCnt = b0
symbol rightDrvFlag = b1
symbol leftDrvFlag = b2
symbol objDetFlag = b3
symbol rightDrvTime = b4
symbol leftDrvTime = b5

init: ' Initialize chip so OK with low Vcc supply
disablebod
setfreq m4
' flash LED
high LED
pause 1000
low LED
pause 1000 'wait for Panic resets, etc...

' initialize variables
leftdrvTime = 120 ' Permits balancing forward motion
rightDrvTime = 100 ' allows motor speed balancing
low rightDrvFlag, leftDrvFlag, objDetFlag, xCnt ' initialize values


' Main driving loop avoids walls
main:

gosub driveforward
pause 10

goto main



' Move forward one time after the other - makes mouse wiggle
driveforward:
gosub objDetect 'makes 1/2 wiggle unless there is an object
' the other 1/2 wiggle even if there is a wall
high leftDrv
pause leftDrvTime
low rightDrv,leftDrv 'stop\
pause 10
return

' Driving commands (turns) stick in the appropriate spots
turnRight:
high rightDrv
pause rightDrvTime
low rightDrv,leftDrv 'stop
return

turnLeft:
high leftDrv
pause leftDrvTime
low rightDrv,leftDrv 'stop
return

' If an object is "sniffed out" then set objDetFlag high
objDetect:
pwmout pout, 22, 50 '25, 52 ' 26 usec period = 38.4 kHz
pause 3 ' Begins continuous output PWM

if pin3 = 0 then ' Object Detected
pause 3
pwmout pout, 0, 0 ' stop the continuous pulse output
else
' 1/2 wiggle (unless there's a wall)
high rightDrv
pause rightDrvTime
low rightDrv,leftDrv 'stop
pause 10
endif
pwmout pout, 0, 50 ' stop the continuous pulse output

return



MakeSound: ' fast-beep make a squeek...
setfreq m8 'kick into high-speed mode
for xCnt = 100 to 130
pulsout spkr, xCnt
next xCnt
low spkr
setfreq m4
return


' Chart of frequencies courtesy of PHAnderson...
'------------------------------------------------
' From IR_1.Bas
'
' copyright, Peter H Anderson, Baltimore, MD, May, '04

'
#rem ' PWMOut pout, Period, DutyCycles
PWMOut pout, 25, 52 ' 38.4 kHz
PWMOut pout, 24, 50 ' 40.0 kHz
PWMOut pout, 23, 48 ' 41.6 kHz
PWMOut pout, 22, 46 ' 43.5 kHz
PWMOut pout, 21, 44 ' 45.5 kHz
PWMOut pout, 20, 42 ' 47.6 kHz
PWMOut pout, 19, 40 ' 50.0 kHz
PWMOut pout, 18, 38 ' 52.6 kHz
PWMOut pout, 17, 36 ' 55.5 kHz
PWMOut pout, 16, 34 ' 58.8 kHz
#endrem

2.08.2008

MouseBot Is Quick! Powerful Motor Driver Transistors

Beefy Motor Driver Transistors - Makes MouseBot Move Quick. Like a Mouse!



Part 4 Wall Follower Mouse 'Bot Transformation

Hold on, last time we said we would add some gumption to our MouseBot. We will accomplish this feat while reducing the power disapated in those little innocent 3904's... Basically, this means we don't melt our Mouse's head...

From Mouse Bot Tra...

While the concept is covered in this schematic, the real-world shows that these motors are drawing a lot of power at startup, this overheats the 3904's, so far this means we've only been testing MouseBot... It's time for this robot to distribute the power to another transistor to stabilize the smaller transistors. This is going to allow MouseBot to do all sorts of things..

From Mouse Bot Tra...

MouseBot gets really real after you put in the TIP-29's (or whatever lives in your junkbox)... Now the mouse scoots so fast, it seems a little nervous, like it's biological counterpart...

For the issues and tricks, here's what I did:
  • Mount the Power Transistors right down at the motors, if you bend them like wings, you can connect to their bases and feed power directly from the on/off switch
  • With the batteries I'm using AA-1700 mah, you have to turn off brown out protection to allow the processor to go under 3 and 1/2 volts or so, you also need to keep the batteries fresh
  • The four battery clip is a little large and collides with the top of the back, shim it in the back so it leans forward, that works.
That's it!!

Have fun programming your MouseBot!!!

2.06.2008

MouseBot Electronic Motor Control

MouseBot Electronic Motor Control



Part 3 Wall Follower Mouse 'Bot Transformation



Let's put the ram in ramalamadingdong!

First Ya Need a Motor... Pretty much any-old hobby motor will work here. In Mousebot, we have not just one motor, but two... That means, of course, we can steer mousebot... That's how he works in the first place, using two motors, one that steers "into" the wall, and other that pulls mousebot forward into the open spaces...

We have our mousebot whiskers ready to go now (see blog) with a cool object avoidance system overseen by a picAxe m8 8-pin processor. By judicious re-use of pin0 for running the redLED in MouseBot's head and a piezo noise maker, we have two pins left over...

That means we could use one pin to turn on one motor and with two pins, this is most promising for MouseBot... Let me show you:

From Mouse Bot Tra...
This is electronic motor control in its most basic form. When the microcontroller output pins go high, they "turn on" the NPN transistors and large currents run through the motors. If the motors are working too hard, you just reduce the duty cycle, that is, you pulse the motors with a signal where you control the ratio of off/on time.

MouseBot's simple driver will not be able to back up, but, MouseBot can stop on a dime, and can turn on it's motors independently of each other, like this:

' System resources 08m pinouts and layouts
symbol LED = 0 '(leg 7) Serout/LED
symbol M1 = 1 '(leg 6)ADC1
symbol pout = 2 '(leg 5)ADC2,PWMout2
symbol IRin = 3 '(leg 4)
symbol M2 = 4 '(leg 3)ADC4
'(leg 1 Vdd, leg 8 = Vss, leg 2 = Serial In)
symbol xCnt = b0

'
high LED
pause 1000
Main:
low LED

pwmout pout, 22, 50 '25, 52 ' 26 usec period = 38.4 kHz
' for 40 kHz, use pwm IRsignal, 24, 50
' MAX Range about 4-5 ft 26, 50
' 3ft 27, 50
' 6" (closeup) 18, 40
' 2" (eXtreme closeup) 10, 40
Pause 3 ' Begins continuous output PWM


if pin3 = 0 then ' Object Detected
high LED
low M2
pause 1000
' go do things...
endif

gosub driveAround

pwm pout, 00, 00 ' turn off the PWM
Pause 100
GoTo Main

driveAround:
high M1,M2
pause 100
return

So the software controls the MouseBot's motors as it runs around... As shown in the test Run listing above. There are lot of things wrong with this piece of code, it makes no effort to make the motor run with any efficiency or multiprocess the motor and the picAxe simply by using an interrupt driven system. Those improvements will come later, the whole idea here was to add a picAxe to the Wall Following Mouse Robot. Since we have enough pins to do the object detection, it was decided to use the two extra pins to control MouseBot.

Let's add the transistors shown like in the conceptual schematic shown... Then the whole Mouse Bot project is done, though ol' Mousey will never go backwards. Most mice I've dealt with ran forwards anyway, of course that could be because a pack of humans with brooms and loud screaming voices were after them...

Finished!

From Mouse Bot Tra...
In an odd way, I'm kinda dissapointed because I've been "intending" to do this conversion for so long, now that its done I don't have much to blame myself for, so I'll have to take on another project, like making some sophisticated software for MouseBot, maybe with random number generators. Also, I can't wait to use the sensitivity controls, I love being able to shift the frequency from the IRLED and control how "far away" MouseBot stays from objects...

Closeup:
From Mouse Bot Tra...

Hardware Finished... Of course, the software needs fixin' I'll get to that later, I can usually cram a few hours of programming in more easily than a few hours with the hardware. And, software is really all that's left to extract the most fun from the MouseBot...

Mouse Bot Rules!

If you try this test, you will notice MouseBot gives up the ghost very quickly... This effect is caused by driving the 2N3904's too hard... Don't run it this way other than short tests, or with the body off the robot... You'll melt MouseBot's head!

But wait! All is not lost! We have the next (and hopefully, final) episode in the transformation of the wall following robotic mouse: Next Time... A non-melting drive system....

2.03.2008

MouseBot: How to Make an IR Object Detection System

MouseBot: How To - IR Object Detection System!



Part 2 Wall Follower Mouse 'Bot Transformation



The Nose Knows...

Last time we took the little mousebot down to it's skeleton, let's put something back. We want our mousebot to look around without actually touching things. It's a solid improvement to the wall follower, it's a good robotics first step and it involves something almost every roboticist has to face: Object Detection and Avoidance. We will use Infrared (IR) generators and detectors to give the wall following mouse a touchless interface to the wall.

Let's make an IR Object Detection system. While we intend to use the module in our little wall follower mouse upgrade, anyone can use it for any "bot." Basically, it's pretty simple if you have the right attitude about just how much functionality to expect from the microcontroller chip you use.

The little teeny 8-bit pic microcontroller in the version of the picAxe chip seemed a fun choice and could give us a whole load of ideas about how to make it even cooler...

Basic IR detection circuit:

Here's the diagram of the nose test circuit...



From Mouse Bot Tra...

Driving the IR LED is easy with most chips, AVR, Stamp module, everything you can imagine, but with the m8 picAxe, there's only one way to do it... While that way is pretty neat, you gotta dedicate the whole chip to giving our mousebot the nose to end all noses. That's just what we do in this project. Give the picAxe one job to do and expect it to do that job well...

This mouse's nose will have an m8 picAxe chip driving any one of a handful of IR 3-pin IR detector modules while supplying it's own 38 kHz signal to the IR detector... The issue is that when you drive the modulated IR LED you can't stop sending while you check the IR detector because you'd have to shut off the IR you are generating... The m8 picAxe has a pwmOUT command (in Basic) which switches on and continues to run while the picAxe goes on to other instructions...

You guessed it, we start up the IR LED, then let it run while the processor takes a peek at the IR Detector output... In our case, if the detector input goes low (meaning it picked up the reflection of an IR signal from the LED, the m8 responds. In this example, it simply turns on an LED, but in the mousebot, it could tell the other motor to run, so it would turn mouse bot away from the refected signal. Without the reflected signal bouncing off the wall, the mousebot motors flip around and the motor switches so the power is applied to the wheel until it turns again and again, wiggling its way along the wall, just like it did before we cannibalized it.
From Mouse Bot Tra...

After all that, we intend to get the little mouse bot running without touching the walls, but performing only the simplest function... Wall Following... Since we have a microprocessor running the nose, we might as well take advantage of this by adding some sophistcated features... Like variable sensitivity...

If you drop mousebot in the middle of a big room, he needs to be able to find a wall to follow, so, by using the picAxe, we detune the IR LED's output signal so it still stimulates the IR Detector, but has very little of the power... Thus we can use the sensitivity of the "nose" to determine how far away from the wall the mousebot will wiggle along at... Oh boy, now the little guy can use the smart nose to enhance it's capability and justify the four bucks spent on the picAxe...

We will still have motor control to deal with when we finish this project, but knowing where you are going and what you are looking at will go a long way to improving the Wall Following Mouse Robot...

And here is the code for the test circuit:

#rem
PWMOut pout, Period, DutyCycles
PWMOut 3, 25, 52 ' 38.4 kHz
PWMOut 3, 24, 50 ' 40.0 kHz
PWMOut 3, 23, 48 ' 41.6 kHz
PWMOut 3, 22, 46 ' 43.5 kHz
PWMOut 3, 21, 44 ' 45.5 kHz
PWMOut 3, 20, 42 ' 47.6 kHz
PWMOut 3, 19, 40 ' 50.0 kHz
PWMOut 3, 18, 38 ' 52.6 kHz
PWMOut 3, 17, 36 ' 55.5 kHz
PWMOut 3, 16, 34 ' 58.8 kHz
#endrem


' System resources 08m pinouts and layouts
symbol LED = 0 '(leg 7) Serout/LED
symbol io1 = 1 '(leg 6)ADC1
symbol pout = 2 '(leg 5)ADC2,PWMout2
symbol IRin = 3 '(leg 4)
symbol io4 = 4 '(leg 3)ADC4
'(leg 1 Vdd, leg 8 = Vss, leg 2 = Serial In)
symbol xCnt = b0

'
high LED
pause 1000
Main:
low LED

pwmout pout, 14, 40 '25, 52 ' 26 usec period = 38.4 kHz
' for 40 kHz, use pwm IRsignal, 24, 50
'
' MAX Range about 4-5 ft 26, 50
' 3ft 27, 50
' 6" (closeup) 18, 40
' 2" (eXtreme closeup) 10, 40
Pause 3 ' Begins continuous output PWM


if pin3 = 0 then
high LED
endif


pwm pout, 00, 00 ' turn off the PWM
Pause 100
GoTo Main


Invisible Whiskers


MouseBot is ready for it's "sniffer" or infrared eyes... First we tape down the pc board that will hold the IR LED's that will make the mousebot eyes...
From Mouse Bot Tra...


Now with everything in place, make a couple of marks where the eyes will be...
From Mouse Bot Tra...


From Mouse Bot Tra...

Now we have two eye-marks which we plan to drill out so the IR LEDs protrude from the mouse body... Kinda like little mouse eyeballs... But remember, these are not sensors, these are generators... It's the NOSE that counts, the IR Detector lets the Mouse "sniff" around basking in reflected IR from the eyes...

It's time to fire up the drill...
From Mouse Bot Tra...

Now this bot's got eyes...
From Mouse Bot Tra...

Almost time to solder, except we need to make a decision about just how much we want this version of mousebot to do... If we need rudimentary motor control, that means one thing, for a more exotic motor control, we'll use another picAxe, this one dedicated to moving the mouse's body around...

From Mouse Bot Tra...

Now the soldering is complete!

Oh boy, this means I'm ready to enclose our Infrared Object Detection system into the MouseBot body to make sure the experiment worked, remember IR Detector on the Inside and IR generator LED on the outside of the body?

So I crammed everything into the mouse body and Voila!


Next Step? Well, let's hookup some rudimentary Motor Control for the MouseBot so it can go run around the floor..

2.01.2008

Mouse Bot Transformation

Wall Follower Mouse 'Bot Transformation


Part I. Transformation Begins:


At last I've begun to transform the little wall follower mouse into something a little smarter... The mouse bot is pretty cute, and simple... The mouse itself is a BEAM robot, that is, it simply consists of a SPST switch with a long "whisker"... When you turn on the bot, immediately one of the motors starts to run...

You can see the whisker extending from the body of the BEAM bot in the picture:
From Mouse Bot Tra...

You can see the whisker at the top of the photo...

So the motor is on, the mouse turns "into" the whisker, then the whisker contacts the wall, the SPDT switch throws and Voila! We turn off the left motor and turn on the right motor which pulls the mouse away from the wall, then the whisker unbends, and the SPDT switch action, you guessed it: Fires up the left motor again.
From Mouse Bot Tra...

The result is the mouse runs along against any "wall" and follows the wall, wiggling from one side to the other thus simply pulling itself along this way... Until the Battery runs out... It's a C-Cell - - You're going to have a long wait with each motor pulling only about 50 ma with roughly a 50% duty cycle...


Let's Gut This Mouse!



Don't worry, it's not going to be as messy as your old biology class... (Nor as sickening.) We need to strip the mousebot down to its essentials and make sure everything is going to fit together the way we hope:

From Mouse Bot Tra...


The wall follower taken to it's skeletal self:




I made a bracket from some electrical interconnect tabs which are about an inch long, drilled and rounded on each end. These are easy to bend. So I can check to see how the proposed pcb will mount.



From Mouse Bot Tra...



Now I put the cover over it to guesstimate whether or not it will all fit together




A closer View:

From Mouse Bot Tra...

Whoo Hoo! It looks like everything will fit...

Now my hopes are high for this project!

It's time for the high tech stuff... We've stripped down our Wall Follower mouse robot and we are ready to add some fun stuff!

We start with the nose... See next post for object detection...

1.27.2008

TrakBot a Track Driven Robot Base

Track robots are the coolest! They are also a kind of pain in the butt. Tracks keep falling off, the cheap ones get squalling gears that need a lot of grease. But they are worth it! There is nothing more fun than watching these tracked bases grind their way over obstacles...

So I had to build a track robot!

I started with the Tamiya Base unit - A little motor with switchable batteries that goes forward and backward. This was back when I was buying a collection of little simple bots to see how well they got around. It wasn't long until I wanted some smarts to the motion and I bought a microrobot wall follower. It had an IR detector so it didn't have to bang into things, and could zoom along, but only forward and it could only turn in one direction. But it could follow walls.

So I added the dual drive Tamiya for 10 bucks. Now I had a spare gear drive... I kludged on the IR detector from the microrobot and voila! Now my track drive got a life of it's own... I would call it TrakBot!



This was good! This was fun... But now I had seen the famous Parallax Stamp powered bots and they would run up to something and stop, make a decision or two, then move on. This called for brains!!!!

I ordered a picAxe m8, m14, and 18x... Hmmm... The 18 x running the TrakBot??? Seemed like a good idea. Here are the first test results...



Oh Boy! This was too fun! By now, a zillion other experiments had introduced me to the Sharp Distance Measuring Devices. One of these babies and the TrakBot could be pretty darn smart when it came to avoiding obstacles. Oh yeh, and there's the little matter of doing it all with an m8 picAxe and Motor driver. You can get all this on a pre-soldered board for less than $20 USD, so it's only logical. The results:



This is my funnest robot. I've got about $50 USD in it, but it has a lot of "think" power, and, it's a lot of fun. Here's the scoop on this bot in video form

1.25.2008

BEAM Bot Inspired Fun Quick DumBot!

I strapped a couple of batteries on a gearbox with motor and voila! I had a BEAM bot!
This thing is dumb, it's wheels are square stiff wire, but it's really fun and a favorite around the robot lab. This is disgusting, because now I've got every imaginable robot around here, but by far the favorite is this dumbot!

So I've obtained another Tamiya Twin Motor Gearbox and I'm thinking about a BEAM bot with a little more smart than a nervous net :-) We'll see...

HexBug Busted Open

A crazy little bot called HexBug...



When it goes, it goes like this... Forward motion until the feeler touches something which reverses the motor. When it backs up, the motor has a clutch that causes one leg to not move in reverse. The net effect is when the bug backs up, it turns, thus a simple object avoidance algorithm runs without a control computer to make it happen. I almost forgot, there is a clapper in the HexBug. Yeah, just clap and it reverses, whether it hits something or not. I forgot to show that in the video.

But of course, I'm thinking of adding a picAxe or equivalent microcontroller!

Avoider Robot PLUS mods

The avoider robot is a cute little wall-following, object avoidance robot around $35 USD retail. Well, cute is about it. With a wonderful set of IR "whiskers" the thing as it comes from the factory moves only forward.

How the Avoider uses IR.

Like I said, it is setup to run both motors from its supply voltage (four AA's inside the case.) When it sees an obstacle, one of the motors is shut off by the IR detectors. I can't remember which direction it turned when it came "out of the box", but it is easy enough to swap the motor connections so it turns the other direction.


Figure 1. The Avoider Microrobot is a cute little guy.

At the time I was learning about Motor Controllers, so I decided to grab a handful of 2N3904's and 6's and made my own motor control. Now I could tell the little bot to go forward and backwards, just by setting the right pins high.



Next enhancement had to do with adding a chip to control it all. I first tinkered with NE-555's and other chips, but in my heart I knew I wanted to use a Microprocessor, so I looked around and decided to spring for the PIC chips with built-in BASIC interpreter - picAxe was the choice. I liked the 8 pin package and that gave me plenty of outputs and one input pin to drive an interrupt. The result? It looks pretty ugly, but it's one of the more reliable "bots" sitting around here.