El funcionamiento del coprocesador en el mecanismo de dirección (Micro Servo 9g mecanismo de dirección)

El mecanismo de dirección tiene una amplia gama de usos, como controlar el movimiento del robot, la dirección de la cámara y el radar láser, y el movimiento del brazo mecánico en el campo industrial.¿Cómo familiarizarse y utilizar este producto? Esta sección utilizará el mecanismo de dirección para conducir instrucciones de escritura asíncronas para controlar el mecanismo de dirección.

Empecé con SG90, engranaje de dirección Micro Servo 9g

Entonces, para aquellos que están en contacto por primera vez, si quieren entender rápidamente qué es esto, podemos preguntarle a Wenxinyiyan

Aunque todavía hay una gran brecha en comparación con ChatGPT4, especialmente la comprensión de la semántica todavía está muy por detrás, pero sigue siendo bastante bueno para ser tu pequeño asistente. Echemos un vistazo a su respuesta:

P: ¿Cuáles son los parámetros del servo SG90?

Respuesta: Los parámetros del mecanismo de dirección SG90 son:
voltaje de trabajo: 4.8V-6V.
Temperatura de funcionamiento: -30~~+60 grados centígrados.
Ajuste de zona muerta: 7us (7MHZ).
Par de bloqueo: 1,2-1,4 kg/cm (4,8 V)
Ancho de pulso positivo: 2 ms.
Ciclo de trabajo PWM: ancho de pulso positivo de 0,5 ~ 2,5 ms.
Tamaño: 21,5 mm x 11,8 mm x 22,7 mm Peso: 9 gramos (1 kg = 1 kg = 2 kg).
Velocidad sin carga: 0,12 s/60 grados (4,8 V) 0,002 s/grados.
Impedancia de entrada: 50Ω.
Linealidad de esquina: 2,5%

P: ¿Cuáles son las funciones del mecanismo de dirección SG90?

Respuesta: Las funciones del mecanismo de dirección SG90 incluyen principalmente los siguientes puntos:
realizar el control de ángulo y posición de varios equipos electrónicos.
Como actuador de salida básico, se utiliza en sistemas de microcomputadoras de un solo chip para realizar un control y una salida simples.
En el sistema de control electromecánico del robot, como efector final de la articulación, realiza el control preciso de dispositivos mecánicos como el brazo mecánico.
Se utiliza en juguetes de control remoto de gama alta, aviones, modelos de submarinos, robots de control remoto y otros campos para realizar la salida de ángulos específicos.
En resumen, los servos SG90 juegan un papel importante en varios escenarios de aplicación.

Estas dos respuestas son bastante buenas y también le permiten comprender rápidamente este producto sin tener que buscar y encontrar respuestas, lo que mejora en gran medida la eficiencia y ahorra su valioso tiempo.

En general, el control preciso se lleva a cabo a través de PWM (Modulación de ancho de pulso, Modulación de ancho de pulso o Modulación de ancho de pulso), que es un método de codificación digital del nivel de la señal analógica. Dado que la computadora no puede generar voltaje analógico, solo puede generar 0 o 5V Para valores de voltaje digital, codificamos el nivel de una señal analógica específica usando un contador de alta resolución que se modula con el ciclo de trabajo de una onda cuadrada.

Simplemente inserte el color correspondiente:

Tres parámetros básicos de PWM: 1. Ancho de pulso, 2. Período de pulso (el recíproco del número de frecuencias de pulso dentro de 1 segundo), 3. Altura de voltaje (por ejemplo: 0V-5V)

Tiene una amplia gama de usos, como ajustar el brillo de la luz, ajustar la velocidad del motor, producir sonido, etc. Aquí estamos usando el mecanismo de dirección, que es para controlar el ángulo de rotación.

Debido a que el mecanismo de dirección también está controlado por un coprocesador, importaremos los paquetes que necesitamos usar, luego crearemos una instancia y la inicializaremos.

import smbus
import time
bus = smbus.SMBus(1)
Servo_ADD = 0x1B

Luego controlaremos el ángulo del servo

#将舵机摆动至中央位置
bus.write_i2c_block_data(Servo_ADD,3,[1,90])
#将舵机摆动至45度位置
bus.write_i2c_block_data(Servo_ADD,3,[1,45])
#将舵机摆动至180度位置(舵机编号为2)
bus.write_i2c_block_data(Servo_ADD,3,[2,180])

Envíe datos a IIC de acuerdo con el protocolo de comunicación, donde el método llamado por la instancia de SMBus es write_i2c_block_data

write_i2c_block_data(addr, cmd, [vals]) , los parámetros que contiene, addr: dirección del coprocesador, cmd: dirección del registro del mecanismo de dirección, [vals]: [número del mecanismo de dirección, ángulo del mecanismo de dirección]

其中协处理器地址和舵机寄存器地址是固定值,舵机编号1对应底板上的S1,2对应底板上的S2,舵机角度在0-180之间设置

从图中可以看到这块板子可以放两个舵机,S1,S2,可以分别独立控制。我们让它持续转动看下效果:

while True:
    i+=10
    bus.write_i2c_block_data(Servo_ADD,3,[1,i])
    time.sleep(0.2)
    bus.write_i2c_block_data(Servo_ADD,3,[1,i])
    time.sleep(0.2)

Supongo que te gusta

Origin blog.csdn.net/weixin_41896770/article/details/129725694
Recomendado
Clasificación