
{"id":8230,"date":"2025-06-16T15:08:07","date_gmt":"2025-06-16T15:08:07","guid":{"rendered":"https:\/\/dyor.webs.upv.es\/?p=8230"},"modified":"2025-06-16T15:08:07","modified_gmt":"2025-06-16T15:08:07","slug":"tonybot","status":"publish","type":"post","link":"https:\/\/dyor.webs.upv.es\/en\/tonybot\/","title":{"rendered":"TonyBot"},"content":{"rendered":"<p><\/p>\n<h1 style=\"text-align: center;\"><strong><b>TonyBot<\/b><\/strong><\/h1>\n<p><span style=\"font-weight: 400;\">This project presents TonyBot, a two-wheeled mobile robot based on Arduino, controllable via Bluetooth through an Android app. The robot is designed to move in multiple directions thanks to two DC motors and offers a simple and intuitive interface for remote control.<\/span><\/p>\n<p><!--more--><\/p>\n<p><span style=\"font-weight: 400;\">TonyBot features multiple modes, including manual driving, line following, and a dance mode, where the robot performs random pre-programmed movements to music. Additionally, it includes a fun interactive game mode, allowing users to actively play with the robot through the app interface.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-8249 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bella-1-300x200.jpg\" alt=\"\" width=\"300\" height=\"200\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bella-1-300x200.jpg 300w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bella-1-1024x683.jpg 1024w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bella-1-768x512.jpg 768w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bella-1-1536x1024.jpg 1536w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bella-1-2048x1365.jpg 2048w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bella-1-75x50.jpg 75w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<h2><b>Components<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Microcontroller:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Arduino Nano<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Arduino Nano Expansion Shield<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Motor Control:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">TB8833 DC Motor Driver<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Communication:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">JDY-31 Bluetooth Module<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Power Supply:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">9V battery<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">4x AA battery<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Power switch<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Sensors:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">TCRT5000 Optical Sensor<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">HC-SR04 Ultrasonic Distance Sensor<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Output Devices:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">MAX7219 8&#215;8 LED Dot Matrix Module<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">KY-006 Buzzer<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Actuators:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">2x SG90 Micro Servo Motors<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">2x DC Gear Motors<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Structure and Assembly:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">3D Printed Structure<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Plastic parts for arms<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Car chassis<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Caster Wheel<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">4x AA battery holder<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Mini Breadboard<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">2x Wheels<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Screws and glue gun (for securing components)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Jumper wires and cables<\/span><\/li>\n<\/ul>\n<h2><b>Design 3D<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">We started the robot design on the basis of a pre-bought chassis containing a chassis plate, DC motors with gearboxes and wheels, a caster wheel, battery box, a switch and some mounting material.<\/span><\/p>\n<h2><b>Robot construction and connections<\/b><\/h2>\n<h2><b>Functions<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Tonybot is based on Arduino code. It defines TonyBot\u2019s physical behavior in response to commands received via Bluetooth. It controls motors, servos, sensors, LEDs, and a buzzer for various operating modes, including movement, line following, dancing, and playing a game.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Upon startup, it greets the user by reproducing a melody similar to \u201cHELLO\u201d and displays \u201cHI\u201d on the matrix.\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-8237 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/h-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/h-300x225.jpg 300w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/h-1024x768.jpg 1024w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/h-768x576.jpg 768w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/h-1536x1152.jpg 1536w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/h-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Bluetooth communication is handled using the SoftwareSerial library. Tonybot continuously listens for specific characters sent from the mobile app, and each character triggers a specific behavior such as movement, switching modes, or starting music playback.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Motor and servo control is achieved through four digital output pins used to manage two DC motors, with PWM applied to control their speed. Additionally, two servo motors (one for each arm) are initialized and allow Tonybot to move its arms when instructed. The standard arm movement is to open and close it.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Movement commands such as forward, backward, left, right, and diagonals are implemented by combining motor directions and speeds accordingly.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In Line Following Mode, Tonybot reads analog input from a line sensor to detect surface color. Before use, the user calibrates the white and black thresholds through the app. During operation, Tonybot adjusts the speed of its motors based on the color detected, following a formula simulated in a course laboratory, where motor speeds are modulated depending on whether the sensor detects black or white, or in between. This allows Tonybot to autonomously follow a black line on a white surface with real-time corrections.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dance Mode enables Tonybot to perform coordinated dances in sync with one of three predefined melodies: \u201cMemories\u201d by Maroon 5, \u201cHappy Birthday,\u201d and a piece by Beethoven. When a song is selected, Tonybot executes a random movement routine involving arm servos and LED matrix animations. Music is<\/span> <span style=\"font-weight: 400;\">played using timer interrupts, which ensure non-blocking playback on the buzzer so that other components can operate simultaneously.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In Game Mode, Tonybot transforms into an interactive game bot that displays various shapes\u2014square, triangle, diamond, and heart\u2014on the LED matrix. The user must correctly respond to each shape. If the user misses one, Tonybot stops the game and displays a sad face on the matrix. If the user correctly identifies four shapes in a row, Tonybot celebrates by playing a joyful sound and showing a smiling face on the LED display.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ultrasonic obstacle detection is implemented using a sensor that measures distance in front of the robot. This feature helps prevent collisions and can automatically stop the robot if an object is detected too close, whether in manual control or line following mode.<\/span><\/p>\n<h2><b>App<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">The mobile app was developed using MIT App Inventor and is structured as follows:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Home Page<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">The home screen allows the user to connect their smartphone to Tonybot via Bluetooth. Pressing the &#8220;BT&#8221; button initiates a search for available Bluetooth devices. Once connected, the Bluetooth icon will no longer display the &#8220;X&#8221;, indicating a successful connection. At this point, the list of functional modes will become visible. A &#8220;Home&#8221; button to return to the main screen at any time after the selection.<\/span><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-8241 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nobt-300x138.jpg\" alt=\"\" width=\"300\" height=\"138\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nobt-300x138.jpg 300w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nobt-1024x473.jpg 1024w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nobt-768x354.jpg 768w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nobt-1536x709.jpg 1536w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nobt-2048x945.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-8238 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/home-300x138.jpg\" alt=\"\" width=\"300\" height=\"138\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/home-300x138.jpg 300w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/home-1024x473.jpg 1024w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/home-768x354.jpg 768w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/home-1536x709.jpg 1536w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/home-2048x945.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/li>\n<\/ul>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Remote Control Mode<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">When Remote Control Mode is selected, a control interface appears featuring 11 buttons:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">8 directional buttons (up, down, left, right, and diagonals)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">1 central &#8220;Stop&#8221; button<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">2 arm control buttons (for moving the robot&#8217;s arms)<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">To move Tonybot, the directional buttons must be held down, while the arm buttons work with a single press.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Additionally, there is a toggle switch labeled &#8220;Buttons&#8221;, which is enabled by default. When this switch is turned off, the robot can be controlled using the phone\u2019s accelerometer. In this mode, the user can steer Tonybot by simply tilting the smartphone in different directions.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-8234 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bottoms-300x138.jpg\" alt=\"\" width=\"300\" height=\"138\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bottoms-300x138.jpg 300w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bottoms-1024x473.jpg 1024w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bottoms-768x354.jpg 768w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bottoms-1536x709.jpg 1536w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bottoms-2048x945.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/span><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-8233 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/accel-300x138.jpg\" alt=\"\" width=\"300\" height=\"138\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/accel-300x138.jpg 300w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/accel-1024x473.jpg 1024w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/accel-768x354.jpg 768w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/accel-1536x709.jpg 1536w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/accel-2048x945.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Line Following Mode<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">When Line Following Mode is activated, the first required step (if not already completed) is to calibrate the white and black threshold levels using two dedicated buttons\u2014one for each color. Once calibration is complete, Start and Stop buttons will appear. After placing Tonybot over a black line, pressing Start will make it follow the line automatically.<\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-8242 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nolines-300x138.jpg\" alt=\"\" width=\"300\" height=\"138\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nolines-300x138.jpg 300w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nolines-1024x473.jpg 1024w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nolines-768x354.jpg 768w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nolines-1536x709.jpg 1536w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/nolines-2048x945.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-8239 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/lines-300x138.jpg\" alt=\"\" width=\"300\" height=\"138\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/lines-300x138.jpg 300w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/lines-1024x473.jpg 1024w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/lines-768x354.jpg 768w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/lines-1536x709.jpg 1536w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/lines-2048x945.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dance mode: <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">When Dance Mode is activated, three buttons appear on the screen, each corresponding to a different song. The songs, in order, are <\/span><i><span style=\"font-weight: 400;\">&#8220;Memories&#8221;<\/span><\/i><span style=\"font-weight: 400;\"> by Maroon 5, <\/span><i><span style=\"font-weight: 400;\">&#8220;Happy Birthday&#8221;<\/span><\/i><span style=\"font-weight: 400;\">, and a piece by Beethoven. When a button is pressed, Tonybot performs a dance with the selected track.<\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-8235 aligncenter\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/dance-300x138.jpg\" alt=\"\" width=\"300\" height=\"138\" srcset=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/dance-300x138.jpg 300w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/dance-1024x473.jpg 1024w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/dance-768x354.jpg 768w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/dance-1536x709.jpg 1536w, https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/dance-2048x945.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Game mode:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">When Game Mode is activated, the game starts immediately. Four shape buttons are displayed: a square, a triangle, a diamond, and a heart. The user interacts with these shapes as part of the game. Pressing the &#8220;Restart&#8221; button resets the game and starts it again from the beginning.<\/span><\/li>\n<\/ul>\n<p><b>Demos<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Remote control<\/span><\/li>\n<\/ul>\n<div style=\"width: 600px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-8230-1\" width=\"600\" height=\"338\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/remote.mp4?_=1\" \/><a href=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/remote.mp4\">https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/remote.mp4<\/a><\/video><\/div>\n<div style=\"width: 600px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-8230-2\" width=\"600\" height=\"338\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/accelerometro.mp4?_=2\" \/><a href=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/accelerometro.mp4\">https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/accelerometro.mp4<\/a><\/video><\/div>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Line Following<\/span><\/li>\n<\/ul>\n<div style=\"width: 600px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-8230-3\" width=\"600\" height=\"338\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/line.mp4?_=3\" \/><a href=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/line.mp4\">https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/line.mp4<\/a><\/video><\/div>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dance<\/span><\/li>\n<\/ul>\n<div style=\"width: 600px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-8230-4\" width=\"600\" height=\"338\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/memories.mp4?_=4\" \/><a href=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/memories.mp4\">https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/memories.mp4<\/a><\/video><\/div>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Game<\/span><\/li>\n<\/ul>\n<div style=\"width: 600px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-8230-5\" width=\"600\" height=\"338\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/game.mp4?_=5\" \/><a href=\"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/game.mp4\">https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/game.mp4<\/a><\/video><\/div>\n<p><b>Conclusion\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400;\">This project gave us the opportunity to design and build a functional robot using Arduino, combining both hardware assembly and software development. It was a valuable learning experience that helped us better understand how different components, motors, sensors, servos, and communication module, can work together to bring a robot to life.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">TonyBot responds to a variety of commands through a mobile app, performing actions like movement, dancing, line following, and playing games. Looking ahead, there\u2019s plenty of room for improvement and new ideas. Adding extra sensors and modes could make TonyBot even more capable and interactive.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><strong><em>Matteo Tonello &#8211; Lennart Janzen<\/em><\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>TonyBot This project presents TonyBot, a two-wheeled mobile robot based on Arduino, controllable via Bluetooth through an Android app. The robot is designed to move in multiple directions thanks to two DC motors and offers a simple and intuitive interface for remote control.<\/p>\n","protected":false},"author":1034,"featured_media":8249,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[81],"tags":[],"class_list":["post-8230","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/bella-1-scaled.jpg","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":5026,"url":"https:\/\/dyor.webs.upv.es\/en\/dyor-christian\/","url_meta":{"origin":8230,"position":0},"title":"DYOR &#8211; Christian","author":"Enea","date":"Wednesday June  5th, 2019","format":false,"excerpt":"In this entry, I\u2019ll describe Christian, my robot made with an Arduino Nano, sensors and actuators and the mobile app I developed to control it. DYOR-Christian Design The robot design was made using Solidworks and the whole block that defines the robot structure was obtained from an aluminium sheet by\u2026","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/dyor.webs.upv.es\/en\/category\/blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2019\/06\/robot_square.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2019\/06\/robot_square.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2019\/06\/robot_square.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2019\/06\/robot_square.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2019\/06\/robot_square.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2019\/06\/robot_square.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":8199,"url":"https:\/\/dyor.webs.upv.es\/en\/dyor-omnibeast\/","url_meta":{"origin":8230,"position":1},"title":"DYOR &#8211; OmniBeast","author":"OleMerulo","date":"Monday June 16th, 2025","format":false,"excerpt":"Introduction\u00a0 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\u2026","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/dyor.webs.upv.es\/en\/category\/blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/omni_beast_main_MAIN-300x169.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/omni_beast_main_MAIN-300x169.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2025\/06\/omni_beast_main_MAIN-300x169.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":7869,"url":"https:\/\/dyor.webs.upv.es\/en\/english-goleador9000\/","url_meta":{"origin":8230,"position":2},"title":"Goleador9000","author":"P592630506","date":"Wednesday June 26th, 2024","format":false,"excerpt":"The goal is to develop the Goleador9000, a mobile robot capable of moving in any direction, raising and lowering its arms, displaying various emotions, following a black line, detecting obstacles, and performing a dance routine \u00a0 DYOR \u2013 Goleador9000 Goleador adjective \u00a0\/\u0261o\u2019lea\u00f0o\u027e\/\u00a0(also\u00a0goleadora\u00a0\/\u0261o\u2019lea\u00f0o\u027ea\/) SPORT (ES) \u2013 de un equipo que consigue\u2026","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/dyor.webs.upv.es\/en\/category\/blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/Goleador-Front-scaled.jpeg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/Goleador-Front-scaled.jpeg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/Goleador-Front-scaled.jpeg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/Goleador-Front-scaled.jpeg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/Goleador-Front-scaled.jpeg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/Goleador-Front-scaled.jpeg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":5952,"url":"https:\/\/dyor.webs.upv.es\/en\/english-dyor-sponge-rob\/","url_meta":{"origin":8230,"position":3},"title":"DYOR Sponge Rob","author":"Andres","date":"Wednesday June 26th, 2024","format":false,"excerpt":"In this entry I will present my robot from the Mobile Robotics class at UPV based on the DYOR Robot Concept. Design For this project, I used the design of DYOR robot base and I redesigned in solidworks robot hands and face. After, I assembled a 3D model as shown\u2026","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/dyor.webs.upv.es\/en\/category\/blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2021\/06\/Imagen1-300x212.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":7676,"url":"https:\/\/dyor.webs.upv.es\/en\/english-dyor-mobile-robotics-report-colorbot\/","url_meta":{"origin":8230,"position":4},"title":"DYOR: Mobile Robotics Report &#8211; ColorBot","author":"JosefKhedri","date":"Wednesday June 26th, 2024","format":false,"excerpt":"This report presents our work behind the ColorBot, made for the main assignment in the course Mobile Robotics at the UPV. Design of the Robot: Parts: Arduino Nano with Extension Shield Color Sensor (TCS3200) Bluetooth Module (HC-06) 8x8 LED-matrix Infrared Sensor (TCRT5000) 2x FS90R servos with 60mm wheels Castor Wheel\u2026","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/dyor.webs.upv.es\/en\/category\/blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/WhatsApp-Bild-2024-06-15-kl.-12.49.27_386e7423-225x300.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":7599,"url":"https:\/\/dyor.webs.upv.es\/en\/dyor-senorita-cafe-con-leche\/","url_meta":{"origin":8230,"position":5},"title":"DYOR: Ms Cafe con Leche","author":"linninja","date":"Wednesday June 26th, 2024","format":false,"excerpt":"Made by: CTO (Chief Technical Officer) : Anja V\u00e5ge Burtonwood CHO (Chief Hardware Officer) : Linn H\u00e5berg Dimmen Design Components: Arduino nano I\/O Extension Shield para Arduino Nano SPP-C Bluetooth (compatible HC-06) Caster wheel 9V battery 8x8 LED Matrix, max7219 Two FS90R servos 360\u00b0 Two 60mm wheels for the FS90R\u2026","rel":"","context":"In &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/dyor.webs.upv.es\/en\/category\/blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/profile-pic-square.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/profile-pic-square.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/profile-pic-square.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/profile-pic-square.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/dyor.webs.upv.es\/wp-content\/uploads\/2024\/06\/profile-pic-square.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/posts\/8230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/users\/1034"}],"replies":[{"embeddable":true,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/comments?post=8230"}],"version-history":[{"count":4,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/posts\/8230\/revisions"}],"predecessor-version":[{"id":8252,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/posts\/8230\/revisions\/8252"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/media\/8249"}],"wp:attachment":[{"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/media?parent=8230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/categories?post=8230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dyor.webs.upv.es\/en\/wp-json\/wp\/v2\/tags?post=8230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}