Skip to main content

Introducción a los Motores Stackforce X Serie

Este artículo presentará cómo comenzar con los motores de la serie Stackforce y cómo usarlos con C++ y Python en el reComputer Jetson Super.

Especificaciones

Aquí está la tabla completa con todos los parámetros completados para todos los modelos de motores:

Parámetro60108108
Voltaje Nominal24V24V
Corriente Nominal10.5A7.5A
Potencia Nominal240W180W
Torque Nominal5 Nm7.5 Nm
Torque Máximo11 Nm22 Nm
Velocidad Nominal120 RPM110 RPM
Velocidad Máxima270 RPM320 RPM
Relación de Engranajes8:18:1
Protocolo de comunicaciónMIT ProtocolMIT Protocol
Modos de ControlControl de Posición, Velocidad, TorqueControl de Posición, Velocidad, Torque
Diámetro Exterior80 mm97 mm
Grosor47 mm46 mm
Peso392 g ±10%395 g ±5%
Resistencia de Fase0.48 Ω ±10%0.439 Ω ±10%
Inductancia de Fase368 μH ±10%403 μH ±10%

Características Principales

  1. Salida de Alto Torque
  2. Control en Modo MIT
  3. Retroalimentación de Codificador Magnético
  4. Diseño Compacto y Ligero
  5. Soporte para Comunicación CAN Bus de Alta Velocidad
  6. Aplicaciones Versátiles

Guía de Introducción

Preparativos Antes del Uso

En una PC con Sistema Windows

El CANID y CANMode del motor se modifican ambos a través del puerto serie. El motor se envía con un CANID predeterminado de 0x01 y CANMode de CAN2.0 a 1Mbps.

Cableado del Puerto Serie

Conecte V, G, T, R al VCC (3.3V), GND, RX, TX del módulo de comunicación serie respectivamente (RX y TX deben estar conectados cruzados). Como se muestra en la figura a continuación:

Modificando CANID

Configure la velocidad de baudios del puerto serie a 1Mbps.

El CANID a enviar es 0x**, y el ID configurado es 0x**, con un límite máximo de 0x7F. Después de configurar exitosamente el CANID, se imprimirá el siguiente registro:

Modificando el Modo CAN

Envíe CANMODE:0 o CANMODE:1 a través del puerto serie.

CANMODE:0 representa el modo CAN2.0 (1Mbps), mientras que CANMODE:1 representa el modo CANFD (5Mbps).

La modificación exitosa del modo CAN se muestra en las figuras a continuación:

Usando reComputer Mini Jetson Orin para Controlar Motores

Las interfaces de comunicación CAN más comunes para motores en el mercado son XT30 (2+2) y conectores JST. Nuestros dispositivos reComputer Mini Jetson Orin y reComputer Robotics están equipados con interfaces duales XT30 (2+2) e interfaces CAN basadas en JST, proporcionando compatibilidad perfecta.

reComputer Mini:

reComputer Robotics

Para información más detallada sobre el uso de CAN, consulte este wiki.

Habilitando la Interfaz CAN

Paso 1: Antes de usar CAN0 y CAN1, retire la cubierta inferior y configure las dos resistencias terminales de 120Ω en la posición ON.

Apague el interruptor de la resistencia terminal de comunicación CAN de 120Ω integrada en el motor.

tip

Si el Recomputer Mini no ha configurado la resistencia terminal de 120Ω en ON, puede elegir encender el interruptor de la resistencia terminal de comunicación CAN del motor.

Paso 2: Conecte el motor directamente al CAN0 del reComputer Mini a través de la interfaz XT30 (2+2).

tip

Dado que el diseño de la interfaz CAN del reComputer Mini es opuesto al de la interfaz CAN del motor, se requiere soldadura manual para invertir las líneas de datos.

Considerando el alto voltaje y corriente requeridos por el motor, se recomienda comprar un adaptador de corriente de 24V 300W para alimentar el reComputer Mini para manejar un solo motor. Si se necesitan conectar más motores, se puede comprar un adaptador de corriente de mayor potencia según el requerimiento.

danger

Esta fuente de alimentación es solo para aprendizaje y pruebas de un solo motor. Para múltiples motores, diseñe una placa de alimentación separada y aísle la fuente de alimentación de Jetson de la fuente de alimentación del motor para evitar que pase alta corriente directamente a través de Jetson.

Habilitando la Comunicación CAN de Jetson

Abra una terminal e ingrese el siguiente comando para poner el pin GPIO en alto para activar CAN0:

gpioset --mode=wait 0 43=0

Si usa CAN1 con la interfaz JST, ponga el pin 106 en alto.

gpioset --mode=wait 0 106=0

Mantenga esta terminal abierta, inicie una nueva terminal y configure CAN0.

sudo modprobe mttcan
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can0 up

Configurando el Entorno de Python y C++

Paso 1: Clone el SDK.

git clone https://github.com/Seeed-Projects/Stackforce-Motor-SDK.git 

Paso 2: El SDK del controlador requiere las siguientes dependencias. Para Debian Linux, se pueden instalar a través de los siguientes comandos:

sudo apt-get install -y build-essential cmake
sudo apt install linux-modules-extra-5.15.0-1025-nvidia-tegra # For Jetson Jetpack 6.0

Si se necesitan enlaces de Python, instale adicionalmente Python 3, pip y pybind11:

sudo apt-get install -y python3 python3-pip python3-pybind11 python3-setuptools

Después de instalar las dependencias, siga los pasos a continuación para instalar el SDK del controlador como una biblioteca de C++ o un paquete de Python. Ambos usarán CMake para compilar el código C++.

Usando C++ para Control

cd build
cmake ..
make

El ejecutable compilado estará ubicado en build/sfmotor_control. Ejecute el programa:

./sfmotor_control

El programa por defecto controla el motor con ID 0x01. Durante la operación, puede ingresar el valor del ángulo objetivo (en radianes) a través del teclado. También recibe datos de retroalimentación sobre el ángulo y velocidad angular del motor.

Usando Python para Control

El script de Python está ubicado en el directorio script/ y puede ejecutarse directamente sin compilación.

python main.py 

El programa por defecto controla el motor con ID 0x01. Durante la operación, puede ingresar el valor del ángulo objetivo (en radianes) a través del teclado. También recibe datos de retroalimentación sobre el ángulo y velocidad angular del motor.

Soporte Técnico y Discusión del Producto

¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.

Loading Comments...