Crumbot

UPDATE: NEW VAC, CHASSIS, ETC. NO NEW VIDS :(

The ever-popular autonomous, self-charging, vacuum robot. Inspired by the old OMNI magazines photovore, of all things. The initial plan was humble and completely over-zealous using a BEAM inspired solar setup. It's evolved into a PICAXE driven battery powered robot to overcome my knowledge deficit of BEAM technique and solar power. 

 

Crappy vid but you get the idea -->

My humble PICAXE

 

Project plan:

  1. Design and test locomotion.
  2. Source low-voltage but effective vacuum unit.
  3. Develop and test charging circuit.
  4. Fabricate prototype robot base to test system interfunctionallity.
  5. Test IR communications protocol for charging station homing signal.
  6. Fabricate charging station.
  7. Design and test RTC circuitry for feasibility on an unregulated power source.
  8. Iron out the myriad of creases.
  9. Celebrate my first MCU success!

Project blog here

Materials:

  • PICAXE 28X2 for robot brain
  • PICAXE 08M for charger brain
  • L293D motor driver
  • GM17 228:1 motors
  • cheap Ebay servos
  • Old design short-range analog Sharp IR sensor (GP2D120?)
  • MAXIM 712 NiMH charger chip
  • 4xAA batteries + plastic holder x 2
  • eBay novelty vacuum
  • Power Dash slot car motor Upgraded Mabuchi motor
  • 12V 1A 5A DC wall wart

Photolog:

  1. Design and test locomotion.

Let me say upfront that I don't have that many pics of this project. I intend on keeping a better photolog as the project continues.

The locomotion testing was done on an alpha test base with just the GM17s, the PICAXE 28X2 breadboard, and the Sharp IR sensor with servo riding on the back. It uses coding very similar to the first robot design ala Frits (thanks Frits!).

Prototype base with motors (left) and alpha base (right):

You can see I whittled out some holes in the foamcore I used for the alpha base to accomodate the bristles on the vacuum I ended up choosing. The prototype base has part of the debris box/nozzle apparatus assembled.

 2.  Source low-voltage but effective vacuum unit.

The first plan was to have a USB vacuum running off a regulated 5V from a common 7.2V battery pack with the 5V PICAXE running off its own regulated line. My first choice was this classic piece off the internet:

Per all the reviews it doesn't offer much suction. I only gave the chinese 3USD for it so I don't feel so bad. It's selling point was that it had the perfect upright design that used very little space in the robot.

I decided to look into the 2 x AA battery powered vacuums out there. I ended up buying one of these: 

Surprisingly it works pretty well (at 3V). Even though it's driven by two AA's it has an impeller about twice the diameter of the USB vacuum I originally purchased. Despite the increased vacuum it still didn't quite cut it. I noticed it has the same motor can as the first vacuum I chose (Mabuchi 130 type) so I upped the voltage on the Magic Bug to 5V and it was pulling a vacuum the way I wanted. I proceeded to make the alpha base to test things and it worked ok. I was letting the bot motor around sucking up hair and crumbs to measure run time when the motor started smoking. I guess the increased voltage was too much.

 

 

 

 

A was getting a little miffed at how the vacuum I wanted needed voltage that killed the motors I was using. Looking at specs for the 130 motor I stumbled onto a Chinese trend. Apparently slot cars have made a comeback over there and a popular scale uses 130-sized high RPM motors running at 2.4V. I was regulating voltage to the vacuum through a LM2576 that maxes out at 3A so I bought a Power Dash motor that uses current somewhere south of 2.5 amps I think it was. Swapping it into the vacuum I found the impeller causes more drag than the slot car it was rated for and it drew more current than the regulator could handle.

 3.  Develop and test charging circuit.

From the onset of this project the charger was to be onboard the robot and the charging station itself was only to supply the DC power. The activation of the charging electrodes would be handled by a PICAXE 08M monitoring reflectivity sensors on the station. The 08M would also send commands to the robot via IR. However at this point two things were causing me problems: 1) The noise from the vacuum was giving the Sharp IR distance sensor and its servo fits and 2) When hooked up straight to two 2300mAh NiMH batteries the vacuum pulled even harder than off the 2576 (batteries got very hot though). I could never solve the noise feeding back to the PICAXE so I changed the setup to use two battery packs; one for the vaccum (2xAA) and one for the PICAXE (4xAA). Plans are to use the ADC capabilities of the PICAXE to monitor its own voltage and a MAX8212 to send an interrupt to the MCU when the vacuum battery pack get low. A downgrade in motors is also probably necessary to prevent overheating the vacuum's battery pack.

This complicates the charging scenario more than I anticipated. Now the plan is to swtich between two charger circuits on the station, one for each battery pack, and a latching relay onboard the robot to dictate which battery pack gets the incoming charge current.

 

  4.  Fabricate prototype robot base to test system interfunctionallity.

As one can see in the very first picture with the two robot bases, the design changed somewhat. The alpha design was for ease of vacuum testing but was not feasible for the prototype. The robot is intended to stay under 6" x 6". As it stands it will measure just a hair over 5" sq. With the vaccum flat it was hard to easily remove the vacuum to empty out the debris with the batteries and/or circuit board likely to be above the vacuum itself. Plus the collection area for the debris is not that big.

I decided to turn the vacuum on its end and have it draw air through a nozzle into an intermediary debris chamber that would be emptied by opening a door on the front of the robot, eliminating the otherwise necessary disassembly/reassembly process.

Pics of partially assembled vaccum stack:

 

The extra pieces are mostly to box off the vacuum exhaust, which will be directed out the top of the bot This will eliminate the exhaust blowing out the bottom of the robot, pushing the dust away as it approaches. The vacuum stack design is hard to describe. On the bottom of the vacuum (around the inlet) there will be a magnetic seal that will attach the vacuum to the debris box.

The nozzle is formed from a block of Delrin nylon (actually two sheets glued together) contoured to be able to glide over the uneven surfaces it will encounter. I used a rotary tool to get the basic shape seen in the above pics. I still have a little work to do. The "hose" between the debris box and nozzle will be a piece of collapsable foam that has a sealed inner lining. The foams job will be two-fold. One, to provide a sealed, unobstructed airway. Two, to extend and collapse as the nozzle follows surface imperfections. On level ground it will be slightly compressed allowing for 1/4" extenstion into depressions it drives over.

My first test was with some random open cell foam (as seem above) used to pack test tubes used at my work. I used an old soldering iron to melt out a hole to match the box's base plate and the nozzles opening. Initial impressions were that it was harder to compress that I thought it would be so I burnt out the excess materials from the corners. I then sealed the inner surface with silicone caulking. It took more silicone than I thought it would and it stiffened the foam to the point where the bot couldn't compress it down enough to make contact with the ground. I'm looking for less dense foam and plan to seal the inside with a tube of plastic wrap (eg, Saran Wrap).

 

 5.  Test IR communications protocol for charging station homing signal.

Successfully programmed and designed the IR beacon seeking parts. The charging station will have a cluster of IR LEDs intermittently putting out a signal. Ordinarily it is ignored by the robot until either battery pack goes low. The robot will then start looking for the IR signal through the transceiver mounted on the head. When the transceiver finds the IR signal the robot will begin a sequence to center in on the signal and head towards it.

The charging electrodes on the robot will be a metal ball caster for the ground contact and a spring-loaded pickup on the top of the robot for the positive. The charging station will be a negative metal sheet on the ground and a postive metal sheet overhang (oversimplified description). There will be reflectivity sensors on the ground sheet that will detect when the robot has moved onto the charger. When the sensors are activated, the PICAXE 08M will change IR codes to one that signals the robot to stop and continue monitoring the IR signal. The charge sequence will then begin. The robot will be activated via IR when the 08M receives an interrupt from the MAX712 charger that signals the charge is complete. The robot will then begin its "back out" sequence and then resume cleaning. But only while I'm at work. All will be controlled by an RTC like the DS1337 (if I can get over the inaccuracy from my noisy supply lines).

The popular 3V "mushroom" vacuum did prove to be underpowed so I swapped in another Mabuchi motor rated for more voltage and higher load. At stall it consumes 1.9A. No load (other than the vacuum impeller) and it consumes ~1A. My 2450mA batteries are much more happy with the situation.

I have also fashioned a different chassis, doing away with the square prototype version I was working with. The reason for the change is two-fold: One, I just didn't like the whole look of a box puttering around my place, and two, I was getting tired of working out how to get the bot to maneuver away from things it ran into. It was always catching its corners on other obstacles when backing up and it was giving me fits.

 

The new design:

 

The internals minus the battery packs (they will be on the sides next to the vacuum:

 

 

I used magnets to make an easy connection for the vacuum (the black is electrical tape to hold things down):

Insides, sans vacuum:

Pics with the outer shell removed to show the debris collection compartment:

 

Shell with the access panel to the debris compartment removed. I will secure it with magnets ala the vacuum connection:

 

Close up of the comparment. I grabbed some filter foam for freezer compressors from work (the black sparkly material) to catch the majority of the macro sized bits:

 

Pics with the foam peeled back (yes, it's two layers):

 

Shot of the underside of the beast:

I put the overly-complex vacuum nozzle to rest and went completely in the opposite direction. It's now as simple as possible by using one of the accessory brushes that came with one of the mini-vacs I've ordered. It's oversized considering the opening to the vacuum itself is much smaller but I've still yet to see the consequenses from going too big (read, hasn't been tested yet).

I'm currently working the bump sensors for the front:

They are two ultra-low force momentary tactile switches that will be supported with some silicone beads in key places between the bumper and bot body. There will be one for the left and for the right. These triggers should allow the bot to get as close to obstacles as possible to cover the most ground area.

I'm also working on the circuitry for the vacuum. It will be on its own 4AA NiMH pack with an ultra-LDO regulator keeping things at 4.5V (this eliminates the previous designs that used two MAX712s to charge a 2AA and a 4AA pack separately). All the bits are in my possession. Now I just need time and gumption to get this thing sucking!

Autonomously vacuum small debris and recharge

  • Actuators / output devices: 2x Solarbotics GM17
  • CPU: picaxe 08M, PICAXE 28X2
  • Power source: 4xAA batteries, 2xAA batteries
  • Sensors / input devices: tactile switch, Sharp IR sensor GP2D120, IR communication
  • Target environment: indoor

This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/crumbot

Wow, I like it! I tried

Wow, I like it! I tried making something like this once upon a time but I never really did much with it. It would sweep floors, not vacuum but the concept is the same; make something to clean floors so you don’t have to :). About your motors. Have you tried using PWM to control the motors speed a bit so that your battery packs don’t heat up so much? Not sure if that’d work but its worth a try.

Also, about a RTC. I have two ideas that might help. You could use the AC voltage coming from a mains line to keep time as it is usually accurate to a couple seconds at its worst and super accurate over a long period of time [LINK]. Or, you could use a cheap watch crystal to keep the time, accurate within a couple seconds a week [LINK].

Thanks for the approval NX.

Thanks for the approval NX. Let technology work for you, eh?

Only the 2.4V battery pack (dedicated to the vacuum) gets superhot. The 4.8V pack (running the sensors, PICAXE, and drive motors) doesn’t get hot like that. Wouldn’t PWM slow down the motor somewhat? I also wonder if the repetitive turning on of the motor would still draw a good deal of current, I’m not sure. I might give it a try anyhow, thanks!

On the RTC: Under closer scrutiny I don’t have enough pins on the 28X2 to deal with the clock, display, and input device. Handy links though, a good read for me.

Yes it is, although we could

Yes it is, although we could probably get the chores done quicker if we just did them ourselves :).

The PWM might slow the motor down a bit but you could play with frequency and duty cycle values to see if there is any “magical” combination. And, about not having enough pins. Have you thought of using a shift register? It uses a couple pins (I think it’s three) but gives you eight in return. And, you can “stack” these, meaning that the same three pins can control several shift registers. I like the 74HC595 shift register as it is one of the most widely documented but there are many to choose from. Picaxe code here [LINK] and a (gasp!) Arduino setup here [LINK] that might help as well.

Add four shift registers [LINK] and one display like this [LINK] and you have your display! I hope I’m not showing you something you’ve already considered and I hope this helps!

No, I didn’t even know of

No, I didn’t even know of such things. I must admit my background is minimal in electronics (the Getting Started in Electronics book from The Shack haha, the course from allaboutcircuits.com, and a “100 in 1” kit from way back in the days). It’s been about a year since I started my first photopopper project. Shift registers sound like witchcraft to me! lol You know, after I posted about my lack of pins I was thinking about it again. I looked into my box and found I’d planned on using the i2c protocol on the 28X2 to talk to a GLCD as well as the RTC to minimize pin usage. I do have a $1 eBay 7-seg LCD that would be nice to use on a non-i2c capable MCU I have. This 74HC595 technique might be the ticket, thanks NX.

Welll… more chips!

Well, that’s another thing I forgot to mention. There are multiplexers for I2C as well! The one I’'ve used is the PCF8574. It gives you eight pins, all for the price of the two I2C Picaxe pins which, by the sound of it, your using already! And the upside to I2C is that you can have many sensors, RTCs ect, on two pins (as you probably already know). The downside to the PCF8574 is that it is only digital (no analog pins, check out the PCF8591) and it can’t source more than 300 uA per pin, although it can sink up to 25mA per pin, meaning that if you write 0 to a pin (Picaxe speak: ‘low x’, x being the pin) the LED will turn on, writing 1 to it will turn it off. Sorta counter intuitive but it works. They’re cheap and useful, and maybe the might be of more help than a 74HC595 (although, they only work on I2C enabled Picaxes).

I’m sure someone else here can tell you about a better I2C multiplexer, that’s the only one I’ve used :). Hope this helps! And, I’m sure you’ll learn lots more about electronics here on LMR. I didn’t know anode from cathode two years ago so don’t sweat it!

Making your own robot vacuum

Making your own robot vacuum cleaner is such a cool idea. I really ask myself why I never thought of it. Why did nobody I know?

It’s brilliant!

Ah, the quest for a

Ah, the quest for a vacuuming robot!. The reality seems to be that some hefty voltage is needed to power the hungry suction fans - or use a little fan, and have low -efficiency robot… a la my dinky creation:vacuumbug or vacboks .

I’m keen to get an update on the effectiveness of your fan, since it’s something that is bugging me too. Also - the shape might be important - I’m trying to make a square robot to get into the corners; I never understood why the roomba is round…

Yes. The wimpy fans. For the

Yes. The wimpy fans. For the record mine is about as effective as your vacuumbug if you were to compare the debris collected. A lot of dust, hairballs, some twigs, kitty littler sized stuff, sometimes solder splatters if they’re loosened from the floor. The intake itself is only an inch wide. I don’t have high expectations for the efficiency. I just want it to suck up the little stuff. Hopefully with eight hours a day dedicated to cleaning it will make up for its weakness.

Funny you want a square bot because I was thinking of how to make it a circular shape instead. I’ve found while spinning around my bot’s corners can stick out and catch things. I’m sure the right coding and a different sensor setup can do away with this but I was not so inclined. The shape I picked made for longer tactile sensors and more uncovered floorspace. As long as it just misses the edges I’m not too concerned (I’m not so lazy as to completely avoid the hand vacuum. Almost though…).

ah right, on the vacboks,

ah right, on the vacboks, the entre all four surfaces are bumper switches to avoid exactly that problem… still has wimpy fans though.

Cleaning robots are awesome

Cleaning robots are awesome. I have been planning to build an autonomous vacuum cleaner for about a year. I was always interested in robotics but I couldn’t justify the high cost of tools and components to my “significant other” until I came up with the idea of building something to help with cleaning. I bought some parts and tried out some configurations using car vacuums and mattress pumps , but the vacuum was too low, the power requirements too high and my cats were really terrified of the screaming contraptions. Getting rid of the cats defeats the purpose of the automatic cleaner, since the main reason I wanted one  was to clean up all the cat hair. While experimenting I got sidetracked and started building a robot for the Eurobot competition. I couldn’t finish it in time, but at least I have gathered a considerable collection of tools and parts. However, I haven’t given up on the cleaning robot, only instead of vacuum, it will use brushes.

 

Great project, “collected”.

Great project, “collected”. Ive been working on a vacuuming robot for a while now and have mocked up a few designs for the vacuum system. I used a vacuum identical to your "magic bug" there at first but later on found another 70mm centrifugal fan which works better. With the design I have come to realise a few things I wish I knew before.</p><p>First up, think of the biggest piece of rubbish you want the thing to be able to suck up. For me I would be happy with something the size of raw rice, so I am using a wide very thin slot. A slot gives better coverage than just a hole and if the slot is thin enough it doesnt noticably reduce suction.

2nd, even if the suction of your vacuum isnt real powerful, you can offset that by having a powered cylindrical brush just in front of the intake slot which lifts the dust off the floor... its much easier to suck it out of the air than off the floor because static makes it stick there.

3rd, use some kind of flaps on the rear and sides of the air intake to get maximum suction in the front where it`s more useful. Also if its got a spinning brush the flaps can help prevent dust flying up in the air.

All these points seem really obvious but they DO help I swear… :slight_smile:

good input

It’s great to here info on those who’ve endeavored on your mission already. In regards to your points:

1)This plan originated when I had a cat. His hair and litter were the targets of my hatred. He has since gone to The Great Catnip Field in the Sky but the Crumbot dream lives on. The pics of the Delrin nozzle are not the final unit yet. I was going to grind out a gap, maybe 6-10mm tall, that will flare out from the intake hole to the left and right edges on the front of the nozzle. It’s slighty inspired by your average home vac floor attachment that has most of the nozzle on the ground with some slits to allow in turbulent air.

2) I was scheming on a helper brush of this nature. If it wasn’t for the exceptionally low ground clearance of the chassis I would probably try to fabricate one (it makes good sense to use one). I was thinking of using a roller wheel in contact with the ground that would be geared to have the attached brush spin faster than the world going by. Again, the chassis I use prevents it. Kind of a bummer.

3) Hopefully the intake design of the nozzle, with keep the suction aimed towards the front, it will minimize vacuum leaks as much as it can around the other three sides. I’m counting on a lot of things to go right with this slippery Delrin nylon (like glide alond bumps, slide up and down the vacuum stack, and not scratch up sensitve items the robot might overrun). Thanks again for the comment. To be honest with you, your vacbot inspired my secondary debris chamber and made me go with the magicbug as well. It seemed like a clone of the mushroom with a lower height. Also I really like the intake you made, nice attention to details. The bump sensor on the front is as good as it gets for cleaning along those edges (read: jealousy lol).

Is the mushroom vac the improved 70m cent. fan you found? So it has much better vacuum you say. I might have to make some design changes if that’s the case.

Revive the project!! :slight_smile:

Revive the project!! :slight_smile: Interesting, my cat inspired this first robot too. Blinky lights, beepy sounds, and cute anthropomorphic qualities were not enough to reel me in. Until I thought of something that would assist me practically I was detached somewhat. “Let technology work for you.” Great phrase. I mean, comon, don’t we all want to be fat and happy like the humans in Wall-E?? haha

Cat’s hair is a great motivator

I used to have three kittens but my girlfriend only had one, and it was feeling lonely, so we now have two cats each. The cats love it when the floors are clean but they leave a lot of hair and mess behind and I’m lazy so I started looking for automated cleaning solutions.

It goes agains my principles to spend $400 on a roomba so I decided to make my own, and I ended up spending MUCH more than that on tools and materials, but I can now build more than just a cleaning robot…

I recently got a new handheld vacuum cleaner so I might make my own version soon.

This was a triumph! I’m making a note here: “Huge success!”

 

As Antonio said, cat hair is

As Antonio said, cat hair is a good motivator for a robot vac. I wanted to prove to my wife robot building can be a useful hobby… hasnt come to happen yet though :)</p><p>I went down the local recycle shop and picked up a busted "swivel sweeper" for $1, you might be able to find something similar. The battery and motor were done for but I cleaned the brushes and they work great. Problem I am trying to work around now is that the brush flicks rubbish out from under instead of picking it up. Im mocking up a thing with 2 opposite rotating brushes to see if it works better right now.

The mushroom vac I got seems exactly the same size as yours. They are probably all from the same factory! This 70mm fan is something I ripped out of a toy that levitated on the floor.

To my fellow vacbotters

22-542.jpg

22-542-1D.jpg

22-542-1E.jpg

22-542-1F.jpg

I found this guy and some variants much like it on eBay. The whole thing looks really big compared to what I have now but I think I can hack off most of the mass.  I'm impressed at the impeller size and its hearty 3AA powerplant :)

I was curious if one of these has come into anyone's inventory, and if so, how did it perform. I'm really curious as to what motor it's using. Thanks fellas.

Ah, the 70mm is from

Ah, the 70mm is from something else. I was wondering. I looked heavier into the mushroom variant and it didn’t look any larger (diameter wise). It does look taller, almost twice as tall.

I’m looking harder at the larger eBay AA-powered vacuums right now. I don’t feel satisfied with my current choice somehow…

You guys make me want to do

You guys make me want to do this too…

I’ve got so much on my plate now that I don’t even have time to do half of it. So I’ll delay the vacbot until Christmas. Oh well…

Good job, keep at it!

**Its quite fun trying to**<br><p>Its quite fun trying to come up with a vacuuming robot. Thinking about air flow, how to filter it, where and how the particles are going to be removed from the air stream etc. keeping it low to the ground but still able to skim over rug edges or cables, detecting extra dirty spots on the floor, I could go on and on about it.