Work I Completed
During this past week I have been working through understanding more of the ADAfruit PWM servo library. I have been attempting to learn how to use multiple servo motors simultaneously so I can apply it with respect to my project soon. I have learnt many things about this library, including how the setup is unclear and very important. Knowing the oscillation frequency is hard, it should ideally be 25 MHz, however, its easy to understand it often is never going to be this value. Before I knew this, I was attempting to use it at this value and not understanding why it was not working. Only after much testing and research did I discover how the oscillation frequency is unique in each board. Through trial and error and looking through inline forums, I found that mine needed to be at 27 MHz, and then everything could work. Once I updated this, I found little issues with the rest. For further progress, I aimed to work on the maths part at a later date, and for now focus on moving motors. I found how to convert between pulse and degrees. I had a few ideas going into this, one being finding some formula which gives a rough translation, or the one I ended up choosing, to map maximum inputs and outputs to find everything relative to the motors. This came about because in the setup I needed to find a maximum servo pulse and a minimum, if I map the desired angle bounds to these, it would be an easy conversion. This was also very easy to implement and, not too surprisingly, worked very well. A bonus to this method is how it will be easy to change the bounds of the legs, as they won’t be able to match a full 180˚ rotation due to their physicality, so they must lie within a range, one which I haven’t definitively decided on as of yet. This has been a surprisingly fun portion to learn and attempt, as there is no complex programming currently and it has been about logically simplifying what needs to be done.
Reflection
Although this has not been a lot of work, it is definitely crucial to the progression of development for Winston. One of the reasons I have done some less, is because of the upcoming ANU Maths Day, for which I have been studying and practising, leaving little time for this. Unfortunately, impromptu competitions are not something I accounted for initially – I knew I would be doing some, but I only considered known challenges. This is something I now know needs to be considered when coming up with a project within a time limit. Other than this, the progression with PWM has allowed for a greater understanding of how Winston will work with full inverse kinematics. Additionally, the current testing with the motors shows high promise for reliable movement to the desired location, although torque is still something that may pose a problem. This, however, is a problem for future me.