====== Curiosity BTL ======
**Curiosity MSL** \\
**1.** La Mars Science Laboratory (abreviada MSL), conocida como Curiosity (Curiosidad en español), es una misión espacial que incluye un astromóvil de exploración marciana dirigida por la NASA. Fuente: [[https://es.wikipedia.org/wiki/Curiosity|Wikipedia]]
Curiosity BTL (Bricolabs Technology Laboratory) es un proyecto para replicar a escala el rover marciano MSL en un modelo imprimible.
{{:proyectos:464396e3-3773-4d24-80c0-8d5a307547a3.jpeg}}
Afortunadamente no tendrá que llegar a tus manos en una maniobra como los [[https://www.jpl.nasa.gov/infographics/infographic.view.php?id=10776|7 minutos de terror]], o en el estado de la pobre [[https://es.wikipedia.org/wiki/Schiaparelli_EDM|Schiaparelli]]. Toda la información necesaria para construirla y programarla estará aquí.
===== Mecánica =====
La parte mecánica es un curioso mecanismo con balancines llamado [[https://es.wikipedia.org/wiki/Rocker-bogie|rocker-bogie]] y una barra estabilizadora que equilibra los trenes de ambos lados. Tiene 6 ruedas motrices y 4 ruedas directrices. Según NASA es capaz de superar obstáculos dos veces el diámetro de la rueda.
Hay dos diseños, a escalas 1:5 y 1:10.
==== Modelo escala 1:5 ====
El diseño completo de las piezas imprimibles está en [[https://github.com/felixstdp/curiosity_btl/tree/master/scale_1_5|Github]] y [[https://www.thingiverse.com/thing:3556381|Thingiverse]].
{{:proyectos:assembly.jpg|assembly.jpg}}
{{:proyectos:curiosity:cbtl_2.jpg?600|cbtl_2.jpg}}
{{:proyectos:75aff6e9-3b2f-486d-8964-294b9db05791.jpeg}}
{{:proyectos:curiosity:cbtl_3.jpg?800|cbtl_3.jpg}}
* 4 servos 3003
* 6 motores 2418 / 25D
* 4 rodamientos 15x35x11
* 8 perfiles de aluminio 10x10mm (2 x 135mm, 2 x 125mm, 2 x 100mm, 2 x 115mm)
* Una plancha de 3mm de Dibond de 240x280mm (opcional marco de perfil de aluminio por debajo)
* Tornillería variada de M2.5, M3, M4 y M5.
Hay dos opciones para las ruedas: una con cubiertas comerciales (Pololu Dagu) y otra con cubiertas impresas en 3D con filamento elástico.
{{:proyectos:3dprinted_vs_dagu.jpg?800x800|3dprinted_vs_dagu.jpg}}
En este [[https://youtu.be/SUMJhzagFPE|enlace]] puedes verlo en funcionamiento.
==== Modelo escala 1:10 ====
Esta parte del proyecto ha evolucionado con mejoras y ahora es [[https://bricolabs.cc/wiki/proyectos/perseverance|Perseverance]]. En [[https://github.com/felixstdp/curiosity_btl|Github]] y [[https://www.thingiverse.com/thing:2414954|Thingiverse]] se mantiene el original como código legacy. Si empiezas de cero, te recomendamos que te pases a Perseverance.
{{:proyectos:curiosity:curiosity_1_800.jpg?800}}
==== Variantes (fork) ====
Escala 1:15 por @diegogg [[https://www.thingiverse.com/thing:3432863|https://www.thingiverse.com/thing:3432863]]
===== Electrónica =====
Para controlar 6 motores con inversión de giro y 4 servos necesitamos muchas salidas PWM. Una manera de hacerlo que permite ser controlado indistintamente con un Arduino o una Raspberry Pi es basarse en una controladora de 16 servos con bus i2c de [[https://www.adafruit.com/product/815|Adafruit]].
La alternativa sencilla a esto es utilizar un Arduino Mega2560, en su versión original o la [[https://es.aliexpress.com/store/product/WAVGAT-Mega-2560-PRO-MINI-5V-Embed-CH340G-ATmega2560-16AU-with-male-pinheaders-Compatible-for-arduino/1962508_32964918763.html|versión compacta]] que se ofrece como alternativa (aunque con chip de comunicaciones CH340). Para la versión 1:10 se han utilizado drivers L9110. Para la versión XL se han utilizado drivers L298.
Para el Arduino Mega original se ha utilizado una [[http://3dmodularsystems.com/en/arduino/531-mega-sensor-shield-v12-expansion-board-with-xbee.html|shield]] que replica todas las salidas añadiendo a cada una alimentación y masa, y además tiene un zócalo para un módulo BluetoothBee. Con ella y los drivers L298, puede hacerse un cableado muy limpio con una cinta Dupont hembra-hembra de 20 cm con 19 cables con el siguiente orden:
7-30-31-32-33-6-5-34-35-36-37-4-3-38-39-40-41-2-GND
{{:proyectos:curiosity:foto_11-4-19_20_15_45.jpg?1000|foto_11-4-19_20_15_45.jpg}}
Hay una pieza para montar los tres drivers en la parte trasera del rover, donde el original tiene el generador eléctrico de radioisótopos (RTG), y opcionalmente puedes ponerle una cubierta que los protegerá un poco y se asemeja al RTG original.
Esa disposición de cableado permite utilizar un código muy sencillo para operar cada motor por separado.
void setmotor(int m, int v){
int pwm = 8-m;
int dir1 = 28+2*m;
int dir2 = 29+2*m;
v = constrain (v,-255,255);
digitalWrite(dir1,v>=0);
digitalWrite(dir2,v<0);
analogWrite(pwm,abs(v));
}
Puedes ver más detalles del uso de ese driver de motores (y otros) e nuestra [[https://bricolabs.cc/wiki/guias/control_de_motores|wiki]].
{{:proyectos:curiosity:cableado.jpg?600|cableado.jpg}}
En el mástil irá montada una cámara para poder conducir Curiosity por radiocontrol con gafas FPV (First Person View) o un monitor externo. Puede ser una cámara dedicada como las usadas en drones o una GoPro. En cualquier caso será un sistema independiente del control de movimiento, tanto si este es autónomo como si es teledirigido desde Bluetooth o con un mando infrarrojo.
===== Programación =====
Avanzar recto es una maniobra sencilla. Para describir una curva habrá que girar los servos de las esquinas, en dirección opuesta los de delante y los de atrás. Y para girar sobre su propio eje será necesario que el eje de todas la ruedas apunte al centro del rover. Programar el giro de los servos requerirá una calibración de ajuste una vez montados.
{{:proyectos:movimientos_rover.png}}
Los programas para Arduino MEGA están [[https://github.com/felixstdp/curiosity_btl/tree/master/scale_1_5/arduinomega|aquí]]. Hay un programa para probar y calibrar los servos, un programa de movimientos aleatorios y un programa para manejarlo con una emisora de radiocontrol [[https://bricolabs.cc/wiki/guias/leer_senales_ppm_rc|Turnigy]].
==== Programa básico para Arduino ====
José Antonio Vacas @javacasm tieen ya un [[https://github.com/javacasm/curiosity_btl|desarrollo]] basado en Arduino con diferentes niveles de complejidad, con los programas y los esquemas electrónicos.
===== Equipo =====
* [[:user:felixstdp|Félix]]
* [[https://twitter.com/javacasm?lang=es|@javacasm]]
* [[https://twitter.com/diegogg?lang=es|@diegogg]]
===== Enlaces =====
* [[https://github.com/felixstdp/curiosity_btl|Repositorio del proyecto en Github (Félix)]]
* [[https://www.thingiverse.com/thing:2414954|Repositorio de las piezas en Thingiverse 1:10]]
* [[https://www.thingiverse.com/thing:3556381|Repositorio de las piezas en Thingiverse 1:5]]
* [[https://github.com/javacasm/curiosity_btl|Repositorio de programas de @javacasm]]
* [[https://www.thingiverse.com/thing:3432863|Modelo a escala 1:15 de @diegogg del CEIP García Lorca]]