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ámetro | 6010 | 8108 |
|---|---|---|
| Voltaje Nominal | 24V | 24V |
| Corriente Nominal | 10.5A | 7.5A |
| Potencia Nominal | 240W | 180W |
| Torque Nominal | 5 Nm | 7.5 Nm |
| Torque Máximo | 11 Nm | 22 Nm |
| Velocidad Nominal | 120 RPM | 110 RPM |
| Velocidad Máxima | 270 RPM | 320 RPM |
| Relación de Engranajes | 8:1 | 8:1 |
| Protocolo de comunicación | MIT Protocol | MIT Protocol |
| Modos de Control | Control de Posición, Velocidad, Torque | Control de Posición, Velocidad, Torque |
| Diámetro Exterior | 80 mm | 97 mm |
| Grosor | 47 mm | 46 mm |
| Peso | 392 g ±10% | 395 g ±5% |
| Resistencia de Fase | 0.48 Ω ±10% | 0.439 Ω ±10% |
| Inductancia de Fase | 368 μH ±10% | 403 μH ±10% |
Características Principales
- Salida de Alto Torque
- Control en Modo MIT
- Retroalimentación de Codificador Magnético
- Diseño Compacto y Ligero
- Soporte para Comunicación CAN Bus de Alta Velocidad
- Aplicaciones Versátiles
Guía de Introducción
Preparativos Antes del Uso
En una PC con Sistema Windows
- Manual del Producto.
- Descargar VOFA.
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.

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).

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.

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.