Intento de desarrollo posicionador diseqc de codigo abierto
Moderador: SergioDanielG
-
- Mensajes: 1013
- Registrado: 14 Nov 2012 12:02
- Receptor: Otros
- Ubicación: Mi casa
- Edad: 29
Intento de desarrollo posicionador diseqc de codigo abierto
Hola
Despues de modificar el posicionador diseqc que tenia se me ocurrio que se podria hacer uno con arduino o algun microcontrolador y que sea abierto para que cada uno pueda hacerle las modificaciones que necesiten.
La idea es hacer un posicionador que pueda manejar 2 parabolicas y se pueda conectar a 2 receptores. Para la recepcion de los comandos diseqc estuve viendo un proyecto desarrollado por un usuario de otro foro donde implemento el protocolo, arme todo el proyecto pero no funciono .
Asi que arme este circuito que pueden encontrar aca http://www.ringolake.com/pic_proj/satel ... jects.html
Funciona perfectamente y tiene salida serial, solo tuve que hacerle unas minimas modificaciones al codigo del PIC y lo conecte a un arduino mega.
Actualmente el codigo que tengo funcionando en el arduino hace lo siguiente:
lee y decodifica los comandos diseqc (el PIC los envia en hexadecimal y el arduino los interpreta para mover el motor)
acciona el motor y cuenta los pulsos del actuador (con algunos errores)
lee los satelites guardados en la memoria microSd.
identifica y acciona el motor correspondiente al satellite seleccionado (la idea de esto es usar una parabolica para lineal y otra para circular), Esto funciona de la siguiente manera:
Supongamos que tenemos la siguiente conexion. Receptor -> posicionador ->Diseqc ->LNBX
en el receptor se configura el satelite X con un puerto diseqc 1 y el satelite Y con el puerto 2
Cuando se selecciona un satelite el receptor envia los comandos para cambiar de puerto en el diseqc y tambien envia un GOTO X
con esos datos se relaciona en el posicionador el satelite X con el puerto 1 y se acciona el actuador correspondiente.
Para hacer que se pueda usar con 2 receptores tengo que investigar sobre relays aptos para radiofrecuencia y la idea es hacer que conmuten de 2 formas:
1- cuando no hay tension en uno de los receptores
2- Conmutar con control remoto
Aun falta bastante para que se pueda usar.
Aca ire posteando todos los avances y cuando este listo todo lo necesario para ensamblarlo.
Despues de modificar el posicionador diseqc que tenia se me ocurrio que se podria hacer uno con arduino o algun microcontrolador y que sea abierto para que cada uno pueda hacerle las modificaciones que necesiten.
La idea es hacer un posicionador que pueda manejar 2 parabolicas y se pueda conectar a 2 receptores. Para la recepcion de los comandos diseqc estuve viendo un proyecto desarrollado por un usuario de otro foro donde implemento el protocolo, arme todo el proyecto pero no funciono .
Asi que arme este circuito que pueden encontrar aca http://www.ringolake.com/pic_proj/satel ... jects.html
Funciona perfectamente y tiene salida serial, solo tuve que hacerle unas minimas modificaciones al codigo del PIC y lo conecte a un arduino mega.
Actualmente el codigo que tengo funcionando en el arduino hace lo siguiente:
lee y decodifica los comandos diseqc (el PIC los envia en hexadecimal y el arduino los interpreta para mover el motor)
acciona el motor y cuenta los pulsos del actuador (con algunos errores)
lee los satelites guardados en la memoria microSd.
identifica y acciona el motor correspondiente al satellite seleccionado (la idea de esto es usar una parabolica para lineal y otra para circular), Esto funciona de la siguiente manera:
Supongamos que tenemos la siguiente conexion. Receptor -> posicionador ->Diseqc ->LNBX
en el receptor se configura el satelite X con un puerto diseqc 1 y el satelite Y con el puerto 2
Cuando se selecciona un satelite el receptor envia los comandos para cambiar de puerto en el diseqc y tambien envia un GOTO X
con esos datos se relaciona en el posicionador el satelite X con el puerto 1 y se acciona el actuador correspondiente.
Para hacer que se pueda usar con 2 receptores tengo que investigar sobre relays aptos para radiofrecuencia y la idea es hacer que conmuten de 2 formas:
1- cuando no hay tension en uno de los receptores
2- Conmutar con control remoto
Aun falta bastante para que se pueda usar.
Aca ire posteando todos los avances y cuando este listo todo lo necesario para ensamblarlo.
-
- Mensajes: 1013
- Registrado: 14 Nov 2012 12:02
- Receptor: Otros
- Ubicación: Mi casa
- Edad: 29
Re: Intento de desarrollo posicionador diseqc de codigo abierto
Estuve haciendo pruebas par mejorar la precision de conteo de pulsos y de esta forma funciona perfecto:
Estuve probando 2 formas de contar los pulsos:
1 - Cada vez que el reed switch cambia de estado suma/resta 1 pulso, tiene muy buena precision mas que el posicionador que tengo pero el relee chispea mucho porque el tiempo que esta accionado es muy corto.
2 - Cada vez que el reed switch pasa de cerrado a abierto suma/resta 1 pulso, tiene practicamente la misma precision que el posicionador y el relee no chispea.
Voy a ver la posibilidad de usar transistores para activar el motor y no usar relees, son mas rapidos en conmutar pero tambien tienen otras desventajas:
Disipan calor
Por mas que este desactivado siempre se fuga una minima tension.
Estuve optimizando el codigo para cargar los satelites desde la SD, antes los almacenaba en la RAM pero ahora lee directamente desde la SD la posicion seleccionada.
En la SD hay ficheros .ini que tienen una linea con lo siguiente:
Nombre,pulsos,Puerto diseqc
el nombre del fichero es la posicion configurada en el receptor, si el fichero no existe la posicion no se guardo
Nuevo codigo:
De esta forma libere bastante memoria y puedo poner un menu sencillo para configurar el uso de 1 o 2 motores.
Estuve probando 2 formas de contar los pulsos:
1 - Cada vez que el reed switch cambia de estado suma/resta 1 pulso, tiene muy buena precision mas que el posicionador que tengo pero el relee chispea mucho porque el tiempo que esta accionado es muy corto.
2 - Cada vez que el reed switch pasa de cerrado a abierto suma/resta 1 pulso, tiene practicamente la misma precision que el posicionador y el relee no chispea.
Voy a ver la posibilidad de usar transistores para activar el motor y no usar relees, son mas rapidos en conmutar pero tambien tienen otras desventajas:
Disipan calor
Por mas que este desactivado siempre se fuga una minima tension.
Estuve optimizando el codigo para cargar los satelites desde la SD, antes los almacenaba en la RAM pero ahora lee directamente desde la SD la posicion seleccionada.
En la SD hay ficheros .ini que tienen una linea con lo siguiente:
Nombre,pulsos,Puerto diseqc
el nombre del fichero es la posicion configurada en el receptor, si el fichero no existe la posicion no se guardo
Nuevo codigo:
Código: Seleccionar todo
#pragma region cargar SAT seleccionado
void cargarSAT(byte pos) {
//formar la ruta de acceso, ver de optimizar esto
String temp = "positions/";
temp.concat(pos);
temp.concat(".ini");
char posicion[temp.length()+1];
temp.toCharArray(posicion, sizeof(posicion));
// abrir archivo configuracion diseqc
SdFile rdfile(posicion, O_RDONLY);
// check for open error
if (!rdfile.isOpen()) {
lcd.clear();
lcd.print("Position not set");
delay(3000);
}
// read lines from the config file
char line[100]; //max length
int n;
while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
if (line[0] != '#') { //if not starts with # load the sat
//asignar satelite
satTemporal[0] = split(line, ',', 0);
satTemporal[1] = split(line, ',', 1);
satTemporal[2] = split(line, ',', 2);
}
}
rdfile.close(); // cerrar archivo
}
#pragma endregion
-
- Moderador Global
- Mensajes: 1133
- Registrado: 07 Oct 2015 09:58
- Receptor: Placa Satelital
- Has thanked: 30 times
- Been thanked: 24 times
Re: Intento de desarrollo posicionador diseqc de codigo abierto
Hola
Saludos
Si usas transistores, no te olvides de poner los diodos de protección para que no se quemen los transistores. En un transistor bipolar estos tienen que ir en paralelo con el emisor y el colector, conduciendo corriente en el sentido contrario al del emisor-colector. Algo similar en los FET.
Saludos
-
- Mensajes: 1013
- Registrado: 14 Nov 2012 12:02
- Receptor: Otros
- Ubicación: Mi casa
- Edad: 29
Re: Intento de desarrollo posicionador diseqc de codigo abierto
Si claro, tambien tengo que usarlos con los relees porque los activo con transistores.Alf escribió: ↑19 Mar 2019 16:34 Hola
Si usas transistores, no te olvides de poner los diodos de protección para que no se quemen los transistores. En un transistor bipolar estos tienen que ir en paralelo con el emisor y el colector, conduciendo corriente en el sentido contrario al del emisor-colector. Algo similar en los FET.
Saludos
Estoy usando unos relees que vienen para riel DIN, son economicos y tienen 3 polos - 2 tiros. Lo util de esto es que se pueden cablear de forma que nunca se activen los 2 al mismo tiempo en caso de algun tipo de fallo raro en el micro. dicen activarse en 9ms
https://www.finder-relais.net/en/finder ... ies-60.pdf
Pienso que 9ms no seria tan grave pero quizas despues de muchos movimientos se podria desfasar 1 pulso, el funcionamiento actual es asi:
Código: Seleccionar todo
Inicia conteo de pulsos
Motor activa
Llega a los pulsos
Envia comando apagar relee -Esto tarda unos 125ns segun la libreria digitalWriteFast
Relee apaga - (se supone que tarda 9ms, y el motor estaria funcionando ese tiempo)
Para conteo de pulsos
Voy a hacer pruebas a ver si valen la pena usar transistores. Ademas de los problemas que mencione antes, la tension que se le aplica al motor no es CC "pura".
Al menos no en los posicionadores comunes porque rectifican y filtran con pocos uF la desventaja de usar un filtrado muy alto es que el transformador y el puente de diodos continuamente estarian cargando los capacitores.
Facilmente puedo simular relees con tiempo superior de funcionamiento poniendo un retardo al apagar el relee y ver que tanto afecta.
Quizas estaria bueno implementar una rutina de "automantenimiento" configurable que envie los actuadores a referencia cada tantas horas/dias de funcionamiento.
ahora estoy programando la rutina para guardar una posicion.
-
- Mensajes: 1013
- Registrado: 14 Nov 2012 12:02
- Receptor: Otros
- Ubicación: Mi casa
- Edad: 29
Re: Intento de desarrollo posicionador diseqc de codigo abierto
Algunas imagenes del funcionamiento, los nombres que aparecen en la LCD no se graban desde el receptor. los grabe a mano en un archivo de texto plano.
Tengo que ver si hacer un programita para la PC para cargar los nombres o alguna otra forma de conexion sencilla y barata para configurarlo con un celular.
Si se fijan se relaciona el motor 1 con el puerto 1 del diseqc y el motor2 con el puerto 2, el puerto 6 es un plato fijo.
Los mensajes estan en ingles porque pienso subirlo tambien en otro foro donde tome el codigo para convertir los comandos diseqc Hexadecimales que por ahora es la unica parte del codigo arduino que no programe.
Tengo que ver si hacer un programita para la PC para cargar los nombres o alguna otra forma de conexion sencilla y barata para configurarlo con un celular.
Si se fijan se relaciona el motor 1 con el puerto 1 del diseqc y el motor2 con el puerto 2, el puerto 6 es un plato fijo.
Los mensajes estan en ingles porque pienso subirlo tambien en otro foro donde tome el codigo para convertir los comandos diseqc Hexadecimales que por ahora es la unica parte del codigo arduino que no programe.
-
- Mensajes: 1013
- Registrado: 14 Nov 2012 12:02
- Receptor: Otros
- Ubicación: Mi casa
- Edad: 29
Re: Intento de desarrollo posicionador diseqc de codigo abierto
Quiero implementar tambien la opcion de usar un servo motor para controlar la polaridad. No tengo idea de como funciona en la LNB, osea se que mueve algo dentro pero no se a cuantos grados ni nada. Alguien que tenga experiencia con eso?
En un prinicipio la idea es sensar la tension de la salida del receptor y en base a eso mover el servo.
En un prinicipio la idea es sensar la tension de la salida del receptor y en base a eso mover el servo.
-
- Mensajes: 1013
- Registrado: 14 Nov 2012 12:02
- Receptor: Otros
- Ubicación: Mi casa
- Edad: 29
Re: Intento de desarrollo posicionador diseqc de codigo abierto
Estoy haciendo la PCB que lleva 3 conectores F, 1 es la entrada y los otros las salidas para cada receptor que van a ser conmutadas con un latch relay.
Alguien con conocimiento de diseño para PCB de radiofrecuencia?.
Alguien con conocimiento de diseño para PCB de radiofrecuencia?.
-
- Moderador Global
- Mensajes: 1133
- Registrado: 07 Oct 2015 09:58
- Receptor: Placa Satelital
- Has thanked: 30 times
- Been thanked: 24 times
Re: Intento de desarrollo posicionador diseqc de codigo abierto
Hola
Por lo que he oído en tan altas frecuencias hay una parte de teoría y una de practica o experiencia previa, de hecho realizan varios prototipos antes de tener el definitivo. Esto último se debe a que aparecen oscilaciones por culpa de cercanías o forma que se distribuyeron los componentes, entre otras cuestiones. Por eso la sugerencia que he indicado
Saludos
En circuitos impreso, tengo conocimientos, he realizado varios; pero personas con conocimiento como para ayudar en frecuencias tan altas creo que no vas a encontrar fácilmente. Sugiero que trates de copiar partes de algún circuito similar.
Por lo que he oído en tan altas frecuencias hay una parte de teoría y una de practica o experiencia previa, de hecho realizan varios prototipos antes de tener el definitivo. Esto último se debe a que aparecen oscilaciones por culpa de cercanías o forma que se distribuyeron los componentes, entre otras cuestiones. Por eso la sugerencia que he indicado
Saludos
-
- Mensajes: 1013
- Registrado: 14 Nov 2012 12:02
- Receptor: Otros
- Ubicación: Mi casa
- Edad: 29
Re: Intento de desarrollo posicionador diseqc de codigo abierto
Voy a revisar una diseqc rota es lo mas similar que tengo a mano.Alf escribió: ↑23 Mar 2019 15:49 Hola
En circuitos impreso, tengo conocimientos, he realizado varios; pero personas con conocimiento como para ayudar en frecuencias tan altas creo que no vas a encontrar fácilmente. Sugiero que trates de copiar partes de algún circuito similar.
Por lo que he oído en tan altas frecuencias hay una parte de teoría y una de practica o experiencia previa, de hecho realizan varios prototipos antes de tener el definitivo. Esto último se debe a que aparecen oscilaciones por culpa de cercanías o forma que se distribuyeron los componentes, entre otras cuestiones. Por eso la sugerencia que he indicado
Saludos
Gracias.
-
- Mensajes: 1013
- Registrado: 14 Nov 2012 12:02
- Receptor: Otros
- Ubicación: Mi casa
- Edad: 29
Re: Intento de desarrollo posicionador diseqc de codigo abierto
Estuve haciendo algunas pruebas con unas PCB de mala calidad que tenia y unos componentes reciclados, funciona bien.
Mañana voy a probar en varios TP con el satLink que es lo que tengo para medir señal a ver si hay algun tipo de perdida (supongo que si es algo grave se notara).
Al final no voy a hacer una shield para el arduino porque es mas complicada y seguramente tendria que hacer una pcb de doble faz.
voy a hacer todo en varios modulos y de esa forma pueden armar lo que necesitan (manejar 1 motor o 2, un solo receptor o 2,control remoto,etc).
Yo solo diseñe la PCB, el decodificador de comandos diseqc fue creado por otra persona.
De lo que se ve en las imagenes hay varias cosas por mejorar:
Las PCB, tengo que tratar de no usar pistas a 90° eso fue lo principal que vi en la PCB de la diseqc, voy a tratar de usar el mismo ancho de pista y separacion entre la capa de cobre. No tengo los conocimientos necesarios para diseñar bien esa parte.
No use el inductor de 2.2uH que lleva el decodificador diseqc, difiil de conseguir por aca voy a tener que hacerlo o comprar afuera.
Los conectores son reciclados y tuve que soldar cablecitos para la masa porque se quebraron las patitas (un desaste )
El relee es comun, lo ideal seria usar un relee de enclavamiento mecanico asi no hay tension en la bobina y supongo que tendra menos perdidas la señal.
Mañana voy a probar en varios TP con el satLink que es lo que tengo para medir señal a ver si hay algun tipo de perdida (supongo que si es algo grave se notara).
Al final no voy a hacer una shield para el arduino porque es mas complicada y seguramente tendria que hacer una pcb de doble faz.
voy a hacer todo en varios modulos y de esa forma pueden armar lo que necesitan (manejar 1 motor o 2, un solo receptor o 2,control remoto,etc).
Yo solo diseñe la PCB, el decodificador de comandos diseqc fue creado por otra persona.
De lo que se ve en las imagenes hay varias cosas por mejorar:
Las PCB, tengo que tratar de no usar pistas a 90° eso fue lo principal que vi en la PCB de la diseqc, voy a tratar de usar el mismo ancho de pista y separacion entre la capa de cobre. No tengo los conocimientos necesarios para diseñar bien esa parte.
No use el inductor de 2.2uH que lleva el decodificador diseqc, difiil de conseguir por aca voy a tener que hacerlo o comprar afuera.
Los conectores son reciclados y tuve que soldar cablecitos para la masa porque se quebraron las patitas (un desaste )
El relee es comun, lo ideal seria usar un relee de enclavamiento mecanico asi no hay tension en la bobina y supongo que tendra menos perdidas la señal.