It’s been a long nine months, since my last post. As it’s known to, life has gotten in the way. On the robotics side, it’s not been totally unproductive.
I’ve done a major reshape of the process flow and redefined the individual processors’ jobs. Partially due to understanding of the capabilities of the processors, but also to rationalize the flow.
- Motor Control (Nano) will now manage only the drive motors and avoidance. Avoidance sensors will be the bumper and a single distance measuring ToF on a pan servo.
- Sensor Control will take on management of all (other ^) sensors and servos, and communicates directly to the RPi. Management of all other sensors, I2C or hardware interfaced, will now be Sensor Controls job. This separation of duties will allow Motor Control to concentrate on navigation, and Sensor Control to concentrate on data gathering.
- Supervisory, in addition to power switching and “bells & whistles,” will take on power monitoring, in a future incarnation.
- Replacement of the power relay with a transistor circuit. (thx S.B.)
- Up graded to a 3V Pro Trinket, as there were too few GPIO pins on the Trinket – No future proofing
- Went to an Adafruit “Backpack” for the LCD – free up RPi pins.
Development process changes:
- Software development will now be done on my Windows PC or on an old laptop that is running Debian 9. This will speed up pretty much everything, compared to doing development on the RPi.
- The RPi is now headless (no keyboard or monitor), all access to it will be done via SSH and SFTP. It is now capable or uploading Arduino sketches directly to the Nanos. This allows some level of remote development and testing. At least I can code and load in the kitchen, while I watch the pot of potatoes NOT boil dry.
- I dropped C++ for Python, as the RPi development language. I’m loving the learning but I really only have time to properly learn one of them.
Short term To Do:
- Wire, code and test the addressable LEDs. (Supervisory)
- Complete wiring the drive motor control (just implement two transistor inverters), and rework the code from Rover I. Not a small effort. (Motor Control)