... robots built for the RoboCup Junior Competitions
These robots were made by me and two other students in my high school. It was one of the major projects I undertook during my high school years. I designed and built all the electronics, and programmed the microcontrollers in MCS-51 assembler. It was in the days when easy-to-use kits such as Arduino hadn't come around.
Years after and looking back, I should have programmed in high-level languages such as C instead of Assembler. Assembly language adds extra complexity to expressing logic and ideas, which gave me disadvantage in the competitions. But at the time I was too obsessed with the idea that "I know these robots down to every single transistor and my competitors don't".
a prototype robot
On the other hand, I acquired a deep understanding of how any computing system actually work by going through the process of actually building every amplifier and writing every bit of code in Assembly language. The intimate knowledge of the internals of microcontrollers has proven to be an great asset in my later projects.
The challenges I faced while making my own sensors showed me the need of a formal training in electronics and DSP (recovering ultrasonics pulses from noise was harder than I thought). I also gained the valuable appreciation of using commercial-off-the-shelf components. These experiences taught me a great lesson that I still remember every time I engage in new projects.