Tuesday, 30 January 2024

A New Idea to Rescue My Pi Wars Entry

So I need a new idea for my Pi Wars robot. Something small that will be quick to build. I am a big fan of small robots, although it can be challenging to fit everything in the limited space. For me the value of Pi Wars is that it pushes me to learn and advance. I've never really enjoyed the competitive aspect of things, but I really enjoy pushing myself to improve. So I started thinking about building on the ideas I have been working on using a Raspberry Pi communicating to a MicroPython board with the Pimoroni Yukon, but shrinking things down a little. I have wanted to build a robot with Mechanum wheels for a while now. Mechanum wheels have little rollers mounted at a 45 degree angle all around them, and by driving them in different directions it is possible to make a robot move in any direction without turning the body of the robot to face in that direction. I had all the parts I needed in my 'things I bought in Pimoroni sales but have not had time to use yet' boxes. So I swapped the Yukon board for the smaller Motor2040 board which supports 4 independently controllable encoder motors. Encoder motors are another thing on the long list of topics I have wanted to explore but hadn't found the time yet. So I laser cut a pair of acrylic plates with mounting holes for motors, a Raspberry Pi and a Pimoroni Motor2040 board. I already had some motor mounting brackets I had 3D printed on the Makespace resin printer. 


I have a robot! Albeit a test chassis to develop some code on rather than a final Pi Wars entry. I had been designing a case for the new Raspberry Pi 5, so I just mounted that on the chassis. Another step into new learning as the power requirements for the Pi 5 for mobile robotics raise more problems I wanted to solve. The Raspberry Pi 5 also requires running the Bookworm version of Raspberry Pi OS, which means python libraries not included in the apt packaging system can only be installed into a virtual environment. So this would push me to solve the problems of configuring my robot code to run on boot inside a virtual environment. So I will be learning a lot! Now I just need to find some time to work on the code.

Sunday, 28 January 2024

Mentoring a Young Persons Team

Mentoring young persons in PiWars has by far been the most rewarding aspect of the competition over the past 5 years. This year is the 7th young persons team I have mentored through the competition. They have pretty much taken up all my time for robotics during this competition so far, hence the lack of progress and updates on my own robot. Time is always very limited with young persons teams. In the past I have always mentored through running after school robotics clubs in local schools. School safe guarding rules generally mean I only get a hour a week with the teams, and have no way to communicate with them outside of these club sessions. This really restricts what I can do with them. I literally get around 20 hours with them over the entire span of the competition, to help them design, build and code a robot. The exception to this has been the monthly Robot Club run by Brian Corteil at Cambridge Makespace, where I have managed to arrange with the parents of some of the children in my teams to bring their children along and give us some more precious time to work on their robots.

This year is a little different as I was unable to get an after school club organised due to staff leaving and schools closing/merging where I had previously made contacts with staff. But then my daughter entered with a school friend giving me a team to mentor who I could work with outside of school. This has made a huge difference both in terms of what we can do, and in how much of my time they have taken up!

Here they are at Makespace where we went to the Robot Club and built this robot in a day!


It was based on the guts of a robot from last year (my daughter was also on that team). We designed and laser cut a base plate with holes to mount all the electronics and batteries, then mounted everything with machine screws. This is just a working development platform to give them something to start working on the code. We looked at my collection of sensor electronics, and they decided to start with a camera as they plan to try and tackle some of the challenges autonomously. This brings me to the second huge benefit of mentoring young people. They teach you so much! I have never done any image recognition before. I always wanted to explore this area, but never found the time until now. Suddenly I am up to my neck in their Open CV code, trying to understand it, help them debug it and advising them on approaches to problem solving. They have some great ideas, slicing images into vertical strips, calculating average brightness to determine where in the frame the line is for the line following for the Lava Palava challenge. Detecting barrels by colour, and recognising Zombies. Even if I never get the time to work on my own robot for this competition, they have pushed my knowledge far into new areas. It has been great!

Saturday, 20 January 2024

Size Matters

Everything has gone wrong! I've been trying to find a way to make my robot narrow enough to fit inside the Pi Wars maximum allowed robot dimensions. The problem is that the motors I planned to use along with the tracked wheel assemblies are too wide. I was planning on a belt drive mechanism so one motor could drive both tracks on one side of the robot, and the rocker bogie pivot could be the axis of the motor. 

But with these motors positioned back to back there is only going to be room for the tracks within the width if I design a two stage belt system so that the belts driving the tracks are in line with the motor body. 

Another idea I played with was to use 45 degree angle bevelled gears to enable me to mount the motors at 90 degrees to the pivot axis. This would enable me to mount the motors so their bodies were oriented along the length of the robot, rather than the width. I could position the motors closer together this way and get the robot to fit inside the width limit for the competition.

At this point I realised something more significant which had been staring me in the face all along. Placing two of my track assemblies one in front of the other, there is no way to fit them within the length limit for Pi Wars! There would not be enough clearance between them to prevent the front tracks snagging on the rear tracks in the rocker bogie arrangement where each track can freely pivot around it's own axis. I wondered if I could fit them offset from each other, placing the front pair closer together than the rear pair? Then the front pair could overlap with the rear pair. But this consumed too much width again. It was time to accept this was not going to work. So now I need a completely new idea!