- Robotic Plant 0 – Introduction
- Robotic Plant 1 – Solar Engine Design
- Robotic Plant 2 – Gallery
- Robotic Plant 3 – Final Report
- Robotic Plant 4 – Followup (Gallery)
- Robotic Plant 5 – Really Final Report
I’m close to wrapping up the electronics portion of my roboplant, so I thought I’d take a moment to document that part of the design. Note that I’ve made a few deviations from the original design, specifically:
- The solar engine will drive the motor, and there will not be a separate battery pack.
- There will be no LED as part of the blossom.
- There will be no microcontroller.
- The stem will be a rigid cylinder that is hidden in the container, with a string attached to the bottom, and will be extended by drawing that string up, over a pulley, and around the axle of the gear assembly.
My solar panel comprises 5 of these cells from SolarBotics. They each purportedly provide up to 4.5V and 18mA in sunlight. Since I’ve only had evenings to do my work, I had to use an incandescent lamp to drive them, and I can get up to 4.4V and 18mA, so I guess they aren’t far off. I have 5 of them wired (G2-G6) together in parallel, to form the leaves of my roboplant. All together, with the panel jammed up right by the lamp, I can get up to 90mA of current, at 4.4V. Sitting on the table with the lamp pointed at it, I get more like 3.5 – 3.9 V, and about 30mA. Maybe I’ll get a chance to try it in sunlight before I turn it in, and can report those results.
As you can see from the diagram, I have placed a 1N5817 (Schottky) diode (D2-D6) between the positive terminal of each panel and the point where they connect in parallel. I was concerned that if the panel received light unevenly, the voltage from some cells would be higher than others, and that the high ones would discharge through the low ones. This concern may be unfounded, but in any case, these Schottky diodes have a low enough voltage drop at the kind of current that I’m getting that I don’t miss it. In fact, as I’ll explain later, I kind of want some voltage
Solar Engine Operation
Even though the BEAM Robotics Wiki has a pretty good explanation of how a Miller Solar Engine works, I’m going to give it a shot here anyway to try and make sure I understand how it works.
The solar engine has four main components, a solar panel (G2-G6), a capacitor bank (C2-C3), a voltage detector (IC1), and a load of some kind (motor, microcontroller, transmitter, etc.). The voltage detector monitors the voltage of the system, and when it reaches a certain level (determined by the specific detector IC used, in this case, 3.0V), it turns on a signal. Though the solar panel nominally provides up to 4.5V, it is all shorted across the capacitors, so the voltage actually visible to the voltage detector is the voltage across the capacitors. As the solar panel charges the capacitors, the voltage across them increases until it reaches voltage detector’s threshold, at which point the voltage detector turns on a MOSFET (Q1) that controls the load, in this case, a small motor. As the motor runs, it draws current and drains the capacitors, dropping the voltage across them. When the voltage drops below the cutoff point of the voltage detector, it turns off the MOSFET, and the motor stops. The solar panels then continue charging the capacitors, until the voltage across them is great enough to trigger the voltage detector.
A Miller solar engine has a few minor modifications from a basic solar engine design. The first is the introduction of a diode (D1) between the ground terminal of the voltage detector and the circuit common. This effectively raises the “ground” voltage visible to the voltage detector. For example, if the diode used had a forward voltage drop of 1.0V, then the voltage detector would be comparing the input voltage not to the true ground of 0.0V, but to the visible ground of 1.0V, and so it would not trigger until the total system voltage is 4.0V, instead of 3.0V. The other modification is the introduction of an electrolytic capacitor (C1) between the input and ground terminals of the voltage detector. Both of these serve to increase the hysteresis of the voltage detector, so that it can run for longer bursts than if it just used the voltage detector by itself.
One problem with the supercapacitors in this circuit is the self-discharge rate. I had gotten it running and charged up to 3.00V (to trigger at 3.08V or so) by 2:30PM. By the time I got back to it, at 7:30PM, the voltage had dropped to 2.80V, which is about 0.04V / hr. If the discharge rate is too high (i.e., more voltage than it can build up in a day), then the roboplant will never charge up enough to bloom. I think this is low enough that it won’t be a problem (especially if there are plenty of hours of good light). I’ll try to do some measurements of the voltage produced when the roboplant is sitting in the sun where I plan to keep it. Perhaps a bigger concern is that one of the two will leak faster than the other, pushing more of the voltage load onto it. To avoid this, I’ve added some 100K resistors in parallel with the capacitors as I have seen used in a few places, which should help balance things out without allowing too much current to pass.
Another problem that maybe I should be worried about is the kickback from the motor’s inductor when the voltage drops enough that the MOSFET is turned off. I haven’t worked much with motors, so I don’t have a lot of practical experience informing my analysis. It is evidently common to add a flyback diode in such sitations, so I guess I ought to be prepared to throw one in, though that makes things tricky if I have a switch and button to reverse the motor and retract the stem (to reset the roboplant without taking it apart).
Since my supercapacitors in series are only rated for 5.0V total, I am a little worried about leaving enough breathing room there. My solar panels only produce 4.5V max, so I’m not worried about exceeding the 5.0V rating, but I want to be on the safe side. My voltage detector is at 3.0V, so the system should never get far above that, but the close ceiling means that if I find better ways to increase the hysteresis, I’ll get more nervous about approaching the upper bound. One way to do that is to add another diode after the solar panels, reducing the maximum voltage to whatever the panels are putting out minus the forward voltage of that diode. The tradeoff there, though is that if I get too close to the threshold voltage of the voltage detector, then it will take stronger light to charge the capacitors up enough to exceed it.
The hysteresis of the voltage detector I’m using is given as about 0.08V, which is pretty close to what I’ve observed. It would be nice to have a wider range to work with; that would allow the load to be driven for longer and more of the capacitor’s charge to be used.
As an alternative to the Miller solar engine, I am thinking I might try and use a Variable Threshold Solar Engine, which would substantially increase the amount of time that the capacitor could be driving the load, at the cost of higher recharge time. With the roboplant, a long charge-up time is no problem (in fact, it is what we’re going for), and the extra oomph in extending the stem and opening the blossom would be nice (e.g., we could have a larger blossom, or a different stem mechanism).
As I mentioned above, my solar panel produces between 3.5 and 4.5V, and between 30 and 90mA. When charging, the voltage initial rose quickly, slowing down as it approached the threshold voltage. This matches the expected RC rising time curve. I found that the voltage detector would trip at around 3.08 or 3.09V, and the load would be triggered and drain the capacitors until the voltage was down to about 2.97V, which took about 10 seconds when the motor was free running (with the main drive gear disengaged). Because the current through the voltage detector hysteresis diode is so low, the voltage drop was correspondingly low. Using different kind (i.e., non Schottky) would probably increase the voltage drop, but I was afraid to make the trigger voltage too high, as mentioned above.
When the motor was engaged to the stem extending mechanism, it had enough oomph to extend the stem fully, but just barely.