Time to read: 2 min read
In 2017 a friend of mine and I decided to participate in the micromouse competition that was organized mostly by our university.
First we decided on a rounded form factor for easy turning, and we designed to be narrow enough to be able to go diagonally in the labyrinth, which still makes me chuckle a little bit.
We went through many design iterations in NI Ultiboard, until we were confident enough to order the PCB. Then came the soldering part, which needed many tries, and seemed even near impossible at times. I think it took us 4 mice to get the hang out of it, and at that point any one of us was quick to assemble a fifth one in a few hours.
STMCubeMX and Keil were our software of choice, which we used to initialize the processor, and to program it. In the world of $5 Arduinos it's actually amazing, how hard it is to get something like this to work from the ground up. But ultimately we managed to implement a PD Control on the otherwise erratic motors, and had the mouse go straight. We were also able to read sensor data (IR, Gyro, magnetic encoders). The picture on the left shows the actual pinout of our mouse.
The sensor readings seemed promising: we did tests in different light conditions, and the powerful IR emitters proved to be very confident, and showed a consistent curve. The range between 1-10cm is useful for measuring distance, before and after that the resolution won't hold up. The motor drivers seemed linear, even thought the motors themselves disagreed.
Here's the final runner: