diff options
| author | krolyxon <me@krolyxon.com> | 2026-05-05 12:21:56 +0530 |
|---|---|---|
| committer | krolyxon <me@krolyxon.com> | 2026-05-05 12:21:56 +0530 |
| commit | 097b10658710c7878ae4028491b0211d08d9b8ce (patch) | |
| tree | af822c47d690b46d2c072c6c48e0124e0aacc617 /firmware/blemouse.cpp | |
| parent | 0a40daf4fad5c1593c6e1696ac0cab992c799e2e (diff) | |
add BLE Mouse
Diffstat (limited to 'firmware/blemouse.cpp')
| -rw-r--r-- | firmware/blemouse.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/firmware/blemouse.cpp b/firmware/blemouse.cpp new file mode 100644 index 0000000..e181a86 --- /dev/null +++ b/firmware/blemouse.cpp @@ -0,0 +1,68 @@ +#include <Arduino.h> +#include <BleMouse.h> +#include "config.h" + +#include "buttons.h" +#include "display.h" + +// ===== BLE MOUSE ===== +BleMouse bleMouse("Orion-RF", "Orion-RF", 100); + +// ===== MAIN ===== +void ble_mouse_run() +{ + bleMouse.begin(); + + // simple screen + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_6x10_tr); + u8g2.drawStr(10, 25, "BLE Mouse"); + u8g2.drawStr(10, 45, "Connecting..."); + u8g2.sendBuffer(); + + delay(1000); + + while (1) + { + if (btnBack()) break; + + bool connected = bleMouse.isConnected(); + + int dx = 0; + int dy = 0; + + if (connected) + { + if (!digitalRead(BTN_UP)) dy = -8; + if (!digitalRead(BTN_DOWN)) dy = 8; + if (!digitalRead(BTN_LEFT)) dx = -8; + if (!digitalRead(BTN_RIGHT)) dx = 8; + + if (dx != 0 || dy != 0) + bleMouse.move(dx, dy); + + if (!digitalRead(BTN_SELECT)) + bleMouse.click(MOUSE_LEFT); + + if (!digitalRead(BTN_BACK)) + bleMouse.click(MOUSE_RIGHT); + } + + // ===== UI ===== + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_6x10_tr); + + u8g2.drawStr(10, 20, "BLE Mouse"); + + if (connected) + u8g2.drawStr(10, 35, "Status: Connected"); + else + u8g2.drawStr(10, 35, "Status: Waiting"); + + u8g2.drawStr(10, 55, "BACK = Exit"); + + u8g2.sendBuffer(); + + delay(30); + } +} |
