Select Page
Research

Micro Servo Control

Year
2021

The Challenge

The challenge was to develop a scalable process for programming precise movement patterns and controlling multiple servo motors in real-time. The goal was to bridge TouchDesigner with microcontroller hardware (an Arduino/ESP32 for this project). This project marked my first venture into working with physical actuators and created the foundation for other projects involving motors, such as robotics and kinetic art.

Controlling Servos with Leap Motion Camera

My Solution & Approach

The initial setup utilized an Arduino Uno communicating with TouchDesigner via a wired Serial connection. A Leap Motion sensor was integrated for hand tracking, allowing for gesture-based control over the servo array. To achieve a more flexible system, I re-engineered the setup around an ESP32 microcontroller. This upgrade enabled a critical shift from wired Serial to OSC over UDP—a faster and more scalable industry-standard protocol.

Choreographed Servo Movements

Technical Highlights & Learnings

  1. Sensor Data Preprocessing: Developed control logic in TouchDesigner to process and manipulate data from sensor inputs like the Leap Motion.
  2. Choreographed Motion & Control Logic: Developed programming network within TouchDesigner to drive the servo array in complex, coordinated sequences to create choreographed movements.
  3. OSC Communication: Implemented OSC over UDP to reliably transmit real-time control data from TouchDesigner to the microcontroller.
  4. Microcontroller Programming (C++): Wrote code for the Arduino/ESP32 to parse incoming OSC messages, map data to servo pulse widths, and command multiple servos.
  5. Rapid Physical Prototyping: Built and tested physical setups using LEGOs for rapid iteration of both individual servo control and more complex 2-DOF (Degrees of Freedom) mechanisms.
  6. Foundation for Robotics: This work established a core methodology for exploring more advanced robotic projects, Motion Controlled Robotic Arm.
TouchDesigner Network showing Leap Motion Servo Control

Tools & Technologies Used

Software: TouchDesigner, Arduino IDE
Programming: C++ (for Arduino/ESP32)
Communication Protocols: Serial, OSC, UDP
Hardware: Arduino Uno, ESP32, PCA9685 Servo Driver, Leap Motion Sensor, EMAX ES08MA II Servos