Publicidad Google grande + Astroradio
URE foro pequeñas
Arduino control de ...
 
Notificaciones
Limpiar todo

Arduino control de rotores y seguimiento de Luna

Página 2 / 10
EA4ADJ
Mensajes: 4054
#242386  - 25 enero, 2014 23:34 

Muy bien Maximo, fabuloso, al final sere yo el que te pregunte a ti.
A mi el tema de que sea autonomo (sin PC) me da un poco igual, pero lo del la pantalla de cuatro lines y que sea I2C, tengo que verlo, yo uso unas placas promini y estan justitas de pines.
Por otro lado ando liado con el hardware del de elevacion, me refiero a la mecanica, todo de recuperacion. Rotor de antena parabolica "aligerado" y modificado, sensor de elevacion en base a un potenciometro alojado dentro de rotor, casquillos hechos con un tubo de aluminio de 50 mm de diametro y 5 mm de pared y dentro de este un tubo de PVC de 40 de diametro y 2 y pico de pared y dentro el mastil horizontal de acero de 35 mm de diametro, unos topes hechos de dos trozos de tubo de aluminio del de antes (de 50) bueno ya pondre fotos.
73.

Mi hijo me hace profundamente feliz

TNX & 73,
Pedro EA4ADJ IM88jw http://ea4adj.jimdo.com/
La solana. Que pueblo, galan!

ResponderCitar
EA1DDO
Mensajes: 7784
#244072  - 25 enero, 2014 23:44 

Hola,

Escribió:
lo del la pantalla de cuatro lines y que sea I2C, tengo que verlo, yo uso unas placas promini y estan justitas de pines

Al parecer hay varios tipos de sistemas de conectar pantallas al Arduino.
Algunas sencillas se conectan por algo llamado "4 bits". Luego están las I2C.
Las de píxeles ya no se como se conectan. Aún no he llegado ahí...

Las I2C solo son cuatro hilos; positivo, negativo SDA y SCL. Con eso ya funciona, tal como se ve en el vídeo.

Mi pantalla es [strike]Yourduino[/strike] YwRobot LCD2004, por si te interesa.

73, Máximo - EA1DDO

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EA5EMM
Mensajes: 42
#242387  - 28 enero, 2014 11:03 

Hola a todos.

Acabo de recibir la placa de M0UPU asi que ya puedo continuar con el proyecto.

Yo tengo compilado y preparado en codigo Master, de momento probaré con este y luego le iré añadiendo cosas.

He hecho pruebas con un actuador para ver que tal lee los pulsos, he utilizado la entrada digital 13 ( en principio será la que usaré con el reed del actuador cuando esté todo montado) y el resultado ha sido bueno. No puedo poner el esquema ahora pero la conexión del reed al arduino es fácil, uno de los extremos a 5 V y el otro al pin D13, como este pin es un pelin especial lleva un pulldown antes de entrar al pin, el valor de la resistencia ahora no lo recuerdo. Cuando vuelva a casa lo pongo.

Saludos.

EA5EMM
Julio

ResponderCitar
EA1DDO
Mensajes: 7784
#244259  - 28 enero, 2014 18:23 

Hola,

Julio, gracias por compartir tus experiencias.

La verdad es que el cacharrito este da bastante de si y cada día más aplicaciones.
El otro día vi que el mismo K3NG hizo un acoplador automático, que al parecer funciona a las mil maravillas.

Yo por mi parte no he avanzado más.
He encontrado un error por el cual el reloj interno no arrancaba sin GPS, pero ya se lo dije a Goody. Una tonteria que yo mismo pude solucionar.
He practicado algo con la programación, para usar la pantalla de cuatro líneas en ve de la normal de dos.
Y poco más.

Estos días voy a pedir la placa de Ethernet para seguir aprendiendo cosas.
Incluso puede que me den otra placa Mega e intente ponerlas en maestro/esclavo...

Seguiremos por aquí informando.

73, Máximo - EA1DDO

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EA1DDO
Mensajes: 7784
#244279  - 28 enero, 2014 18:26 

Acabo de darme cuenta que el controlador de OE5FJL tiene la misma pantalla de 20x4 pero no es Arduino...

contr_front.jpg

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EA5EMM
Mensajes: 42
#242388  - 28 enero, 2014 21:43 

Hola de nuevo.

Bueno ya tengo la placa, ahora a sacar tiempo para trastear.

Adjunto el esquema del montaje que hice para probar los pulsos con el rele reed del actuador. El código lo añado mañana para el que quiera probarlo.

Otra cosa ¿habeis tenido algún problema con la conexión serie entre el PC y el Arduino? A mi se me cuelga de vez en cuando. Mi PC tiene W7 64 Bits y me da a mi que por ahí van los tiros.

Saludos.

EA5EMM
Julio

ResponderCitar
EA1DDO
Mensajes: 7784
#244296  - 28 enero, 2014 21:51 

Hola,

Escribió:
Otra cosa ¿habeis tenido algún problema con la conexión serie entre el PC y el Arduino? A mi se me cuelga de vez en cuando. Mi PC tiene W7 64 Bits y me da a mi que por ahí van los tiros.

Yo también estoy con Win7 x64 y no tengo ese problema. de hecho no se me ha colgado nunca el Arduino IDE, hasta hoy.

Supongo que has cargado los controladores de Arduino, tal como dicen en su página;

http://arduino.cc/en/guide/windows#toc4

A todo esto, supongo que lo sabes, que el programa de K3NG acepta pulsos también.

73, Máximo - EA1DDO

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EA5EMM
Mensajes: 42
#242389  - 29 enero, 2014 12:54 

Hola de nuevo.

Máximo confié en el instalador y no apliqué el cambio de reiver. Esta tarde si puedo lo reinstalo y a ver que pasa.

Por otra parte las pruebas que estoy haciendo con el pin 13 son precisamente para poder leer los pulsos con el programa. La pega inicial es que utiliza las interrupciones para manejar el estado (high o low) del pin y eso en principio solo esta implementado para los pines 2 y 3 que los utiliza el LCD. Repasando el código, como no voy a utilizar remoto, puedo usar el pin 13 pero tengo que habiliatrle las interrupciones, tengo el código para probarlo finalizado y compilado ahora debo comprobar que funcione correctamente y lea los pulsos. Si es así tendré que modificar el programa para que funcione con la nueva rutina.

Adjunto el código que he hecho para probar el pin 13 para quien le pueda interesar.

Saludos.

EA5EMM
Julio

ResponderCitar
EA5EMM
Mensajes: 42
#242390  - 29 enero, 2014 12:54 

Vaya se cayó el código. Ahi va de nuevo.

EA5EMM
Julio

ResponderCitar
EA5EMM
Mensajes: 42
#242391  - 29 enero, 2014 12:58 

Que no hay manera. Lo pego y acabo antes.


#include
#include
//


// Incluimos la libreria para control del LCD
//


#include
//



//


// Inicializamos la libreria con los pins que vamos a usar
//


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//



volatile int contador = 0; // Incremented in the interrupt

//=======================================================
// Initialize
//=======================================================
void setup() {
//pinMode(PIN_ACTUADOR, INPUT);
pinMode(13, INPUT);
//cambiamos la interrupcion en el pin digital 13
//corresponde al vector PCINT0_vect
PCICR |= (1 << PCIE0);
PCMSK0 |= (1 << PCINT5);
}

//=======================================================
// Main loop.
//=======================================================
void loop() {
lcd.print ("pulsos: ");
lcd.print (contador);
}

//=======================================================
// Rutina para leer Interrupt handler
//=======================================================

ISR(PCINT0_vect){ //ISR (PCINT0_vect), se usa para los pin desde PCINT0 a PCINT7
if (PIND & B00100000) // sera verdadero (TRUE) cuando el bit correspondiente a get SREG este a 1, pin 13 en HIGH
{
contador++;
}
}

EA5EMM
Julio

ResponderCitar
EB1HBK
Mensajes: 236
#242392  - 29 enero, 2014 15:47 

Hola, disculpas de antemano por si el comentario fuese una tontería, ya que no soy programador.

¿Es posible que al reasignar la interrupción al pin número 13 se produzca algún conflicto interno en la arquitectura del micro que altere el funcionamiento?

Lo digo pensando en que el micro tiene ya un programa cargado, el bootloader.

Y si llegado aquí, por si no hubiese metido la pata lo suficiente...

¿Hay algún problema en dejar las interrupciones para leer el encoder en los pines originales y reasignar en cambio los pines de control del LCD, de modo que no empleen los pines de interrupción?

Cambiando la asignación en la definición de pines del LCD: "LiquidCrystal lcd(12, 11, 5, 4, 3, 2)" para no usar los pines 2 y 3.

73.

ResponderCitar
EA5EMM
Mensajes: 42
#242393  - 29 enero, 2014 16:14 

¡De tonteria nada hombre!

La mejor manera de aprender es preguntar o al menos es lo que yo creo.

No se reasigna la interrupción al pin 13, lo que hace el código es leer el vector donde podemos recoger el cambio de estado en el pin 13 y ver si en la posición adecuada el valor es 1 o 0. Aunque no las podamos utilizar directamente podemos saber el estado (HIGH o LOW) de todos los pines del procesador que lleva nuestro Arduino sea cual sea el modelo, digamos que nos acercamos más al lenguaje máquina usando esta rutina.

Y desde luego que sería mucho más fácil usar un LCD I2C como el que ha usado Máximo o usar un Arduino MEGA en lugar del UNO y pasar de historias, pero es que el que tengo es de 4 bits :P

Saludos.

EA5EMM
Julio

ResponderCitar
EA1DDO
Mensajes: 7784
#244336  - 29 enero, 2014 16:26 

Hola,

El código de K3NG tiene un archivo suplementario donde deja elegir que pines quiere uno usar para cada cosa, vamos, que los pines son configurables por el usuario. Creo que lo hizo para estos casos donde ya uno está usando algunso pines para alguna función.

Por otro lado, una de las cosas buenas del Arduino es que todo es bastante asequible (léase barato).
Por lo que uno puede ir mejorando o ampliando su montaje.
Incluso puedes vender los que te sobra, y comprar cosas nuevas.

Estos días voy a ver si compro la tarjeta Ethernet...

Y otra cosa que tengo que ir mirando es una caja, para meter todo esto.
Me gustaría ponerle un joystick en el frente, mejor que botones.

73, Máximo - EA1DDO

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EB1HBK
Mensajes: 236
#242394  - 29 enero, 2014 16:48 

Hola Julio, gracias por la respuesta.

¿Cambiar la lectura de valor a otro pin, para generar la interrupción, tiene limitaciones?

Por ejemplo, en los casos en que el chip esta "dormido" para máximo ahorro energético, y solo vuelve a funcionar disparando las interrupciones 0 ó 1 por una señal externa.

O incluso si podría usarse también unos de los pines que generan PWM, auque entiendo que ambas cosas a la vez no puedan ser.

Vamos, que si lo que has hecho en el código (desconocía esa posibilidad) debería funcionar exactamente igual en cualquier otro pin, que en los dos que el ATmega trae asignados para cada una de las interrupciones externas.

Sigo este hilo con mucho interés y ojeando el código que has posteado ya he aprendido algo nuevo.

73.

ResponderCitar
EA7TB
Mensajes: 139
#242395  - 29 enero, 2014 18:06 

Hola.
El software de K3NG, puede controlar los rotores Prosistel?

Manuel EA7TB
Malaga.

ResponderCitar
EA1RJ
Mensajes: 360
#244344  - 29 enero, 2014 23:19 

Hola,

K3NG positivo para los Prosistel.

Luis, tengo un código a media coción para controlar los actuadores de parabólica, hasta donde llegue fue usar dos pulsadores que activan dos reles y con un pin (no recuerdo cual es) leo los pulsos del reed, si hay pulso y boton CW activo = ++ la variable "pulsos" si es el boton CCW entonces --"pulsos" y hasta ahí funcionaba.

El siguiente paso a programar es ir hasta 0 grados, poner a cero la variable pulsos, ir a 90, leer variable pulsos y ya tenemos los valores para calcular en funció de los pulsos la posición de la antena.

Tengo que buscarlo en el portátil y te lo mando, o mejor...... te lo enseño en Avila que aun lo tengo montado :)

73

ResponderCitar
EA1DDO
Mensajes: 7784
#244376  - 30 enero, 2014 09:47 

Hola,

Ricardo, y Manuel, lo que yo he visto, respecto a los pulsos y sensores incrementales, es que añaden un pulsador que se activa mecánicamente cuando la parábola está en posición de descanso, digamos a 0 grados de elevación. De esa manera la calibración es muy fácil ya que en caso de duda o que algo se haya movido, con mover el sistema a 0 grados, se resetea el contador a cero y ya queda calibrado.

Supongo que ese mismo pulsador sirve como sensor de "fin de carrera".

73, Máximo - EA1DDO

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EA5EMM
Mensajes: 42
#242396  - 30 enero, 2014 10:18 

Hola a todos.

Añado cuatro enlaces por si alguien quiere bucear en el mundo de las interrupciones en Arduino:
Enlace 1
Enlace 2
Enlace 3
Enlace 4

Seguro que hay muchos más.

Máximo ya se que si en lugar del UNO utilizo el MEGA desaparecen los problemas con los pines pero me gusta jugar con estos cacharros. 😆 . El UNO se queda muy justo para este programa y el único pin digital que queda libre (siempre y cuando no se utilice la opción del remoto) es el pin 13. Podemos liberar muchos más si en lugar de usar una LCD de 4 bits utilizamos una I2C. Luego esta lo de añadirle la ethernet para poder acceder a traves de IP mucho mejor que acceder a través del USB. Ahora que los programas de seguimiento que he visto acceden todos por un puerto COM al controlador ¿hay alguno que lo haga a través de IP? También con la opción del seguimiento de la luna instalada en nuestro Arduino bastará acceder a el y elegir esa opción, sería otra forma de trabajar.

Los actuadores llevan dos interruptores de final de carrera, solo los tienes que regularlos a 0º y a 90º de esa forma cuando llega a uno u otro extremo se para.

La calibración en el caso del actuador es como dice Ricardo, saber el numero de pulsos que tenemos desde 0º a 90º para saber el incremento que debemos usar. En el programa de K3NG tiene un incremento de 0,25º por cada pulso y yo eso no me lo acabo de creer, pienso que debe ser mucho menor pero hasta que no lo pruebe, espero que sea pronto, no podre saberlo.

Bueno continuaremos probando cosas.

Saludos.

EA5EMM
Julio

ResponderCitar
EA1DDO
Mensajes: 7784
#244377  - 30 enero, 2014 14:51 

Hola,

Escribió:
El software de K3NG, puede controlar los rotores Prosistel?

Ahora que lo preguntas... me he quedado pensando y no lo veo claro.

El Arduino con el código del K3NG no deja de ser una caja con relés, conectada al PC puedes controlarla con muchos programas. Ideal para sistemas caseros donde uno hace su alimentación y sensores al sistema.

Pero si ya tienes un rotor comercial... ¿Como lo conectas?
Entiendo que puedes no usar el mando original del rotor y a través del Arduino conectarle a sus relés los controles del mando del rotor original, solo usando la alimentación de ese mando, un poco chapuza...
Parecido era el ARS de Pablo EA4TX para aquellos rotores antiguos tipo Hy-Gain, metías dentro del mando original la placa ARS y la controlabas desde el PC.
Pero en este caso, el mando del Prosistel ya tiene conexión serie, ¿Para que voy a poner otra?
Lo que pasa es que ahora el Arduino tiene seguimiento de la Luna y el Sol, el Prosistel él solo no lo tiene, solo con un PC conectado.
Tendría que o hacerme una fuente nueva para el rotor, o usar la original, y comandarla desde el Arduino.

¿Estoy equivocado?

73, Máximo - EA1DDO

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EA7TB
Mensajes: 139
#242397  - 30 enero, 2014 17:33 

Hola.
Maximo tienes razón. El prositel tiene un su controlador para su funcionamiento y tiene un puerto serie.
En local no tengo problema, el problema es cuando quiera manejarlo de forma remota. O tengo un ordenador encendido, con un programa de escritorio remoto, o el rotor fijo.
Buscare información como controlar un puerto serie con un arduino.
Mi idea es mediante una raspberry y arduino controlar la estación de forma remota.
Gracias por tu respuesta.

Manuel EA7TB
Malaga.

ResponderCitar
Página 2 / 10

QDURE - https://qsl.ure.es


Imprime y confirma tus QSL en tan solo tres click.

Nunca fue tan fácil y cómodo
el confirmar tus contactos.

TIENDA ONLINE URE


Publicaciones, mapas, polos, camisetas, gorras, tazas, forros polares y mucho más...

WEBCLUSTER EA4URE


Conoce el nuevo WebCluster de URE, ahora con nuevos filtros e información y compatible con GDURE