Foro

Bienvenido al Foro de zonafpv.com, poco a poco estamos mejorando el sistema, para participar en el foro hay que empezar por este hilo:

PCA9685 16 canales ...
 
Comparte:

PCA9685 16 canales controladora de servos para inav  

  RSS
Carabin
(@carabin)
Principiante

Abro este tema aquí ( no sé si será el adecuado) para preguntar si alguien ha usado esta tarjeta PCA9685 , se controla por I2c parece factible que funcione y el precio es contenido , es como un extensor de 16 canales para poder alimentarlo externamente y no sobrecargar el BEC de nuestra controladora y que quede un poco más ordenado el motaje .

Os pongo el enlace

https://www.banggood.com/PCA9685-16-Channel-12-bit-PWM-Servo-Motor-Driver-I2C-Module-For-Arduino-Robot-p-1170343.html?cur_warehouse=CN

 

Aunque esta diseñada para Arduino he visto que ya hay alguien que la esta usando en inav , he encontrado esto navegando .

y esto traducido por Google , espero vuestras respuestas

Using PCA9685 with INAV

-----------------------------------

Utilizando PCA9685 con INAV

Una de las limitaciones de hardware de los controladores de vuelo que generalmente ignoran los usuarios multirrotor es una cantidad de salidas PWM. Para volar un quadcopter necesita "solo" 4 salidas PWM. Como la mayoría de los FC tienen 6 salidas y el 90% de los multirrotor son cuadricópteros, no hay problema.

En el caso de los aviones, esto no es tan simple. 6 salidas PWM es un mínimo absoluto para volar un avión clásico con MultiWii y derivados (Baseflight, Cleanflight, INAV): 2 salidas reservadas para motores, 2 alerones, elevador, rudded. De repente, 6 salidas apenas cumplen con los requisitos. Si quieres flaps, motor de gasolina, pan & tilt o cualquier otra cosa, faltan algunas salidas.

Durante algún tiempo, INAV intenta solucionar este problema mediante la compatibilidad con el controlador PWM externo: PCA9685 .

PCA9685 es un pequeño dispositivo inteligente: permite controlar 16 salidas PWM a través del bus I2C. Puede que no sea perfecto, 12 bits con una frecuencia de actualización de 50 Hz le da una precisión de 5 USD, pero esto es más que suficiente para manejar un servo.

Para conectar el PCA9685 a un controlador de vuelo y usarlo en un avión, necesitará lo siguiente:

  • Controlador de vuelo STM32F3 o STM32F4 con bus I2C disponible
  • Software INAV
  • Placa PCA9685 usando la dirección de bus predeterminada 0x40
  • algunos cables

La conexión entre PCA9685 y FC es sencilla:

5V -------> Vcc
GND ----> GND
SCL------>SCL
ASD------>ASD

Importante: 5V para alimentar los servos deben aplicarse por separado usando la línea V + . La línea Vcc alimenta solo el circuito PCA9685.

Para que funcione, el servo controlador PWM externo ( feature PWM_SERVO_DRIVER) debe estar habilitado en el configurador INAV. Desde este momento, las salidas de servo PWM en el controlador de vuelo se desactivarán y pasarán a PCA9685.

Algunos tecnicismos:

  • Los servos se actualizan en grupos de 4 (1-5-9-13, 2-6-10-14, 3-7-11-15, 4-8-12-16) con una frecuencia de 50 Hz por grupo (200Hz en total )
  • El servo se actualiza solo si la diferencia entre el valor actual y el nuevo es superior a 5us
  • Si PCA9685 no se detecta durante el arranque y la función está habilitada, no habrá salida servo disponible
  • Si la conexión entre FC y PCA9685 se interrumpe en vuelo, PCA9685 mantendría el valor actual en cada salida
  • el mezclador actual permite solo 8 servos, esto se planea cambiar en un futuro próximo

 

PCA9685
This topic was modified hace 9 meses 3 times by Zona FPV
Citar
Respondido : 06/03/2019 6:12 pm
Bastian
(@bastian)
Miembro Moderator

Bueno aunque no tenia conocimiento de esta FC, como complemento a una F3 o F4 con INAV, me parece muy interesante y posibilita el tener 8 salidas de servo, con una FC Omibus de las normalitas. Lo unico que me preocupa es la robustez del sistema i2c, para gestionar esta salida de servos, pero si es fiable, lo veo muy interesante.

 

ResponderCitar
Respondido : 06/03/2019 6:34 pm
Bastian
(@bastian)
Miembro Moderator

Por el precio que tiene, y si verdaderamente funciona como dicen, aunque solo este preparado INAV para sacar un maximo de 8 canales, vale la pena.

Es mas aunque solo se utilice como Rail de salida de servos, ya vale la pena, yo a fin de cuentas es algo que siempre hago, me refiero a utilizar un Rail externo con alimentación independiente para los servos, y esto es algo que simplificaria mucho cualquier montaje.

 

ResponderCitar
Respondido : 06/03/2019 6:43 pm
Carabin
(@carabin)
Principiante

Habría que probar si funciona con la F411 y F405 , por qué todo el montaje de los servos estaría aquí , estas FC tienen I2C lo que no se si al activarlas en inav activas la dirección 0x40

ResponderCitar
Respondido : 06/03/2019 6:55 pm
rortega
(@rortega)
Miembro Moderator

Carabin, Jose, y cía, por la fuente original de la información he de decir que es completamente fiable, aunque no lo haya probado uno mismo. El autor es el programador principal del configurador de iNav, y también uno de los programadores principales del firmware:

Using PCA9685 with INAV

ResponderCitar
Respondido : 06/03/2019 7:27 pm
Carabin me gusta
Carabin
(@carabin)
Principiante

Lo probaremos , he pedido un par de ellas para trastear , todo empezó cuando me topé con esta pestaña en el inav la última versión y al mirar el contenido del símbolo de ayuda (?) hacía referencia a esta controladora .

ResponderCitar
Respondido : 06/03/2019 7:51 pm
Bastian
(@bastian)
Miembro Moderator

Carabin, según información proporcionada por Raúl, parece ser que esto es todo una realidad y que esto funciona, por lo tanto yo ya me he pedido 3, y las probaré, por un coste de 2 € por placa, como no lo vamos a probar.

 

ResponderCitar
Respondido : 06/03/2019 7:53 pm
Carabin
(@carabin)
Principiante

Esperando a que llegue la PCA9685 , he leído un poco sobre esta controladora y me inquietaba saber cómo podríamos poner en ella la dirección X40 para que inav la reconozca y leyendo en Bangood las características  decía que :

This board/chip uses I2C 7-bit address between 0x60-0x80, selectable with jumpers

con lo que mi preocupación es que no entrara en el rango de  0x40 , pero después leyendo algún articulo de ella (adjunto el documento) , parece ser que sí que viene por defecto la dirección 0x40 y no habría que hacer nada , nada más que conectar, habilitar la pestaña en inav y probar.

Bueno pues ya veremos si todo es así de fácil .

 

ResponderCitar
Respondido : 07/03/2019 12:15 pm
Zona FPV me gusta
Carabin
(@carabin)
Principiante

Bueno hoy me ha llegado unas de las PCA9685 que tenía pedidas , esta es más cara pero el resultado debe de ser el mismo que con la que inicie este hilo , solamente añadir que el vendedor fue el único que me confirmó que la dirección por defecto es la 0x40 que inav  determina .

Pequeñas diferencias tiene los conectores de otra manera , pero en el fondo debe de ser igual .

 

 

 

 

 

 

IMG 20190322 140431
ResponderCitar
Respondido : 22/03/2019 2:36 pm
Carabin
(@carabin)
Principiante

Bueno lo primero que debemos de hacer ya que es la primera vez que la conecto a Inav , es saber su dirección , esto lo podemos hacer desde Arduino con una placa de Arduino uno , tal y como dice este  enlace :

El bus I2C

y el programa de I2C Scaner

una ve hecho esto  no dará la dirección por el Monitor serie  lo he puesto a 9600 baudios .

y me confirma que tiene 0x40 y 0x70 imagino que será el rango en la cual con las soldaduras en la placa puedo configurar

scaner
This post was modified hace 8 meses 4 times by Carabin
ResponderCitar
Respondido : 22/03/2019 2:38 pm
Carabin
(@carabin)
Principiante

Imagino que este paso en el momento que lo tengamos probado lo omitiremos , pues sabremos que todas por defecto vienen a 0x40.

He entrado con inav con la F405 win de Matek , y he marcado la opcción de  EXTERNAL PWM SERVO DRIVER , he conectado los cuatro hilos en una salida I2c de la F405 a la PCA9685 y esta , alimentada externamente a 5v DC  y funcionan perfectamente todos los servos como los tengo configurado en Inav y ya está.

Evidentemente para un ala con pocos servos no es de utilidad , pero si buscaba de una forma fácil y barata conectar mis servos externamente a un regulador externo , en la F405 win decir que una vez configurada por ella ya no sale  control en el puerto de los servos , ahora los tenemos en PCA9685 y tampoco saca el de los motores , estos deben conectarse a la F405 win .

He probado a encenderla al mismo tiempo y funciona , haré más pruebas encendiendo antes y después , pues habia leido que siempre debereia estar encendida antes que la Fc

En mi caso que ahora tengo 16 canales , creía que podría asignarlos aquí a todas estas salidas pero sólo permite los que la FC permita , bueno seguiremos estudiando y probando cuando llegue el otro modelo.

IMG 20190322 WA0004
ResponderCitar
Respondido : 22/03/2019 3:01 pm
Zona FPV me gusta
Héctor Narbona
(@waka)
Miembro Moderator

Muy buena aportación @carabin, la placa que yo tengo no sé que dirección tiene, cuando lo compruebe, la pongo por aquí por si también es de utilidad. 

ResponderCitar
Respondido : 22/03/2019 5:05 pm
Carabin
(@carabin)
Principiante

Hoy he recibido el otro modelo de PCA9685 que tenía pedida , el resultado es el mismo , he mirado por Arduino la dirección y es la 0x40 también , y conectado y funciona igual a la otra.

Esta vez he alimentado la tensión de la PCA 5V  externamente para poder hacer pruebas de dar tensión a la FC antes , Y Después , pues al mismo tiempo ya lo había probado , el resultado es siempre el mismo funciona sin problemas .

 

IMG 20190325 132140
IMG 20190325 140519
IMG 20190325 134314
IMG 20190325 132358
This post was modified hace 8 meses 3 times by Carabin
ResponderCitar
Respondido : 25/03/2019 2:29 pm
Zona FPV me gusta
Comparte:

Por favor Iniciar Sesión o Registro