Tanque totalmente impreso en 3D:construya una plataforma robótica con orugas versátil
En el tutorial te mostraré cómo construí un fantástico vehículo controlado por radio, una plataforma robótica o un tanque, lo que sea. Diseñé esto desde cero para que sea completamente imprimible en 3D, de modo que puedas imprimir todo fácilmente y construir uno por tu cuenta.
Puedes ver el siguiente vídeo o leer el tutorial escrito a continuación.
Descripción general
Mi objetivo para este proyecto era crear una plataforma versátil que pueda atravesar muchos tipos de terrenos y pueda usarse para diversas aplicaciones. La mejor opción para ello era utilizar un sistema de vías continuas. Las orugas distribuyen el peso del vehículo en una superficie más grande, lo que proporciona un excelente agarre y reduce las probabilidades de quedarse atascado en terreno blando, barro o nieve.
La plataforma del robot se conduce bastante bien sobre barro y es una pena no haber tenido la oportunidad de probarla sobre nieve. Espero hacerlo en algunos de mis videos futuros donde planeo instalar un brazo robótico o una torreta. Con un brazo robótico encima de la plataforma podemos realizar diversas tareas como agarrar y mover algo, o podemos colocarle una cámara y usarla para inspección visual, etc. O, por ejemplo, podemos hacer una torreta que pueda disparar dardos NERF y, en combinación con la sencilla pero genial iluminación LED que ya instalé en esta plataforma, podemos divertirnos bastante jugando con ella.
En cuanto a la suspensión, empleé un sistema de suspensión Christie que se utiliza en tanques desde hace muchos años. Con esta configuración, cada rueda tiene una suspensión individual o un resorte y un amortiguador.
Eso permite que el vehículo circule suavemente en terrenos irregulares y supere obstáculos manteniendo una buena superficie de contacto entre las orugas y el terreno.
Para controlar el tanque impreso en 3D, estoy usando un transmisor RC comercial económico que envía comandos a la plataforma.
En la plataforma tengo un receptor RC adecuado que recibe los comandos y los envía a un microcontrolador. El cerebro de esta plataforma es una placa basada en un microcontrolador Atmega2560 y para conectar todo fácilmente hice una PCB personalizada que se puede conectar simplemente en la parte superior de la placa.
Sin embargo, ahora abróchate el cinturón mientras te guiaré a través de todo el proceso de construcción de esta plataforma robótica, desde el diseño, la impresión 3D, el ensamblaje, la conexión de los componentes electrónicos y la programación del microcontrolador.
Diseñar la plataforma del robot
Diseñé esta plataforma robótica utilizando SOLIDWORKS, que también es el patrocinador de este vídeo.
—Sección patrocinada —
"Vale la pena señalar aquí que estas herramientas de diseño de nivel profesional y líderes en la industria ahora están disponibles para todos los fabricantes a un precio notablemente bajo de solo $99 por año o $9,99 por mes. Así es, 3D EXPERIMENTAR SOLIDWORKS for Makers es ideal para cualquiera que esté aprendiendo el oficio, realizando proyectos de bricolaje y más.
Esta oferta incluye 3D EXPERIMENTE SOLIDWORKS Professional, la herramienta CAD más demandada dentro de la oferta y se ejecuta localmente en su PC. Puedes almacenar archivos localmente o en la nube con el 3D Plataforma EXPERIENCIA.
“xDesign”, CAD basado en navegador, puedes usarlo con 3D EXPERIMENTA SOLIDWORKS o por sí solo. Es fantástico para modelar en cualquier lugar, en cualquier momento y en cualquier dispositivo.
"xShape", CAD de forma libre basado en navegador que es fácil de usar para modelar superficies en cualquier dispositivo.
"Visualize Connected", cree fácilmente imágenes con calidad fotográfica, animaciones, contenido web interactivo y más para impresionar a su audiencia.
“NC Shop Floor Programmer”, CAM para estrategias de mecanizado inteligentes para fresado de 3 ejes y electroerosión por hilo en un paquete de fácil uso.
Haga clic en el enlace a continuación y obtendrá un 20 % de descuento especial, ¡para que pueda comenzar a crear lo mejor hoy mismo! Muchas gracias a SOLIDWORKS por patrocinar y apoyar contenido educativo como este. ”
Cómprelo ahora: http://www.solidworks.com/makers20
Más información: https://discover.solidworks.com/3dexperience-solidworks-makers
—Volver al tema—
Permítanme explicarles cómo se me ocurrió el diseño de una plataforma robótica. Los primeros parámetros de entrada para el diseño fueron estos amortiguadores RC que tenía y sus dimensiones.
Tenía 8 de ellas, lo que significaba que habría 4 ruedas de carretera en cada lado, y tenían 41 mm de largo cuando se extendían con 11 mm de recorrido. De acuerdo con estas dimensiones, quería obtener una distancia de recorrido vertical un poco mayor para las ruedas, así que se me ocurrió este mecanismo que me dio un recorrido vertical de 16 mm para las ruedas.
Quiero decir, puedo conseguir una distancia de recorrido aún mayor si acerco la unión del amortiguador y el eslabón de la rueda al punto de pivote del eslabón de la rueda, pero entonces perdería la fuerza del resorte o necesitaría un resorte más fuerte para sujetar la plataforma correctamente.
Hice algunas simulaciones simples con SOLIDWORKS para comprobar las fuerzas de reacción de los resortes con diferentes mecanismos y por eso elegí este mecanismo que también proporciona una buena compacidad general.
Si miramos más de cerca la rueda delantera, podemos ver cómo está conectada con la rueda loca que proporciona tensión dinámica a la vía. Cuando la rueda sube, las circunferencias de la vía se reducen y, por lo tanto, la tensión se afloja.
Con esta conexión aquí, cuando eso sucede, la rueda guía se empuja hacia adelante para tensar la oruga. Con esta conexión también podremos tensar la vía de forma estática, ajustando este tornillo y tuerca distanciadora.
En la parte trasera tenemos la rueda dentada que se compone de tres partes. Tiene el acoplador del eje y las secciones izquierda y derecha de la rueda dentada conectados todos juntos con tres pernos M3.
La dimensión clave aquí en la rueda dentada es el paso porque debe coincidir con el paso de la pista. El paso aquí es de 11 mm y elegí que la rueda dentada tuviera 12 dientes, lo que me dio un diámetro de paso de la rueda dentada de alrededor de 42 mm.
El paso de 11 mm en realidad fue definido por el diseño del eslabón de la vía. Mi objetivo para el eslabón de vía era ser lo más compacto posible y poder conectarlo con el siguiente eslabón con solo una pieza o pasador adicional, y al mismo tiempo ser lo suficientemente fuerte como para fabricarlo con una impresora 3D.
Además de eso, al imprimir en 3D, quería evitar cualquier uso de material de soporte para la pieza, lo cual logré lograr con este diseño.
Para conectar los eslabones de la cadena entre sí, planeé usar pasadores con un diámetro de 2 mm, por lo que dimensioné un lado para que fuera de 2 mm, para que encajara bien, y el otro lado, de 2,3 mm, para que quedara suelto, de modo que los eslabones de la cadena pudieran girar libremente.
Los dientes de la rueda dentada entran en esta abertura aquí donde los pasadores del eslabón de la cadena están formados con un diámetro de 8,8 mm, mientras que el diámetro de la rueda dentada es de 9,1 mm para tener un ajuste holgado y funcionar correctamente.
Una vez que tuve todas estas piezas definidas, dibujé un boceto en el entorno de montaje, un contorno cerrado alrededor del piñón, la rueda guía y las ruedas de rodadura.
Luego utilicé este boceto con la función Patrón de componente de cadena de SOLIDWORKS para generar todos los vínculos de seguimiento a lo largo de ese contorno.
Diseñé el resto de la plataforma del robot, la base donde está conectado todo, los laterales que albergan algunos LED y las cubiertas superiores, en lo que pensé que era un estilo moderno y atractivo. Como la dimensión total de la plataforma es mayor que la de la mayoría de las impresoras 3D, alrededor de 400 mm por 300 mm, dividí todas las piezas en dos secciones para que podamos imprimirlas en casi cualquier impresora 3D. Están conectados entre sí con unos soportes y tornillos M3.
Para ensamblar toda la plataforma del robot, necesitamos varios pernos y tuercas M3 y M4, así como algunos insertos roscados y rodamientos. Puede encontrar una lista completa de todos los componentes necesarios para este proyecto a continuación en la sección de ensamblaje.
Descarga de archivos STL y modelos 3D
Puede obtener el modelo 3D de esta plataforma de robot/tanque RC, así como los archivos STL para impresión 3D de Cults3D.
Impresión 3D
Al imprimir en 3D, para obtener piezas impresas en 3D con dimensiones precisas, debemos usar las configuraciones de Expansión horizontal y Expansión horizontal del orificio en nuestro software de corte. Si dejamos estos ajustes por defecto, las dimensiones exteriores de la impresión así como los agujeros suelen ser más pequeños que el modelo original.
Configuré la Expansión horizontal en 0,02 mm y la Expansión horizontal del orificio en 0,04 mm. Por supuesto, deberías hacer algunas impresiones de prueba para ver qué valores te darán los mejores resultados en tu impresora 3D. Necesitamos dimensiones precisas de las piezas para ensamblarlas fácilmente entre sí y con otros componentes como los rodamientos y los pernos.
Al imprimir en 3D los eslabones de las vías, utilicé una balsa como adhesión de la placa de construcción, porque su superficie de contacto con la placa de la base es un poco pequeña y podría no adherirse bien si la adhesión de la base de su impresora no es tan buena. Especialmente al imprimir lotes más grandes, es más seguro utilizar una balsa.
Ensamblaje del tanque impreso en 3D:plataforma robótica con orugas
Bien, aquí tengo todas las piezas impresas en 3D para la plataforma del robot. Para ser honesto, tomó bastante tiempo imprimirlo todo.
Por ejemplo, cada una de las secciones base tardó alrededor de 22 horas en imprimirse, y los 156 enlaces de vías tardaron alrededor de 96 horas en imprimirse. Aproximadamente necesitamos 200 horas para imprimirlo todo. Por suerte, tenía dos impresoras 3D, así que me llevó unas 100 horas.
Lista de piezas
Aquí hay una lista de los componentes necesarios para ensamblar este proyecto de plataforma robótica y tanque impreso en 3D. La lista de componentes electrónicos se puede encontrar a continuación en la sección de diagrama de circuito del artículo.
- 8x Amortiguadores RC …………………………………….. Amazon / AliExpress
- 8x resortes ……………………………………………………………. Amazon / Aliexpress
- 40x Rodamientos de bolas 624 – 4x13x5mm ………………… Amazon / AliExpress
- Inserciones roscadas M3 ………………………………………….. Amazon / Aliexpress
- Pernos y tuercas M3 y M4 ……………………………. Amazon / Aliexpress
Pernos:
M4x40mm – 8 piezas; M4x35mm – 2 piezas; M4x30mm – 8 piezas; M4x25mm – 2 piezas; M3x25mm – 16 piezas; M3x20mm – 8 piezas; M3x16mm – 10 piezas; M3x12/14mm – 32 piezas; M3x10mm – 8 piezas; M3x8mm – 14 piezas
Nueces:
M4 – 25 piezas; M3 – 30 piezas
Lavadoras:
M4 – 30 piezas
Divulgación:Estos son enlaces de afiliados. Como asociado de Amazon, gano con compras que califican.
Empecé montando la base. Como dije, se compone de dos secciones que se conectarán entre sí mediante unos soportes y tornillos y tuercas M3.
Para asegurar los soportes laterales, estoy usando inserciones roscadas M3 de 5 mm de largo que van en la pared lateral de la base. De esta forma, el exterior de la pared quedará limpio, sin tornillos ni tuercas para que las vías puedan pasar cerca.
Luego, fijé los soportes para fijar los amortiguadores en su lugar usando unos tornillos M3.
A continuación, estoy instalando los cojinetes donde pivotará el brazo de las ruedas de carretera. Los rodamientos tienen un diámetro exterior de 13 mm y un diámetro interior de 4 mm y necesitamos dos de ellos para cada rueda.
Como pasador estoy usando un perno M4 de 30 mm de longitud. Necesitamos colocar una arandela entre el rodamiento y el brazo y fijarlos desde el interior con una tuerca autoblocante. Debemos tener cuidado con cuánto apretamos esta unión, ni demasiado apretada, pero tampoco demasiado floja.
A continuación, podemos instalar el amortiguador. Lo fijamos en su sitio mediante el perno M1.4 que viene con su paquete.
No tenía ese destornillador pequeño, así que usé unos alicates para apretar el perno. Hasta el momento, parece que el mecanismo funciona perfectamente.
A continuación, podemos instalar la rueda de carretera en el extremo inferior del brazo. La rueda está formada por dos tramos para evitar impresiones con material de soporte. Tal vez podría imprimirse como una sola parte, pero no probé cómo quedará.
De esta manera tenemos que conectar las dos secciones, y decidí usar las varillas de acero de 2 mm para ese propósito, la misma que usaré para unir los eslabones de las vías. En realidad, se trata de una varilla de latón que se utiliza para soldar, que es algo blanda y se puede cortar fácilmente al tamaño deseado con solo unos alicates.
Inserté tres varillas con aproximadamente 23 mm de largo para cada rueda y luego también instalé dos de los mismos cojinetes que usé antes en ambos lados de la rueda. De nuevo, como antes, utilizando un perno M4, una arandela y una tuerca autoblocante fijé la rueda en su lugar.
La rueda debe poder girar libremente sin tener juego en el eje.
Ahora solo nos queda repetir este proceso para el resto de ruedas. En cuanto a la rueda delantera, tenemos un brazo ligeramente diferente que tiene una palanca que proporcionará tensión dinámica a la vía, pero la instalación es la misma.
A continuación, podemos montar el mecanismo de la rueda guía. Se compone de tres piezas impresas en 3D, unos tornillos y una tuerca distanciadora.
Antes de fijar el primer eslabón, debemos añadir una tuerca autoblocante M4 en la parte trasera, sobre la que posteriormente fijaremos la rueda guía.
Estoy usando las mismas varillas de cobre de 2 mm como pasadores para estas uniones. Ahora, en el segundo eslabón del lado de la rueda tensora, podemos asegurar una tuerca distanciadora M3 de 15 mm de largo con la ayuda de un perno M3.
En el otro lado ponemos un perno M3 de 20 mm de largo y una tuerca, que irá en la tuerca distanciadora. Con esta configuración ahora podemos ajustar la distancia entre la rueda loca y el brazo de la rueda de carretera y así podemos tensar la oruga tanto estática como dinámicamente. Luego simplemente podemos asegurar la rueda guía en su lugar con un perno M4, y así tenemos este sistema de tensión hecho así como todo el sistema de suspensión.
Muy bien, a continuación podemos montar la rueda dentada y para ello primero necesitamos instalar el motor. Diseñé la plataforma base para aceptar motores con un diámetro de 37 mm con eje central o desplazado.
Podemos instalar cualquier motor de 12 V CC con RPM que oscilan entre 20 y 1000 RPM, dependiendo de la aplicación de la plataforma del robot, por supuesto, pero hablaremos de eso un poco más adelante en el video. El motor está asegurado en su lugar con seis pernos M3.
Para fijar la rueda dentada al eje del motor, primero debemos preparar el acoplador del eje o instalar algunos insertos roscados en él.
Luego podemos insertar el acoplador en su lugar y asegurarlo con un tornillo prisionero M3.
Luego se insertan y aseguran las dos secciones de la rueda dentada con tres pernos M3.
Así que aquí tenemos el tren motriz de la plataforma completado y ahora es el momento de divertirse ensamblando la vía. Así es, me resultó muy divertido montar la pista.
Aquí hay un vistazo más de cerca a los enlaces de las pistas desde donde podemos ver lo simples y limpios que son.
Vienen listos para usar inmediatamente desde la impresora 3D porque no utilizamos ningún soporte al imprimirlos en 3D. Sólo necesitamos pines de 2 mm para conectarlos. Como ya dije, podemos conseguirlos fácilmente con varillas de soldadura de latón de 2 mm.
Los orificios exteriores de los eslabones están bien ajustados, por lo que debemos usar un poco de fuerza para insertarlos, pero eso asegurará que no se salgan. Los orificios interiores de los eslabones están sueltos, lo que garantiza una rotación libre entre los eslabones de la cadena.
Ahora solo nos queda prepararnos una taza de té o un café y disfrutar montándolos durante un par de horas. Te das cuenta de la diversión una vez que conectas varios de ellos y ves lo genial que queda la pista. Necesitamos un total de 78 eslabones de vía para montar una sola vía. En cuanto a la longitud de la varilla, necesitamos unos 3,5 m para cada carril, ya que cada pasador debe tener unos 43 mm de largo.
Una vez que tengamos la oruga lista, simplemente podemos enrollarla alrededor de la rueda dentada, las ruedas de rodadura y la rueda guía, y cerrar el bucle con otro pasador de 2 mm en el sitio. Podemos observar aquí que con 78 enlaces de vía la tensión de la vía es la correcta, aunque la última rueda se mueve un poco hacia arriba.
En realidad, esto se debe a que el resorte no es lo suficientemente fuerte. Podemos ajustar un poco la tensión del resorte ajustando esta tuerca en el amortiguador, aunque eso nuevamente no fue suficiente. Por eso, decidí cambiar el muelle original que venía con el amortiguador, por uno más resistente.
Cambiar el muelle es bastante sencillo, ya que sólo tenemos que desenroscar un extremo del amortiguador, introducir el muelle más fuerte y volver a atornillar la varilla. El resorte que tenía era un poco más ancho que el original, así que tuve que usar una arandela M4 en la parte inferior. Ahora bien, este resorte tenía suficiente fuerza para mantener la rueda en su lugar al instalar las orugas con 78 eslabones.
Terminé cambiando los resortes de todos los amortiguadores, porque me di cuenta de que no serían lo suficientemente fuertes para soportar el peso de toda la plataforma. Esto completa todo el sistema de propulsión de la plataforma, que creo que resultó bastante bueno.
Si es necesario, ahora podemos ajustar la tensión de la oruga con la tuerca distanciadora en la rueda guía. Eso sí, está bien tener la pista un poco suelta para que funcione correctamente. La sección superior suelta de las orugas se apoya en los soportes del amortiguador.
Conecté el motor a una fuente de alimentación para comprobar cómo funcionará. Me pareció perfecto. Es realmente una sensación maravillosa ver en acción algo que has creado con tantas piezas impresas en 3D.
Evidentemente, tenemos que repetir el mismo procedimiento para montar el otro lado. Una vez hecho esto, la plataforma del robot está terminada en un 80%. A continuación, voy a instalar los paneles laterales que están principalmente aquí para una apariencia visual.
Los fijamos en su sitio con ayuda de unas escuadras y tornillos M3. En la parte superior, ve a las cubiertas que cerrarán la plataforma. Para este vídeo lo diseñé de esta manera solo por la apariencia visual.
Como mencioné anteriormente, en algunos de mis videos futuros planeo agregar un brazo robótico o una torreta en la parte superior de esta plataforma, lo que significa que luego tendré que diseñar la parte superior de manera adecuada.
Electrónica:Diagrama del circuito de la plataforma del robot
Ahora podemos seguir adelante con la electrónica de este proyecto. Como dije, usaré una placa basada en un microcontrolador ATmega2560.
Puede obtener los componentes necesarios para este proyecto en los enlaces siguientes:
- Motor 2x 12V CC – 50 a 500 RPM ………. Amazon / Aliexpress
- Controlador de motor de CC DRV8871 …………….…. Amazon / AliExpress
- Arduino MEGA……………………………….….…..… Amazon / AliExpress
- Batería LiPo 3S ………………………..………….. Amazon / AliExpress
- Conector XT60 ………………………..………… Amazon / AliExpress
- Transmisor FLYSKY RC …………………………. Amazon / AliExpress
Divulgación:Estos son enlaces de afiliados. Como asociado de Amazon, gano con compras que califican.
Para accionar los dos motores utilizaré dos controladores de motor de CC DRV8871, que admiten control PWM y una corriente máxima de hasta 3,6 A. El voltaje de funcionamiento de los motores de CC es de 12 V y alimentaremos todo con una batería LiPo 3S que proporciona alrededor de 12 V. También incluí un regulador de voltaje de 5 V, el LM350 IC, para tener un suministro de 5 V dedicado para otros usos futuros, por ejemplo, para conectarle servomotores. En este vídeo usaremos estos 5V para alimentar el receptor RC y algunos de los LED.
Los LED que estoy usando para este proyecto son simples LED de 5 mm en color blanco y rojo. Los ordené de la siguiente manera:
En la parte trasera tenemos dos LED rojos a cada lado a modo de pilotos traseros, y en la parte delantera tres LED blancos a cada lado a modo de faros. Además, hay seis LED en la cubierta superior como luces de carretera. Para que estos LED se iluminen correctamente necesitamos un circuito adecuado que incluya resistencias para limitar la corriente. Combiné sus conexiones tanto en paralelo como en serie.
Por ejemplo, para los faros delanteros, estoy usando dos líneas paralelas con 12V para alimentar los 6 LED, 3 en cada lado izquierdo y derecho, que están conectados en serie. De acuerdo con el voltaje directo y la corriente de los LED, calculé el valor de resistencia requerido para cada línea, y ese fue 150 ohmios para este caso. Para activar los LED, estoy usando algunos transistores NPN de uso general con una potencia nominal de 200 mA.
Por último, hice un divisor de voltaje simple que usaré para monitorear el voltaje de la batería. Simplemente, los 12 V de la batería se reducen a menos de 5 V para que puedan ingresar a una entrada analógica en el microcontrolador. En el programa podemos traducir el valor al valor de voltaje real y enviarlo desde el receptor RC al transmisor RC donde podemos ver el valor en la pantalla.
Diseño de PCB personalizado
De hecho, terminé con bastantes conexiones, así que para evitar problemas tuve que diseñar una PCB personalizada para este proyecto.
La PCB será compatible con la placa basada en el microcontrolador ATmega2560 que se montará directamente encima de ella.
Incluí un regulador de voltaje de 3.3V y una conexión para un módulo transceptor NRF24L01 por si queremos controlar la plataforma con ese módulo. Además, incluí un riel de 12 V y rieles de 5 V y 6 V con conexiones de pines digitales dispuestas para conectarles servomotores. El riel de 6 V se puede alimentar con un convertidor reductor externo.
Pedí la PCB a PCBWay. Aquí podemos simplemente cargar el archivo Gerber, elegir las propiedades de nuestra PCB y pedirlo a un precio razonable.
No cambié ninguna de las propiedades predeterminadas excepto el color de la PCB, que elegí blanco. Puede encontrar y descargar Gerber en la comunidad de intercambio de proyectos PCBWay a través de la cual también puede solicitar directamente la PCB.
Además, puedes descargar el archivo Gerber aquí:
Sin embargo, después de varios días llegó la PCB. La calidad de la PCB es excelente y todo es exactamente igual que en el diseño.
Montar la PCB es bastante sencillo ya que todo está etiquetado. Comencé soldando los cabezales de los pines en la parte inferior de la PCB, para la conexión ATmega2560 y luego continué con la parte superior. Por comodidad, primero deberíamos soldar los componentes más pequeños, como las resistencias y los transistores, y luego los más grandes, como el LED y los conectores de alimentación.
Utilicé encabezados de pines para todas las conexiones, porque brinda flexibilidad para realizar cambios si algo no funciona correctamente. No soldé los conectores para el convertidor reductor externo y sus rieles, ni tampoco el regulador de voltaje de 3.3V, ya que de todos modos no los iba a usar ahora. Realmente me gusta lo bonito y limpio que quedó este PCB con este color blanco.
Terminar el ensamblaje del tanque impreso en 3D
Bien, primero fijamos la placa del microcontrolador en su lugar con algunos pernos M3 y luego encima va la PCB personalizada.
Ahora es el momento de instalar los LED. Se colocarán en el panel lateral con ayuda de estos soportes que alojan los LED de 5 mm. Como se describe en los esquemas, debemos soldar cada línea de LED en serie.
En el cátodo va el cable negro y en el ánodo va el cable rojo. Pasamos estos cables por una pequeña abertura en los paneles laterales que conducen a la PCB.
La parte del soporte del LED está diseñada para encajar perfectamente con el panel lateral, de modo que una vez insertada en su lugar obtengamos una apariencia agradable y limpia.
Los LED de luz de carretera se colocan directamente en la cubierta frontal superior.
Para conectar los LED, soldé conectores macho Dupont XH2,54 mm en la PCB, por lo que tuve que instalar un conector hembra Dupont adecuado a los cables. Necesitamos alicates para prensar ese bolso, pero al momento de hacer este proyecto no tenía uno conmigo.
Utilicé unos alicates pequeños normales para hacer ese trabajo y las conexiones salieron bien. Cada línea de LED debe ir al conector apropiado que está etiquetado en la PCB.
En cuanto a los motores, no tenía conectores adecuados, así que soldé los cables directamente a ellos. La conexión del motor va a la placa del controlador DRV8871 y luego a la PCB.
Para la comunicación por radio estoy usando el transmisor y receptor FLYSKY RC, que son realmente asequibles y funcionan muy bien.
Para conectar el receptor al microcontrolador, podemos utilizar cables de puente. El receptor se comunica con el microcontrolador a través de un I-BUS y el puerto serie, por lo que solo necesitamos tres cables, VCC, GND y el pin de Señal.
Si queremos enviar datos desde el receptor al transmisor, en nuestro caso para monitorear el voltaje de la batería, también necesitamos conectar el sensor I-BUS del receptor a otro puerto serie.
Por último, podemos conectar la batería LiPo. Dependiendo de la batería necesitamos tener un conector adecuado. Éste va al conector de 12V y justo al lado tenemos un conector ON/OFF al que conectaremos un interruptor para encender y apagar la alimentación de la plataforma.
Tenga en cuenta que antes de encender la placa, primero debemos desconectar el receptor RC de la alimentación y ajustar el voltaje variable del LM350 IC a 5 V usando el recortador.
Ahora sólo nos queda colocar la tapa trasera superior y habremos terminado con este proyecto.
Programación de la plataforma del robot
Ahora tenemos que programar la plataforma del tanque/robot impresa en 3D. Aquí está el código Arduino para esta plataforma de robot.
/*
3D Printed Tracked Robot Platform - Arduino Code
by Dejan, www.HowToMechatronics.com
Libraries:
IBusBM: https://github.com/bmellink/IBusBM
*/
#include <IBusBM.h>
#define motorLeft_IN1 4
#define motorLeft_IN2 5
#define motorRight_IN1 6
#define motorRight_IN2 7
IBusBM IBus;
IBusBM IBusSensor;
int ch0, ch1, ch6, ch8 = 0;
int motorSpeed, steeringValue, leftMotorSpeed, rightMotorSpeed = 0;
int ledBlinkPeriod = 50;
int isOn = LOW;
unsigned long time_now = 0;
void setup() {
Serial.begin(115200);
IBus.begin(Serial1, IBUSBM_NOTIMER); // Servo iBUS
IBusSensor.begin(Serial2, IBUSBM_NOTIMER); // Sensor iBUS
IBusSensor.addSensor(IBUSS_INTV); // add voltage sensor
// DC motors control - set them stationary
// Left track
digitalWrite(motorLeft_IN1, LOW); // PWM value
digitalWrite(motorLeft_IN2, LOW); // Forward
// Right track
digitalWrite(motorRight_IN1, LOW); // PWM value
digitalWrite(motorRight_IN2, LOW); // Forward
digitalWrite(46, LOW);
digitalWrite(47, LOW);
digitalWrite(48, LOW);
}
void loop() {
// Reading the data comming from the RC Transmitter
IBus.loop();
// ch0 - left and right; ch1 - forward and backward;
ch0 = IBus.readChannel(0); // ch0 - left and right;
ch1 = IBus.readChannel(1); // ch1 - forward and backward;
ch6 = IBus.readChannel(6); // ch6 - Headlights
ch8 = IBus.readChannel(8); // ch8 - High beam
// convert the incoming date into suitable PWM value
steeringValue = map(ch0, 1000, 2000, -185, 185); // 0 to 185 range because then I add +70 in order to avoid low PWM values as to motors won't start if so
motorSpeed = map(ch1, 1000, 2000, -185, 185);
motorSpeed = abs(motorSpeed);
leftMotorSpeed = 70 + motorSpeed + steeringValue; // 70 + (0-185) + (0 - 185 ) = 70 - 255 so this range from 70 to 255 is used as PWM value
rightMotorSpeed = 70 + motorSpeed - steeringValue;
leftMotorSpeed = constrain(leftMotorSpeed, 0, 255); // constrain the PWM value from 0 to 255
rightMotorSpeed = constrain(rightMotorSpeed, 0, 255);
// if PWM is lower than 72, set PWM value to 0
if (leftMotorSpeed < 72) {
leftMotorSpeed = 0;
}
if (rightMotorSpeed < 72) {
rightMotorSpeed = 0;
}
// if right joystick goes up > move forward
if (ch1 > 1510 && ch1 < 2000) {
analogWrite(motorLeft_IN1, leftMotorSpeed); // PWM input
digitalWrite(motorLeft_IN2, LOW); // Direction - Forward
analogWrite(motorRight_IN1, rightMotorSpeed); // PWM input
digitalWrite(motorRight_IN2, LOW); // Direction - Forward
}
// if right joystick goes down > move backward
if (ch1 > 1000 && ch1 < 1420) {
digitalWrite(motorLeft_IN1, LOW); // Direction - Backward
analogWrite(motorLeft_IN2, leftMotorSpeed); // PWM input
digitalWrite(motorRight_IN1, LOW); // Direction - Backward
analogWrite(motorRight_IN2, rightMotorSpeed); // PWM input
}
// if right joystick is in the middle, don't move
if (ch1 > 1420 && ch1 < 1520) {
if (leftMotorSpeed < 75 && rightMotorSpeed < 75) {
digitalWrite(motorLeft_IN1, LOW);
digitalWrite(motorLeft_IN2, LOW);
digitalWrite(motorRight_IN1, LOW);
digitalWrite(motorRight_IN2, LOW);
}
// if right joystick move just left or right, without going up or down, move the tank left or right (only 1 motor move)
else {
analogWrite(motorLeft_IN1, leftMotorSpeed); // PWM input
digitalWrite(motorLeft_IN2, LOW); // Direction - Forward
analogWrite(motorRight_IN1, rightMotorSpeed); // PWM input
digitalWrite(motorRight_IN2, LOW); // Direction - Forward
}
}
// LEDs control
// Headlights and Taillights LEDs control
if (ch6 > 1500) {
digitalWrite(47, HIGH);
digitalWrite(48, HIGH);
}
else {
digitalWrite(47, LOW);
digitalWrite(48, LOW);
}
// High beam LEDs control
if (ch8 == 1500) {
digitalWrite(46, HIGH);
}
// If rocker switch in position 3 (2ooo value) - flasing with the high beam LEDs
else if (ch8 == 2000) {
if (millis() >= time_now + ledBlinkPeriod) {
time_now += ledBlinkPeriod;
if (isOn == HIGH) {
isOn = LOW;
}
else {
isOn = HIGH;
}
digitalWrite(46, isOn);
}
}
else {
digitalWrite(46, LOW);
}
// Monitor the battery voltage
int sensorValue = analogRead(A0);
float voltage = sensorValue * (5.00 / 1023.00) * 3.02; // Convert the reading values from 5v to suitable 12V
// Send battery voltage value to transmitter
IBusSensor.loop();
IBusSensor.setSensorMeasurement(1, voltage * 100);
}Code language: PHP (php) Descripción general del código
Entonces, usando la biblioteca IBusBM leemos los datos entrantes del transmisor RC.
// Reading the data comming from the RC Transmitter
IBus.loop();
// ch0 - left and right; ch1 - forward and backward;
ch0 = IBus.readChannel(0); // ch0 - left and right;
ch1 = IBus.readChannel(1); // ch1 - forward and backward;
ch6 = IBus.readChannel(6); // ch6 - Headlights
ch8 = IBus.readChannel(8); // ch8 - High beamCode language: JavaScript (javascript) El joystick derecho, canales 0 y 1, se utilizan para controlar el movimiento de la plataforma, los dos interruptores basculantes, canales 6 y 8, para controlar los LED.
Convertimos los datos entrantes en valores adecuados para el control PWM de los motores DC, que va de 0 a 255.
// convert the incoming date into suitable PWM value
steeringValue = map(ch0, 1000, 2000, -185, 185); // 0 to 185 range because then I add +70 in order to avoid low PWM values as to motors won't start if so
motorSpeed = map(ch1, 1000, 2000, -185, 185);
motorSpeed = abs(motorSpeed);
leftMotorSpeed = 70 + motorSpeed + steeringValue; // 70 + (0-185) + (0 - 185 ) = 70 - 255 so this range from 70 to 255 is used as PWM value
rightMotorSpeed = 70 + motorSpeed - steeringValue;
leftMotorSpeed = constrain(leftMotorSpeed, 0, 255); // constrain the PWM value from 0 to 255
rightMotorSpeed = constrain(rightMotorSpeed, 0, 255);Code language: JavaScript (javascript) Enviamos los valores PWM a los controladores y motores usando la función analogWrite() apropiadamente.
// if right joystick goes up > move forward
if (ch1 > 1510 && ch1 < 2000) {
analogWrite(motorLeft_IN1, leftMotorSpeed); // PWM input
digitalWrite(motorLeft_IN2, LOW); // Direction - Forward
analogWrite(motorRight_IN1, rightMotorSpeed); // PWM input
digitalWrite(motorRight_IN2, LOW); // Direction - Forward
}Code language: JavaScript (javascript) En general, el código no es tan complicado ya que la plataforma del robot en sí no tiene funciones complicadas.
Prueba del robot impreso en 3D:plataforma de robot con orugas
Una vez que cargamos el código, podemos encender la plataforma del robot y el transmisor RC para probarlo. En la pantalla del transmisor podemos ver el voltaje de la batería LiPo, así como el voltaje del receptor y del transmisor.
Y ahí lo tenemos. Usando el joystick derecho podemos controlar el movimiento de la plataforma. Con el interruptor basculante izquierdo controlamos los LED de las luces delanteras y traseras, y con el interruptor basculante derecho los LED de las luces de carretera. Los LED de luz de carretera tienen dos modos, siempre encendidos y un modo intermitente.
Podemos notar aquí que los motores que instalé en realidad tienen poca potencia para esta plataforma.
Podemos ver que hace falta que el joystick esté casi en la parte superior para que las pistas empiecen a moverse. Además, puedo detener la pista muy fácilmente con la mano. El sistema de suspensión y las propias orugas provocan mucha tensión y resistencia a los motores. Estos motores tienen 888 RPM, lo cual está bien en términos de velocidad, pero son motores más pequeños, con una potencia nominal de poco menos de 500 mA.
Entonces, los reemplacé con otros motores más grandes que tenía, pero en realidad obtuve casi los mismos resultados. Aunque estos eran motores más potentes, su reducción de velocidad era menor o tenían RPM más altas de 1280, por lo que obtuve los mismos resultados.
En realidad, no son tan malos. La plataforma del robot funciona bastante bien con ellos.
Para ser honesto, es muy divertido conducir esto, especialmente con los LED parpadeando y haciendo quemados o donuts.
Sin embargo, la diversión no duró tanto ya que una vez que lo saqué, dejó de funcionar muy rápidamente. El problema son los motores de baja potencia, eso sí, pero también el diseño de las vías. La suciedad se acumula fácilmente en ellos, donde van los dientes de la rueda dentada.
Entonces, los rediseñé para que tuvieran una abertura en el otro lado para que la tierra pudiera pasar a través de ellos. También hice la rueda dentada un poco más pequeña, descentrándola 0,2 mm, para que el ajuste sea más holgado entre ella y la pista.
Volví a montar todo con estas actualizaciones y la plataforma ahora era capaz de circular en exteriores. Aunque los motores de baja potencia volvieron a ser un problema. La plataforma se apilaba de vez en cuando y no podía subir cuesta arriba. Por lo tanto, mi sugerencia sería obtener un motor que no supere las 500 RPM y que sea uno más potente con al menos 1 A o 2 A de corriente nominal.
De hecho, probé la plataforma con motores más potentes. Tenían solo 20 RPM, lo que obviamente era demasiado lento para divertirse y hacer donas, pero la plataforma ahora era como un tanque real. Literalmente podría ir a cualquier parte.
Los motores de 20 RPM eran lo suficientemente potentes como para superar cualquier obstáculo. Eran realmente lentos, pero tal vez sirvan para algunas aplicaciones específicas. Mi sugerencia sería que si necesitamos velocidades más lentas para motores de alrededor de 50 RPM, y para velocidades más rápidas, alrededor de 500 RPM.
Espero que hayas disfrutado este video y hayas aprendido algo nuevo. No dudes en hacer cualquier pregunta en la sección de comentarios a continuación y no olvides suscribirte para futuras actualizaciones y consultar mi Colección de proyectos Arduino.
Proceso de manufactura
- Programando ATmega8 usando Arduino IDE
- Articulación articulada en mecánica de vehículos:diseño, función y diagrama
- Fluido de corrección
- Robot seguidor de línea de velocidad V4
- Accesorios principales para mejorar la seguridad del almacén
- Una introducción a la bomba directa
- Señal de tráfico
- Descripción general de 17 habilidades de aplicación de fresado CNC
- Titanio
- Proceso HYL para reducción directa de mineral de hierro
- Introducción Acerca de GD&T – Planitud [ Símbolo, Tolerancia, Medida]