URE foro pequeñas
Configuracion del r...
 
Notificaciones
Limpiar todo

Configuracion del rotor basado en el proyecto K3NG Arduino

EC4AGT
Mensajes: 239
#348044  - 21 mayo, 2020 17:35 

Buenas tardes

Estoy terminado el montaje del rotor y para control he usado Arduino Mega incluye arranque y parada suave. Para control de posición un potenciometro efecto hall ( https://es.aliexpress.com/item/32704285996.html

Anteriormente he usado un potenciometro normal 4K7 que tiene limitado el giro. La transmisión la tengo hecha en esta manera que el giro entero del eje de la antena de 360 grados equivale unos 280 grados del giro potenciometro. Esta hecho así para que no se rompa el potenciometro ya que su giro esta limitado. 

Ahora , el potenciometro nuevo no tiene este limite puede girar mas de 360 grados sin romperse. Con esta configuración me surgen varias dudas , la primera es si en el programa puedo decir que el giro de 360 grados se realiza por ejemplo entre 0 y 4.5 V ( es que no se que va pasar si el potenciometro completa el giro entero , pasa los 5 V y vuelve dar otra tensión , menos de 5 V) 

En resumen los 360 repartir entre por ejemplo 0 y 4.5 V ( también podría dar un poco mas ya que el motor permite girar un poco mas de 360 º ) 

Otra duda que tengo es como se configura punto Cero , me refiero si el Norte esta a 0º o a 180º. En caso de estar a 0º si digo que vaya a digamos 280º va girar a al derecha hasta estos 280. O lo hace en otra manera ? Se pone a girar a la izquierda y tarda menos porque tendrá que girar solo 80º.

 

Estas son mis dudas que tengo en el principio del montaje , seguramente que va ver mas . Espero que con Vuestras ayuda podre completar mi montaje 

 

Gracias por todas las respuestas

 

 

 

EC4AGT

Wojtek

73

ResponderCitar
Inició el tema
EA2J
 EA2J
Mensajes: 3764
#348067  - 22 mayo, 2020 07:19 

La posición de partida se puede definir con el código de K3NG, están en el arcghivo rotator_settings.h

#define AZIMUTH_STARTING_POINT_DEFAULT 180 // the starting point in degrees of the azimuthal rotator - only used for initializing EEPROM the first time the code is run

Hay otros ajustes asociadas que tendrás que valorar en tu caso, por ejemplo.

#define AZ_MANUAL_ROTATE_CCW_LIMIT 180 // if using a rotator that starts at 180 degrees, set this to something like 185

#define AZ_PRESET_POT_FULL_CW_MAP 180 // azimuth pot fully counter-clockwise degrees

Tienes que definir también la capacidad de giro incluyendo el "overlap" si lo vas permitir. Hay que tener en cuenta que si utilizas un sistema de preajuste tienes que indicar el sentido de giro, por ejemplo, si la antena está orientada a 170º y preajustas a 240º, por ejemplo, con un inicio de giro a 180º el ajuste tiene que realizarse girando en sentido contrario a las agujas del reloj.

Todos los ajustes están en este archivo, pero en relación a los topes de giro del rotor tienes varios sistemas. Si el rotor lo estás montando tu, los límites de giro se puedes establecer por conectores de fin de carrera en el propio motor y no el sensor. Interrumpes la alimentación del rotor.

Explica con más detalle el proyecto para que te podamos ayudar. Si el rotor es de marca dinos cual es si lo estás contruyendo tendrás que valorar la precisión o la seguridad de un sensor de efecto Hall y si este dispositivo está definido y porevisto los ajustes en el código, en caso contrario podrías conseguir ajustarlo, pero con un potenciómetro normal ibas a manejar mejor la orientación.

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
EA2J
 EA2J
Mensajes: 3764
#348069  - 22 mayo, 2020 07:54 

En cuanto al sensor que también planteas dudas. 

Todas las opciones de sensor están definidas en el archivo rotator_features.h

No tengo experiencia más que con sensores de resistencia variable, por lo que veo el pot que has comprado es un sensor de ángulo de 360º que devuelve una tensión de 0 a 5V por efecto hall. Lo cual hace que la definición del sensor más apropiada es la primera. Como sabes, el código de K3NG, utiliza para este tipo de sensores una entrada analógica de 0 a 5V (0 a 1023 raw) y se pueden definir una serie de parámetros en ralación a los límites de giro y lecturas raw máximas y mínimas. 

//#define FEATURE_AZ_POSITION_POTENTIOMETER

Otras opcions de sensores son las siguientes:

// #define FEATURE_AZ_POSITION_ROTARY_ENCODER
// #define FEATURE_AZ_POSITION_ROTARY_ENCODER_USE_PJRC_LIBRARY 
// #define FEATURE_AZ_POSITION_PULSE_INPUT
// #define FEATURE_AZ_POSITION_HMC5883L 
// #define FEATURE_AZ_POSITION_HMC5883L_USING_JARZEBSKI_LIBRARY
// #define FEATURE_AZ_POSITION_DFROBOT_QMC5883 
// #define FEATURE_AZ_POSITION_GET_FROM_REMOTE_UNIT 
// #define FEATURE_AZ_POSITION_ADAFRUIT_LSM303 
// #define FEATURE_AZ_POSITION_POLOLU_LSM303 
// #define FEATURE_AZ_POSITION_HH12_AS5045_SSI
// #define FEATURE_AZ_POSITION_INCREMENTAL_ENCODER
// #define FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER
// #define FEATURE_AZ_POSITION_MECHASOLUTION_QMC5883

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
EA2J
 EA2J
Mensajes: 3764
#348070  - 22 mayo, 2020 08:12 

 puedo decir que el giro de 360 grados se realiza por ejemplo entre 0 y 4.5 V 

Si puedes definir la lectura máxima y mínima en términos digitales, raw. Como cada entrada analógica del arduino tiene un ADC de 10 bit, el ajuste va de 0 a 1023 (normalmente de 4 a 980) lo que no te puedo decir si esta corrección es únicamente para la lectura y escritura en el display o si también marca los topes de giro (creo que no).

Otra duda que tengo es como se configura punto Cero , me refiero si el Norte esta a 0º o a 180º. En caso de estar a 0º si digo que vaya a digamos 280º va girar a al derecha hasta estos 280. O lo hace en otra manera ? Se pone a girar a la izquierda y tarda menos porque tendrá que girar solo 80º.

Como te he indicado, el propio software es capaz de seleccionar el sentido de giro del rotor para ir de una dirección a otra preseleccionada bien con un mando o bien con un programa en el PC. El programa de Arduino sabe, porque se lo has definido con los ajustes (rotator_settings.h) que puede girar 360 o 450 grados (90 grados de overlap) sabe cual es el punto de partida (generalmente 180º con el norte a 360 o 0). Todo lo puedes definir en los ajustes y en las características.

Ahora bien, dejar que el rotor pueda girar 450º te va a dar mayor velocidad de posicionamiento en determinadas circunstancias pero no podrás poner una protección de sobregiro al motor con un fin de carrera.

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
EA2J
 EA2J
Mensajes: 3764
#348071  - 22 mayo, 2020 08:30 

Anteriormente he usado un potenciometro normal 4K7 que tiene limitado el giro. La transmisión la tengo hecha en esta manera que el giro entero del eje de la antena de 360 grados equivale unos 280 grados del giro potenciometro. Esta hecho así para que no se rompa el potenciometro ya que su giro esta limitado.

Bueno... sin un análisis más a fondo lo que vas a hacer es perder sensibilidad ya que en lugar de la lectura correspondiente a 360/5=72º por voltio, te vas a quedar 92,57º y no vas a proteger el rotor (el potenciómetro si es de giro libre no va a forzar ningún tope. Los límites que tendrías que definir en términos digitales (raw) serían  de 0 a 795.

En cualquier caso, las matemáticas a veces no dan los resultados esperados. Lo mejor para calibrar la lectura de un sensor de dirección de antena con un potenciómetro, es ver lo que realmente está interpretando el microprocesador en la entrada. basta hacer un pequeño programa que te de la curva de lectura (tensión que proporciona el pot en la entrada del microprocesador) mientras giras el rotor de forma manual.

Un vistazo quizá te ayude algo https://enioea2hw.wordpress.com/2020/02/29/rotor-de-antena-con-arduino/

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
EC4AGT
Mensajes: 239
#348085  - 22 mayo, 2020 19:32 

Buenas tardes.

Muchas gracias por las respuestas. Se agradece mucho tu ayuda . Rotor es casero y el motor tiene unos finales de carrera que tienen un pequeño margen de ajuste lo que permite que gire más de 360  grados . También se los puede quitar y entonces motor puede girar sin consecuencias para reductor pero por supuesto no para la antena , sobre todo para el cable . 

Me queda poco para terminar y probar pero me falta una pieza que viene de China y está tardando más de tres meses. Estoy por comprar en otro sitio y denunciar el vendedor .

Cuando ya tendré todo , lo montaré y entonces probaré.

Las preguntas que estoy haciendo sin porque como escribo en el primer post tengo algunas dudas y quiero resolverlas antes de terminar 

 

De nuevo muchas gracias por tu ayuda

EC4AGT

Wojtek

73

ResponderCitar
Inició el tema
EA2J
 EA2J
Mensajes: 3764
#348087  - 22 mayo, 2020 20:41 

Espero haberte ayudado, si tienes alguna pregunta o necesitas alguna aclaración, si puedo ayudarte, no dudes en preguntar. Unas preguntas:

¿Le vas a añadir al controlador mandos manuales? si es así, ¿Los vas a conectar directamente a la alimentación del rotor o vas a activar relés dewsde las salidas digitales del Arduino?

 

 

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
EC4AGT
Mensajes: 239
#348090  - 22 mayo, 2020 22:16 

Hola 

 

Yo hice pruebas con un Arduino Nano pero tenía problemas con la memoria y arranque suave en automático. En manual , con dos pulsadores al dar marcha en ambos sentidos el motor arrancaba y se paraba haciendo rampa. Pero en automático solo lo hacía en una dirección. En otra arrancaba directamente a 100% de velocidad. El problema era en el programa. Para este Arduino he metido un programa recortado para que quepa.

Luego cambié el Nano por Uno y con este ya iba mejor ya que metí una versión más reciente . En mi caso tengo problema con el motor . Tiene dos bobinados , uno para a la izquierda y otro para derecha. Las bobinas están unidas en un punto común y otros dos son para derecha e izquierda. Si conecto el de la derecha va a este sentido y lo mismo pasa con el izquierdo. 

El variador para control de velocidad tiene una salida y tiene dos entradas . Si doy señal a la entrada 1 va motor a la derecha y si doy a la dos va a la izquierda. Hasta aquí todo bien si es un motor normal con dos hilos , positivo y negativo. El cambio de sentido hace el propio variador igual que arranque suave. Pero en caso de mi motor ni lo puedo hacer porque tengo dos bobinados. Así que lo hice así que el variador solo me hace la rampa y el cambio de sentido lo hago con los relés que me conectan una o otra bobina . Para eso me hace falta más salidas y para eso he comprado una versión nueva de Arduino Uno que tiene dos  más . Por si acaso también compré un Mega que está de camino. 

El fallo de que solo arrancaba en automático en un sentido ya está solucionado al cargar una versión más reciente  de programa.

 

Yo , la verdad de Arduino se poco y  estoy ahora aprendiendo. Gracias a un radioaficionado de Polonia que hace estas cosas estoy copiando lo que hace el y adaptando a mis proyectos.

En mi caso solo uso el eje horizontal y la verdad el programa de K3NG es muy complejo pero sabiendo que hay que tocar se puede adaptar a nesecidades de cada uno. 

Buenas noches

 

PS este es el variador

 7355042341659547224

 

Esta publicación fue modificada hace 5 años por EC4AGT

EC4AGT

Wojtek

73

ResponderCitar
Inició el tema
EA2J
 EA2J
Mensajes: 3764
#348094  - 23 mayo, 2020 09:02 

El problema de las placas  de Arduino UNO y NANO es la memoria que no puede cargar el proyecto completo de K3NG, se puede reducir la necesidad de memoria añadiendo (comentando) dos líneas del archivo rotator_features.h

// #define OPTION_SAVE_MEMORY_EXCLUDE_EXTENDED_COMMANDS
// #define OPTION_SAVE_MEMORY_EXCLUDE_BACKSLASH_CMDS

Se libera mucha memoria a cambio de suprimir la expasión de puertas I/O que no son necesarias para un proyecto sencillo y algunos de los sistemas de control. También se deben liberar el cálculo de decimales, así se evita el empleo de variables float que consumen más memoria y la compilación de las instrucciones de depuración. Con esto un rotor que solo maneje el sensor, un freno y variador de velocidad y un preset puede funcionar con un NANO o con un UNO.

// #define FEATURE_ONE_DECIMAL_PLACE_HEADINGS

// #define FEATURE_TWO_DECIMAL_PLACE_HEADINGS

// #define DEBUG_DUMP

#define DEFAULT_DEBUG_STATE 0

DEFAULT_DEBUG_STATE 1       //habilita la compilación de las instrucciones de depuración

Es necesario tener en cuenta que una placa NANO y una UNO utilizan el mismo microprocesador, por tanto tienen la misma memoria, con la ventaja de que la NANO tiene dos puertas analógicas más, el tamaño es mucho menor y los pines tienen un separación de 2,54mm con lo que es compatible con un proyecto definitivo sobre un circuito perforado estándar de 2,54mm.

Los chinos acaban de lanzar una placa nueva, no oficial, compatible con MEGA mucho más pequeña. Incorpora el mismo microprocesador y el ya famoso puerto CH340G que en mi experiencia ha sido un alivio pues permite utilizar placas económicas sin los problemas que crean los puertos con firmware propietario de productores caros. Estoy esperando una placa MEGA 2650 pro, me ha costado poco más de 5 USD por mensajería y en cuatro días ya he recibido que ha pasado la aduana y está listo para la entrega.

https://www.aliexpress.com/snapshot/0.html?spm=a2g0s.12269583.0.0.11251aa45l7teh&orderId=3004209672858001&productId=32909503032

Voy a probar qué tal marcha con el proyecto cargando todo incluido los sistemas de depuración para ver en tiempo real cómo funcionan las líneas del código.

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar

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