Awesome
BMI Air Mouse
Brief
"You can turn anything into an air mouse if you're brave enough"
— Piper, a.k.a. Pez
Naturally, the quote above applies to Flipper as well.
What?
The app allows you to turn your Flipper into a USB or Bluetooth air mouse (you do need an extra module, see the Hardware section below)...
Using it is really simple:
- Connect the Flipper via a USB cable and pick
USB
, or pickBluetooth
and pair it with your PC; - Hold the Flipper in your hand with the buttons pointing towards the screen;
- Wave your Flipper like you don't care to move the cursor;
- Up button for Left mouse click;
- Down button for Right mouse click;
- Center button for Middle mouse click;
- Left and Right buttons for scrolling;
- Use calibration menu option if you notice significant drift (place your Flipper onto a level surface, make sure it doesn't move, run this option, wait 2 seconds, done).
See early prototype in action.
How?
- Clone this repository with
git clone --recurse-submodules
to include the driver implementations. - Build the project using
ufbt
Hardware
The custom module is using Bosch BMI160 accelerometer/gyroscope chip connected via I2C.
Note: in fact, some other IMU chips are also supported. It's detected via the first found I2C Address.
Chip | Expected I2C Address |
---|---|
BMI160 | 0x69 |
LSM6DS3 | 0x6A |
LSM6DSO | 0x6B |
Take a look into the schematic folder for Gerber, BOM and CPL files, so you can order directly from JLCPCB.
Original idea:
Expectation:
Reality:
Software
The code is based on the original Bosch driver and an orientation tracking implementation from the Google Cardboard project
License
TL;DR: Use the code however you want, give credit where it's due, no warranty of any kind is provided.