Digital Embodiment is a localized wireless prototype demonstrating remote connection. It bridges the emotional gap caused by long-distance relationships by simulating the physical presence of a person away from home through real-time peer-to-peer motion capture and haptic feedback.
The system consists of two key components:
-
Sensing Band: Worn by the remote user, it captures motion data along the X, Y, and Z axes using an MPU6050 accelerometer. Data is transmitted via ESP-NOW between two ESP32 modules.
-
Homing Beacon: Located with the loved one, it receives motion packets and drives three rotating elements (or servos) to recreate gestures in real time. When no motion is detected, the beacon returns to a neutral “flatline” state.
By translating motion into synchronized visual and kinetic feedback, Digital Embodiment offers a tangible way to maintain presence and emotional connection across distances.
- Features
- Hardware Requirements
- Wiring & Pinouts
- Software Dependencies
- Installation & Deployment
- Configuration
- Usage
- Troubleshooting
- License
- Author & Acknowledgements
- Real‑time motion capture via
MPU6050accelerometer (X, Y, Z axes). - Wireless peer‑to‑peer data transfer using
ESP-NOW(low latency, no router needed). - Three‑axis haptic feedback: maps motion to three servos or rotating cubes.
- Movement threshold gating to ignore noise.
- Automatic homing: servos return to neutral when remote user stops moving.
- Modular design: separate firmware for sensing band and homing beacon.
- 2 × ESP32 development boards (e.g. WROOM‑32).
- 1 × MPU6050 accelerometer module.
- 3 × hobby servos or rotating elements for the beacon.
- Jumper wires for I²C (SDA, SCL) and power.
- 5–6 V regulated power supply for servos (external recommended).
- SDA → D6 (MPU6050 SDA)
- SCL → D7 (MPU6050 SCL)
- 3.3V → 3.3V (MPU6050 VCC)
- GND → GND (MPU6050 GND)
- X‑axis servo → D4 (Power: 5–6 V, GND)
- Y‑axis servo → D5 (Power: 5–6 V, GND)
- Z‑axis servo → D6 (Power: 5–6 V, GND)
- Arduino IDE 1.8+ (or PlatformIO).
- ESP32 board package via Boards Manager.
- Libraries:
Adafruit_MPU6050Adafruit_SensorESP32Servoesp_now(built-in)WiFi(built-in)Wire(built-in)
- Clone the repo and open the
/sensing-band/folder. - Open
sensing_band.inoin the Arduino IDE. - Install required libraries via the Library Manager.
- Select ESP32 Dev Module and correct COM port.
- Upload the sketch.
- Open the
/homing-beacon/folder. - Open
homing_beacon.ino. - Set
receiverMac[]to match the sensing band’s MAC address. - Upload to the second ESP32.
- Movement threshold: adjust
MOVEMENT_THRESHOLDto filter noise. - Timeout: modify
TIMEOUT_MS(ms) to set homing delay. - Mapping range: change
map()ormapFloat()parameters for servo angles.
- Power on both ESP32 devices.
- Wear the sensing band and move naturally.
- Observe the homing beacon’s servos or cubes mirror your motions.
- When motion stops, the beacon returns to neutral after the timeout.
- No data received: verify MAC addresses and ESP-NOW initialization.
- Servo jitter: confirm a stable external power supply and common ground.
- Sensor noise: tweak accelerometer filter bandwidth or increase threshold.
Released under the MIT License. See LICENSE for details.
Jawad Farooq Naik is a multidisciplinary artist, designer, entrepreneur, and aspiring educator. He holds an MFA in Design from the Dynamic Media Institute at Massachusetts College of Art and Design, and a BFA in Visual Communication Design from the National College of Arts, Lahore, Pakistan.
Inspired by research in embodied interaction, haptic communication, and tangible computing.