Control del brazo del robot con TLV493D, joystick y Arduino: 3 pasos
Control del brazo del robot con TLV493D, joystick y Arduino: 3 pasos
Anonim
Control del brazo del robot con TLV493D, joystick y Arduino
Control del brazo del robot con TLV493D, joystick y Arduino
Control del brazo del robot con TLV493D, joystick y Arduino
Control del brazo del robot con TLV493D, joystick y Arduino
Control del brazo del robot con TLV493D, joystick y Arduino
Control del brazo del robot con TLV493D, joystick y Arduino

Un controlador alternativo para tu robot con un sensor TLV493D, un sensor magnético con 3 grados de libertad (x, y, z) con estos podrás controlar tus nuevos proyectos con comunicación I2C en tus microcontroladores y placa electrónica que Bast Pro Mini M0 con un Microcontrolador SAMD21 en Arduino IDE.

El objetivo es tener un joystick alternativo para controlar tus proyectos, en este caso, un brazo robot con 3 grados de libertad. Usé un brazo robótico MeArm, este es un proyecto de código abierto y puede hacerlo fácil y puede encontrarlo aquí. Puede crear su propio brazo de control u otra aplicación con este conocimiento que me complace compartir con usted.

Todos los componentes electrónicos tienen enlaces para adquirir en la tienda, archivos a la impresora 3D y código para Arduino IDE.

TLV493D puede ser un joystick El sensor magnético 3D TLV493D-A1B6 ofrece una detección tridimensional precisa con un consumo de energía extremadamente bajo en un paquete pequeño de 6 pines. Con su detección de campo magnético en las direcciones x, y y z, el sensor mide de manera confiable movimientos tridimensionales, lineales y de rotación.

Las aplicaciones incluyen joysticks, elementos de control (electrodomésticos, pulsadores multifunción) o contadores eléctricos (antimanipulación), y cualquier otra aplicación que requiera medidas angulares precisas o consumos de baja potencia. Además, el sensor de temperatura integrado se puede utilizar para controles de plausibilidad. Las características clave son la detección magnética 3D con un consumo de energía muy bajo durante las operaciones.

El sensor tiene una salida digital a través de una interfaz I2C estándar basada en 2 cables de hasta 1 MBit / seg y una resolución de datos de 12 bits para cada dirección de medición (medición de campo lineal Bx, By y Bz hasta + -130mT). TLV493D-A1B6 3DMagnetic es un fueraborda independiente.

Puede conectarlo fácilmente a cualquier microcontrolador de su elección que sea compatible con Arduino IDE y tenga un nivel lógico de 3.3V. En este proyecto, usamos el breakout de Electronic Cats y una placa de desarrollo que explicaré más adelante.

electroniccats.com/store/tlv493d-croquette…

La ventaja de usar un sensor TLV493D es que solo se usan dos cables con I2C para recibir la información, por lo que es una muy buena opción cuando tenemos muy pocos pines disponibles en la tarjeta, además gracias a las prestaciones de I2C podemos conectar más sensores. Puede encontrar el repositorio de este proyecto aquí. Para este proyecto, usaremos un joystick que puede imprimir en una impresora 3D o hacer que lo impriman en su tienda de impresión 3D más cercana.

Los archivos. STL se adjuntan al final del proyecto, su montaje es muy sencillo, lo puedes ver en video

Construye tu propio robot En este caso, construyo el robot Mearm v1 que puedes encontrar este proyecto en la página del autor aquí

Este es un robot fácil de hacer y controlador porque tiene servomotores a 5 voltios. Puede construir o utilizar cualquier robot de su elección, este proyecto se centrará en el control con el sensor TLV493D.

Suministros:

  • x1 Bast Pro Mini M0 Comprar
  • x1 Croqueta TLV493D Comprar
  • x1 Kit MeArm v1
  • x20 cables Dupont
  • x1 Protoboard
  • x2 pulsador
  • x1 Imán de 5 mm de diámetro x 1 mm de espesor

Paso 1: Conexión del sensor con Bast Pro Mini M0

Conexión del sensor con Bast Pro Mini M0
Conexión del sensor con Bast Pro Mini M0

Para controlar el brazo del robot se utiliza una placa de desarrollo Electronic Cats, una Bast Pro Mini M0 con un microcontrolador SAMD21E ARM Cortex-M0.

Este chip opera a 48MHz, con memoria de programación de 256KB, SRAM de 32KB y opera a un voltaje de 1.6v a 3.6v. Gracias a sus especificaciones podemos usarlo para bajo consumo con buen rendimiento y también programarlo con CircuitPython o algún otro lenguaje que permita microcontroladores.

electroniccats.com/store/bast-pro-mini-m0/

Si estás interesado en saber más sobre esta tarjeta, te dejo el enlace de su repositorio.

github.com/ElectronicCats/Bast-Pro-Mini-M0…

Para controlar el movimiento de los servomotores se utiliza el sensor magnético TLV493D que enviará la señal para posicionar el servomotor en los grados correspondientes.

Con un solo sensor podemos mover dos servomotores, en este ejemplo solo usaremos un solo sensor y un pulsador para controlar la pinza.

Otra propuesta que puedes hacer es agregar otro sensor TLV493D y mover el tercer servomotor y la pinza. Si es así, deja tu experiencia en los comentarios y te invito a compartir el proyecto.

La imagen muestra el circuito armado en un protoboard.

  • El primer servomotor es para la pinza y se conecta al pin 2
  • El segundo servomotor es para la base del robot y se conecta al pin 3
  • El tercer servomotor es para el hombro del robot y se conecta al pin 4
  • El cuarto servomotor es para el codo del robot y se conecta al pin 5
  • El primer pulsador es para detener cualquier movimiento del robot y se conecta al pin 8 en pull-down con una resistencia de 2.2Kohms.
  • El segundo pulsador es para el movimiento de apertura y cierre de la pinza y está conectado al pin 9 en pull-down con una resistencia de 2.2Kohms.

En la imagen del circuito, el sensor TLV493D no aparece porque no se agregó al fritzing, pero se agregó un conector de 4 pines para simular sus conectores VCC, GND, SCL, SDA. En la imagen, se colocan en el mismo orden.

  • El primer pin se conecta a 3.3 voltios en la placa.
  • El segundo pin se conecta a GND
  • El tercer pin SCL se conecta al pin A5 en la placa
  • El cuarto pin SDA se conecta al pin A4 de la placa

Gracias a la ventaja del chip SAMD21 podemos utilizar cualquiera de sus pines digitales como salidas PWM, que nos servirán para enviar el ancho de pulso correcto para mover el servomotor.

Otro dato importante que se debe considerar es la fuente de alimentación externa para los servomotores, en el circuito se puede ver un conector enchufable que se conecta a una fuente de 5voltios a 2Amp, para evitar sobrecargar la placa y dañarla.

Tampoco olvides unir la señal común GND de la tarjeta y la fuente externa, de lo contrario, tendrías problemas para controlar los servomotores ya que no tendrían la misma referencia.

Paso 2: codificación del IDE de Arduino a Bast Pro Mini M0

Codificación del IDE de Arduino a Bast Pro Mini M0
Codificación del IDE de Arduino a Bast Pro Mini M0
Codificación del IDE de Arduino a Bast Pro Mini M0
Codificación del IDE de Arduino a Bast Pro Mini M0
Codificación del IDE de Arduino a Bast Pro Mini M0
Codificación del IDE de Arduino a Bast Pro Mini M0

Lo primero será instalar la tarjeta Bast Pro Mini M0 en el IDE de Arduino, los pasos se pueden encontrar en el repositorio de Electronic Cats y son importantes para su funcionamiento.

github.com/ElectronicCats/Arduino_Boards_I…

Cuando tenga listo el IDE de Arduino es necesario instalar la biblioteca oficial del sensor TLV493D, ingrese a https://github.com/Infineon/TLV493D-A1B6-3DMagnet… y vaya a Releases.

En la primera parte del código se declaran las librerías utilizadas, en este caso Servo.h para los servomotores y TLV493D.h para el sensor.

Al usar la biblioteca Servo.h es importante declarar el número de servomotores, aunque el robot tiene 4 en este momento solo se usan 3.

Los pines están declarados para los pulsadores que detendrán cualquier movimiento del robot y la apertura y cierre de la pinza. Se declaran algunas variables globales que servirán para conocer el estado de la pinza y si hay movimiento.

En la segunda parte del código, mostraremos en el monitor de serie el valor del grado en el que se encuentran los motores. Otro punto importante es establecer el límite de los grados en tus servomotores, para ello se utiliza la función map () que convierte el valor de los movimientos del sensor TLV493D al rango de 0 a 180 grados del servomotor.

Para la última parte del código se establecen las condiciones para activar el movimiento de los servomotores con el pulsador y saber en qué estado se encuentra la pinza para su próximo movimiento cuando se pulsa el segundo pulsador. Como puedes ver en las imágenes anteriores el código no es difícil de implementar y entender, al final del proyecto puedes encontrar el código.

¿Estás aprendiendo a usar Circuit Python?

Si está interesado en aprender a usar este IDE, puede encontrar la tarjeta Bast Pro Mini M0 en el siguiente enlace para descargar el gestor de arranque y comenzar a programarlo con Python.

Paso 3: Piezas 3D

Si estás interesado en realizar el proyecto, puedes descargar las piezas en.stl e imprimirlas. Encontrarás los archivos para la base y el palillo giratorio.