Introduction: MakeyMakey Keyboard Emulator for FIRST Robotics
As I mentioned in a previous Instructable, we obtained the MakeyMakey kits for the January Instructables Build night. Bad weather forced cancellation of our first to attempts to hold a build night, and threatened the third. We did get some adventurous souls who braved the weather and came in to have fun.
We did the usual banana and 2d arcade game projects to begin and give the wide age range (8-69) participants a chance to study and learn about the technology. Once all were familiar with how the device worked, and the importance of understanding closed circuits, we moved on to our target game work:
and other small attempts at finding the elusive gee-wiz Instructable project. Toward the end of the evening two kids on our local FIRST Robotics FRC team came in to work on 3D printing robotics parts and soon got distracted by the MakeyMakey device. They were kind enough to give the build night participants an overview of wiring, circuits and electronics as they apply to robotics. In return, the build night folks briefed them on the function and uses of the MakeyMakey.
The robotics kids were quick to realize that the MakeyMakey could easily be used to replace their rather expensive and sometimes difficult to program "keyboard emulators". The use these keyboard emulators to build auxiliary control panels to supplement the full size joysticks typically used to control the FRC robots. The joysticks have a combination of buttons which can be specifically used to control robot functions like lifts, pneumatic arms, and game piece manipulators. However, sometimes the manipulations are much easier to track and activate when a game board like an arcade game console is utilized. This is where keyboard emulators come into play. They can be wired to buttons and arcade joysticks and allow the robot to be more easily controlled. The problem is, most keyboard emulators are rather expensive, more expensive than the MakeyMakey ( $65 to $95), can be hard to program and sometimes to not "work and play well" with the robotic drive station.
With that in mind, the robotics kids decided to bread board a potential control board to insure that the electronics and responses would indeed mimic a $78 keyboard emulator we currently use. Due to time constrains, we decided to monitored key presses and joystick manipulation by observing the appropriate characters in a text editor.
Step 1: Step 1: Prototype - Breadboard
One of the nice things about the MakeyMakey is that they bring the front side "touch" pads out the back with easy to use 0.1" female connectors. So everything you can do by touch on the front, can also be hard wired to switches and breadboards on the back using hook up, or bread board wires.
This makes it easy to connect a variety of switches and joysticks to the MakeyMakey which can then send multiple keystrokes simultaneously to a computer or robotic drive station. We used the prototype board setup above to test response speeds and to begin the programming necessary.
And while the normal keystroke map can be used, as long as the receiving program can "read" and interpret the code, we decided to "remap" the keys to allow it's use in a robotic platform we currently use as a test bed. So certain buttons were connected to the remapped connections to correspond to a current test bed we are using.
Unfortunately, our test bed and robot are on loan to a rookie FRC team so we were not able to insure the MakeyMakey prototype would work exactly the same as the current keyboard emulator. However, by monitoring the output of the remapped MakeyMakey and comparing it to log files of the robot in competition, it was easy to see we got comparable and consistent results.
Step 2: Step 2: Development of a Robot Control Panel
Once we had the breadboard concept tested, we decided to mock up what a real control board could look like using computer aided design (CAD). We used Autodesk Inventor Pro 2015 to design a potential control board and a screen shot of the design appears above.
Step 3: Conclusion
While we couldn't do all of the testing to insure a MakeyMakey robot control board would work, our work on the prototype board and our examination of keystroke logs strongly suggests it will be comparably functional.
We will confirm the assumption once our demo robot is back in the Makerspace following the completion of the current competition season.
Should the prototype board be compatible, we will begin using a few of our MakeyMakeys to make boards for robots we have in storage so that we can run multiple robots during testing and research sessions typically done during the summer off-season.
In conclusion, this work suggests that MakeyMakeys can be used to develop custom control boards that can be used for a variety of robotics platforms as long as the robot control software can "read" and utilize keyboard commands. It's lower costs and ease of setup and reprogramming should allow additional robotics teams to expand their control interfaces and save money in the long run.