Welcome! OpenHaptic is a system for interfacing with the sense of touch in rich ways. Some things you can do with OpenHaptic:
- Build Sensory augmentation systems that let you sense radar signals, infrared, ultrasound, etc
- Use vibratory stimuli to control the autonomic nervous system
- Build an unintrusive notification systems
- Provide biofeedback/neurofeedback
- Make haptic interfaces for AR, VR, and video games
The OpenHaptic hardware consists of a ESP32 Feather connected to 3 vibration motors and a battery. The parts used in my build were:
The specific part numbers we used were:
- 1 ESP32 Feather
- 3 DZS electric vibration motors
- 3 Fairchild 2N7000 MOSFETS
- 1 Adafruit 2500mAh lipo battery *
Assembly is fairly simple; each MOSFET is used to drive a motor (make sure that the MOSFET is placed in the low side of the motor, the current path should be battery -> motor -> MOSFET source -> MOSFET drain -> ground). The battery is plugged into the Feather's battery terminals; an onboard circuit will automatically control charging and discharging
*2500 mAh is a good sized battery that gives you a full day of charge for most applications, however this battery is available in multiple sizes--you can get a larger one, or a smaller one, though at least 500 mAH is probably a good benchmark for at least a few hours of runtime.
- Install MicroPython on your ESP32 feather, as shown here
- Download the main.py file and use Thonny to save it on the Feather board.
All of the critical software is now installed, but your OpenHaptic won't do anything until you load an app on it. The easiest way to do that is using our Android app which will let you load Python code on the board. A few demo programs are included with the Android app for you to load.
Once code is loaded, it will run immediately, and every time the board starts up it will wait 30 seconds and then run the last loaded program
The Openhaptic Programmer app will you you install and remove programs and communicate with the device.
You can also toggle programs on and off by pressing the reset button on the board itself. Each time you press it the board will switch between "program running" and "idle" states
The OpenHaptic board will run any Micropython program you load on it; you can do anything one could do in micropython. There are also some convenience functions that simplify building apps, see here for details
The ESP32 device has a Bluetooth/Wifi radio, and OpenHaptic includes some APIs for communicating with another device over Bluetooth. It is also entirely possible to ignore the API and just use custom Micropython code for communication.