I've been working a lot on my
In my last post, I posted a color-coded high level view of the architecture. There's a lot more green now, I'll post an updated chart in my next post. I don't think I dropped any subsystem from the original, and much of the left-hand side is built assembled, and ~50% coded.
The "mobility" module board. It houses a Propeller chip & flash, motor drivers, voltage regulators, and a ton of jumpers for connections to sensors, lights, and servo. |
I've replaced the AA NMH rechargeable with a 4.5 Amp-hour sealed lead-acid battery. Batteries technologies all have pros and cons. SLA's are cheaper, seem to be able to take a little more abuse than other types of batteries, and are simpler to charge, I haven't decided yet, but I may include a charging circuit, there is empty space inside the body.
Notice the rigged sonar setup in the first picture. I created a mounting bracket with Shapelock, but I'm holding the servo to the chassis with some lead wire. I haven't figured out yet how I want to permanently attach it. Needless to say, there is a lot of play.
The other half of the vehicle, that will sit on the platform above the battery, is the "master module". It's still in the prototyping phase, but it's almost ready for construction (I like to have a few "deep thought" sessions where I just sit and stare at everything, and visualize it all coming together, I simulate it in my head).
The LCD module, the Zigbee, SD-card reader, RTC, and of course the STM32F discovery board. All of this hot mess will communicate with the the lower board with only a serial line. |
I've got the RTC working, which is used to hold the time when the unit is powered off, I still need to wire up a coin-cell battery backup, but that should be easy, I've already done that once, for this project.
The SD card code is working, thanks to ChibiOS/RT and it's FatFS integration. I load a test image on start-up, and display it on the LCD in my home-grown widget/windowing framework:
The "speed" readout is nonsense. The memory is accurate, and is the sum of several heaps and memory pools. The time is accurate, it's just not set. The astute may notice BMO in the background image, it scored points with my kids, and BMO is just plain awesome. |
The RGB led on the LCD board will be controllable via Pawn, I'm almost there on bridging my "driver" for that to my Pawn implementation. I also have quite an extensive shell accessible via a terminal on a PC over the ZigBee. I can upload/download files wirelessly via "YModem" (Z-modem is much better, but also more complex to implement, so I settle for YModem). I can also launch Pawn scripts and optionally launch them in a separate thread. (Yikes, works so far).
The Sparkfun LCD board has a boost converter to drive the LCD back-light at 7 volts. The current draw of the boost increases substantially when powered at lower voltages. I plan to drive it more or less straight from my battery, at ~6.5V. One issue I ran into was how to enable the delicate STM board to turn the back-light on and off. The easiest solution would have been a mostfet between the back-light and ground, however this Sparkfun board had the ground for the back-light tied together to the logic ground. I had to resort to "high side switching", after a lot of googling, and playing in LT spice, and a stubborn determination to use parts on hand, I figured it out. I hope to do a separate post about that. (Right after my post about the failed sonar I promised, I have a rough draft, I swear!).
I've also got a battery level monitor, using a high impedance voltage divider and an analog input on the STM chip. It's going to take a little empirical experimentation to convert voltage levels to battery capacity.
The one thing I have not started, but really would like to add it some sort of "drop off" detector, so that the thing does not go off the edge of stairs or a platform. I may actually try to add that as a peripheral add-on, after the rest of the bot is more or less complete.
--P
No comments:
Post a Comment
I welcome you're thoughts. Keep it classy, think of the children.