I am excited with the latest iteration of the Exo project that I’ve been working on. It’s much less of a traditional wearable exoskeleton but the aim is still to allow the user to walk. The new design has a lot of advantages over the current approaches that are out there, which I’ll get to in future posts.
One of the tricky parts that I’ve found in working on this project as well as others is designing and building the user input device. How does it talk with the main microcontroller? How should the buttons be configured? Do we need an LCD screen to facilitate the control? And how will this all be enclosed?
The latest design won’t necessarily be used with a walker out in front of the user so there isn’t an easily accessible place to put the control box. So some sort of remote control will be in order. I decided that a cabled remote won’t be a good option either as there are a lot of ways that the cabling could run into trouble (e.g. getting caught up during the standing operation).
Building a custom remote control box comes with a lot of overhead:
- Powering it (e.g. battery)
- Making / getting a proper enclosure
- Perhaps getting an LCD screen
- Programming an additional microcontroller
- Handling wireless communication between remote and main microcontroller, which would require either bluetooth or wifi (zigbees) modules on each end. Even simpler radio transmitters come with the baggage of properly filtering the signals.
So that’s why I’ve decided to go with using an Android phone that already has Bluetooth functionality as the control device. Then I can use a Bluetooth module on the Arduino to communicate with the Android app. There’s a great API and framework called Amarino that helps bridge Android and Arduino using libraries at both ends.
Compared to a physical custom input device, it has the following advantages:
- Much more flexible. Need a new button? That’d be quite a chore with a physical remote but no problem doing it in software in the Android app.
- Small form factor. I’m thinking that the best bet will be for the user to wear the Android phone on her wrist so that it’s always handy but frees up their hands. There are commercial belt clip cases out there that could easily be used for strapping the phone to the wrist. It’d be a bit more cumbersome with an off-the-shelf project enclosure or building it from scratch.
- Super stable. It’s a smartphone with a fast processor and we’re not asking it do a lot so it should be very reliable.
- Built in power source of course
It’s not perfect. Programming an Android app is more complicated than programming in the Arduino environment. And there’s of course the consideration of, what if you don’t have an Android phone? But it is interesting to note that decent unlocked Android phones can be found for less than $100. No doubt touch devices will be used as remotes for all kinds of products more and more in the future.