Me gastaría crear un driver para una bluepill mas un puente H Bts7960

More
12 Nov 2021 23:11 #226251 by eyime-col
Buenas a todos, 

pues me presento, soy un profesor universitario con ciertas facilidades para programar en C y C++, y con orientación a emplear motores DC en todo lo que se pueda .....

Llegué hasta esta pagina porque estaba haciendo un proyecto en mi tiempo libre de emplear una bluepill para controlar un motor DC. Logre crearla y tengo un sistema que se comunica con I2C y controla un motor DC Pittman GM8224 con encoder de 500 pulsos por revolución. Mi configuración es una bluepill + puente H basado en BTS7960 + motor Pittman GM8224. Acá enlaces de esos componentes,

stm32-base.org/boards/STM32F103C8T6-Blue-Pill.html
www.handsontec.com/dataspecs/module/BTS7...20Motor%20Driver.pdf
hades.mech.northwestern.edu/index.php/Ac...and_500_line_encoder

Después de terminar mi proyecto de tiempo ocioso, quería emplear ese desarrollo en una pequeña máquina CNC, buscando di con esta pagina, me parece super bien porque quiero crear una pequeña CNC basada en Linux utilizando raspberrypi.

Tengo una Raspberry PI 3B+, así que lo primero que hice fue tratar de instalar LinuxCNC en ese equipo, pero me tope con que debía tener un kernel tiempo real basado en preempt-rt. Como no quería matarme compilando el kernel baje uno desde EMLID el cual ya viene compilado

docs.emlid.com/navio2/configuring-raspberry-pi

y se lo puse a la imagen oficial de la raspberry, pensé que uno iba a funcionar, pero si funciono de una, claro que tuve la precaución de instalar también los módulos del kernel.

Ya con el kernel en tiempo real (con preempt-rt) me puse a bajar LinuxCNC desde el repositorio de GitHub y acabe hoy mismo de compilarlo y hacer las pruebas, tal como dicen en, 

linuxcnc.org/docs/devel/html/code/building-linuxcnc.html

Bueno, hasta aquí he llegado. 

Ahora lo que tengo en mente es basarme en el código de PICCNCV2, 

github.com/kinsamanka/PICnc-V2

Para crear el modulo HAL que se comunique con la BluePill y mueva el motor. 

En este punto tengo dos opciones:

a) Hacer que la BluePill solo se encargue de leer el encoder y los fines de carrera y cambiar el ancho del pulso PWM el cual sería de 20 KHz. Esta solución es la más fácil ya que no toca modificar mucho lo que se ejecuta en tiempo real en la raspberry.

b) Hacer que el PID se ejecute en la BluePill y que desde la raspberry se manden los valores deseados de posición y se configure sus parámetros. Esta solución requiere mas trabajo y validar que la BluePill sea capaz de ejecutar el PID a una frecuencia de 1 KHz. Lo que he desarrollado lo hace a 1ms (es decir 1 KHz) o sea que la respuesta es SI. Pero me tocaria aprender mas para crear un modulo HAL capaz de comunicarse bien con la BluePill.

Por ahora me voy con el enfoque (a), ya que sería menos trabajo. Pero acá viene la ayuda que estoy pidiendo.

Ya terminé de compilar LinuxCNC y de ejecutar todas las pruebas, todas dieron OK. Mi pregunta es donde están las instrucciones para crear un modulo HAL y probarlas, para proceder con lo de la BluePill.

Espero su ayuda,


Saludos.

Please Log in or Create an account to join the conversation.

More
12 Nov 2021 23:25 #226253 by tommylight

Please Log in or Create an account to join the conversation.

Moderators: dangercraft
Time to create page: 0.072 seconds
Powered by Kunena Forum