Introduction: Satellite - Spotting Laser (Traducción Al Español)

update for FOLLOWERS----
(THIS IS THE SAME TUTORIAL, JUST FOR A SPANISH SPEAKING AUDIENCE- new things to come soon)
(Foto y video - katjahommel.com)
----

Éste es un láser montado en una estructura de cañón, diseñado para apuntar y develar la posición de un satélite en paso sobre nuestra locación. Recibe datos de un programa por vía serial y dispara un rayo de luz hacia la posición del satélite designado. Hacerlo sin previa experiencia con electrónica no resultaría fácil, pero aprendiendo un par de cosas resulta muy básico. El diseño tiene dos aspectos que quisiera mejorar en una versión posterior:

• El código funciona, pero el movimiento no es fluído al seguir un satélite en tiempo real. Convertir ángulos expresados en "dobles" (Un número decimal con hasta 265 dígitos como 225.365844E) a los pasos limitados de un motor, es una tarea difícil. La posibilidad de añadir o de perfeccionar el código, está todavía abierta

• No se encontró una solución óptima para el cableado que pemitiera un movimiento fluído en 360° para la base(Azimuth). Así que para pasar de 359.9° a 0°, el cañón se devolverá una revolución entera para continuar el seguimiento. No obstante ya hay diseños para mejorarlo.

Ya estando adevertidos, podemos comenzar:

Step 1: Materiales

1 Arduino, (La versión Bluetooth de Arduino es algo más costosa pero ahorra la necesidad de un módulo BT extra si se desea tener control Wireless)

1 Adafruit Motorshield,  Esto es DIY despe el principio, al comprar éste módulo, debe armarlo y soldarlo usted mismo basado en las instrucciones del vendedor (Lograrlo es bueno para la autoestima)

1 Laser verde, Dependiendo de su país, pueden ser difíciles de conseguir, pero en Ebay o en páginas similares siempre se encuentra algo. No debe ser muy poderoso, por que no se necesita y por que no queremos meternos en problemas.

1 Motor de paso Recomiendo comprar un motor standard como el de Sparkfun, pues otros pueden ser difíciles de configurar. Escogí esta clase de motor para la base que necesita rotar 360°, por que ofrece un buen rango de moviemiento y además es más fácil de controlar que un servo de 360°.

1 Servomotor Los servomotores estándar son los motores más sencillos de manejar y de ensamblar en distintas orientaciones. También poseen una posición 0° absoluta, y es una ventaja saber que el motor volverá a la misma posición cada vez que se reinicie el sistema. Para el rotor de elevación eso es ideal y con un rango de 180° de rotación es más que suficiente.

1 soporte de inclinación  Estos son piezas para montar el láser en el servo.

1 Batería de Litioo fuente de poder externa. Dependiendo de los requerimientos del motor de paso, la fuente de poder debe ofrecer entre 7.4V y 12V con 600mAh - 1000mAh. El link muestra la batería que usé al principio, pero se descargó muy rápido y los cargadores no son nada baratos. El tip salvador es usar una pila de cámara de video. Esto nos salvó en una presentación en Bogotá.  ADVERTENCIA: Una Batería normal de 9V no le va a dar corriente lo suficientemente alta para mover el motor sin fallos, si lo intenta el motor puede "cojear" o no tener torque suficiente.

1 Modem Bluetooth(Opcional) Si no trabaja con un Arduino BT y quiere probar el poder del control wireless, este módulo no está nada mal y tiene alcance decente.

1 sensor de aceleración con brújula(experimental) Esto le da el chance de comunicar a su láser en dónde está el norte desde su posición actual. Esto sólo con fines de precisión.

Cables (Jumpers) macho-macho Una bolsa de cables de 30cm y otrade 15cm de largo funcionan bastante bien. Esta clase de cables (ver link) ayudan a hacer buenas conexiones entre los componentes y dan algo de orden. También sería útil tener un par de rollos de cable para prototipar y unas pinzas para hacer el circuito del láser o arreglos inesperados.

1 cabezote de montaje para el Motor de paso  y algunos Soportes en L para Servos para ensamblar los motores...

1 soporte para el láser.  Esta pieza fue impresa en un hacklab en Berlin. Puede buscar una solución alterna o bajar el archivo .stl y buscar la impresora 3D más cercana

4 placas de acrílico de aproximadamente 10x10 cm o más

Tornillos y tuercas pequeños + ángulos de acero +un taladro y destornillador (Importante para el montaje en el paso 4)

Una pistola de silicona caliente.

Step 2: Motors

1. Revise los componentes: Conécte el  arduino y compruebe si funciona con un ejemplo básico.   Luego ensamble y verifique que el "Motor Shield" funcione. Todos los pasos necesarios para llevar ésto a ccabo se encuentran aquí, (en inglés).

2. Conécte el Motorshield al Arduino y verifique sus Motores:

2.1. conecte el Motor de paso al puerto de la izquerda de su Motor Shield (M1 y M2), y conécte el Sevo al segundo puerto para Servos (Ver imágen).

2.2.Conécte el arduino a la fuente de poder externa.

2.3.Abra el ejemplo "Motor Party" y súbalo al Arduino. Ambos motores deberían moverse. Si no, revise que tenga suficiente poder o vuelva al punto 1!

Step 3:

0. Tome su láser y desenrósque la parte de las baterías. Tome la mitad que contiene el láser y busque el resorte que sale de ésta.

1. Tome uno de los cables conectores y suéldelo al resorte (-).

2. Tme otro cable y suéldelo a la rosca metálica que une ésta parte con la otra (+).

3. Tome un poco de cinta pegante y enróllela alrededor del botón asegurándose de que quede presionado, de forma que el puntero siempre esté en modo encendido.

4. Construya el circuíto de la segunda foto. Son simplemente un transistor (C33725) y una resistencia (680 Ohm) que amplifican la corriente del pin de 3V del Arduino. Para vista esquemática vea la foto 3 o baje el archivo Fritzing (.zip). En este momento ya debería tener el Motor Shield montado sobre el arduino, si no vuelva al prmer paso. La idea es completar el circuito usando los pines sobre el Motor Shield, pero en la imágen vemos sólo el Arduino por cuestión de claridad.

5.Para probar el láser, suba al arduino el ejemplo BlinkWithoutDelay.* Cambie la variable "ledPin" a 10. El pin 13 también está asignado al LED interno del Arduino que se acciona cuando hay actividad serial, y va a interferir con el código más adelante.

Y eso es básicamente toda la electrónica. El resto del tutorial es una sugerencia básica de cómo montar el cañón.


*TIP de la semana: si subir el código falla p.ej.. recibe un "timeOut() error", desconecte brevemente el  Motor Shield  del Arduino, suba el código y conéctelo de nuevo. Eso me pasó bastantes veces...

Step 4:

Ahora, hay que armar el aparato, y de algúna forma usted tiene toda la libertad de darle su propia apariencia. Yo sólo explicaré la solución que pareció más rápida aunque ya vedrán otras más eficaces:

1. Tome dos de las placas acrílicas y abra dos agujeros a 3cm del borde superior, una a 2cm del lado que escoja primero y ora a 2cm del lado opuesto.
 1.1. abra dos agujeros más a 8cm del borde superior, de igual manera, cada uno a 2 cm de cada lado.

2. Instale todos los ángulos de acero apuntando hacia el borde superior. Ahora tome las dos placas acrílicas restantes y abra agujeros de forma que se acoplen con los agujeros de los ángulos...

3. Tom una de las últmias placas y abra otros agujeros para acoplar el arduino. Atornille el arduino con el Motor Shield a ésta.

4. Monte esta placa entre las dos placas con los ángulos en el nivel más bajo y atornille todas las uniones..

5. Tome la última placa y abra un agujero de casi 1 cm en una posición distinta al centro. Éste será para pasar los cables al nivel superior.

6. Pase todos los cables del arduino por el agujero al nivel superior. Seguramente será necesario desconectar elemento por elemento, pasar el cable y conectarlo de nuevo al otro lado .

7. Si todo está bien conectado y ya se aseguró de que los motores se mueven y el láser se enciende y se apaga,fije la última placa al segundo nivel de nuestra caja. Así ya tiene una base sólida para instalar el cañón...

Step 5:

(ADVERTENCIA, el módulo rojo que se ve en las fotos es un Modem Bluetooth. Como es algo opcional, su instalación no hace parte de las instrucciones, pero conectarlo al Arduino es bastante sencillo siguiendo las indicaciones del constructor. Ni siquiera es necesario modificar el código.

1. Pegue el motor de paso con silicona a la parte superior de la base. Instale el cabezote de aluminio en la parte superior del motor, atornille a éste el servo con ayuda de los soportes "en L", y mantenga el Servo en posición horizontal (Esto facilita el giro)

2. Instale un soporte de inclinación(Tilt Bracket) en el Servo, asegurándose de que está en la posición 0°  (Mirando hacia arriba seguramente pues el motor está aciostado - La posición se invierte en el código para que todo funcione). Después de activar el cañón puede que sea necesario corregir esta posición, así que no gaste mucho tiempo en esto por ahora

3. Pegue el circuito del Láser al Servo.

4. Ahora necesitamos ell soporte customizado para el láser que se debe imprimir. (En tiendas de robótica se encuentran soportes para diodos láser pero siempre tuve la impresión de que son mucho más angostos que un puntero láser, así que nunca los probé) Recuerde medir el diámetro del tubo del láser y modificar el diámetro interior de la boca del soporte si aquél llega a ser distinto. Sólo hay que atornillar la base del soporte al soporte de inclinación instalado en el Servo, pasar los cables por el gujero y continuar introduciendo el láser hasta el fondo. Si el diámetro coincide, el láser debe sostenerse perfectamente.

5. Conecte los cables del láser al circuito pegado en el servo. Trate de mantener todo centrado y de que los cables no estén enredados con otros.

Eso es todo en materia de construcción.

Step 6: Código

(Antes de comenzar: Si no le interesa el seguimiento de satélites o simplemente quiere probar el cañón, puede dejar la parte de Processing a un lado y pasar comandos directamente vía Monitor serial de Arduino)

1. Baje e instale Arduino si aún no lo tiene (Muy poco probable).
1.1 Baje e instale Processing si aún no lo tiene.

2. Baje el código del cañón aquí y guárdelo en el folder de su proyecto (Si no quiere usar processing ahora puede saltar al paso 9, pero dando una mirada al paso 6).

3. Baje e instale la librería de satelistica para Processing de aquí.

4. Abra el archivo .pde con Processing y el .ino file con Arduino.

5. Si tiene un Arduino o módulo bluetooth instalado, es momento de sincronizarlo con su computador.

6. Conecte la batería o la fuente de poder a su Arduino, y suba el código por USB. Si tiene BT puede desconectar el USB tras la transferncia y cambiar el puerto de USB a BT. Presione cmd+shift+m (ctrl+shift+m en WIN - Linux) para abrir el Monitor Serial. Póngalo en 57600 Baud o la velocidad específicada en el código (puede ser 115200 si se prefiere).

7.Posicione su cañón mirando al Norte. El uso de la brújula es un paso obligado pero el código no es perfecto aún.

8. Corra el código de Processing y mire la visualización en su pantalla. Si todo va bien, debe ver satélites alrededor de su ciudad!

9.Si no ha configurado la parte de Processing,puede simplemente enviar comandos por em Monitor serial:

"A220"  (220 puede ser cualquier ángulo de 0 a 360) - computa como Azimuth = 220°
"E24" (24 puede ser cualquier ángulo de 0 a 90) - computa como Elevación = 24°
"F1" - es para DISPARAR el láser.
"F0" - es fpara APAGAR el láser.

Y eso sería todo. Pruébelo y sáquelo alguna noche para mirar el cielo.

*Otra vez: si subir el código falla p.ej. recibe un "timeOut() error", desconecte brevemente el  Motor Shield  del Arduino, suba el código y conéctelo de nuevo.