adafruit_drv2605
¶
CircuitPython module for the DRV2605 haptic feedback motor driver. See examples/simpletest.py for a demo of the usage.
Author(s): Tony DiCola
- class adafruit_drv2605.DRV2605(i2c: I2C, address: int = 90)[source]¶
TI DRV2605 haptic feedback motor driver module.
- Parameters:
i2c (I2C) – The board I2C object
address (int) – The I2C address
- property library: int¶
The library selected for waveform playback. Should be a value of:
LIBRARY_EMPTY
: EmptyLIBRARY_TS2200A
: TS2200 library A (the default)LIBRARY_TS2200B
: TS2200 library BLIBRARY_TS2200C
: TS2200 library CLIBRARY_TS2200D
: TS2200 library DLIBRARY_TS2200E
: TS2200 library ELIBRARY_LRA
: LRA library
See the datasheet for the meaning and description of effects in each library.
- property mode: int¶
The mode of the chip. Should be a value of:
MODE_INTTRIG
: Internal triggering, vibrates as soon as you call play(). Default mode.MODE_EXTTRIGEDGE
: External triggering, edge mode.MODE_EXTTRIGLVL
: External triggering, level mode.MODE_PWMANALOG
: PWM/analog input mode.MODE_AUDIOVIBE
: Audio-to-vibration mode.MODE_REALTIME
: Real-time playback mode.MODE_DIAGNOS
: Diagnostics mode.MODE_AUTOCAL
: Auto-calibration mode.
See the datasheet for the meaning of modes beyond MODE_INTTRIG.
- property realtime_value: int¶
The output value used in Real-Time Playback mode. When the device is switched to
MODE_REALTIME
, the motor is driven continuously with an amplitude/direction determined by this value.By default, the device expects a SIGNED 8-bit integer, and its exact effect depends on both the type of motor (ERM/LRA) and whether the device is operating in open- or closed-loop (unidirectional/bidirectional) mode.
See the datasheet for more information!
E.g.:
# Start real-time playback drv.realtime_value = 0 drv.mode = adafruit_drv2605.MODE_REALTIME # Buzz the motor briefly at 50% and 100% amplitude drv.realtime_value = 64 time.sleep(0.5) drv.realtime_value = 127 time.sleep(0.5) # Stop real-time playback drv.realtime_value = 0 drv.mode = adafruit_drv2605.MODE_INTTRIG
- property sequence: _DRV2605_Sequence¶
List-like sequence of waveform effects. Get or set an effect waveform for slot 0-7 by indexing the sequence property with the slot number. A slot must be set to either an
Effect
orPause
class. See the datasheet for a complete table of effect ID values and the associated waveform / effect.E.g.:
# Getting the effect stored in a slot slot_0_effect = drv.sequence[0] # Setting an Effect in the first sequence slot drv.sequence[0] = Effect(88)