Autor Tema: ¿Cómo se puede hacer lo que aparece en el vídeo?  (Leído 7708 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
¿Cómo se puede hacer lo que aparece en el vídeo?
« en: 14 de Marzo de 2011, 18:27:45 »
Soy aficionado al modelismo ferroviario,utilizo servos para mover los desvíos. En el siguiente enlace aparece el uso de un servo que detecta el final del recorrido que debe hacer. Se mueve hacia un lado ,cuando ya no puede moverse ,se para y se mueve hacia el otro lado.Quedan grabadas las posiciones a derecha e izquierda para volver a hacer el movimiento.

http://www.tamvalleydepot.com/products/octopusservodriver.html


¿Cómo se podría hacer? ¿en qué lenguaje? He estado buscando información por la red y no he encontrado nada. ¿se os ocurre algo?

Un saludo

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #1 en: 15 de Marzo de 2011, 18:18:20 »
Buscando por la red ,parece que se podría hacer midiendo el consumo del servo mediante el adc del pic. Cuando llega a un punto que no puede moverse aumenta el consumo. Lo que no he encontrado todavía es como se puede utilizar el adc para medir no sé, si sería voltaje o intensidad ¿sabéis de alguna página que hable de cómo utilizar el pic para medir voltaje o intensidad?

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #2 en: 15 de Marzo de 2011, 20:13:51 »
No es necesario, la mayoria de los servomotores no tienen giro continuo, basta con decirle a que posición se tiene que colocar dentro de los 180º de su recorrido, y cuando llega a la posición deseada se para.
Tienes mucha información en el foro para poder realizar el proyecto, de todas formas en este enlace puede que te sea más fácil comprenderlo.

http://www.pickey.es/uso_practico_del_pic12f675_iv.html
Saludos desde Granada, España.

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #3 en: 16 de Marzo de 2011, 11:12:28 »
Ya, pero se trata de lo contrario. ¿Es posible conocer la posición en la que está un servo sin mandarle antes un pulso de control para que vaya a esa posición?

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #4 en: 16 de Marzo de 2011, 13:21:15 »
pues claro que es posible conocer la posicion del Servo, por eso nuestros amigo Dogflu te ha puesto un enlace, y para que te entere es mejor que lea sobre programacion, en la Web hay un monton de Info, es solo saber buscar con la palabra Tecnica, cuando programa un servo siempre tiene que calcular todos los parametro, como cualquier otro motor.
por eso te aconsejo que lea sobre los Servos y aqui en el Foro hay muchas informacion.
Saludos

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #5 en: 16 de Marzo de 2011, 15:19:27 »
Ya, pero se trata de lo contrario. ¿Es posible conocer la posición en la que está un servo sin mandarle antes un pulso de control para que vaya a esa posición?

La posición del servo tiene que ser la ultima que se le indicó, no veo la necesidad de saberla. ¿Por qué la necesitas?.
Saludos desde Granada, España.

Desconectado Strepto

  • PIC16
  • ***
  • Mensajes: 159
    • Pictronics
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #6 en: 16 de Marzo de 2011, 17:45:17 »
Creo que el compañero fco1306 se refiere a como saber cuando el servo ha hecho tope, tanto a un lado como al otro, mientras este se esta girando. ¿Me equivoco?

Un saludo!

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #7 en: 16 de Marzo de 2011, 18:28:52 »
Sí así es .Si veis el vídeo que pone octopus II no necesitan saber ni la pocion inicial ni las finales. La electrónica o programación las determinan.
Lo que hacemos para mover los desvíos con servos es ,primero ,sin poner el servo en su sitio, mandar un pulso con la posición central. A continuación ponemos el servo en el desvío elegido y determinados el ángulo que se necesita mover a la derecha e izquierda. Este ángulo se puede conseguir de varias maneras, grabado en el programa, mediante pulsadores ,mediantes potenciómetros conectados al adc, etc. El octopusII determina automáticamente este valor. Si ellos lo han conseguido, de alguna manera se podrá hacer.
Un saludo

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #8 en: 16 de Marzo de 2011, 18:33:54 »
pues claro que te hemos comprendido, lo que sucede que tu no nos comprende, te decimos que el pic o micro esta programado que reconoce cual su fin y cual es su final, y como se ve el video se puede ajustar el tope fino, si te lee tutorial sobre Servo aprendera mas cosas :P
Saludos

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #9 en: 17 de Marzo de 2011, 10:03:04 »
Voy a hacer una prueba en una entrenadora a ver como queda.
Saludos desde Granada, España.

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #10 en: 17 de Marzo de 2011, 18:32:06 »
Antes de preguntar he mirado bastante en otros sitios. Gracias a dogflu66, hice un pequeño programa con un 12f629 que mueve un servo ,desde una posición central, a un lado y a otro y se puede ajustar el recorrido con un par de pulsadores y guarda la posición para cuando se desconecta la alimentación.
Cuando mando el valor de un pulso al servo se mueve hasta esa posición, pero ¿si no puede llegar porque hay algo que se lo impide? ¿cómo se puede saber en que valor se ha detenido?, es lo que no veo cómo se puede hacer.


Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #11 en: 17 de Marzo de 2011, 21:16:27 »
Ahora comprendo; los servos analógicos o de posición no indican la posición que tienen, todo se hace por estimación, se supone que un servo no debería tener nada por medio. De todas formas se puede saber cuando un servo quedo bloqueado mediante la monitorización de su consumo, si el consumo sobrepasa un valor determinado se considera bloqueado, en teoría esto se podría realizar intercalando una resistencia de bajo valor en serie con la alimentación y además utilizar un pic con modulo ADC para leer la caída de tensión en ella. Otra opción podría ser colocar un encoder en el servo que nos suministra pulsos mientras su mecanismo esta girando.
Saludos desde Granada, España.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #12 en: 18 de Marzo de 2011, 02:26:00 »
No lo he probado nunca, pero quizás se podría abrir el servo y tomar una lectura de su potenciómetro interno con el ADC del PIC para saber dónde está situado.

Desconectado fco1306

  • PIC16
  • ***
  • Mensajes: 128
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #13 en: 18 de Marzo de 2011, 18:30:02 »
Bueno, menos mal que al final me hice entender.
Según me han comentado el octopus determina cuando debe  pararse. Cuando pega contra una vía y no puede seguir moviéndose, se para y gira hacia el otro lado. Al servo no le hay que añadirle nada. Sólo enchufar y listo. Por lo poco que he encontrado en la red parece que se consigue midiendo el consumo. Encontré una página de modelismo que hablaban de poner 4 resistencias de 1 omnio 1/4 w en paralelo para obtener 1 de 0.25 y 1w. Decían que había que  conectar una entrada al adc y la otra a vref pero no aparecía ni esquema ni nada más. ¿Sabéis de algún sitio a donde pueda dirigirme?.
Un saludo

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: ¿Cómo se puede hacer lo que aparece en el vídeo?
« Respuesta #14 en: 18 de Marzo de 2011, 23:55:13 »
En realidad no necesitas buscar mucho, solo tienes que establecer dos niveles de corriente, una cuando el servomotor esta trabajando normalmente y la otra cuando hace tope. Esto puedes medirlo con un amperímetro. Una vez que tienes estos dos valores solo tienes que aplicar la ley de Ohm.
Ejemplo:
1º) para un consumo de 250mAh, tendrás en el extremo de la resistencia V= 0.250*0.25=62.5mV
2º) para servo parado >500mAh, “ V= 0.5*0.25=125mV

Paso seguido tomamos el camino más simple y calculamos la resolución del ADC suponiendo que Vref = 5v. Y utilizaremos la máxima resolución del módulo, 10bit:
RD= 5000mV/1024puntos adc=4.8mV, por lo que el rango dinámico de trabajo del adc permite trabajar para las lecturas anteriores, porque la resolución mínima del adc es de 4.8mV que es mucho menor que la menor de las lecturas necesarias 62.5mV.

La conexión es simple, negativo del servo a extremo de la resistencia y el otro extremo de la resistencia a masa del circuito. Lo que es un poco más complejo es la conexión de la entrada del pic, hay que poner un condensador de 10nF entre la entrada del pic y masa y, otro en paralelo de unos 3.3uF de tántalo, luego todo esto va conectado al negativo del servo a través de una resistencia de unos 2k2.

La lectura del articulo de este enlace puede que te ayude algo más a comprender lo anterior expuesto:

http://www.pickey.es/uso_practico_del_pic12f675_v.html
« Última modificación: 19 de Marzo de 2011, 10:04:55 por dogflu66 »
Saludos desde Granada, España.