0% encontró este documento útil (0 votos)
7 vistas35 páginas

Robot Detector de Obstáculos con Arduino

Este proyecto tiene como objetivo desarrollar un robot capaz de detectar obstáculos y evitarlos de manera autónoma utilizando ROS. El robot utilizará sensores ultrasónicos, motores de corriente continua y una placa Arduino. Se establecerá una infraestructura en la nube y ROS para ofrecer potencia de cálculo adicional y conectividad con otros sistemas.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas35 páginas

Robot Detector de Obstáculos con Arduino

Este proyecto tiene como objetivo desarrollar un robot capaz de detectar obstáculos y evitarlos de manera autónoma utilizando ROS. El robot utilizará sensores ultrasónicos, motores de corriente continua y una placa Arduino. Se establecerá una infraestructura en la nube y ROS para ofrecer potencia de cálculo adicional y conectividad con otros sistemas.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Universidad Ibn Tofail

Facultad de Ciencias Kenitra


Máster Especializado

Robot Detector de Obstáculos

Encadré par:
Pr YOUNES ADNANI

Año Universitario 2023-2024


TABLE DES MATIERES :

Partie 1 : Etude de la partie Hardware..........................................................................................6


I. Introducción :......................................................................................................................................6
II. Material necesario.........................................................................................................................6
La tarjeta Arduino............................................................................................................................6
1.1. Elección del tipo de la tarjeta.....................................................................................................7

1.2. Componentes la tarjeta Arduino UNO...........................................................................7


2 Sensores ultrasónicos..........................................................................................................................8

2-1 Funcionamiento del sensor................................................................................................8


3 Motor de corriente continua........................................................................................................................................9

4 Módulo Bluetooth HC-05................................................................................................................10


4-1Descripción :................................................................................................................................10
4-2 Conexión del HC-05:..........................................................................................................11
5 Utilizar un L298N para motor de CC con un Arduino.........................................................11
6 Los hilos conectores.................................................................13
7 Baterías :(alimentación de coche) la batieri ryoryoo 18650yooei uoi flixrbrlrtes dados sa
cyoofigueatyoyo séyou io paeallllie pieritaot d'adaptie la capacrté it latiosryoo io fyooctyoo dis
bisyoros específicos de la aplicacióntio.............................................................................................................14
III. Esquemas generales:.....................................................................................................................14
Parte 2: Estudio de la parte Software..........................................................................................16
I. Plateforme de programación Arduino......................................................................................16
II. Ubuntu 2024 y VMWare WorkStation.........................................................................................18
III. ROS Noético..................................................................................................................................18
1 Organización del espacio de trabajo:......................................................................................18
2 Instalación de ROS:...................................................................................................................19
3 SConfiguración del entorno:............................................................................................................19
4 Creación del Espacio de Trabajo:...........................................................................................................20

5 Compilación del paquete:............................................................................................................20


6 Creación de un paquete en ROS:.........................................................................................20
7 Creación de los nodos:.....................................................................................................................21

8 El código que asegura el control del robot:..............................................................................22


9 el ROS Master:.............................................................................................................................22
IV. NODO ROJO.....................................................................................................................................23
1 Lanzamiento de Node RED:..............................................................................................................24

2 SNAPPY ROS..............................................................................................................................25
2-1 Definición :.................................................................................................................................25

2
2-2 Rol :............................................................................................................................................25
Instalación 2-3 de la biblioteca Snappy-ros :.................................................................25
3-Instalación de Firebase en NodeRED:........................................................................................26
4 La conexión entre Firebase, Node Red y Topics:.......................................................................26
VI. Creación de aplicaciones, utilizando el sitio MIT App Inventor:..........................................27
VII. La aplicación está creada:...............................................................................................................28
VIII. Código Arduino................................................................................................................................28

IX. Conexión Bluetooth con el ROS:........................................................................................32


X. Les pasos para controlar nuestro robot:.....................................................................................34

3
Lista de figuras:

FFIGURA1:UNE CARTEARDUINOUNO..................................................................................7
FFIGURA2:CAPTEUR ULTRA-SONHC-SR04.............................................................................8
FFIGURA3:DDESCRIPCIÓN DEL SENSOR ULTRA-SONHC-SR04.....................................................8
FFIGURA4:ILLUSTRATION DU SIGNAL DISPARADORETECHO.........................................................9
FFIGURA5:MOTEURDC.....................................................................................................10
FIGURAR6:MÓDULOBLUETOOTHHC-05...............................................................................10
FFIGURA7: SYNOPTIQUE DU DRIVER MOTOR.........................................................................11
FFIGURA8:STRAMPAS............................................................................................................13
FIGURE9:: BBATTERIES DE3.7V..........................................................................................14
FFIGURA10:EL SOFTWAREARDUINO.......................................................................................16

4
Introducción general al proyecto:

Este proyecto se enmarca en el desarrollo de una aplicación de Robótica en la Nube utilizando


el ROS (Sistema Operativo de Robot). El objetivo es aprovechar el potencial de la nube
computación para fortalecer las capacidades de los sistemas embebidos y crear robots
inteligentes capaces de interactuar con su entorno de manera autónoma y eficaz.

Nos concentramos particularmente en el diseño y la realización de un robot capaz


de detectar obstáculos y evitarlos de manera autónoma. Para ello, utilizaremos
componentes de hardware como un Arduino Uno, sensores ultrasónicos HC-SR04,
motores de CC, y otros. Este robot será capaz de detectar la presencia de obstáculos gracias a sus
sensores ultrasónicos, y ajustar su trayectoria para evitarlos controlando sus motores de CC.

Paralelamente, implementaremos una infraestructura en la nube y un sistema ROS para ofrecer


al robot una potencia de cálculo y almacenamiento adicional, así como conectividad
con otros sistemas y servicios en línea. Este enfoque de robótica en la nube permitirá al robot
acceder a datos en tiempo real, comunicarse con otros robots y sistemas, y
de mejorar sus capacidades de manera significativa.

Este informe detallará las diferentes fases del proyecto, desde el diseño del hardware hasta
la programación del comportamiento del robot a través de la implementación de
la infraestructura en la nube y del sistema ROS. También evaluaremos el rendimiento de
nuestra solución y discutiremos las perspectivas de mejora para el futuro
iteraciones del proyecto.

Parte 1: Estudio de la parte Hardware


5
I. Introducción :
El objetivo de este proyecto de electrónica es crear un robot detector de presencia que se
se desplaza por una habitación y evita los obstáculos cuando se encuentra con ellos. Los “ojos” del robot son
un sensor de ultrasonido (por ejemplo, HC-SR04). Este sensor está conectado a una placa Arduino.
Cuando el sensor envía la información al Arduino de que hay un obstáculo frente a él, el Arduino
debe enviar una instrucción a los motores que controlan las ruedas para evitar el obstáculo.

II. Material necesario:

La idea es utilizar una tarjeta Arduino para leer los datos recibidos por uno o varios
sensor(es) ultrasónico(s).
Cuando el sensor detecta un obstáculo frente a él, el Arduino debe enviar instrucciones a
motores que impulsan las ruedas del robot para evitarlo. El robot estaría en parte constituido por
chasis y componentes electrónicos (Arduino, sensor ultrasónico, motores, …) sería
fixé au châssis simplement à l’aide d’une colle.
Los materiales que necesitamos para construir este robot son:
Arduino UNO.
Un sensor ultrasónico HC-SR04.
Dos motores de CC para controlar las ruedas del robot.
Una pila de 11V y conectores para alimentar los motores de CC.
Controlador de motor L298N
Dos ruedas
Módulo Bluetooth HC05
Cables jumper

1. La tarjeta Arduino

Una tarjeta Arduino es una pequeña placa electrónica equipada con un microcontrolador. El
El microcontrolador permite, a partir de eventos detectados por sensores, programar y
comandar actuadores; la placa Arduino es, por lo tanto, una interfaz programable.
Se puede programar para analizar y producir señales eléctricas, de manera que
realizar tareas muy diversas como el control de los aparatos domésticos, la iluminación,
calefacción, la maniobra de un robot, la informática integrada, etc.

Figura 1: Una placa Arduino UNO


6
1.1. Elección del tipo de la tarjeta

Existen varios tipos de tarjetas Arduino, nos hemos orientado únicamente hacia el tipo el
más frecuente que es la tarjeta Arduino UNO Para realizar este montaje, se debe asegurar la
vínculo entre cada componente electrónico y nuestra placa Arduino.
En total, necesitaremos una placa Arduino que contenga al menos 9 pines digitales, y
también quien será capaz de ejecutar lo más rápido posible el algoritmo grabado en su memoria.
En cambio, la tarjeta Arduino UNO es la más adecuada para esta situación vista
que posee 14 pines digitales (de los cuales 6 con PWM) y 6 pines de entrada analógica.

1.2. Componentes de la tarjeta Arduino UNO

Una placa Arduino UNO se compone esencialmente de:


• Toma de jack: Permite conectar una fuente de alimentación (pilas, batería, adaptador de corriente,
+ en el centro Vin 7 a 12 V).
• Microcontrôleur : stocke le programme et l’exécute.
• Entradas analógicas: Permite conectar sensores y detectores analógicos.
16
• Conexión USB (Bus Universal de Serie): Permite alimentar la tarjeta con energía eléctrica
(5V). Permite cargar el programa en la tarjeta.
• Entradas y salidas digitales (Digital): Permite conectar actuadores. Permite
conectar detectores.

2 Sensores ultrasónicos

Figura 2: Sensor ultra-sónico HC-SR04


El sensor HC-SR04 es un sensor de ultrasonido de bajo costo. Este sensor funciona con una
tensión de alimentación de 5 voltios, dispone de un ángulo de medida de aproximadamente 15° y permite
realizar mediciones de distancia entre 2 centímetros y 4 metros con una precisión de 3 mm (en
teoría, en la práctica no es del todo exacto).

7
2-1 Funcionamiento del sensor

Figura 3: Descripción del sensor ultrasónico HC-SR04.

Figura 4: Ilustración de la señal RIGGGR etGCHO.

El principio de funcionamiento del sensor se basa completamente en la velocidad del sonido.


Así es como se lleva a cabo una medición: Se envía un pulso ALTO de 10μs en
el broche TRIGGER del sensor.
El sensor envía una serie de 8 pulsos ultrasónicos a 40KHz (inbuidos)
para el ser humano, es cuando más agradable que un biiiiiiiip).
Los ultrasonidos se propagan por el aire hasta tocar un obstáculo y regresan a
l'autre sens vers le capteur.
El sensor detecta el eco y cierra la toma de medida.
La señal en el pin ECHO del sensor permanece en ALTO durante las etapas 3 y 4, lo que
permite medir la duración del ida y vuelta de los ultrasonidos y, por lo tanto, determinar la
distance.
N.B. Siempre hay un silencio de duración fija después de la emisión de ultrasonidos para evitar
recibir prematuramente un eco proveniente directamente del sensor.

8
3 Motor de CC

Un motor de corriente continua es un conversor electromecánico que permite la conversión


bidireccional de energía entre una instalación eléctrica recorrida por una corriente continua
y un dispositivo mecánico. Los motores de corriente continua tienen así la particularidad de poder funcionar
en ambas direcciones, según la forma en que se le somete la corriente. Los motores de CC son
pilotados por un controlador de motor. Los controladores de motores eléctricos permiten pilotar
un
motor a velocidad, en posición o en torque proporcionando la potencia eléctrica y la señal
adecuado.

Figura 5: Motor de CC.

Módulo Bluetooth HC-05

Bluetooth es un protocolo de comunicación que facilita el intercambio bidireccional de


datos sobre cortas distancias utilizando ondas de radio UHF en la banda de frecuencia
de 2,4 GHz. Su objetivo es simplificar las conexiones entre dispositivos electrónicos a
proximidad eliminando la necesidad de cables. Por ejemplo, permite reemplazar los cables
entre ordenadores, tabletas, altavoces y teléfonos móviles.

9
Figura 6: módulo Bluetooth HC-05

4-1Description :
Este módulo Bluetooth permite agregar una conexión serie inalámbrica Bluetooth en su
ARDUINO. Se comunica con el microcontrolador a través de un puerto serie.
Especificaciones
100 % compatible con
ARDUINO
Tension nominale : 3,3 V- 5
V MAX
Antena de 2,4 GHz
integrada
Controle tu
ARDUINO inalámbrico

4-2 Conexión del HC-05 :

- RXD -> TXD de la Arduino (recepción de datos).


- TXD -> RXD del Arduino (transmisión de datos).
- GND -> conectado al pin GND de la placa ARDUINO GND
- VCC -> fuente de alimentación 5V

5 Utiliser un L298N pour moteur DC avec une Arduino


El controlador de motor L298N es un componente electrónico utilizado para controlar la velocidad y la
dirección de dos motores de corriente continua simultáneamente. Funciona con motores
teniendo una tensión de 5 a 35V y una corriente de pico que puede alcanzar 2A.

10
Príncipe de funcionamiento

Figura 7: Sinóptico del controlador


motor

Descripción
El controlador de motor L298N es un circuito monolítico integrado en cajas Milliwatt y
PowerSO20 a 15 pines. Se trata de un controlador de puente completo doble de alta tensión y a
corriente alta diseñada para aceptar las cargas inductivas de entrenamiento de arena de nivel
lógica TTL estándar como relés, solenoides, motores de corriente continua y paso
a pasos. Se proporcionan dos entradas de validación para activar o desactivar el dispositivo
independientemente de las señales de entrada. Los emisores de los transistores inferiores de cada
puntos están conectados entre sí y la terminal externa correspondiente puede ser utilizada para la
connexion d'une résistance de détection externe. Une entrée d'alimentation supplémentaire
se proporciona para que la lógica funcione a un voltaje inferior.

Esquema de principio del módulo de entrenamiento del motor L289N

11
Caractéristiqes :

Tensión de funcionamiento elevada, pudiendo llegar hasta 40 voltios;


Gran corriente de salida, la corriente de pico instantánea puede alcanzar hasta 3A;
Con una potencia nominal de 25 W;
Dos puentes en H integrados, alta tensión, gran corriente, piloto de puente completo, que
pueden ser utilizados para entrenar motores de corriente continua, motores paso a paso
pas, bobinas de relé y otras cargas inductivas.
Utilización de la señal de nivel lógico estándar para controlar.
Capaz de conducir un motor paso a paso de dos fases o un motor a pasos de cuatro.
fases y motores de corriente continua de dos fases.
Adopte un condensador de filtro de alta capacidad y un diodo de rueda libre que protege
los dispositivos del circuito contra los daños causados por la corriente inversa de una
carga inductiva, mejorando así la fiabilidad
El módulo puede utilizar el tubo estabilizador 78M05 integrado para obtener 5 V de
la alimentación. Pero para proteger el chip del 78M05 contra los daños, cuando la
la tensión del variador es superior a 12v, se debe utilizar una alimentación lógica externa de 5v
utilizada.
tension d’entraînement : 5-35 V; tension logique: 5 V
tamaño del circuito impreso : 4,2 x 4,2 cm

El módulo L298N permite controlar por separado dos motores de corriente continua DC de
3 a 30V, o un motor paso a paso, este último fabricado en 1930, su verdadero desarrollo
está relacionado con el evento de la micro-informática (microprocesador). El motor paso a paso puede
llenar dos funciones :
- conversion d’énergie électrique en énergie mécanique (c’est le moteur classique).
conversión de información digital en un posicionamiento angular o lineal.
El controlador de motor L298N funciona con una interfaz de comando TTL de 5V (por lo tanto, compatible
con ARDUINO o con muchos otros microcontroladores de baja tensión). incluye
dos puentes en H para conmutar las corrientes (2A por puente en pico, 20W). Este módulo permite
de hacer variar la velocidad de rotación (en modulación PWM) y de invertir el sentido de rotación
de motores. Puede controlar cargas inductivas (bobinados, relés), las salidas de
Las potencias están protegidas por diodos de rueda libre anti-retorno.
Programación de controlador motor L298N:
El siguiente programa permite poner en movimiento el motor conectado al puente B en
pasando por el puerto serie. A través del monitor serie, se envía un entero entre -255
et 255 pour actionner le moteur, la valeur 0 signifiant « arrêt du moteur » [annexe 1]
Aplicación del controlador de motor L298N :
El circuito integrado del controlador de motor L298N tiene muchas aplicaciones en el campo
embarcado, en particular en el lado de la robótica. La mayoría de los microcontroladores
funcionan a una tensión y una corriente muy bajas (5v) mientras que los motores requieren
des tensiones y una corriente más altas. Así, los microcontroladores no pueden proporcionarles

12
un corriente también más alta. Para ello, utilizamos circuitos integrados de control de
motor. El controlador del motor es un pequeño amplificador de corriente o de tensión. Toma un
señal de corriente débil y emite una señal de corriente alta que puede impulsarse un motor. Él
también puede controlar la dirección del motor. Los accionamientos del motor son de
numerosos tipos según la tensión de alimentación máxima, la corriente de salida
máximo, de la disipaicón de potencia nominal, de la tensión de carga y del número de
salidas, etc. Aquí discutiremos el controlador de motor L298N. Se utiliza en el proyecto de
control de la velocidad del motor de corriente continua y puedes interfazarlo fácilmente
motor de corriente continua con el microcontrolador mediante este controlador de motor. Y también
en un robot controlado por Bluetooth que utiliza un microcontrolador PIC. Puede consultar
el robot seguidor de línea para saber más sobre sus aplicaciones.
Los hilos conectores
Los cables, hilos o conectores son elementos necesarios para establecer conexiones
entre diferentes componentes eléctricos.

Figura 8: Correas

7 Baterías :(alimentación de coche)

la batería Li-ion 18650 ofrece flexibilidad en su configuración en serie o en paralelo,


permitiendo adaptar la capacidad y la tensión según las necesidades específicas de
la aplicación.
Pueden conectarse en serie. En este caso, la tensión se desarrolla y la capacidad permanece.
igual a una batería. Esto se puede hacer utilizando un caso especial. Conectando 3 baterías
de 3,7 v cada una, obtenemos una batería de 11,1 voltios 3600 mA.

13
Figura 9:: Baterías de 3.7V

III. Esquemas generales :

IV. las etapas de realización del montaje:

1 2 3

14
4 5

1. Instalación de las ruedas + los motores de corriente continua.

2. Instalación de Arduino, sensor ultrasónico y las pilas.


3. Instalación del controlador de motores L298N y módulo Bluetooth HC-05.
4. Conexión de las correas.
5. Resultados finales

15
Parte 2: Estudio de la parte Software
Esta parte está dedicada a la representación de las plataformas informáticas utilizadas en el
desarrollo del sistema robótico.
I. Plataforma de programación Arduino
La interfaz del IDE de Arduino es bastante simple, ofrece una interfaz mínima y limpia para
desarrollar un programa en las tarjetas Arduino. Tiene un editor de código con
sintaxis de coloración y una barra de herramientas rápida. Estos son los dos elementos más
importantes de la interfaz, son aquellos que utilizamos con mayor frecuencia. También encontramos una
barra de menús, más clásica que se utiliza para acceder a las funciones avanzadas del IDE.
Finalmente, una consola que muestra los resultados de la compilación del código fuente, de las operaciones sobre
la carta, etc.

Figura 10: el software Arduino

16
a. Ecriture d’un programme Arduino
Un programa Arduino (Sketch) = 1 función setup() + 1 función loop() El lenguaje utilizado
C/C++

La función setup() : debe contener la inicialización


La función loop(): función repetida indefinidamente
Estas dos funciones son llamadas por un programa principal main() impuesto.
caché y no modificable

17
II. Ubuntu 2024 y VMWare WorkStation

Ubuntu es un sistema operativo Linux popular, conocido por su facilidad de uso y su


seguridad. VMware Workstation es una aplicación de virtualización que permite crear y
gestionar máquinas virtuales en una computadora. Combinando Ubuntu con VMware
Workstation, los usuarios pueden crear entornos de desarrollo flexibles y
seguros, ideales para probar aplicaciones, desarrollar software o configurar
servidores sin afectar su sistema operativo principal.

III. ROS Noetic :

ROS, o Sistema Operativo para Robots, es un marco de desarrollo de software abierto


source largement utilisé dans la robotique. Il fournit des outils et des bibliothèques pour
simplificar la creación, el control y la comunicación entre los componentes de un robot. Gracias
a un sistema de comunicación asíncrono y a una gestión de paquetes eficiente, ROS
facilitar el desarrollo de aplicaciones robóticas modulares y reutilizables.
Se encuentran en ROS una serie de conceptos comunes a muchos middleware:

Nodos: Un nodo es un ejecutable que utiliza ROS para comunicarse con otros.
nodos.
Mensajes: Tipo de datos ROS utilizados para suscribirse o publicar en un tema.
Los nodos pueden publicar mensajes en un tema así como suscribirse.
a un tema para recibir mensajes.
Maestro: Nombre del servicio para ROS (es decir, ayuda a los nodos a encontrarse mutuamente).

Parámetros: Información muy poco dinámica que debe ser compartida en


la aplicación.
rosout : Equivalente de stdout/stderr.
roscore: Maestro + rosout + servidor de parámetros.

1 Organisation de l ’espace de travail :

Los paquetes fuente no tienen una estructura jerárquica (o de un solo nivel cuando los
los depósitos contienen varios paquetes ROS).

18
2 Instalación de ROS :
Actualice la lista de paquetes disponibles e instale ROS con el siguiente comando:

3Configuración del entorno:


Configura tu entorno ROS ejecutando el siguiente comando:

19
4 Creación del Espacio de Trabajo:
Para crear un espacio de trabajo (workspace) en ROS, utilizamos los comandos
siguientes :

5Compilación del paquete:


El comando catkin_make es un paso fundamental en el uso de ROS
(Sistema Operativo de Robot). Su función principal es compilar los paquetes incluidos en
un espacio de trabajo ROS

6 Creación de un paquete en ROS :


Para crear un nuevo paquete utilizamos los siguientes comandos:

20
7 Creación de los nodos:

Una vez que hayas utilizado el comando "touch subscriber_node.py" para crear un
nuevo archivo llamado "subscriber_node.py", que podría servir de base para la creación
de un nodo ROS, este archivo se crea de manera no ejecutable por defecto. Para hacerlo ejecutable
ejecutable y así permitir su ejecución como programa o script, puede
utilizar el comando "chmod +x subscriber_node.py". Esto agregará el derecho de ejecución al
archivo, lo que le permitirá ejecutar el script directamente sin necesidad de especificar
el intérprete de comandos. Este paso facilita el proceso de desarrollo y prueba de
nodos ROS.
Al crear de la misma manera el nodo Publisher.

21
El código que asegura el control del robot:

9 le ROS Master:
Facilite el descubrimiento dinámico de nodos en una red ROS, permitiendo que
diferentes componentes del sistema para comunicarse entre sí de manera flexible. Él
simplifica la gestión del entorno ROS proporcionando un punto central de
coordinación e información para los nodos del sistema.

22
El comando rosrun en ROS permite iniciar un nodo específico especificando el nombre.
el paquete donde se encuentra el nodo así como el nombre del nodo mismo. Este comando es
utilizada para ejecutar nodos particulares. Para interactuar con los temas:

IV. NODE RED

Node-RED es una plataforma de programación visual basada en un navegador, diseñada


para facilitar la creación de aplicaciones IoT. Utiliza un modelo de flujo de datos donde los
los usuarios conectan nodos predefinidos para crear aplicaciones arrastrando y soltando.
Node-RED ofrece una biblioteca de nodos listos para usar, una extensibilidad para integrar
diversos servicios y una flexibilidad para desarrollar rápidamente aplicaciones basadas en
flujo de datos.

23
1 Lanzamiento de Node RED :

Primera ventana después de lanzar la dirección IP en el navegador de Node RED:

24
2 ROS RÁPIDOS:

2-1 Definición :
Snappy ROS es un módulo o una biblioteca que permite a Node-RED de
comunicar con sistemas robóticos utilizando el Sistema Operativo de Robots (ROS). Él
utiliza el protocolo 'Snappy' para intercambiar mensajes y datos con los nodos
ROS, permitiendo así una integración transparente entre Node-RED y el ecosistema ROS.
2-2 Rol :
Snappy ROS en Node-RED facilita la integración y la comunicación entre Node-RED
y el ecosistema ROS, que permite a los desarrolladores crear aplicaciones robóticas
más ricas y más interactivas al combinar las funcionalidades de estas dos plataformas
formas.

2-3 Instalación de la biblioteca Snappy-ros:

25
3-Instalación de Firebase en NodeRED:

4 La vinculación entre Firebase, Node Red y Temas:

V. FireBase
26
Firebase es una plataforma de desarrollo de aplicaciones móviles y web ofrecida por
Google. Ofrece una gama de servicios de backend listos para usar, SDK para
varias plataformas y herramientas de desarrollo y prueba para ayudar a los desarrolladores a
crear, mejorar y hacer evolucionar sus aplicaciones. Firebase es conocida por su facilidad
de integración, su alta disponibilidad y su alto rendimiento, lo que lo convierte en una opción
popular entre les développeurs cherchant à construire des applications modernes et
evolutivas.

VI. Creación de aplicaciones, utilizando el sitio MIT App Inventor:

27
VII. La aplicación está creada:

VIII. Código Arduino

#include <ros.h>
#include <std_msgs/Int32.h>
int m1a = 9;
int m1b = 10;
int m2a = 11;
int m2b = 12;
int speedPinRight = 2;
int speedPinLeft = 3;
int demar = 0;
#define trigPin 6
#define echoPin 7
ros::NodeHandle nh;

void callBackFunctionEtat(const std_msgs::Int32 &EtatROS) {


int estatua = [Link];
//__________________________comandos
si(estatua == 2)

28
{
Hacia atrás();
demar = 1;
}
else if(statue == 4)
{
girarIzquierda();
demar = 1;
}
else if(estatua == 1)
{
Adelante();
demar = 1;

}
else if(estatua == 3)
{
girarDerecha();
demar = 1;
}
else if(statue == 0)
{
detener();
demar = 1;
}
}
std_msgs::Int32 CapteurROS;
ros::Publisher CapteurROSPublisher("Capteur", &CapteurROS);
ros::Subscriber<std_msgs::Int32> EtatROSsubscriber("Etat", &callBackFunctionEtat);

29
void setup() {
[Link]()->setBaud(9600);
[Link]();
[Link](EtatROSsubscriber);
[Link](CapteurROSPublisher);
//______________________________SALIDA ENTRADA
pinMode(speedPinRight, SALIDA);
pinMode(speedPinLeft, SALIDA);
pinMode(m1a, SALIDA);
pinMode(m1b, SALIDA);
pinMode(m2a, SALIDA);
pinMode(m2b, SALIDA);
pinMode(trigPin, SALIDA);
pinMode(echoPin, ENTRADA);
}
void loop() {
[Link]();
retraso(5);
si (demar == 1) {
long duration, distance;
digitalWrite(trigPin, BAJO);
retrasarMicrosegundos(2);
digitalWrite(trigPin, ALTO);
delayMicroseconds(10);
digitalWrite(trigPin, BAJO);
duración = pulseIn(pinoEco, ALTO);
distancia = (duración/2) / 29.1;
si (distancia < 15) {
[Link] = 1 ;
}

30
else {
[Link] = 0 ;
}
[Link](&CapteurROS);
}
}
void Regresar(){
digitalWrite(m1a, ALTO);
digitalWrite(m2a, BAJO);
digitalWrite(m1b, BAJO);
digitalWrite(m2b, ALTO);
analogWrite(puertoVelocidadDerecho, 150);

analogWrite(speedPinLeft, 150);
}
void Adelante() {
digitalWrite(m1a, BAJO);
digitalWrite(m2a, ALTO);
digitalWrite(m1b, ALTO);
digitalWrite(m2b, BAJO);
analogWrite(speedPinRight, 150);
analogWrite(speedPinLeft, 150);
}
void girarIzquierda(){

digitalWrite(m1a, BAJO);
digitalWrite(m2a, BAJO);
digitalWrite(m1b, ALTO);
digitalWrite(m2b, BAJO);
analogWrite(puertoVelocidadIzquierdo, 150);

}
void girarDerecha(){}

31
digitalWrite(m1a, BAJO);
digitalWrite(m2a, ALTO);
digitalWrite(m1b, BAJO);
digitalWrite(m2b, BAJO);
analogWrite(pinDerechoVelocidad, 150);

}
void detener() {

digitalWrite(m1a, BAJO);
digitalWrite(m2a, BAJO);
digitalWrite(m1b, BAJO);
digitalWrite(m2b, BAJO);
}

IX. Conexión Bluetooth con el ROS:

32
Tema sensor
Datos '0' ausencia de obstáculo.
Data’1’ presencia de obstáculo

Tema estado :

Datos '0' Detener


Datos '1' Avanzado
Datos '2' Girar a la izquierda
Data '3' Girar a la derecha
Datos '4' retroceder

33
X. Les étapes pour contrôler notre robot :

Conclusión general:
34
A lo largo de estos mini-proyectos, hemos explorado dos enfoques distintos para el
desarrollo de sistemas embebidos y robots inteligentes. El primer mini-proyecto se ha
concentrado en la creación de un robot detector de presencia equipado con sensores ultrasónicos,
mientras que el segundo mini-proyecto implementó una aplicación de robótica en la nube utilizando el
ROS (Sistema Operativo de Robots).

En el primer mini-proyecto, diseñamos y realizamos un robot capaz de detectar los


obstáculos mediante el uso de sensores ultrasónicos y evitar colisiones ajustando su trayectoria.
Hemos utilizado componentes de hardware comunes como un Arduino Uno, motores
DC, ultrasonic sensors HC-SR04, and other components. This project allowed us to
comprender los principios básicos de la robótica embarcada y desarrollar
competencias prácticas en diseño de hardware y programación.

En el segundo mini-proyecto, exploramos el enfoque de la robótica en la nube al poner


en œuvre une application utilisant le ROS pour la communication entre différents
componentes, en particular la nube, los teléfonos inteligentes y los sistemas integrados. Este enfoque
nos permitió aprovechar la potencia de la computación en la nube para aumentar las capacidades de
nuestros robots, permitiéndoles acceder a recursos de cálculo y almacenamiento
suplementarios, así como a servicios en línea como bases de datos y servicios
de comunicación. Este proyecto también nos ha permitido comprender las ventajas y los
desafíos asociados con el uso de la nube en el campo de la robótica.

En conclusión, este proyecto ha sido enriquecedor e instructivo, permitiéndonos adquirir de


nuevas competencias y comprender mejor los desafíos y las oportunidades que ofrece la
robótica moderna. También nos dieron la oportunidad de desarrollar nuestra creatividad y
nuestra capacidad para resolver problemas complejos. Finalmente, nos han sensibilizado a
la creciente importancia de la integración de la nube en el campo de la robótica para crear
sistemas más inteligentes, más flexibles y más eficientes.

35

También podría gustarte