Tezcatlipoca(construcción)

<- Regresar

La construcción de Tezcatlipoca fue un proceso que duró aproximadamente un mes, desde la publicación de la convocatoria del cocotrón 2022. El proceso comenzó desde la selección de los materiales reciclados en la bodega de UCP hasta la implementación conjunta de cada una de las áreas de ingeniería (electrónica, mecánica, programación) con la habilidad artística de cada uno de los participantes . Conoce a continuación el proceso de construcción que le da vida a Tezcatlipoca, el animatrónico de UCP inteligente y con materiales reciclados.

Tezcatlipoca UCP

Materiales y herramientas

Una parte de los materiales, en especial los correspondientes a la estructura del escenario, fueron donados por UCP (Universitarios por el Cuidado del Planeta) el cual, es un grupo de jóvenes que realiza labores de reciclaje y concientización sobre el manejo de desechos, principalmente de carácter electrónico.

La lista de materiales utilizados son los siguientes (con verde indicado los materiales reciclados):

  • Tablones de madera
  • Paneles de acrílico
  • Cartulina
  • Pinturas vinílicas
  • Pasto sintético
  • Tubos de PVC
  • Tela
  • PLA para impresión 3D (plástico biodegradable)
  • Alambre
  • LEDs
  • Servomotores
  • motor DC (de una impresora)
  • Palitos de madera
  • Cable para electrónico
  • Corteza de árbol natural
  • Tarjeta de desarrollo Arduino UNO
  • Sistema Embebido Jetson Nano

Mecánica

Para darle vida a Tezcatlipoca y lograr los movimientos que deseamos fue necesario seccionar el proyecto en tres partes principales: el escenario, el animatrónico y el árbol. Para realizar cada uno de estos componentes fue necesario el uso de diversos mecanismos y herramientas. Es por esta razón que a lo largo de esta sección analizaremos el desarrollo de este.

Partiendo con la estructura del jaguar consideramos que debe de tener la capacidad de cambiar de forma jaguar-humano y para lograr esto lo primero que realizamos fueron dos diseños con SolidWorks para poder compararlos y definir cuál sería la mejor opción en cuanto a funcionamiento y dimensiones.

Después de analizar ambos diseños decidimos que la mejor opción seria la que se observa a la derecha en la figura anterior, ya que, cumple con su objetivo y tiene una mayor simplicidad. Ambos diseños tienen la capacidad de poder cambiar su cabeza con una rotación, levantarse y agacharse y fueron pensados para construirse con madera, sin embargo, debido al peso de este se realizó una segunda versión la cual se puede observar en la figura posterior.

En la segunda versión la estructura usa madera para las piernas y PVC de ½ in para el tórax y brazos. Además, se colocó la cabeza del guerrero jaguar con el diseño del cuello articulado. Con esta segunda versión finalizamos la etapa de diseño mecánico y ahora comenzamos con la implementación de estos.

Para poder tener una buena percepción del entorno sobre el que trabajaremos primero implementamos el escenario sobre el que estará nuestro animatrónico, este escenario está construido con madera reciclada y paneles de acrílicos reciclados. Sus dimensiones son de 120x95x60cm.

Escenario

Después de realizar el escenario comenzamos con la implementación del animatrónico, como primer paso realizamos la estructura interna superior con tubos de PVC reciclados, las medidas de la estructura se basaron en el diseño elaborado en SolidWorks. Podemos observar el tórax en la figura siguiente.

Estructura con PVC

Con la estructura de PVC elaborada procedimos a colocarle las piernas de madera que irán fijas a la base y también realizamos la estructura del cuello que se distingue por tener dos grados de libertad y tres articulaciones esféricas controladas por servomotores. Además, se colocó un rodamiento en la parte superior del cuello para facilitar el movimiento del motor y dar apoyo a la cabeza.

Mecanismo de cuello
Estructura con piernas.

En cuanto a la cabeza, se procedió a seccionarla en 4 partes y a imprimirla en 3D para después pegarlas y pintarlas para tener el acabado final .

A)
B)

A) Impresión de cabeza B) Cabeza pintada.

Finalmente, para darle forma a la estructura se realizó un traje con tela de jaguar y se le colocó al animatrónico con alambres y relleno para obtener la figura deseada como se observa en la figura.

Animatrónico con tela de jaguar

Para la implementación del árbol se empleó alambre, papel Kraft y corteza de árbol seco. Primero se colocaron cuartos de círculos en la esquina de la estructura para darle una base estructural al árbol, después se forró de papel Kraft y encima se le colocó la corteza del árbol.

Electrónica

A continuación se describirán los componentes y los diagramas de conexión de las piezas electrónicas utilizadas.

JETSON NANO NVIDIA (5 Volts)

NVIDIA Jetson Nano Developer Kit es un ordenador de inteligencia artificial pequeña y potente que le brinda el rendimiento informático para ejecutar cargas de trabajo de inteligencia artificial modernas a un tamaño, potencia y costo sin precedentes. Jetson Nano utiliza NVIDIA JetPack SDK utilizada en todos los productos NVIDIA.

El kit de desarrollador NVIDIA Jetson Nano es un sistema integrado en módulo (SoM) que brinda visión por computadora en tiempo real e inferencias a través de una amplia variedad de modelos complejos de redes neuronales profundas (DNN).

Jetson Nano

SERVOMOTORES (5 Volts)

Diminuto y ligero con alta potencia de salida. El servo puede girar aproximadamente 180 grados (90 en cada dirección) y funciona como los tipos estándar pero más pequeños. Puede utilizar cualquier código de servo, hardware o biblioteca para controlar estos servos. Bueno para principiantes que quieren hacer que las cosas se muevan sin construir un controlador de motor con retroalimentación y caja de engranajes, especialmente porque cabe en lugares pequeños. Viene con 3 cuernos (brazos) y hardware.

Servomotor

ARDUINO 1 (5 Volts)

La placa Arduino UNO es la mejor placa para iniciar con la programación y la electrónica. Si es tu primera experiencia con la plataforma Arduino, la Arduino UNO es la opción más robusta, más usada y con mayor cantidad de documentación de toda la familia Arduino.

Arduino UNO

Arduino UNO es una placa basada en el microcontrolador ATmega328P. Tiene 14 pines de entrada/salida digital (de los cuales 6 pueden ser usando con PWM), 6 entradas analógicas, un cristal de 16Mhz, conexión USB, conector jack de alimentación, terminales para conexión ICSP y un botón de reseteo. Tiene toda la electrónica necesaria para que el microcontrolador opere, simplemente hay que conectarlo a la energía por el puerto USB ó con un transformador AC-DC.

PUENTE H (5 Volts)

El driver puente H L298N es el modulo más utilizado para manejar motores DC de hasta 2 amperios. El chip L298N internamente posee dos puentes H completos que permiten controlar 2 motores DC o un motor paso a paso bipolar/unipolar.

El módulo permite controlar el sentido y velocidad de giro de motores mediante señales TTL que se pueden obtener de microcontroladores y tarjetas de desarrollo como Arduino, Raspberry Pi o Launchpads de Texas Instruments. El control del sentido de giro se realiza mediante dos pines para cada motor, la velocidad de giro se puede regular haciendo uso de modulación por ancho de pulso (PWM por sus siglas en inglés).

Driver L298N

Tiene integrado un regulador de voltaje LM7805 de 5V encargado de alimentar la parte lógica del L298N, el uso de este regulador se hace a través de un Jumper y se puede usar para alimentar la etapa de control.

ESPECIFICACIONES TÉCNICAS

  • Chip: L298N
  • Canales: 2 (soporta 2 motores DC o 1 motor PAP)
  • Voltaje lógico: 5V
  • Voltaje de potencia (V motor): 5V – 35V DC
  • Consumo de corriente (lógico): 0 a 36mA
  • Capacidad de corriente: 2A (picos de hasta 3A)
  • Potencia máxima: 25W
  • Dimensiones: 43 * 43 * 27 mm
  • Peso: 30g

NOTAS

  • Voltaje de alimentación, mínimo de 5V. Posee dos entradas, una de 5V para controlar la parte lógica y otra para alimentar las salidas al motor, que pueden ser de 5V o más.
  • Posee un regulador de voltaje de 5V 78M05, para alimentar la etapa lógica del L298N, sin embargo, cuando la alimentación supera los 12V, se recomienda, utilizar una fuente de 5V externa como fuente de alimentación.
  • Admite entradas de señal PWM para el control de velocidad.
  • Posee 8 diodos de protección contra corriente inversas.

CONEXIÓN DE ALIMENTACIÓN

Este módulo se puede alimentar de 2 maneras gracias al regulador integrado LM7805. Cuando el jumper de selección de 5V se encuentra activo, el módulo permite una alimentación de entre 6V a 12V DC. Como el regulador se encuentra activo, la bornera marcado como +5V tendrá un voltaje de salida de 5V DC. Este voltaje se puede usar para alimentar la parte de control del módulo ya sea un microcontrolador o un Arduino, pero recomendamos que el consumo no sea mayor a 500mA.

Cuando el jumper de selección de 5V se encuentra inactivo, el módulo permite una alimentación de entre 12V a 35V DC. Como el regulador de 5 voltios no está funcionando, tendremos que conectar la bornera de +5V a una fuente de 5V para alimentar la parte lógica del L298N, podemos usar como fuente la salida de 5 voltios de nuestro Arduino.

MOTOR DC (18 Volts)

El motor DC utilizado en el proyecto es reciclado u proveniente de una impresora, incluso se aprovecharon los engranes para aumentar el torque.

Conectar Jetson al Arduino

Serial USB

Conectar Arduino con el Puente H y el motor DC

Conexión del motor DC

 Conectar Serie de Leds al arduino

Valores de alimentación de LEDs

Utilizando dos series de 14 leds en paralelo ultrabrillantes y tomando en cuanta que la salida de voltaje de una tarjeta arduino es de 5 Volts, se tiene la siguiente formula.

Conectar Leds de la cabeza a 2 Volts

Se utilizaron 2 leds rojos para los ojos y dos leds amarillos cableados en forma paralela y de acuerdo con la tabla anterior, se tiene que:

Circuito final

Finalmente el diagrama del circuito quedo como se muestra en la imagen siguiente.

Programación

Tezcatlipoca es un animatrónico dotado con inteligencia. Para lograr esto, se emplearon distintas herramientas de programación, organizadas en programas que se ejecutan en la tarjeta de desarrollo de Nvidia Jetson Nano para todo procesamiento de imagen y voz, conectada mediante comunicación serial con una tarjeta Arduino Uno para comandar mediante señales PWM la activación de los actuadores (motor DC, LEDs, servomotores).

Tezcatlipoca es capaz de interpertar dos características importantes, la imagen y la voz. Esto le permite crear distinas funciones para crear un animatrónico interactivo, ocupando como sensores de entrada un micrófono y una cámara USB.

Procesamiento de imagen

Para entender como lleva a cabo el procesamiento de la cámara debemos entender algunos conecptos previos. En primer lugar, es necsesario entender la imagen digital. La imagen digital es una representación bidimensional de una imagen real. Generalmente esta representación se hace a través de matrices numéricas, contenida con valores binarios. Existen dos tipos de representaciones muy útiles, el RGB y el HSV.

  • Espacio de colores RGB

a representación RGB plasma en una matriz de tres dimensiones cada uno de los valores RGB (rojo, verde, azul) de cada pixel de la imagen para generar su color correspondiente.

Representación RGB de una imagen digital
  • Espacio de colores HSV

Esta representación es alternativa al RGB. También ocupa una matriz tridimensional que representan tres valores HSV (matiz, saturación, valor) para cada pixel, conformando el color. Con esta representación, es posible analizar la imagen por su color con mayor facilidad que en el RGB, ya que en el matiz está contenido el color del pixel, diferente de la representación anterior que se requieren tres valores para conocer el color.

Representación HSV de una imagen digital

OpenCV es una herramienta que incluye distintas metodologías para el oprocesamiento de la imagen, por su puesto ocupa estas representaciones digitales de la imagen, en este caso empleadas para dos funciones del animatrónico, la primera un seguimiento de objeto sincronizado con el movmiento de la cabeza y la identificación de códigos aruco para tomar fotografías en el concurso.

Seguidor de objeto sincronizado con movmiento de la cabeza

Para crear un seguidor de objeto, primero se definió un rango de matices para seguir un objeto. Este matiz de colores correspondían al color amarillo (entre el valor 20 y 40). Lo que hace el programa es filtrar todo color que no sea amarillo y solo almacenará los pixeles entre el intervalor de color seleccionado. Con esta información, es posible encontrar un contorno de la figura y calcular el centro del objeto, conociendo la ubicación del pixel centro en la cámara.

ECon el cálculo del centro de masa se estima la posición del objeto relativa a la imagen digital. Con una relación de pixeles con el desplazamiento angular del motor, se sincroniza su movmiento y aproxima su movimiento al del servomotor, sincronizando el movmiento del objeto con el movimiento de la cabeza.

Reconocimiento de códigos aruco

Los códigos aruco son identificadores binarios similares a los códigos QR. Estos son ampliamente utilizados en robótica como indicadores y a diferencia de los QR, estos están definidos, permitiendo asignar a un identificador aruco una acción específica.

Ejemplos de códigos Aruco

La identificación de los códigos es posible hacerse con OpenCV. Con esto, se le añadió a Tezcatlipoca una función de tomar fotos. Cuando esta función esté activa, Tezcatlipoca tomará una foto y si existe un identificador Aruco, reemplazará al identificador en lafoto por una imagen digital.

Identificación de códigos Aruco

Procesamiento de voz

El procesamiento de voz se realiza a través de conectividad WiFi. Este se realiza a través de una Api de Google ofrece para el reconocmiento de voz, devolviendo lo que interpretó de la voz. Para activar la voz, basta con hablarle por su nombre «Tezcatlipoca» y este contestará indicando que escuchó su voz. Tiene distintas funciones y con ella desempeña distinas acciones.

Demostración de interpretación de voz y activación de motor

Diseño artístico

En cuanto al aporte artístico el cual involucra los colores y la estética de la representación del animatrónico, se siguieron los siguientes pasos.

Se armó la estructura de madera con clavos y en primera instancia se colorearon los paneles para aumentar el grado de oscuridad al interior, posteriormente se utilizo una tela para cubrirlo por completo.

Primer modelo de estructura con paneles pintados

Dado que el nivel de oscuridad que se requiere es mayor, se procedió a forrar los paneles con cartulina negra y posteriormente pintar la base simulando pasto.

Estructura con paneles forrados y pintados

En cuanto al animatrónico se consiguió tela con un diseño similar al jaguar y con ella se forró tanto el cuerpo como la cabeza y las patas, por su parte la el interior del hocico en que se encuentra la calavera se decoró con pinturas vinílicas.

Animatrónico en posición de Jaguar

Para decorar el escenario se usaron flores de cempasúchil elaboras con papel crepe.

Para dar un toque más selvático al escenario se incluyó un árbol hecho de alambre, papel kraft y corteza reciclada de un árbol muerto.

Para representar el día de muertos se incluyeron 2 cráneos de unicel pintados.

Calaveras de unicel pintadas con pinturas acrílicas

Finalmente el animatrónico se adornó con motivos prehispánicos hechos de tela y papel.

La iluminación del escenario se conforma por 3 series de LEDs simulando estrellas y 3 LEDs simulando antorchas..

LEDs simulando estrellas

A continuación se muestra el resultado final.

Escenario y animatrónico terminados
Carrito de compra