Saturday, August 13, 2011

DIY Telepresence Robot - Part 5

The Electrical System

Powering the netbook is one of the more interesting design problems.  Johnny Lee came up with a novel solution.  He modified the charger base to output 110V AC instead of DC.  Then he piled both AC/DC converter bricks onto the iRobot and charged it and the netbook using AC power supplied by the charger.  The advantage to this approach is simplicity.  By keeping both electrical systems intact and separate, he avoided the design problems associated with unifying them.  But keeping both power systems on the robot adds weight to the unit - creating docking problems.  More importantly, the conversion of the charger base to AC and the exposure of high-voltage contacts creates a potential fire hazard which renders the design inappropriate for a place of business.

Initially I tried to keep the dual electrical system but address its problems by designing a custom plug and socket mechanism.  The socket would capture and engage the plug during auto-docking to charge the netbook, but the iRobot docking motion proved to be too erratic for a physical solution.  No plug mechanism had enough positional tolerance.  So instead I abandoned dual electrical systems and decided to unify the systems and power the netbook directly from the iRobot battery.

Luckily the iRobot Create already has an electrical pathway to its battery through its serial interface so no physical modifications have to be made to the iRobot.  The only remaining problem then is to convert the battery feed to the proper voltage and current for the netbook.  The power requirements for the Asus 1015PE are 19 Volts and 2.1 Watts as listed on the AC/DC converter brick.  To meet this non-standard voltage, I found a nifty little product called the AnyVolt3.  It can take any input voltage from 5 to 30V and step it up or down to any output voltage between 3 and 24Vwith reasonable efficiency.  The output voltage is adjusted by a little potentiometer dial on the unit.  Our iRobot battery supplies a voltage ranging from about 12V to 16V depending on its charge level, so we just need to boost the power by 3 or 4V for the Asus netbook.  If you choose a different netbook, then the AnyVolt3 should easily be able to accommodate its different voltage requirement.


The Asus claims to draw up to 2.1 Amps of power.  I hooked up a multimeter to test this but never saw that much current draw from the netbook during normal usage even with all the robot components connected and operating.  I assume that a 2.1A draw could occur during charging, but that's not possible without a battery attached.  So the netbook does a pretty good job of power management and the normal power draw sits somewhere around 0.5A with occasional spikes only going as high as 1.2A under load conditions.  Looking at the iRobot Create serial interface we see that pins 10, 11, and 12 each supply the battery voltage at 1.5 Amps a piece, so in theory I could get all the power I needed from a single pin.  However the AnyVolt3 draws more current than it outputs when up-converting voltage.  In other words, if the netbook is drawing 1.2A, then the AnyVolt3 will be drawing MORE than 1.2A in order to generate 19V.  To be on the safe side I used two pins in parallel to provide up to 3A to satisfy the full currency requirement.

Hooking all this up is incredibly simple.  Plug a male DB-25 serial connector into the iRobot.  Now cut two short lengths (about 10") of power wire and connect one of them to pin 10 and the other one to pin 12.  If you use a serial breakout board connector then you can simply screw the wires in and avoid soldering.  The other ends of both power wires will overlap and screw in to the positive input terminal of the AnyVolt3.  Now cut a short length of ground wire and string it between pin 14 (GND) of the serial connector and the negative input terminal of the AnyVolt3.

Next configure the AnyVolt3 output voltage.  Power on the iRobot and use a voltage meter to test the output terminal of the AnyVolt3.  Turn the AnyVolt's potentiometer until you detect a 19V output voltage.  To finish the wiring first cut the DC end of the netbook power cord just above the AC/DC converter brick.  Attach the cut ends of the wire to the positive and negative output terminals of the AnyVolt3.  Finally plug the power plug into the netbook.

Electrical Wiring

In summary, the iRobot serial interface should be connected by three wires (2 positive, 1 ground) to the AnyVolt3 input and the netbook should be connected to the AnyVolt3 output through its power cord.  You should now be able to boot up and test the netbook without a battery using only the power supplied by the iRobot.  The electrical system is now complete.  Fully charged, the robot and netbook can operate between 1 and 1 1/2 hours assuming that it only travels short distances and mainly sits still during conversations.  That is long enough for most daily activities including short visits to multiple coworker offices and even medium length formal meetings in a conference room.

There is one major problem with this design.  When the iRobot gets back on the charger, it enters a charging cycle where it draws a large amount of current to charge the battery with.  In order to remain responsive the netbook must stay powered and awake at all times - even on the charger, so the netbook is drawing a bit of current during the charge cycle as well.  We can minimize the impact by doing things in software like turning off the screen, but we cannot eliminate it, so we are left with a minimum draw of about 250mA just to keep the netbook alive.  You would expect that the iRobot charger would compensate for the netbook draw and be able to keep the battery fully charged, but there is a flaw in the iRobot design.

Once the iRobot detects that it has fully charged the battery, it enters into a trickle-charge mode that is designed to keep the battery at full charge.  Unfortunately during this mode the iRobot never bothers to test whether the battery is staying charged or has a draw on it.  It just assumes that the trickle is enough, but our netbook draw far exceeds the trickle charge, and so the battery will eventually drain even if the robot is sitting on the charger and the green "full charge" light is on.  Once the battery drains, it is difficult to get the robot "unconfused" about its charge state and operating properly.  I have implemented some software tricks to "mostly" overcome this problem but I have not been able to fully solve it, and so battery health is a constant and nagging issue with this robot.  I will go into some more detail about this when I cover the software in a future post.

With the electrical system complete we have manufactured all of the robot parts, so we just need to put all the pieces together the complete the robot assembly.  The next post will cover the final assembly.

Next--> Part 6: Final Assembly

1 comment: