Tabla de contenido:

Walking Strandbeest, Java / Python y aplicación controlada: 4 pasos (con imágenes)
Walking Strandbeest, Java / Python y aplicación controlada: 4 pasos (con imágenes)

Video: Walking Strandbeest, Java / Python y aplicación controlada: 4 pasos (con imágenes)

Video: Walking Strandbeest, Java / Python y aplicación controlada: 4 pasos (con imágenes)
Video: Normal People VS Programmers #coding #python #programming #easy #funny #short 2024, Mes de julio
Anonim

Por arrowlike Siga más por el autor:

Estudio experimental del movimiento armónico simple
Estudio experimental del movimiento armónico simple
Estudio experimental del movimiento armónico simple
Estudio experimental del movimiento armónico simple

Este kit Strandbeest es un trabajo de bricolaje basado en el Strandbeest inventado por Theo Jansen. Asombrado por el genial diseño mecánico, quiero equiparlo con total maniobrabilidad y, a continuación, inteligencia informática. En este instructable, trabajamos en la primera parte, la maniobrabilidad. También cubrimos la estructura mecánica para la computadora del tamaño de una tarjeta de crédito, para que podamos jugar con la visión por computadora y el procesamiento de IA. Para simplificar el trabajo de construcción y el dinero, no usé arduino o una computadora programable similar, en su lugar, construí un controlador de hardware bluetooth. Este controlador, que funciona como el terminal que interactúa con el hardware robótico, está controlado por un sistema más potente, como una aplicación de teléfono Android o RaspberryPi, etc. El control puede ser el control de la interfaz de usuario del teléfono móvil o el control programable en lenguaje Python o Java. Un SDK para cada lenguaje de programación es de código abierto proporcionado en

Dado que el manual del usuario de mini-Strandbeest es bastante claro al explicar los pasos de construcción, en este instructivo, nos centraremos en la información que normalmente no se cubre en el manual del usuario y las partes eléctricas / electrónicas.

Si necesitamos una idea más intuitiva sobre el montaje mecánico de este kit, están disponibles bastantes buenos videos sobre el tema del montaje, como

Suministros

Para construir la parte mecánica y realizar todas las conexiones eléctricas de este Strandbeest, debería llevar menos de 1 hora completarlo si no se cuenta el tiempo de espera para la impresión en 3D. Requiere las siguientes partes:

(1) 1x kit Strandbeest estándar (https://webshop.strandbeest.com/ordis-parvus)

(2) 2x motor DC con caja de cambios (https://www.amazon.com/Greartisan-50RPM-Torque-Re…)

(3) 1x controlador Bluetooth (https://ebay.us/Ex61kC?cmpnId=5338273189)

(4) 1x batería LiPo (3.7V, su elección de capacidad en mAh)

(5) 12 tornillos para madera M2x5,6 mm

(6) Varilla de carbono o bambú de 2 mm de diámetro

Imprima en 3D las siguientes partes:

(1) 1x cuerpo principal de robótica

(Archivo de diseño de impresión 3D con controlador bluetooth solo descarga)

(Archivo de diseño de impresión 3D con descarga adicional de OrangePi Nano)

(2) 2 bridas del eje de transmisión (descarga de archivos de diseño de impresión 3D)

(3) 2x accesorio del sistema de energía (descarga de archivo de diseño de impresión 3D)

Otros:

Teléfono móvil Android. Vaya a Google Play Store, busque M2ROBOTS e instale la aplicación de control.

En caso de que sea difícil acceder a Google Play Store, visite mi página de inicio personal para obtener un método alternativo de descarga de aplicaciones.

Paso 1: Organización de las piezas

Organización de piezas
Organización de piezas
Organización de piezas
Organización de piezas
Organización de piezas
Organización de piezas
Organización de piezas
Organización de piezas

En este paso organizaremos todas las piezas a montar. Figura 1. muestra todas las piezas de plástico listas para usar que usamos para construir el modelo Strandbeest. Se fabrican mediante moldeo por inyección, que es muy eficiente, en comparación con otros métodos de fabricación de mecanizado como la impresión 3D o el fresado. Es por eso que queremos aprovechar al máximo el producto producido en masa y personalizar solo la menor cantidad de piezas.

Como se muestra en la Figura 2, cada pieza de tablero de plástico tiene un alfabeto etiquetado, la parte individual no tiene el etiquetado. Una vez que se desarman, no hay más etiquetado. Para resolver este problema, podemos colocar partes del mismo tipo en diferentes cajas, o simplemente marcar varias áreas en una hoja de papel y colocar un tipo de partes en un área, ver Fig.3.

Para cortar la parte de plástico del tablero de plástico de ensamblaje más grande, es posible que las tijeras y el cuchillo no sean tan eficientes y seguros como los alicates que se muestran en las Figuras 4 y 5.

Todo aquí está hecho de plástico, excepto que el material de los dedos es de goma, ver Figura 6. Podemos cortar según los cortes prefabricados. La naturaleza blanda del material de caucho proporciona un mejor rendimiento de agarre del strandbeest. Es particularmente cierto al subir una pendiente. En temas posteriores, podemos probar su capacidad para escalar en diferentes ángulos de pendiente, con y sin los dedos de los pies de goma. Cuando no hay deslizamiento, se llama fricción estática. Una vez que pierde el agarre, se convierte en fricción cinética. El coeficiente de fricción depende de los materiales utilizados, por eso tenemos las puntas de goma. Cómo diseñar un experimento, levantar la mano y hablar.

La última figura contiene la "ECU", el "tren de potencia" y el chasis de este modelo Strandbeest.

Paso 2: Puntos dignos de atención durante el montaje mecánico

Puntos dignos de atención durante el montaje mecánico
Puntos dignos de atención durante el montaje mecánico
Puntos dignos de atención durante el montaje mecánico
Puntos dignos de atención durante el montaje mecánico
Puntos dignos de atención durante el montaje mecánico
Puntos dignos de atención durante el montaje mecánico

El mini-Strandbeest tiene un manual de usuario bastante bueno. Debería ser un trabajo fácil seguir el manual y completar el ensamblaje. Saltaré este contenido y destacaré algunos puntos interesantes que merecen nuestra atención.

En la figura 1, un lado de la ranura que sostiene los dedos de goma tiene una esquina de 90 grados, mientras que el otro lado tiene una pendiente de 45 grados, que oficialmente se llama chaflán. Tal pendiente guía la punta de goma para que encaje en el pie de plástico. Intente instalar los dedos del pie desde el lado con chaflán, vea la figura 2, luego pruebe el otro lado. La diferencia es muy notoria. El lado derecho de la figura 3 es la manivela de nuestro Stranbeest. Es muy similar a la manivela de un motor, motor de automóvil, motor de motocicleta, todos comparten la misma estructura. En un Strandbeest, cuando la manivela gira, hace que los pies se muevan. Para un motor, es el movimiento del pistón que hace girar la manivela. Tal separación de 120 grados en un círculo también conduce a un motor o generador trifásico, la energía eléctrica está separada por 120 grados, como se muestra en la Figura 4. Una vez que tenemos todas las partes mecánicas para los cuerpos laterales izquierdo y derecho ensambladas, ahora comenzamos a trabajar en las partes que agregamos al Strandbeest, vea la Figura 5. La figura 6 es el paso en el que usamos la abrazadera del motor impresa en 3-D para sujetar el motor al chasis impreso en 3-D. En este paso, el truco es que no se debe apretar ninguno de los tornillos antes de ajustar la posición del motor para que la superficie lateral del chasis sea la misma que la superficie del motor. Una vez que estemos satisfechos con la alineación, podemos apretar todos los tornillos. Pasemos a la Fig.7, trabajamos en la instalación del acoplamiento de brida, conectando la salida del motor a la manivela. El lado del motor es más difícil de instalar que la conexión del lado del cigüeñal, ver Fig.8. Por lo tanto, conectamos primero la brida del lado del motor. Una vez que se instala el acoplamiento de brida para ambos motores, como se muestra en la Figura 9, usamos dos piezas de varillas de carbono de 2 mm de diámetro para conectar el chasis y la estructura para caminar izquierda / derecha. Eso está sucediendo en la FIG. 10. En total, usamos 3 piezas de varillas de carbono para conectar estas entidades. Pero en este paso, solo conectamos dos de estos, porque necesitamos girar la manivela y encajar la conexión entre la brida y la manivela. Si se han colocado 3 piezas de varillas de carbono, será más difícil ajustar la posición relativa y conectarlas. Finalmente, tenemos el sistema mecánico ensamblado final, en la figura 11. Siguiente paso, trabajemos en electrónica.

Paso 3: Conexión eléctrica

Conexión eléctrica
Conexión eléctrica
Conexión eléctrica
Conexión eléctrica
Conexión eléctrica
Conexión eléctrica

Todos los sistemas electrónicos necesitan fuente de alimentación. Podemos colocar una batería de 1 celda en algún lugar conveniente, por ejemplo, debajo de la placa de circuitos de la figura 1. La polaridad de la fuente de alimentación es tan crítica que merece una figura dedicada para discutir. La figura 2 destaca la conexión de la batería. En la placa del controlador, la polaridad está marcada con "+" y "GND", consulte la Fig.3. Cuando la batería se agota, se utiliza un cable USB para recargar la batería, consulte la Fig.4. El LED que indica "recarga en proceso" se apagará automáticamente cuando la batería se vuelva a llenar. El último paso es conectar las salidas del motor a los conectores del motor en la placa del controlador. Existen 3 conectores de motor, etiquetados con el número 16 en la figura 3. En la figura 5, el motor izquierdo está conectado al conector más a la izquierda etiquetado con PWM12, y el motor derecho está conectado al conector del medio. Actualmente, girar un tanque (vehículo de conducción diferencial) hacia la izquierda está codificado como una disminución de la potencia de entrada del motor conectada al puerto del motor PWM12. Por lo tanto, el motor conectado al puerto PWM12 debe impulsar el pie izquierdo. Más tarde convertiré toda la función de mezcla para que sea configurable por el usuario. Al intercambiar la elección del conector del motor, o invertir la dirección del conector del motor, podemos solucionar el problema, como que el Strandbeest se mueve hacia atrás cuando se le ordena avanzar, girando en la dirección incorrecta, recuerde que el motor de CC cambia su dirección de giro si el cable de entrada es conectado a la potencia de control en el orden inverso.

Paso 4: Configuración y funcionamiento de la aplicación

Configuración y funcionamiento de la aplicación
Configuración y funcionamiento de la aplicación
Configuración y funcionamiento de la aplicación
Configuración y funcionamiento de la aplicación
Configuración y funcionamiento de la aplicación
Configuración y funcionamiento de la aplicación
Configuración y funcionamiento de la aplicación
Configuración y funcionamiento de la aplicación

Primero descargamos una aplicación para Android de Google Play Store, vea la figura 1. Esta aplicación tiene muchas otras funcionalidades que no podemos cubrir en este instructivo, solo nos centraremos en los temas directamente relacionados con Strandbeest.

Encienda el controlador bluetooth de hardware, aparecerá en la lista de dispositivos de descubrimiento. Un clic largo nos llevará a la función de descarga inalámbrica para ser "instructable" más tarde. Antes de hacer clic e iniciar el control, primero hagamos algunas configuraciones haciendo clic en la esquina superior derecha "Configuración". En la figura 2, está oculto bajo el icono…. La figura 3 muestra varias categorías de configuración. Estas configuraciones, configuradas en la aplicación, se ponen en acción de tres maneras: 1) algunas configuraciones solo afectan el funcionamiento de la aplicación, como la aritmética para obtener el comando de control de potencia de cada motor desde su comando de dirección y aceleración. Viven en la App. En algunos instructables posteriores, mostraremos cómo los reemplazamos con nuestros programas Python / Java. 2) algunos ajustes se envían al hardware como parte del protocolo de control en el aire, como el interruptor entre control directo (el servo gira exactamente en el ángulo ordenado) y control de vuelo por cable (el módulo de función del controlador autónomo incorporado opera el servo canal de acuerdo con el comando del usuario y la actitud actual) 3) alguna configuración se enviará a la memoria no volátil en el controlador de hardware. Por lo tanto, el hardware seguirá estos ajustes cada vez que se encienda sin ser configurado. Un ejemplo será el nombre de la transmisión bluetooth del dispositivo. Este tipo de configuración necesita un ciclo de energía para que surta efecto. La primera categoría en la que nos sumergimos es la "Configuración general" en la Fig.4. La "función de control de la aplicación" en la figura 5 define qué papel está desempeñando esta aplicación, un controlador para el dispositivo de hardware a través de una conexión bluetooth directa; un puente sobre intranet / internet para el control de la telepresencia; y etc. A continuación, la página "Tipo de HW" en la Fig.6 le dice a la aplicación que está trabajando con un vehículo de conducción diferencial, por lo que debe seleccionarse el modo "tanque". Tenemos 6 salidas PWM disponibles en total. Para el Strandbeest, necesitamos configurar los canales 1 a 4 de acuerdo con la Fig.7. Cada canal PWM se opera en uno de los siguientes modos: 1) servo normal: RC servo controlado por señal PWM de 1 a 2ms 2) servo inverso: el controlador invertirá el control del usuario para su salida 3) ciclo de trabajo del motor de CC: a CC motor o algún dispositivo eléctrico de potencia, se puede operar en modo de ciclo de trabajo, 0% está apagado, 100% está siempre encendido. 4) Inversión del ciclo de trabajo del motor de CC: nuevamente el controlador invertirá el control del usuario para su salida. Dado que usamos el motor de CC y nos ocupamos de la dirección de giro del motor por orden de cableado del hardware, elegiremos "ciclo de trabajo del motor de CC" para el canal 1 a 4, consulte la figura 8. También necesitamos fusionar 2 canales PWM en 1 puente H, para permitir el control bidireccional. Este paso se muestra en la figura 9. En el modo “2 canales PWM a 1 puente H”, los canales 1, 3 y 5 se utilizan para controlar ambos canales asociados. Introduce la necesidad de reasignar el control del acelerador, el control hacia arriba y hacia abajo del joystick desde su canal 2 predeterminado al canal 3. Se logra en la configuración de la Fig.10. Como se muestra en la figura 11, cada canal está configurado para tomar una fuente de entrada arbitraria.

Bingo, ahora hemos completado la configuración mínima requerida, y podemos volver a la página que muestra el dispositivo bluetooth visible y conectarlo. En la figura 12, intente tocar el joystick y podremos divertirnos con este Strandbeest. Intente subir una pendiente, recuerde el análisis de la fricción entre los tipos de materiales y lea la actitud estimada del controlador de vuelo, que se muestra en la fila etiquetada con "RPY (deg)", las cuatro entradas en esta fila son balanceo, cabeceo, ángulo de guiñada estimado por el giroscopio y el acelerómetro a bordo; la última entrada es la salida de la brújula con compensación de inclinación.

Trabajo futuro: en los siguientes instructivos, cubriremos gradualmente su interfaz de programación, elegiremos su lenguaje favorito Java o Python para interactuar con Strandbeest y ya no leeremos el estado de Strandbeest desde la pantalla del teléfono móvil. También comenzaremos a programar en la computadora Linux tipo RaspberryPi para temas de programación más avanzados, vea la última figura. Consulte https://xiapeiqing.github.io/doc/kits/strandbeest/roboticKits_strandbeest/ para las piezas mecánicas de impresión 3D y https://github.com/xiapeiqing/m2robots.git para SDK y código de ejemplo si desea comenzar de inmediato. Déjeme saber cuál es su lenguaje de programación deseado, si no es Java o Python, puedo agregar una nueva versión de SDK.

Diviértete con la piratería y estad atentos a los siguientes instructivos.

Recomendado: