Let's Make Robots!

First Blog Entry

 

The image of my bot here is why I don't use my webcam much! :-) 

But you can get a basic idea what it looks like. The box in front contains 4 AA cells, the 9 volt battery is behind the barely distinguisable Sharp IR range-finder. The blue pc board is the Uno (Arduino). The black cylinder object in the back is a piezo-buzzer.

Under the buzzer is the protoboard. The power transistors ARE just hanging in the air (any other cooling isn't needed).

The red and grean "tail light" LEDs light when the the bot changes direction.

Amazingly, the bot can turn in a fairly tight circle just by controlling the two motor speeds!

At full speed with fresh batteries you have to run to keep up with the bot!

Other than the messy looking wires this is a pretty good bot!

(Hopefully, a better image will be coming soon.)

-----------------------------------------------------------------------

 

I have added a servo (possibly to add a ultrasonic range-finder). I have also added a "panic" touch switch in front of everything else! (if the IR or future ultrasound sensor "fails" a hard collision will still be avoided, I hope! :-))

To test the bot on the desktop, I added a removable stand so the wheels can spin freely. <----- TIP!

There are no stairs where I live. Good! The idea of a bot "bouncing" down steps greatly concerns me!

I am glad the gear-motors and wheels on this bot are strong. It is getting to be one heavy little bot!

----------------------------------------------------------------------------------------------------------------------------------------------

Should I be worried about the weight of my bot? I suspect the answer is yes because the more mass a robot has, the more likely there will be increased damage in a crash (inertia, physics thing).

In the future, any additions to my bot will try to be covered by removal of existing components of approximitly the same weight. Time to put Phoenix on a diet! :-)

----------------------------------------

Is anyone using a LCD or some form of "head" display to give their bots a facial expression "personality". Seems I have seen this some place before when a netbook (or notebook) is built onto a bot as its "brain". I might try a LCD display for this myself!

-----------------------------------------

I have been doing a LOT of work on the robot control software. Its pretty easy for me to program "sketches" which are a "unique" form of C/C++ the Uno (Arduino) uses.

Adding a servo so the robot can "scan" ahead for objects is nice (IR or Ultrasonic), but the code gets a lot more complex. Now the program has to scan, check for objects (implement left or right turns) and continue scanning. I am using a main servo "loop" where I tuck in my distance reading code that tests/calls to right or left turn routines outside the main loop. Timing IS everything!

I can immediatly see the need for some "multitasking" even for this simple situation. Adding other thimgs "to do" just increases the need for multititasking! I believe cooperative multitasking is "good enough" here. Full preemptive multitasking IS better, but the '328 hardware is somewhat limited in that area.

I have tinkered with DuinOS for multitasking but using a servo causes problems with a '328 timer and it so far has not left me with anything "usable", but my search will go on!

It is my belief (and my opinion) that as robots have more and more things to do (with timing being important) multitasking will become more and more needed.  Adding more "dedicated" processors for things like motor control is also an awesome idea.

I am considering going to a 32 bit chip (probably a PIC) with a full preemtive realtime multitasking kernel as a replacement for the Uno in this robot or at least in a future 'bot.

(Phoenix sits here giving me this "sad" look, like its asking "Please don't tear my brain out!".)

BTW: PICAXE has a fairly new chip called the 18M2 (maybe even more now) with "built in" multitasking that GREATLY interests me. (I have tinkered with PICAXE chips in the past, and I really like their Basic.) Hmmmm.

----------------------------------------------------------------------------------------------------------------------------------

Talk about one strange (but working!) experiment.

I had been given just the working "motherboard" of a Microbot BOT-120. I pulled (gently!) the Uno from the bot and dropped in the motherboard as a controller. Works great! All holes I used were gold plated through so soldering connections wasn't even neeeded! 

I have that PICAXE 18M2 on order with a support board and a h-bridge. (The next "drop in" for the Phoenix).

I DO like the Propeller chip more and more and if SparkFun carried: http://forum.sparkfun.com/viewtopic.php?f=14&t=26283 this board is Propeller based and is Arduino shield compatible!!! Nice!    Price: $29.99

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Phoenix Revision 2 is up now and the round base plate is gone. It looks less and less like the original POP-BOT and I am pleased with the results! inex uses a power regulator to get 5V from 4 AA (rechargeable) cells. It will run down to about 3.8 Volts and has a nice yellow low battery LED. (it is in back of the Phoenix Revised and that phone connector used to bring RS-232 (NOT TTL!) into the POP-168 board where it is translated to TTL with a Max-232 chip. It starts out as USB at the PC!!! :-)

Anyway, give it a look when you get a chance.

(I spy another bot built on a solderless perfboard! I LOVE that construction technique!)

I am going to do one duplication on this website because I think it is important. (From the old "Arduino vs Picaxe" discussion.)

 

-------------------------------------------------------------------------------------------------------------

I think the conditions have changed and there is a new solution USE BOTH! 

I plan on tinkering with the PICAXE 18M2 for a while (and I also love the Arduino!) 

Here is (one) of my ultimate ideas (I have even more! :-)

I think a modern robot needs all the processing help it can get, my idea is use the tasking capability of the 18M2 to do things like run the motors, drive the servo, keep a lookout for danger and/or whatever you think is useful. KEEP the Arduino as the "main" processor for doing "thinking" that requires more code like route mapping and other "hard" tasks. The "housekeeping" is all done by the 18M2 and you have one super-fantastic robot! There would need to be a (very minimal) amount of info passing between the 18M2 and the Arduino like "hey! the battery voltage is running low!" or "the current sense resistor on one motor is getting hot! (passing more current then usual)"

How could this NOT make for a better, smarter, just plain neater robot? (SparkFun already carries a PICAXE 8 motor controller to suppliment the robots main processor. Apparently the idea works! :-)

(Has anyone done anything like this yet and can you point me in their direction? I need to know more about message passing than anything else to start with.)

Thoughts?

(I will add here that thoughts of "Propeller" are also running through my (old farts) brain!!! :-)

 

Regarding your robot's weight, it depends mostly on your motor gearing. It sounds like your robot is geared to be pretty fast. The same motors with a different gear ratio could be made slower but more powerful. For a fast robot, you may indeed come to a limit because your motor/gear combination may start to have trouble as the weight increases.

I think the idea of adding bump sensors is a good one, since your bot is fast and you are worried about it getting damaged from crashing into things. You can also add a downward facing sensor for 'cliff detection', which would keep your bot from driving off a table or other high surface.

I don't have any experience interfacing an LCD, but I know CtC recently mentioned a couple of LCD screens he has used and liked at http://letsmakerobots.com/node/27139.

I really like that LCD you mentioned, and isn't his bot awesome!