Adafruit DRV2605L Haptic Motor Controller
The DRV2605 from TI is a fancy little motor driver. Rather than controlling a stepper motor or DC motor, its designed specifically for controlling haptic motors - buzzers and vibration motors. Normally one would just turn those kinds of motors on and off, but this driver has the ability to have various effects when driving a vibe motor. For example, ramping the vibration level up and down, 'click' effects, different buzzer levels, or even having the vibration follow a musical/audio input.
This chip is controlled over I2C - after initialization, a 'string' of multiple effects can be strung together in the chip's memory and then triggered to actuate in a row. The built in effects are much much nicer than just 'on' and 'off' and will make your haptic project way nicer feeling.
According to the product page, it can be used with both LRA (Linear Resonance Actuator) and ERM (Eccentric Rotating Mass) type motors, can also be used with Adafruit's little vibration pancake ERM.
Adafruit put this nice chip onto a breakout board. it works with both 3V and 5V power/logic, and code is available specifically for CircuitPython and Arduino but porting it to any I2C-capable processor should be quite simple. Check it out and get buzzing!