Hello Vibe Motors -
We had the chance to work with Vibration motors for this class, the motors comes with very small wires so the first step was to solder longer wires to the motor
The vibrating motors can be programmed the same way as something like an LED, the first experiment was using the LED blink and fade example codes in the Arduino sketch. An UNO board is preferred in this scenario as the 33 iot does not have enough output to power the vibration motor without a transistor.
Different blink frequency of blinks can achieve different effects, a delay of 10 milliseconds between vibration will still feel like a constant blink while 50 and above will feel like separate vibrations.
Next, the same setup was repeated with an array of 3 motors.
Even though the motors are vibrating in sequence, it can be hard to feel the separate vibration unless if the delay in between them is around 150 or more. It is also hard to distinguish the vibrations separately even if they are fired of in sequence next to each other, when I placed 3 motors vibrating in sequence on my hand, it feels more like a heartbeat rather than something sliding along.
Haptic Motor Driver
The last lab was using the haptic motor driver to control the vibrations of the motor. I used the DRV2605L driver which comes with a library of various vibration effects such as difference types of taps and alarms.
This is the Arduino sketch that programs a list of difference vibration presents to be played in sequence to the vibration motor through the control motor.
For the Haptic Buffet, I attempted to make my own haptic device by attaching different objects to a DC motor. One object is a wooden block with a piece of cloth on top and another is a bendable wire. The idea is that when the motor spins, the attached object would generate a haptic feedback to the user if the touch it.
For the final project, I worked in a group with Bianca and McCoy to make a game of Pong with haptic feedback. The original idea was to make a full controller which controls the platform with an accelerometer and provides a haptic feedback upon scoring or loosing, but the data coming from the accelerometer was sporadic and hard to work with, so for the version made in class, we limited the physical interaction to the haptic feedback while the control is done through a computer mouse.
The game was written in p5.js while communication with the Arduino was done through p5 serial. A serial message is sent to the Arduino every time the score changes (a different one for gaining score and loosing score), while the Arduino receives the message and gives the motors instructions to vibrate in different ways based on weather the score went up or down.
On the fabrication side, shrink tubes were used to unify the vibration controllers with the soldered on wires into a single body. This was done for 3 motors.
The three motors are then taped onto a strap which can be wrapped onto the user's hand when they play the game.
The whole project - The Pong game running on PC with P5 serial connecting to Arduino with vibration motors.