Tutorial para hacer un sensor LIDAR Casero Con Arduino | Rotativo + Sensor Láser

Hola Electrónicos, en el post de hoy haremos un lídar casero, debo decir que no será tan bueno como un sensor lidar comercial, pero sería suficiente para un modesto robot evita obstáculos.

Primero te mostraré qué es un sensor lidar, cómo funciona y cómo he hecho uno casero basado en arduino y un sensor de distancia.

Yo diseñé e imprimí una carcasa de tal manera que pudiera girar 360 grados sin parar. Puedes diseñarla como quieras, lo importante es que gire libremente y tenga un espacio para colocar el sensor.

 

El giro estará controlado por un motor paso a paso y el lídar nos provee una salida básica con valores de el ángulos y la distancia de los obstáculos, con lo cual podríamos crear un mapa de obstáculos alrededor de nuestro robot.

Materiales

● Carcasa impresa en 3D.
● sensor de VL53L0.
● Arduino nano.
● Motor paso a paso.
● Anillo deslizante.
● Rodamiento.
● PCB perforada.
● Tornillos y tuercas M3.
● Placa elevadora de voltaje.
● Condensador de 10 micro faradios.
● Sensor hall.
● Anillo deslizante.
● Pegamento caliente.
● Imán.
● Cinta elástica.

 

 

 

Lidar significa sistema de detección de luz y rango (Light Detection And Ranging) o detección y rango de imágenes láser.

Es un dispositivo que permite obtener la distancia gracias a un sensor de distancia, el cual mide el tiempo que tarda la luz en ir desde el sensor, golpear el objeto y volver al receptor y, como conocemos el valor de la velocidad de la luz, podemos calcular la distancia entre ese objeto y el sensor. Para obtener más información sobre los alrededores, el sensor del lídar generalmente gira y así obtiene las distancias más próximas de su entorno.

 

Dentro de esta parte impresa en 3-d tenemos este llamado anillo deslizante, el cual puede girar y, gracias a él, podemos obtener los datos del sensor incluso si está girando todo el tiempo.

 

Para rotar continuamente el disco estoy utilizando un motor de paso a paso, el cual permite conocer la relación entre la polea y el disco; de esta manera podemos calcular un estimado del ángulo de rotación y usarlo más adelante en el código.

 

Para controlar este motor de paso a paso usaremos un controlador junto con un arduino nano, el cual obtendrá la distancia desde el sensor y enviará el ángulo y la distancia a través de un puerto serie para luego usar estos datos con un pequeño robot de ejemplo.

 

Para la carcasa impresa en 3d he utilizado material PLA y un 20% de relleno para estas piezas, puedes encontrar los archivos necesarios para imprimirla en este link.

Conexiones

Primero fijamos el anillo deslizante en su lugar. Asegúrate de que la parte que gira está en el lado superior del soporte para que pueda girar al mismo tiempo que el disco.

 

Tomamos el motor de paso a paso y lo atornillamos en estos dos agujeros, aprieta los tornillos y asegúrate de que encaje bien.

 

He colocado un poco de cinta en el rodamiento para que se ajuste mejor, coloca esta parte en el soporte de esta manera.

 

Ahora miremos el disco giratorio: insertamos una tuerca en cada uno de estos dos agujeros para poder usar tornillos M3 y fijar el sensor en su lugar.

 

Luego pasamos los cables del anillo a través de este agujero en el disco giratorio.

 

Soldamos cuatro cables al sensor para tierra, VCC, datos y reloj.

 

Con tornillos M3 fijamos el sensor en su lugar, también utilizo un poco de pegamento caliente para colocar los cables dentro del disco y luego podemos cerrarlo encima del rodamiento.

En una PCB perforada soldamos el controlador del motor, también necesitamos un condensador en los pines de alimentación y soldamos todos los cables necesarios.

 

Después de algunas pruebas decidí añadir una pequeña placa convertidora para aumentar el voltaje de 5 voltios desde el conector USB, a 12 voltios para el controlador del mismo, asegúrate de configurar esta salida en 12 voltios.

Ahora tenemos el controlador en su lugar y los pasadores hembras para el motor de paso a paso, soldamos los cables del arduino al contador de paso a paso como en el esquema que puedes ver a continuación:


Luego hice algunos agujeros y coloque un sensor hall, además pegué un pequeño imán en el disco giratorio, que nos ayudará a fijar el ángulo de cada rotación para que sepamos cuál es la parte frontal y trasera del sensor.

Ahora nos toca fijar el Arduino dentro de la carcasa con un poco de pegamento caliente, es recomendable hacer algunas pruebas antes de pegarlo todo dentro.

 

Ahora de la misma manera que antes, calentamos las tuercas hasta que entren dentro de los agujeros de la caja de plástico.

 

y conectamos el motor de paso a paso a los conectores hembra de nuestra PCB.

Ahora cerraremos cuidadosamente la caja con algunos tornillos M3 y asegúrate de que todos los cables estén dentro.

Usando una banda elástica hacemos la conexión entre la polea de plástico.

Código

Carga el código de ejemplo, este código rotará el disco giratorio y cada varios pasos hará una medición. Puedes cambiar estos valores aquí en el código para ser más o menos mediciones o tal vez cambiar el rango del sensor, cuanto más bajo ese rango, mayor será la precisión.

En este momento lo tengo establecido en su rango máximo que son estas líneas de aquí en el código, contar los pasos y hacer la medición tardará un poco así que no podemos girar el disco demasiado rápido.

 

Una vez cargado el código, conecta el arduino al pc y abre el monitor en serie, el cual mostrará los datos correspondientes al ángulo y la distancia de cada pulso, esto se calcula sabiendo la relación de poleas y los pasos que necesita el motor para hacer una rotación.

 

Así de fácil podemos detectar obstáculos alrededor del sensor lidar y también crear un mapa con los ángulos y distancias que obtenemos de la comunicación en serie.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

1 × 5 =