While I would love to take credit for everything you see in this course, I feel obligated to share the many ways in which several people contributed to the end product.
To start, I am deeply indebted to Steven Kibler who took the time to show my students his Micromouse, and who endured my relentless questions regarding how it worked. I must also thank Steven for his willingness to serve as a consultant. Being a computer engineer, he knows far more than I about the components necessary to make such a robot work well. His detailed responses to my many questions saved me a great deal of time, effort, and money.
Trevor Shannon took the time to show me how to get started with Arduinos. I had tried playing with them before, but couldn’t seem to figure them out (mostly because I didn’t take the time to read the documentation). At any rate, after about an hour of his help, I was able to delve in and haven’t stopped since.
I must also thank Michael Britt-Crane, an engineer with the Naval Surface Warfare Department.
At the beginning of the 2012-2013 academic year, I started kicking around the idea of building a differential drive robot that costs less than $100 using an Arduino as the controller. I passed the idea on to an acquaintances who passed it on to Michael. His response provided me with the basic outline of the robot you see in this course: two motors attached to a breadboard and controlled by a small Arduino. Prior to Michael’s email, I never even knew smaller Arduinos existed. Later, while helping Michael at a SeaGlide camp in Boston, he gave me additional ideas for improving upon the design, which have been incorporated into version 3.0.
Orion Lawlor, a professor of computer science at the University of Alaska Fairbanks, also provided fantastic advice. On more than one occasion I asked him how best to proceed with programming the mouse. His advice gave me the confidence to move forward with some unconventional techniques that are generally frowned upon by computer scientists, but which work well and make sense when programming robots.
Gerald Finkler also played an important role as an administrator who supported me and allowed me to run with an idea. His financial support allow me to build the first mice. His confidence in me gave me the freedom to try several different approaches, many of which were abysmal failures. Had I been in his position, I am not sure I would have been as forgiving.
Jason Chua Yap’s willingness to sell kits has made building Nano Mice accessible to anyone with $99 to spare. His insistence on an easier to manufacture and more affordable design was the driving force behind my decision to continue development on this project and release version 3.0.
AFCEA deserves a special mention as the only organization willing to support me financially in my endeavor to create a revolving fund to purchase materials ahead of time for professional development workshops. Also, Kathryn Kurtz’ invitation to teach at the Anchorage School District’s Summer Academy was an appreciated recognition of my efforts and my first opportunity to share what I had developed with other educators.
Last, but certainly not least, I am eternally grateful to the students for whom I created this course. After seeing Steven’s Micromouse in action, Kyle Hackett decided he wanted to build one of his own. Unfortunately, he was unable to workout, build, and program a mouse on his own. He was in the back of my mind as I worked on the first iteration of this course. I often asked myself if the time and effort I was investing was worth the effort, but the day I saw his mouse find its way to the center of Steven’s maze I had my answer. Programming a robot to solve a maze is no trivial task. To see a student persevere with such a long and involved project is truly inspiring.
Jasper Holton was also a key player as he was not only the first to successfully program one of my mice to solve a maze, he tested out various ideas for improvements and eventually came up with a design all his own. He gave me confidence in my approach: walking students step-by-step through a difficult challenge. Instead of just absorbing the knowledge I fed him, he took what he learned and applied it in new and innovative ways.
Benjamin Bashor also contributed in a very material way. Lacking an Android device, and desiring to remotely control his robot, Ben figured out how to use the Processing programming language to remote control his robot using the trackpad on his computer with almost no help. The videos you see in this course on that topic are based on a refined version of Ben’s code.
There are others who helped to make this course a success, which I have not mentioned here for the sake of brevity. Suffice it to say that a project like this is not the result of a single individual. I am continually making improvements thanks to the advice and efforts of students and colleagues both new and old.