A highly responsive, production-ready Python GUI Suite paired with a dual-ultrasonic Arduino controller that enables real-time gesture visualization and hardware analytics over Bluetooth (using the HC-05 module).
Designed for Human-Computer Interaction (HCI) testing, academic demonstrations, and gesture-driven control experiments, this suite comes complete with a high-fidelity hardware simulator so you can run, test, and present the interface without requiring any physical sensors connected!
- Live Gesture Tracker: Visualizes incoming motions using expressive, dynamic emojis (
👈 LEFT,👆 CENTER,👉 RIGHT,✋ NONE). - Smooth Animation Engine: Employs slide-and-pop transitions on a hardware-accelerated canvas that brings the tracking representation to life.
- Robust Auto-Baud Serial Handler: Scans COM ports dynamically and automatically cycles through standard baud rates (
9600,38400,115200) to find your Bluetooth adapter. - Interactive Gesture Simulator: Added a dedicated Demo Mode panel (
👈 LEFT,👆 CENTER,👉 RIGHT,✋ NONE) to inject simulated signals. Perfect for presenting the UI when your Arduino is offline. - Analytics Dashboard: Tracks live event distribution, total occurrences, and telemetry history with a fast-reset function.
- Terminal Console Logger: Built-in scrolling diagnostic terminal window showing timestamped raw incoming strings, connection logs, and injection events.
- Ultra-Premium Design: Built with a dark space-inspired aesthetic, glow indicator states, modern typography, and a balanced grid system.
├── app.py # Main Tkinter Python GUI Application (with Simulator Mode)
├── task1_arduino.ino # Dual-Ultrasonic & Bluetooth HC-05 Arduino Sketch
├── ui.png # Beautiful high-contrast desktop interface screenshot
└── README.md # Project documentation and publishing guide
-
Create and Activate a Virtual Environment:
python -m venv .venv .venv\Scripts\activate
-
Install Dependencies:
pip install pyserial
-
Run the Application:
python app.py
Note: If you do not have an Arduino connected, select
🔌 SIMULATOR MODEfrom the dropdown list, click Connect, and use the simulator buttons to test the animations and analytics!
The Arduino sketch in task1_arduino.ino uses two ultrasonic distance sensors to calculate motion vectors (e.g. moving a hand from left to right triggers a RIGHT swipe).
| Component | Pin Type | Arduino Pin | Connects to HC-05 / Sensor |
|---|---|---|---|
| HC-05 Bluetooth | TX | Pin 2 (SoftwareSerial RX) |
TXD Pin |
| HC-05 Bluetooth | RX | Pin 3 (SoftwareSerial TX) |
RXD Pin |
| Left Sensor (L) | Trigger | Pin 4 |
Trig Pin |
| Left Sensor (L) | Echo | Pin 5 |
Echo Pin |
| Right Sensor (R) | Trigger | Pin 11 |
Trig Pin |
| Right Sensor (R) | Echo | Pin 13 |
Echo Pin |
| Status LED: RED | Output | Pin 8 |
Left gesture active |
| Status LED: WHITE | Output | Pin 9 |
Stationary/Center active |
| Status LED: GREEN | Output | Pin 10 |
Right gesture active |
The Arduino broadcasts simple ASCII strings over the Bluetooth module in either direct or structured packets:
LEFTor[BT: LEFT]CENTERor[BT: CENTER]RIGHTor[BT: RIGHT]NONEor[BT: NONE]
This project is optimized for public sharing, GitHub presentation, or portfolios.
Feel free to modify the threshold settings inside task1_arduino.ino (currently 30cm) to suit your test environment!
