Herramientas de usuario

Herramientas del sitio


proyectos:perseverance

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
Próxima revisiónAmbos lados, revisión siguiente
proyectos:perseverance [2022/06/02 11:48] – [Módulo de RC para avance, retroceso y giro] Félix Sánchez-Temblequeproyectos:perseverance [2022/06/08 11:51] – [Módulo de RC para avance, retroceso y giro] Félix Sánchez-Tembleque
Línea 11: Línea 11:
 1. intr. Mantenerse constante en la prosecución de lo comenzado, en una actitud o en una opinión. 1. intr. Mantenerse constante en la prosecución de lo comenzado, en una actitud o en una opinión.
  
-{{:proyectos:percy_wired.jpg|}}+{{:proyectos:percy_wired.jpg|percy_wired.jpg}}
  
 ===== Mecánica ===== ===== Mecánica =====
  
 La parte mecánica mantiene el mecanismo de balancines del original -**[[https://es.wikipedia.org/wiki/Rocker-bogie|rocker-bogie]]** - con barra estabilizadora, pero se han rediseñado algunas piezas para que sea más robusto y más fácil de imprimir. También se ha rediseñado el chasis, que ahora está basado en una plancha de Dibond. En una esquina tiene un soporte abatible para montar una GoPro u otra cámara y conducirlo en modo [[https://es.wikipedia.org/wiki/Pilotaje_con_visi%C3%B3n_remota|FPV]]. La parte mecánica mantiene el mecanismo de balancines del original -**[[https://es.wikipedia.org/wiki/Rocker-bogie|rocker-bogie]]** - con barra estabilizadora, pero se han rediseñado algunas piezas para que sea más robusto y más fácil de imprimir. También se ha rediseñado el chasis, que ahora está basado en una plancha de Dibond. En una esquina tiene un soporte abatible para montar una GoPro u otra cámara y conducirlo en modo [[https://es.wikipedia.org/wiki/Pilotaje_con_visi%C3%B3n_remota|FPV]].
- +
 El diseño está completo en [[https://github.com/felixstdp/Perseverance/tree/main/3dprint|Github]], tanto en formato STL para imprimir directamente como los fuentes en .SCAD para modificar. Cada rueda tiene una llanta de PLA, una cubierta de Filaflex y un motor N20. Las cuatro de las esquinas utilizan un servo para girar; para que el diseño sea robusto lo ideal es que sean de engranajes metálicos. En conjunto es mucho más sencillo -y económico- que el Curiosity en escala 1:5. El diseño está completo en [[https://github.com/felixstdp/Perseverance/tree/main/3dprint|Github]], tanto en formato STL para imprimir directamente como los fuentes en .SCAD para modificar. Cada rueda tiene una llanta de PLA, una cubierta de Filaflex y un motor N20. Las cuatro de las esquinas utilizan un servo para girar; para que el diseño sea robusto lo ideal es que sean de engranajes metálicos. En conjunto es mucho más sencillo -y económico- que el Curiosity en escala 1:5.
  
Línea 37: Línea 37:
 ==== Módulo de RC para avance, retroceso y giro ==== ==== Módulo de RC para avance, retroceso y giro ====
  
-Para hacer moverse las ruedas vamos a utilizar un sencillo [[https://es.aliexpress.com/item/4000093412268.html|módulo de radiocontrol]] (RC) que ya usamos en el proyecto [[https://bricolabs.cc/wiki/proyectos/meccano_rc|Meccano RC]]. Su conexión es muy simple: tiene una entrada de alimentación (cuatro pilas AA desechables o recargables) y dos salidas para dos motores con un puente H que permite la inversión de giro. En nuestro caso conectaremos a cada una de estas salidas los tres motores de cada lado en paralelo. Al hacerlo debemos ser cuidadosos con la polaridad para que todos los de cada lado giren en el mismo sentido y además lo hagan según la dirección del mando.+Para hacer moverse las ruedas vamos a utilizar un sencillo [[https://es.aliexpress.com/item/4000093412268.html|módulo de radiocontrol]] (RC) que ya usamos en el proyecto [[https://bricolabs.cc/wiki/proyectos/meccano_rc|Meccano RC]]. Su conexión es muy simple: tiene una entrada de alimentación (cuatro pilas AA desechables o recargables) y dos salidas para dos motores con un puente H que permite la inversión de giro. En nuestro caso conectaremos a cada una de estas salidas los tres motores de cada lado.
  
-{{:proyectos:modulo_rc.png|}}+{{:proyectos:modulo_rc.png}}
  
-La operación del mando RC es sencilla, cada cruceta maneja las ruedas de un lado. Pulsando ambas hacia delante o atrás de moverá en ese sentido. Pulsando uno hacia delante y otro hacia atrás rotará sobre si mismo, pero para eso necesitaremos posicionar los servos.+La operación del mando RC es sencilla, cada cruceta maneja las ruedas de un lado. Pulsando ambas hacia delante o atrás de moverá en ese sentido. Pulsando uno hacia delante y otro hacia atrás rotará sobre si mismo, pero para eso necesitaremos girar las ruedas de las esquinas con los servos. Esto último no es imprescindible para que Perseverance se mueva, aunque mejora la fluidez.
  
 El módulo va montado en un soporte ad-hoc en la parte trasera. Y para protegerlo lleva una cubierta con la forma del [[https://mars.nasa.gov/mars2020/spacecraft/rover/electrical-power/|RTG]] de Perseverance. El módulo va montado en un soporte ad-hoc en la parte trasera. Y para protegerlo lleva una cubierta con la forma del [[https://mars.nasa.gov/mars2020/spacecraft/rover/electrical-power/|RTG]] de Perseverance.
  
-{{:proyectos:rc_perseverance.png|}}+{{:proyectos:rc_perseverance.png}}
  
 +Para conectar los motores debemos ser cuidadosos con la polaridad para que todos los de cada lado giren en el mismo sentido y además lo hagan según la dirección del mando.
  
 ==== Posicionamiento de los servos ==== ==== Posicionamiento de los servos ====
  
-Cuando el rover avance o retroceda en línea recta, todos los servos deberán hacer que las ruedas estén paralelas. Cuando rote sobre si mismo debemos colocarlas de modo que sus ejes pasen por el mismo punto central. Y para saber qué posición elegir necesitamos saber la dirección de giro de los motores mandada por el módulo RC, lo que haremos con un circuito integrado con optoacopladores (CNY74-4) utilizados como sensores.+Cuando el rover avance o retroceda en línea recta, todos los servos deberán hacer que las ruedas estén paralelas. Cuando rote sobre si mismo debemos colocarlas de modo que sus ejes pasen por el mismo punto central.
  
-{{:proyectos:optoacoplador_motores_v2.png|}}+{{:proyectos:movimientos_rover.png|}} 
 + 
 +Para saber qué posición elegir necesitamos saber la dirección de giro de los motores comandada por el módulo RC, lo que haremos con un circuito integrado con optoacopladores (CNY74-4) utilizados como sensores. 
 + 
 +{{:proyectos:optoacoplador_motores_v2.png}}
  
 Cada motor lleva dos fotodiodos en paralelo invertidos, de modo que **sólo uno se encenderá**  en función del giro y nos dará salida en el fototransistor asociado, y con ello la información que queremos en dos entradas digitales D1/D2 del Arduino según la siguiente tabla: Cada motor lleva dos fotodiodos en paralelo invertidos, de modo que **sólo uno se encenderá**  en función del giro y nos dará salida en el fototransistor asociado, y con ello la información que queremos en dos entradas digitales D1/D2 del Arduino según la siguiente tabla:
Línea 60: Línea 65:
   * 1/0: el motor gira en sentido contrario.   * 1/0: el motor gira en sentido contrario.
   * 1/1: es imposible, si sucede revisa el cableado.   * 1/1: es imposible, si sucede revisa el cableado.
 +
 +{{:proyectos:d08845a9-63be-4960-aea4-3f436d7a984e.jpeg|d08845a9-63be-4960-aea4-3f436d7a984e.jpeg}}
 +
 +==== Conexionado de Arduino ====
 +
 +Las salidas del optoacoplador se configuran como entradas en un Arduino que a su vez dará salida PWM para controlar cuatro servos. En la foto se ve el montaje con un Arduino Pro Micro, pero cualquiera valdrá. Además se ha utilizado un pequeño step-up para garantizar la tensión de alimentación y que el sistema pueda alimentarse también con 4 pilas AA recargables.
 +
 +{{:proyectos:d022deec-dca8-40cc-8547-791bc3254bf4.jpeg|d022deec-dca8-40cc-8547-791bc3254bf4.jpeg}}
 +
 +==== Montaje completo ====
 +
 +El diagrama de bloques del control es el siguiente
 +
 +{{:proyectos:bloques_percy.png}}
 +
 +El esquema se refiere al flujo de información, la parte electrónica. La parte de alimentación es diferente: las pilas AA alimentan al receptor RC, y en la salida de su interruptor (positivo, cable rojo) hemos soldado un cable de alimentación para que al encender y apagar el módulo lo hagamos con todo lo demás. Ese cable alimenta los servos y el elevador DC-DC para el Arduino, que a su vez con su salida de 5V alimenta el optoacoplador. Para estas dos alimentaciones (directa de las pilas/5V de Arduino) utilizamos las dos líneas laterales de la placa de prototipado.
 +
 +La implementación física, por debajo del Dibond es la siguiente.
 +
 +{{:proyectos:e01efb18-bfca-4246-9488-b05e8f17aaf7.jpeg|e01efb18-bfca-4246-9488-b05e8f17aaf7.jpeg}}
  
 ===== Programación ===== ===== Programación =====
Línea 78: Línea 103:
     servo6.write(s6giro);     servo6.write(s6giro);
   }   }
-  elseif{+  else{
     servo1.write(s1center); //posicion recta     servo1.write(s1center); //posicion recta
     servo3.write(s3center);     servo3.write(s3center);
     servo4.write(s4center);     servo4.write(s4center);
     servo6.write(s6center);     servo6.write(s6center);
 +  }
 } }
  
 </code> </code>
  
-El programa completo está [[https://github.com/felixstdp/Perseverance/blob/main/servos.ino|aquí]].+El programa completo está [[https://github.com/felixstdp/Perseverance/blob/main/perseverance.ino|aquí]]. La lectura de los optoacopladores tiene algo de ruido por lo que se leen 5 veces y se hace un promedio.
  
 ===== Equipo ===== ===== Equipo =====
proyectos/perseverance.txt · Última modificación: 2022/06/10 11:20 por Félix Sánchez-Tembleque