PROYECTO ARDUINO CAR
Presentado a:
Andres Felipe Agudelo Concha
Presentado por:
Yeferson Ivan Salazar Pipicano
William Alberto Mendoza Micolta
Manuel Ricardo Bolaños Moya
Robert Alejandro Beru Patiño
Milton Andres Campo Chuga
Asignatura:
Internet de las cosas Iot
FUNDACIÓN UNIVERSITARIA DE POPAYÁN
Ingeniería de Sistemas
Popayán, Cauca
2026-1
I. INTRODUCCIÓN
El proyecto Arduino Car se sitúa en el dominio del Internet de las Cosas (IoT)
aplicado a la robótica móvil. El propósito fundamental de esta investigación es el
diseño y la implementación de un robot móvil capaz de interactuar con su entorno
físico de manera autónoma. Mediante el uso de tecnologías accesibles, se busca
democratizar el acceso a sistemas de automatización complejos. El robot no solo
actúa como un vehículo de desplazamiento, sino como una plataforma de pruebas
para algoritmos de navegación y detección sensorial.
II. OBJETIVOS
- OG
Diseñar e implementar un robot móvil autónomo basado en Arduino UNO, integrado
con sensores ultrasónicos y un sistema de alertas, que permita detectar obstáculos en tiempo
real y responder de manera autónoma para evitar colisiones, como plataforma de exploración
aplicada al Internet de las Cosas (IoT) y la robótica móvil.
- OE1
Seleccionar y ensamblar los componentes electrónicos y mecánicos del Arduino Car
(sensor HC-SR04, driver L293D, motores, chasis, buzzer y portabaterías), garantizando su
correcta integración física y eléctrica para el funcionamiento del sistema
- OE2
Programar el microcontrolador Arduino UNO para procesar en tiempo real las señales
del sensor ultrasónico HC-SR04, calculando con precisión la distancia a los obstáculos y
activando las respuestas correspondientes del sistema de motores y buzzer
- OE3
Validar el desempeño del robot móvil mediante pruebas de detección y evasión de
obstáculos en diferentes entornos, evaluando la efectividad del sistema de alertas y la
capacidad de navegación autónoma del vehículo.
III. HERRAMIENTAS UTILIZADAS
Para el desarrollo del proyecto Arduino Car se utilizaron diferentes herramientas de hardware
y software que permiten el ensamblaje, programación y funcionamiento del robot móvil
autónomo. Entre las principales herramientas utilizadas se encuentran:
Arduino UNO: microcontrolador principal encargado de procesar la información y controlar
el funcionamiento del sistema.
Sensor ultrasónico HC-SR04: utilizado para detectar obstáculos y medir distancias en
tiempo real.
Driver L293D: módulo controlador de motores empleado para gestionar el movimiento y
dirección de los motores DC.
Motores DC y chasis robótico: componentes mecánicos encargados del desplazamiento
físico del vehículo.
Sensores infrarrojos: utilizados para funciones de seguimiento de línea y detección de
superficies.
Buzzer: componente utilizado para generar alertas sonoras cuando se detectan obstáculos.
Protoboard y cables de conexión: empleados para realizar las conexiones eléctricas del
sistema.
Arduino IDE: entorno de programación utilizado para desarrollar y cargar el código del
proyecto.
Lenguaje de programación C/C++: lenguaje utilizado para programar la lógica de
funcionamiento del robot.
IV. METODOLOGÍA
- Estructura usada como referencia para el desarrollo de la metodología de Arduino
Car.
- Metodología ArduinoCar
1. Definición del alcance
En esta fase se establecieron los objetivos del proyecto ArduinoCar, enfocados en el diseño e
implementación de un robot móvil autónomo capaz de interactuar con su entorno. Se
definieron los entregables principales, como el prototipo funcional del vehículo, el sistema de
navegación básico y la integración de sensores. Además, se delimitó el alcance del proyecto,
excluyendo funcionalidades avanzadas como inteligencia artificial compleja o conexión a
plataformas IoT externas.
2. Planificación
Se elaboró un plan de trabajo que incluyó la selección de componentes electrónicos como lo
son: Arduino, sensores, motores, chasis, etc, la distribución de tareas entre los integrantes del
equipo y la definición de un cronograma. También se establecieron hitos clave como el
ensamblaje del prototipo, la programación inicial y la fase de pruebas.
3. Ejecución
En esta etapa se llevó a cabo el desarrollo del proyecto, se realizó el ensamblaje físico del
robot integrando los componentes electrónicos en la estructura del vehículo. Paralelamente,
se desarrolló el código en Arduino para controlar los motores y procesar la información de
los sensores, permitiendo la navegación autónoma y la detección de obstáculos.
4. Monitoreo y control
Durante el desarrollo, se supervisó continuamente el funcionamiento del robot, evaluando su
desempeño en diferentes pruebas. Se identificaron errores en la programación y en la
conexión de componentes, realizando ajustes necesarios para mejorar la precisión, estabilidad
y respuesta del sistema.
5. Cierre
Finalmente, se completó el proyecto con la entrega del prototipo funcional y la
documentación correspondiente. Se evaluaron los resultados obtenidos frente a los objetivos
planteados, identificando logros, limitaciones y posibles mejoras futuras, destacando su
potencial como herramienta educativa en robótica e IoT.
V. DESARROLLO
El desarrollo del proyecto Arduino Car se fundamentó en la construcción e implementación
de un robot móvil multifuncional basado en la plataforma Arduino Uno, utilizando como
referencia un kit de robótica educativa orientado a aplicaciones de seguimiento de línea,
evasión de obstáculos y desplazamiento autónomo. El proyecto fue desarrollado bajo un
enfoque práctico experimental, integrando conocimientos de programación, electrónica,
automatización y robótica móvil.
En la primera etapa del desarrollo se realizó el análisis de los componentes del sistema y la
identificación de las funcionalidades principales del vehículo. El kit utilizado incluye
elementos como motores DC con caja reductora, sensores infrarrojos de línea, sensor
ultrasónico HC-SR04, módulo controlador de motores L293D, chasis acrílico, ruedas y la
tarjeta Arduino UNO como unidad de procesamiento principal. Estos componentes
permitieron establecer una arquitectura modular y escalable para el prototipo robótico.
Posteriormente se llevó a cabo el ensamblaje físico del robot, en esta fase se instalaron los
motores y ruedas sobre el chasis, se fijó la tarjeta Arduino junto con el driver de motores y se
conectaron los sensores de navegación y detección[1]. El diseño del chasis facilitó la
organización de los componentes y permitió futuras ampliaciones del sistema, como la
incorporación de servomotores o módulos de comunicación inalámbrica[2] .
Una vez finalizado el montaje estructural, se desarrolló la programación del sistema en el
entorno Arduino IDE utilizando el lenguaje C/C++, la lógica de control implementada
permitió gestionar el movimiento del vehículo mediante el uso del puente H L293D,
controlando la dirección y velocidad de los motores, además se programó la lectura continua
de los sensores ultrasónicos e infrarrojos con el fin de interpretar el entorno y ejecutar
respuestas automáticas frente a obstáculos o cambios en la trayectoria[3].
El funcionamiento principal de ArduinoCar se basó en un sistema de navegación autónoma,
el sensor ultrasónico HC-SR04 realiza mediciones constantes de distancia para detectar
objetos cercanos cuando el sistema identifica un obstáculo dentro del rango configurado, el
vehículo ejecuta maniobras correctivas como detenerse, retroceder o cambiar de dirección.
De manera complementaria los sensores infrarrojos permiten detectar líneas o superficies
específicas posibilitando funciones de seguimiento de línea y mejorando la estabilidad de
desplazamiento del robot.
Durante la fase de pruebas se realizaron diferentes experimentos para validar el
comportamiento del robot en escenarios simulados, se evaluaron variables como tiempo de
respuesta, precisión en la detección de obstáculos, estabilidad del movimiento y capacidad de
reacción del sistema. A partir de estas pruebas se realizaron ajustes en los parámetros de
programación, velocidades de los motores y sensibilidad de los sensores, logrando optimizar
el rendimiento general del prototipo.
Adicionalmente el proyecto permitió aplicar conceptos relacionados con sistemas embebidos,
automatización e Internet de las Cosas (IoT), debido a que el robot funciona como una
plataforma experimental capaz de interactuar con el entorno físico mediante sensores y
procesamiento en tiempo real. Estudios recientes en robótica educativa demuestran que este
tipo de plataformas basadas en Arduino representan soluciones accesibles y eficientes para el
aprendizaje de algoritmos de navegación y control autónomo.
Finalmente el desarrollo de Arduino Car evidenció la importancia de la integración entre
hardware y software en proyectos de ingeniería. Asimismo permitió fortalecer habilidades
relacionadas con el diseño de sistemas electrónicos, programación de microcontroladores,
resolución de problemas y trabajo colaborativo, consolidando el proyecto como una
propuesta funcional y escalable dentro del ámbito de la robótica educativa y destacándose
como un buen proyecto en nuestra materia de IoT.
VI. RESULTADOS
- Lo planificado
Se tenía la idea de desarrollar un robot móvil autónomo basado en Arduino UNO, capaz de
desplazarse de forma independiente por un entorno físico y detectar obstáculos en tiempo
real, mediante el sensor ultrasónico HC-SR04. El vehículo debía ser capaz de detenerse y
desviarse de los obstáculos automáticamente al identificar un objeto en una distancia dada,
emitir una alerta sonora a través del buzzer como señal de proximidad, y ejecutar un giro para
continuar su desplazamiento en una nueva dirección, evitando así un choque. Todo esto
controlado por la lógica programada en el Arduino UNO, que procesaría las señales del
sensor y enviaría las instrucciones correspondientes al driver L293D para la gestión de los
motores. Además, se esperaba que el sistema funcionara de manera autónoma y continua, sin
intervención humana, utilizando como fuente de energía el portabaterías integrado al chasis .
- Lo obtenido por el grupo
El grupo logró construir y programar exitosamente un robot móvil autónomo basado
en Arduino UNO. El sistema fue capaz de detectar obstáculos en tiempo real mediante
el sensor ultrasónico HC-SR04, deteniendo y ejecutando un giro automático al
identificar objetos a una distancia determinada.
- Avances del Proyecto
Codigo en Arduino
● Codigo_prueba_sensores_motores.ino
Este código utiliza un sensor ultrasónico para detectar obstáculos y dos sensores de línea para
detectar líneas en el suelo.
Al inicio se puso la librería (Motor Driver.h) para controlar los motores, y se definen los
pines de cada sensor: A0 y A1 para el sensor ultrasónico (trig y echo), y A2 y A3 para los
sensores de línea izquierdo y derecho. También se declaran las variables necesarias para
calcular la distancia y leer el estado de los sensores.
En la función setup(), que se ejecuta una sola vez al encender el carro, se configura cada pin
según su rol: los sensores de línea y el echo como entradas, y el trig como salida. Además, se
inicia la comunicación serial para poder visualizar los datos en la computadora
2. Codigo_Evasor.ino
Este código se programó para que se mueva de forma autónoma y evite obstáculos que
encuentre en su camino, haciendo uso de un sensor ultrasónico y dos motores controlados.
Al inicio del código se incluye la librería MotorDriver.h, que es la encargada de facilitar el
control de los motores del carro, y se crea el objeto m para usarla. Luego se definen los pines:
el pin A0 como trig y A1 como hecho para el sensor ultrasónico, y los pines A2 y A3 para los
sensores de línea izquierdo y derecho. Además se declaran las variables necesarias para los
cálculos de distancia y una variable vel con valor de 150, que representa la velocidad a la que
se moverán los motores.
● En la función setup(), que se ejecuta una sola vez al encender el carro, se configuran
los pines según su rol y se ponen los dos motores a girar hacia adelante, de modo que
el carro arranca en movimiento desde el primer momento.
● En el loop(), que se repite de forma continua mientras el carro esté encendido, se mide
constantemente la distancia con la función distancia() y se espera 20 milisegundos
entre cada medición. Si la distancia detectada es menor a 10 cm, el carro interpreta
que hay un obstáculo cerca y ejecuta una maniobra de evasión: primero detiene ambos
motores durante 1 segundo, luego retrocede durante otro segundo, y finalmente
realiza un giro poniendo los motores en direcciones opuestas durante 500
milisegundos. Si no hay ningún obstáculo, el carro simplemente continúa avanzando a
la velocidad definida.
La función distancia() es la encargada de obtener la medición del sensor ultrasónico. Para
hacerlo, envía un pulso corto por el pin trig y luego mide el tiempo que ese pulso tarda en
rebotar y regresar al pin echo. Con ese tiempo calcula la distancia en centímetros aplicando la
fórmula tiempo × 0.017, y devuelve ese valor para que el loop() pueda usarlo en la toma de
decisiones.
3. Codigo_Seguidor
4- Codigo_Sumo
El código tiene como objetivo controlar el funcionamiento autónomo del robot Arduino Car
utilizando sensores de línea, un sensor ultrasónico y dos motores DC.
● Primero se incluye la librería #include <MotorDriver.h>, esta librería permite
controlar fácilmente los motores del robot mediante el módulo controlador.
● Luego, se definen los pines utilizados: #define trig A0, #define echo A1, #define si
A2, #define sd A3, trig y echo corresponden al sensor ultrasónico, encargado de medir
distancias, si y sd son los sensores de línea izquierdo y derecho.
● Después se crean variables para almacenar datos de distancia y velocidad int vel =
190, int val_dist =30; vel define la velocidad de los motores, val_dist establece la
distancia mínima para detectar un objeto.
● void setup() En esta parte se configuran los sensores como entrada y el sensor
ultrasónico como salida/entrada. Además, los motores inician apagados.
● void loop() Es la parte principal del programa y se ejecuta continuamente. El robot:
1. Lee los sensores de línea.
2. Calcula la distancia con el sensor ultrasónico.
3. Toma decisiones según los datos obtenidos.
● if(sensorI&&sensorD) Si ambos sensores detectan superficie válida, el robot sigue
funcionando normalmente.
● Luego if(cm<val_dist) Si detecta un objeto a menos de 30 cm ambos motores
avanzan, el robot se dirige hacia el objetivo.
● En caso contrario [Link](1,FORWARD,vel*0.8), [Link](2,FORWARD,0), Un
motor sigue moviéndose y el otro se detiene haciendo que el robot gire para buscar un
objetivo.
● Sensores de línea que es la siguiente línea de código
else
[Link](1,BACKWARD,vel);
[Link](2,BACKWARD,vel);
Si alguno de los sensores detecta el borde blanco del área, el robot retrocede para evitar salir
de la pista.
● int distancia() Esta función utiliza el sensor ultrasónico para medir la distancia entre el
robot y un objeto cercano. El sensor envía una señal y calcula el tiempo que tarda en
regresar el eco, convirtiéndolo en centímetros.
En resumen en esta parte de código lo que hace es que el carro detecte objetos cercanos,
avance hacia ellos, gire cuando no encuentre objetivos y retroceda al detectar los bordes del
área de combate o recorrido.
VII. CONCLUSIONES
● El desarrollo del proyecto Arduino Car permitió al grupo consolidar conocimientos
prácticos en áreas como robótica móvil, electrónica, programación y automatización,
demostrando que es posible construir un sistema autónomo funcional utilizando componentes
accesibles y de bajo costo.
● En relación con el objetivo general, se logró diseñar e implementar exitosamente un robot
móvil autónomo capaz de interactuar con su entorno físico mediante sensores ultrasónicos e
infrarrojos, detectando obstáculos en tiempo real y ejecutando respuestas automáticas para
evitar colisiones.
● El proyecto evidenció la importancia de la integración entre hardware y software en el
desarrollo de sistemas embebidos, ya que el correcto funcionamiento del robot dependió tanto
de las conexiones electrónicas como de la lógica de programación implementada en Arduino
UNO.
● Finalmente, Arduino Car permitió fortalecer habilidades de trabajo colaborativo, resolución
de problemas y desarrollo experimental, consolidándose como una plataforma educativa con
potencial de aplicación en proyectos relacionados con Internet de las Cosas (IoT),
automatización y robótica inteligente.
VIII. TRABAJOS FUTUROS
Como trabajos futuros para el proyecto Arduino Car se propone implementar nuevas
funcionalidades que permitan mejorar el desempeño, la autonomía y las capacidades
tecnológicas del robot móvil. Una de las principales mejoras sería la integración de módulos
de comunicación Bluetooth o Wi-Fi, con el fin de permitir el control remoto del vehículo
desde dispositivos móviles o computadores, facilitando la interacción en tiempo real con el
sistema.
Asimismo, se plantea incorporar sensores más avanzados y precisos, como sensores
infrarrojos de mayor alcance, sensores de proximidad adicionales o cámaras de visión
artificial, que permitan optimizar la detección de obstáculos y mejorar la capacidad de
navegación autónoma del robot en diferentes entornos.
Otra posible mejora consiste en la implementación de algoritmos de inteligencia artificial y
aprendizaje automático, los cuales permitirían al vehículo analizar patrones de movimiento,
tomar decisiones más eficientes y adaptarse de manera inteligente a distintos escenarios de
navegación. Esto convertiría el proyecto en una plataforma más robusta para aplicaciones de
robótica autónoma e Internet de las Cosas (IoT).
También se propone desarrollar una aplicación móvil que permita monitorear el estado del
sistema, visualizar datos de sensores en tiempo real y controlar ciertas funciones del robot de
manera remota. Esta integración ampliaría las posibilidades de automatización y conectividad
del proyecto.
Finalmente, el proyecto podría evolucionar hacia aplicaciones educativas y de investigación,
sirviendo como una herramienta didáctica para el aprendizaje de programación, electrónica,
automatización y robótica móvil. De igual forma, podría adaptarse para aplicaciones prácticas
como sistemas de vigilancia, transporte automatizado en espacios reducidos o prototipos de
vehículos inteligentes.
III. REFERENCIAS
[1] «(897) Ensamble Chasis Multifuncional Robot Seguidor Linea
Evasor Obstaculos Sumo Arduino Esp32 - YouTube». Accedido: 7 de
mayo de 2026. [En línea]. Disponible en:
[Link]
[2] «(897) Kit Multifuncional Seguidor Evasor Sumo Arduino
Parte 2: Conexiones - YouTube». Accedido: 7 de mayo de 2026. [En
línea]. Disponible en:
[Link]
[3] DEMOSS PROTOTIPADO SAS, Kit Multifuncional Seguidor
Evasor Sumo Arduino Paso 3: Programación, (27 de febrero de 2025).
Accedido: 7 de mayo de 2026. [En línea Video]. Disponible en:
[Link]