Home » Blog » DYOR – OmniBeast

DYOR – OmniBeast

Introduction 

In our robotics project, we developed a mobile robot capable of omnidirectional movement and proximity-based audio feedback. The robot is based on a metal chassis and uses four Omniwheels (Swedish Wheels) powered by four TT DC motors. It is wirelessly controlled through a mobile app created with MIT App Inventor, communicating via Bluetooth. Additionally, a second Arduino monitors distances using an ultrasonic sensor and provides acoustic feedback when obstacles are near. This project demonstrates the integration of mechanical design, embedded systems, and user interaction through mobile interfaces. 

Summary 

The robot was designed for maneuverability, user-friendly control, and environmental awareness. It consists of two Arduino Uno boards: one responsible for motor control and Bluetooth communication, and the other handling ultrasonic distance sensing and buzzer feedback. The driving system uses Swedish wheels for omnidirectional movement and L298N motor drivers for speed and direction control. A mobile app with dual virtual joysticks controls the robot: the left joystick manages movement on the x and y axes, while the right joystick handles rotation. A last-minute issue during development required the use of two separate Arduinos to ensure stability during the presentation. 

Components 

  • Arduino Uno Microcontroller (2x) 
  • L298N Motordriver (2x)
  • TT DC Motor (4x) 
  • Omniwheels (4x) 
  • 2500mah Rechargeable AA Batteries (6x)
  • On/Off switch 
  • App 
  • Sound Buzzer 
  • Distance Sensor 
  • Bluetooth Module HC-05

 

Functionality 

The functionality of the robot can be summarized as: 

  1. Driving with Omniwheels 
  2. Remote Control by App 
  3. Distance Control by Sound 

(1) Driving with Omniwheels 

This part was the main and most important part of our project. The robot employs Swedish (also known as omni-) wheels, allowing movement in any direction without rotating the chassis. The four TT DC motors are driven by two L298N motor drivers, and the movement logic is implemented using a omnwheelDrive algorithm. This setup enables translation in x/y directions as well as in-place rotation, providing high maneuverability in tight spaces. 

 

(2) Remote Control by App 

We designed a mobile app using MIT App Inventor. It features two virtual joysticks: 

  • The left joystick controls directional movement (forward/backward and sideways). 
  • The right joystick is dedicated to rotation. 

The app sends joystick data as a formatted string over Bluetooth via an HC-05 module. The receiving Arduino parses this data, translates the values into motor commands using trigonometric functions, and drives the motors accordingly. This enables intuitive and responsive control over the robot. The following picture shows how the app looks like on the phone, with the two joysticks and the “connection” and “disconnection” buttons in spanish.

(3) Distance Control by Sound 

To enhance situational awareness, the second Arduino processes distance measurements using an ultrasonic sensor. When an object is detected closer than 50 cm, a buzzer emits warning beeps. As the object gets closer, the beeping interval decreases. If an object is extremely close (less than 10 cm), the buzzer emits a continuous tone. This mechanism resembles a parking sensor system and increases the robot’s usability in dynamic environments. 

Development & Implementation 

During the development process, we faced a significant bug shortly before the final presentation. To ensure functional separation and simplify debugging, we decided to split the system across two Arduinos: one for movement and control logic, and the other for sensor processing and audio output. This solution allowed us to quickly isolate issues and guaranteed that both subsystems worked independently. 

The driving Arduino interprets Bluetooth commands and implements the omniwheel drive logic. The code includes functions to parse joystick angles and strengths, convert them to Cartesian coordinates, and apply them to the motor control algorithm. On the other hand, the sensor Arduino continuously measures distances and drives the buzzer output based on proximity, providing real-time feedback without interrupting motor control tasks. 

Further improvements

  • Improving grid and strength from omniwheels to ground – more friction (spins too much)
  • Fix bug with distance sensor so we could have only one microcontroller

Video

 

This project was made by Janik Bleul and Ole Magnus Lærum in Mobile Robotics Class of 2025 at UPV.