domingo, 16 de junio de 2019

PLANCHETA ECUATORIAL: El código de arduino


Como ya he comentado en la entrada anterior, mis ideas previas y conocimientos de Arduino eran “CERO”, pero consultando la web de Arduino, y sobre todo el curso de Arduino para principiantes del canal de youtube comentado, ha sido muy sencillo encontrar el código que me hacía falta.

Lo primero que tenéis que hacer es instalar el IDE de Arduino, descargándolo de su web.

Luego en los numerosos tutoriales que encontrareis por la web, entre ellos el curso indicado, aprenderéis a controlar un motor paso a paso bipolar, como es el nema 17, o similar.

El código que yo je utilizado es muy muy sencillo, y debe mejorarse implementado un botón de “marcha paro”, un “interruptor general” del sistema, una protección contra corrientes inversas añadiendo un diodo, y un motor de cambio de giro.

Mi proyecto aún no tiene nada de eso, el motor tan sólo comienza a girar cuando conecto el sistema a la fuente de 12 V, y si el giro no es el adecuado, simplemente cambio el conexionado de los cables del motor; así de rudimentario y escaso, pero mi prisa es poner el sistema en funcionamiento y probarlo y luego si va bien, mejorarlo añadiendo esos elementos comentados.

Así que ni hemos utilizado la librería “stepper” de Arduino ni nada, lo hemos conseguido de la forma más burda posible.

El código es el siguiente, pero antes debo explicaros una cosa:

Para que el motor no pierda par, y puedo levantar el peso de la cámara, dado que es una Nikon D5000 bastante pesada, hemos utilizado un sistema de avance del tornillo basado en un piñón y un engranaje.

El piñón es el que va acoplado al eje directo del motor y con un diámetro pequeño tendremos un buen par de motor.

Luego acoplado al piñón hemos dispuesto un engranaje mayor, en el que hemos embutido una tuerca M6 que al girar solidaria al engranaje, hace que va varilla roscada avance, levantando el conjunto.

Dado que los dientes del piñón son 20 y los del engranaje 40, la relación de velocidades es de 1 a 2, por cada vuelta del engranaje debemos hacer girar dos veces el piñón.

Además, debemos recordar que con los cálculos de nuestro radio y longitud de varilla rocada curvada, necesitábamos dar una vuelta por minuto al engranaje principal. Revisad las entradas anteriores si no os quedó claro.

Así que nuestro código debe ser tal que haga girar el piñón tres vueltas por minuto para tener en el engranaje una vuelta por minuto.

Nuestro motor nema 17 es de 1.8 º por paso (lo hay de 0.9º por paso, hay que fijarse en qué tipo de motor estamos utilizando) así que para dar una vuelta completa necesitamos dar 360 / 1.8 = 200 pasos.

Vamos a explicar algo importante:

Dado que nuestro piñón solidario al motor debe dar dos vueltas por minuto (para que nuestro engranaje gire una vez por minutos) debe dar en un minuto 200+200 pasos.

Si repartimos los 400 pasos en los 60 segundos de un minuto tenemos que 60 / 400 = 150 milisegundos

Y como un paso se consigue con un valor alto y luego un valor bajo del estado del pin step, significa que tenemos que cambiar el estado del pin step cada 75 milisegundos, esto es la mitad del tiempo del paso.

Step es el pin que da la orden de cambio de estado ALTO o BAJO para que el motor avance un paso

Dir es el pin de cambio de dirección si queremos establecer luego un botón para dicho cambio

24000 pasos son 24000/200 = 120 minutos, lo hago así para que por defecto la plataforma gire durante una hora sin parar cuando la ponga en marcha. Luego en campo yo abro o cierro el obturador el tiempo que quiera, pero la plataforma no la paro nunca, siempre está en marcha a una vuelta por minuto.

El código quedaría así:

#define STEP 4                                 // definimos el pin STEP de A4988 al pin 4
#define DIR 5                                   // definimos el pin DIR de A4988 a pin 5
void setup()
{
  pinMode(STEP, OUTPUT);          // definimos el pin 4 como salida
  pinMode(DIR, OUTPUT);            // definimos el pin 5 como salida
}

void loop()
{
  digitalWrite(DIR, LOW);             // giro en un sentido
  for(int i = 0; i < 24000; i++){       // 24000 pasos para motor de 1.8 grados de angulo de pasoes una hora de giro sin parar
    digitalWrite(STEP, LOW);         // nivel alto
    delay(75);                                   // por 75 mseg
    digitalWrite(STEP, HIGH);       // nivel bajo
    delay(75);                                   // por 75 mseg
  }
}

martes, 11 de junio de 2019

PLANCHETA ECUATORIAL: La electrónica


La electrónica del sistema está basada en Arduino debido a la gran facilidad de programarlo y la gran cantidad de información al respecto que hay en internet, fundamentalmente yo he acudido a tutoriales de Youtube.

Si estáis pensando que y tenía ideas previas de programación de microcontroladores estáis equivocados. Mis conocimientos previos de esto eran “CERO”.

Arduino es un microcontrolador fácil de programar, ya que las definiciones de las variables y sus órdenes con fáciles d comprender para alguien que no tenga conocimiento alguno, eso sí, debe dedicársele un mínimo de tiempo en buscar y comprender la información.

En mi caso he acudido a tutoriales de Youtube. Para mi ha sido muy útil el canal de "código facilito" que está en la dirección: 

"Bitwise Ar" el curso se llama:

"Arduino desde cero en Español" (sobre todo para el motor el capítulo 33 del curso)


 https://www.youtube.com/channel/UC4unPLtykzwO7MB3IvaQZaA

En cuanto al hardware, mi placa ha sido comprada en Aliexpress, es una copia china de la original y funciona perfectamente, el precio de la misma ha sido de 3.63 Euros.



Lo he completado con la compra de un "starter kit" (iniciación) formado por una placa protoboard, cables de conexión, leds, resistencias, botones etc., por un precio de 3.07 Euros.



El precio del motor, un Nema 17 ha sido de 5.89 Euros y el driver, un DRV 8825 es de unos 0.70 Euros.


La fuente de alimentación usada es la de un pc viejo, ya que tiene salidas de 3.3V, 5V y 12 V.

Insisto que mirando varios tutoriales de Arduino es fácil llegar al conexionado correcto y las líneas básicas de programación necesarias.

De la web de Arduino tenemos que bajar la interface de usuario (IDE) y ya podremos conectar nuestra placa de Arduino al pc para comenzar a probar la programación.

https://www.arduino.cc/
 
La de mi motor es tan básica y primitiva que no incorpora ningún botón de marcha para ni nada parecido. Nada más darle alimentación el motor comienza a girar.

Incorporaré botones de marcha paro, pero por ahora mi prisa era la de probar la plataforma y si eso, más adelante la perfeccionaré con esos detalles…

El diagrama de conexión es el siguiente:



viernes, 7 de junio de 2019

PLANCHETA ECUATORIAL. Sus elementos y mejoras


Como indicábamos en la entrada anterior, el sistema consta fundamentalmente de dos tablas que se irán abriendo a la velocidad adecuada y sobre la superior estará montada la cámara de fotos desde la que realizaremos las exposiciones largas.

El eje de la bisagra debe estar alineado con el punto del cielo que “no rota”, y sobre el que todas las estrellas parecen rotar: este punto del cielo es actualmente la estrella Polar.

Con el sistema sí montado, la inclinación de todo el conjunto para alinear (apuntar) la bisagra hacia la estrella polar dependerá del trípode.

Inclinando más o menos el trípode buscaremos la alineación de la estrella polar.

Una vez probado este método me di cuenta de que era muy inestable y difícil de alinear.

Esta es la foto de la primera versión de mi plataforma:
Prototipo inicial
Las pruebas fueron un desastre porque además al ser dos tablas tan estrechas y la cámara tan pesada, se notaba un esfuerzo tremendo hacia abajo, cargando mucho la bisagra y el engranaje, lo que hacía que el motor a veces se atascase.
Las primeras pruebas
Así que para la alineación con la estrella polar había dos opciones: una cuña con un ángulo fijo. Dicho ángulo, para apuntar a la polar debe ser la latitud del lugar desde el que vamos a tomas las fotos.
El inconveniente de este sistema es que si nos movemos en latitud tenemos que cambiar la cuña fija, así que opté por dotar al sistema de otra tercera tabla.

Esta tercera tabla estará nivelada con ayuda de un nivel de burbuja de doble eje (que pronto instalaré) y con los restos de varilla M6 instalé un sistema de elevación manual, así que podré ajustar la inclinación del sistema manualmente en cada latitud que quiera utilizarla. Con esto tendré asegurada la inclinación correcta para buscar la estrella polar y una vez ajustada la inclinación (latitud) sólo tengo que mover horizontalmente el sistema, de izquierda a derecha, para dejarlo perfectamente alineado con la polar.
Vista de las tres partes que componen el nuevo diseño
Es más complicado describirlo que hacerlo en la práctica.
Vista general y detalle de las bisagras y su ubicación. Ya observamos la parte que regulará la inclinación del conjunto y la parte que irá abriéndose poco a poco con ayuda del motor para igualar la velocidad de rotación terrestre
Dos trozos de varilla M6 curvada adecuadamente y dos mandos diseñados e impresos en plástico 3D sobre los que ya he dejado el huevo para embeber la correspondiente tuerca M6.

Imagen de las tres tablas: una bisagra es para la inclinación del sistema y la otra para rotación de la cámara.

En la imagen inferior vemos la el tornillo M6 curvado e instalado y los engranajes. Como se puede ver el engranaje aloja en el centro la tuerca de métrica 6.


Detalle de la nueva posición de los engranajes, el del motor (blanco) se ha puesto en la perpendicular del engranaje de elevación, para que la componente del peso de la cámara no realice esfuerzos tangenciales sobre el mismo, que dificultaban su giro en el prototipo.


Imagen detallada de la instalación de la varilla roscada y curvada con el engranaje de elevación


Detalles del proceso de curvado de la varilla: se ha dibujado una línea sobre una tabla que he utilizado como plantilla. Posteriormente he dispuesto unos tornillos que me permitieron ir doblando y adaptando la varilla al recorrido adecuado sobre la tabla; finalmente con cuidado y paciencia, una varilla M6 no ofrece gran dificultad al doblado.



 

En esta fotografía podemos observar los dos mandos de ajuste y elevación de la plataforma, girandolos a la vez nos permiten ajustar la latitud del lugar para que apuntar posteriormetne a la estrella polar sea muy sencillo


Fotografía del conjunto montado. La pieza que soporta la rotula de la camara tambien ha sido diseñada e impresa por mi. Me permite la instalación de la cámra compensando la inclinación de la tabla de elevación, así la cámara está más recta,


Detalle de la pieza que soporta la rótula

Otra perspectiva del conjunto, muy mejorado respecto al prototipo inicial.


Explicación de los ángulos en la nueva plataforma mejorada: