Go Down

Topic: Autonomous Vacuum Cleaner (Read 10712 times) previous topic - next topic

zeitcheist

Hi!

I am an engineering student, novice when it comes to electronics. I know the theories, but the applications made me pull my hair.

Basically, we want to build an autonomous vacuum cleaner.

We have the following:
Arduino Mega
Digital Sensors for obstacle/cliff detection
Vacuum Pump
Continuous Rotation Servos for mobility
IR receivers for home base searching
2200 mAh LiPo 3S for power source

So my questions are:
1. Is this feasible?
2. We are planning on regulating the battery source using switching regulators to about 7v for Arduino, 6v for 2 servos, 5v for sensors.

11.1v
BAT +--------+---------+---------+---------+ Vacuum Pump 12v
                   |            |            |
                SWreg    SWreg   SWreg
                 7v           6v          5v
                  |             |             |
             arduino      servos   sensors

3. Is the above diagram enough? We will use LM2575 buck switching regulators. Any better alternative?
4. Arduino will of course control all the aspects of the robot. How do we turn on/off the vacuum pump using digital pin of the uC? Is the PMF290XN mosfet enough? What resistor value shall we connect to the gate?
5. I have learned that turning on/off a dc motor will make the source line drop, which will affect the voltage fed into the arduino, resetting it. How do I make up for this?

Any help will be greatly appreciated.

Thanks in advance!

AWOL

Quote
using switching regulators to about 7v for Arduino

The Arduino is a 5V device, no?
Why waste power in the on-board regulator?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

AltairLabs



Quote
1. Is this feasible?
YES

Quote
2. We are planning on regulating the battery source using switching regulators to about 7v for Arduino, 6v for 2 servos, 5v for sensors.

11.1v
BAT +--------+---------+---------+---------+ Vacuum Pump 12v
                  |            |            |
               SWreg    SWreg   SWreg
                7v           6v          5v
                 |             |             |
            arduino      servos   sensors
OK

Quote
3. Is the above diagram enough? We will use LM2575 buck switching regulators. Any better alternative?
You could regulate to +5V and feed direct to Arduino +5V.  You are correct to allow 2v or overhead if you use both regulators.

Quote
4.a.  Arduino will of course control all the aspects of the robot. How do we turn on/off the vacuum pump using digital pin of the uC? Is the PMF290XN mosfet enough?
Dunno, you kept the vacuum motor a secret so we cant help you.

Quote
4.b.  What resistor value shall we connect to the gate?
Dont much matter if its just on/off, you actually dont need any resistance.  Direct connection is fine, you can use 1k just for safety in case you accidentally "fat probe" something.


Quote
5. I have learned that turning on/off a dc motor will make the source line drop, which will affect the voltage fed into the arduino, resetting it. How do I make up for this?
Thats a sign of poor grounding or poor voltage regulation.

smeezekitty

Why not regulate it to 5v?
You could no doubt feed it directly to the Arduino, Sensors and servos.
Avoid throwing electronics out as you or someone else might need them for parts or use.
Solid state rectifiers are the only REAL rectifiers.
Resistors for LEDS!

zeitcheist

#4
Jan 21, 2011, 11:31 pm Last Edit: Jan 22, 2011, 12:06 am by zeitcheist Reason: 1
@ AltairLabs
Vacuum pump still on decision process. The original pump is rated at 12v, and we measured the current consumed at about 150mA. However, the pump seems to be weak to vacuum papers.

@ smeezekitty
we want to isolate servo from arduino source. Since reversing the rotation will eat up much current, as described by several documents. 5v to arduino and sensors is not bad though.

Questions:
1. We want to charge the LiPo without removing it from the system. Basically, the robot will find its home base and attach itself to the charger when a preset threshold is reached. Can this be done without further circuitry? I mean we connect the charger pins to the LiPo, while the system is sourcing current from that battery at the same time.
2. Plus the battery monitor. Will this simple solution be enough? Since we are going to power the pump directly from the battery, will this connection give false alarm to the digital pin of the arduino?

Thanks for all your replies! Very much appreciated.  :)

zeitcheist


AltairLabs



Quote
Vacuum pump still on decision process. The original pump is rated at 12v, and we measured the current consumed at about 150mA. However, the pump seems to be weak to vacuum papers.
PMF290XN mosfet should handle 12V motor up to 600mA.  

Quote
1. We want to charge the LiPo without removing it from the system.

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1294864688/5

Quote
Basically, the robot will find its home base and attach itself to the charger when a preset threshold is reached. Can this be done without further circuitry? I mean we connect the charger pins to the LiPo, while the system is sourcing current from that battery at the same time
probably better if you dont draw battery current while charging.  in the charging nest run everything off the charger, see the thread for cactusjack

Quote
2. Plus the battery monitor. Will this simple solution be enough? Since we are going to power the pump directly from the battery, will this connection give false alarm to the digital pin of the arduino?
dont understand the question

zoomkat

Quote
Any ideas?


The first place to start is to do a lot of up front research on the type of bot you want to build. You can get a lot of info from sites like below and from the construction details provided for various robot kits. You can find a lot of similar projects in this forum using the search function or looking in the exihibition group.

http://www.seattlerobotics.org/gettingstarted.php
http://www.seattlerobotics.org/WorkshopRobot/index.php
Google forum search: Use Google Advanced Search and use Http://forum.arduino.cc/index in the "site or domain:" box.

retrolefty

#8
Jan 22, 2011, 02:14 am Last Edit: Jan 22, 2011, 02:17 am by retrolefty Reason: 1
Quote
1. We want to charge the LiPo without removing it from the system. Basically, the robot will find its home base and attach itself to the charger when a preset threshold is reached. Can this be done without further circuitry? I mean we connect the charger pins to the LiPo, while the system is sourcing current from that battery at the same time.


Using the LiPo correctly in your project is the most important thing you will have to get correct. A LiPo charger uses a constant current during most of the charge and switches to a constant voltage to top off the battery. Therefore you would have to add circuitry to disconnect all the loads (regulators, etc) while attempting to charge so that the charge current only goes to the battery. This is not as simple as it would appear because once you 'brains' are turned off it has no way to know when the charge is complete and to be OK to re-power all the loads. Some kind of interfacing from the charger 'brains' to perform the disconnecting/reconnecting of the loads is required.


Quote
2. Plus the battery monitor. Will this simple solution be enough? Since we are going to power the pump directly from the battery, will this connection give false alarm to the digital pin of the arduino?


Should be possible if proper wiring and filtering is followed. Heavy loads like motors should have their own separate wiring runs, including their ground return wires, straight to the battery. Your software could always turn off the motor for a brief period to take a battery voltage reading, if it turns out to be a problem. Your monitoring software should probably have some averaging function to get a more reliable reading, not hard to do.

A very important task you have to do is to check the manufactures datasheet for that specific battery to determine if it has internal low discharge voltage disconnect feature or not. Some do, most don't. If yours doesn't, you really should have a fail safe battery disconnect  to prevent discharge voltage from going below the 6 volt value for a 2 series cell Lipo. Over discharge will destroy the battery, it's not a theory, it's a fact and it will cost you $$$ if your vacuum does not make it back to the charging dock in time.

Lipo batteries do have the best energy density per weight, but they bring a lot of safety and extra detail baggage to the game. NiMH batteries are pretty good and if you don't have to carry higher weight airborne, you can save a lot of expense and circuit complexity by using NiMH cells.

Lastly, good luck on your motor powered vacuum pump. I think you will find that vacuum pumps are pretty awful from a efficiency point of view. You should probably work out that before investing a lot of $$ and time just to find out that can't get enough vacuum without X4 motor and X4 battery size.  ;)


Lefty  


AltairLabs

@retrolefty said
Quote
Therefore you would have to add circuitry to disconnect all the loads (regulators, etc) while attempting to charge so that the charge current only goes to the battery. This is not as simple as it would appear because once you 'brains' are turned off it has no way to know when the charge is complete and to be OK to re-power all the loads.
The circuit we helped optimize for @cactusjack does this. Well, actually it does not "turn off" the other loads, rather it switches them to be directly powered from the charger.  In this way the battery is isolated from loads so the charger doesnt get confused and ruin the battery.

AltairLabs

The advantage of our approach is the "brain" stays awake.  A cell phone does this.

The cell phone is more sophisticated than what we did with @cactusjack, the "brain" waits a while to be sure the external power is stable before switching to it and enabling the charger.  If external power is intermittent or rapidly changing the simple approach I gave above may have trouble.


zeitcheist

@ AltairLabs
Quote
Quote:
2. Plus the battery monitor. Will this simple solution be enough? Since we are going to power the pump directly from the battery, will this connection give false alarm to the digital pin of the arduino?
dont understand the question

I mean this link: http://www.societyofrobots.com/schematics_batterymonitor.shtml

Quote
The circuit we helped optimize for @cactusjack does this. Well, actually it does not "turn off" the other loads, rather it switches them to be directly powered from the charger.  In this way the battery is isolated from loads so the charger doesnt get confused and ruin the battery.


Will this be okay?


@zoomkat
Thanks for the links!


@ retrolefty
Quote
Should be possible if proper wiring and filtering is followed. Heavy loads like motors should have their own separate wiring runs, including their ground return wires, straight to the battery.

I don't quite understand. ^^


Questions:
1. The charger for LiPo we bought has outlets for 2S and 3S. The 3S one consists of 4 pins. I did not open the charger, but i think the 3 of 4 pins are for each cell, while the other 1 is the ground. If this is the case, the pin will output just enough voltage and current for each cell, not enough for the requirement of the switching regulators, since they expect about 11.1v from the battery. Where can i get about 12v to supply the regulators? (the "from where" wire above ^^)
2. Can i really supply 5v directly to arduino? ArduinoMega needs 7-16v. Where shall I  connect the regulated 5v to power the arduino?
Quote
Power
The Arduino Mega can be powered via the USB connection or with an external power supply. The power source is selected automatically.
External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads from a battery can be inserted in the Gnd and Vin pin headers of the POWER connector.
The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts.
The Mega2560 differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it features the Atmega8U2 programmed as a USB-to-serial converter.
The power pins are as follows:
VIN. The input voltage to the Arduino board when it's using an external power source (as opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin.
5V. The regulated power supply used to power the microcontroller and other components on the board. This can come either from VIN via an on-board regulator, or be supplied by USB or another regulated 5V supply.
3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA.
GND. Ground pins.

zeitcheist

Silly me.

We now know where.
Quote
5V. The regulated power supply used to power the microcontroller and other components on the board. This can come either from VIN via an on-board regulator, or be supplied by USB or another regulated 5V supply.


Will post the update later.

Thanks!

AltairLabs

#13
Jan 22, 2011, 03:09 pm Last Edit: Jan 22, 2011, 03:12 pm by AltairLabs Reason: 1
"from where" is the external power, charging nest, etc.  

You also neeed to run the charger off this external power and connect it to battery.  This is U1 and associated components.  Sounds like you've bought a complete charger that is not directly usable with this scheme.  If youre proficient with electronics you *might* find the components inside are usable here.

Heres how it works:

The FET connects the battery to the regulators / loads *only* when there is no external power.  

With external power applied, the loads are disconnected from battery and entirely supplied by external power.  The charger is also supplied by external power.  Now the charger can do its job properly.  

When robot leaves the nest external power goes away, so charger is dead, and the battery once more suports all the loads.

zeitcheist

#14
Jan 22, 2011, 08:42 pm Last Edit: Jan 22, 2011, 08:44 pm by zeitcheist Reason: 1
Now I understand. A few of questions again:

1. What mosfet shall we use? Can you recommend the exact part no.? We will use 15v dc to "activate" this mosfet by the way.

2. Will the switching of mosfet be fast enough that the arduino will not reset?

3. What diode shall we use? Is the common 1n4001 appropriate?

4. We want the charger to be connected to the AC mains only when the robot is docking on the home base, can we use a relay to do this task?

Thanks again for your ideas. Really helpful.  :)

Go Up