After my freshmen year I was hired by Dr. Tom Daniels as a peer mentor for his introductory class in problem solving, CprE 185. During that summer (summer of 2013), I was able to assist in the development of new software/hardware system that would be used in the laboratory portion of the course in coming years. This new hardware, the Arduino Esplora, would be used to provide raw data for students to parse and use as input in their lab activities.
In the past we had used the Nintendo Wii Remote’s accelerometer and button inputs to provide this data, but through the years the bluetooth connectivity between the remote and the Windows boxes used in lab had begun to degrade and become harder to use reliably. In the end, the Arduino Esplora was chosen as a suitable replacement because of its many built-in peripheral inputs (6 push-buttons, accelerometer, microphone, slide-potentiometer, and joystick), higher transmission-rate capability, and potential for future expansion with its additional digital and analog input pins.
It was my responsibility to continue independent development on code started by past peer mentors, which consisted of two major components - the software run on the computer itself called Explore and the corresponding code run on the Esplora unit, esploraWrap. At the beginning of the summer the software offered basic connectivity between the two platforms and by the end, I needed to develop a protocol for communication between the two (control and data-flow), a way to calibrate the Esplora’s accelerometer data, and a way to specify the type of data to present to the user.
The project was a success and is currently being used today in lab. I still work to maintain the software and have produced working versions of the Explore software for Cygwin, Windows Command Prompt, and Mac/Linux Terminal. Most of the code was written in C and uses a USB serial connection for communication. We are currently working on implementing Bluetooth connectivity.