Controle de servo motor com Beaglebone Black (Parte 6/15)

Control de servomotor con Beaglebone Black (Parte 6/15)

Control de servomotor Beaglebone negro

Este tutorial explica el uso fundamental de PWM donde el servomotor está controlado por un potenciómetro. Es un motor de corriente continua que funciona con un impulso eléctrico. Puede conectar directamente el servomotor con Beaglebone black sin ningún controlador IC. Para esto debes escribir un programa en script python con la biblioteca adafruit PWM y ADC.

Herramientas necesarias :

  • Hueso de beagle negro
  • Servomotor (microservo 9g)
  • Potenciómetro (5kΩ)
  • resistencia de 1k Ω
  • tablero de prueba
  • Conectores hembra a hembra

Configuración del entorno de software

Instale la última versión de Python en BBB como se explica en el tutorial Cómo crear el primer programa de Python con Beaglebone Black. Instale la biblioteca adafruit python-GPIO llamada adafruit_BBIO.

Laboral

Es un tutorial de aprendizaje sencillo en el que conecté el servomotor y el potenciómetro con el Beaglebone negro. Cuando el script se está ejecutando, entra en un bucle continuo. La posición del servomotor varía según el valor del potenciómetro. Si varía el valor del potenciómetro, el ángulo de rotación del servomotor también cambia. Cuando el valor del ángulo ingresado alcance el valor límite del servomotor, salga del bucle continuo y detenga el programa. Presione Ctrl+C para detener la ejecución del programa en la terminal de comando SSH.

Descripción

Primero preparemos la conexión del circuito. Tome una placa de pruebas y suministre VCC y tierra desde BBB a la línea de la placa de pruebas. El servomotor requiere 4,8 V, mientras que el potenciómetro necesita sólo 3,3 V. El BBB tiene 5 V en el sistema de chip y 3,3 V en el conector de clavija, lo que le permite extraer ambas fuentes del Beaglebone Black. El sistema consume 5 V para el servomotor y 3,3 V para el potenciómetro. En un lado de la placa de pruebas, conecte la alimentación de 3,3 V desde el pin número 3, tercio del encabezado P9 y tierra desde el pin número 2 y el encabezado P8. Otro lado de la placa conecta el pin número 8 de la fuente de alimentación de 5 V del sistema del encabezado P9 y hace conexión a tierra con el pin número 2 del encabezado P8.

El potenciómetro tiene tres terminales. El del medio es el terminal de salida y está conectado al pin ADC ( pin 40 del encabezado P9) del Beaglebone negro. La salida del potenciómetro es un valor analógico, por lo que está conectado al pin ADC. Cualquier pin izquierdo o derecho del potenciómetro está conectado a 3,3 V y los pines restantes están conectados al pin de tierra del ADC ( pin 34 del cabezal P9).

El servomotor también tiene tres terminales:

Cable naranja – entrada de pulso

Cable rojo – Vcc

Cable marrón – Tierra

Servomotor controlado por Beaglebone

El servomotor es un actuador giratorio que controla la posición lineal o angular del motor. Está controlado por pulso eléctrico con varios anchos o modulación de ancho de pulso. BBB tiene un pin PWM en el chip. El servomotor está conectado al pin PWM (pin 13 del encabezado P8) del BBB. Conecté una resistencia de 1 k ohm entre los dos para protegerlo de daños innecesarios.

Código fuente del proyecto

Código fuente del proyecto

###


 importar Adafruit_BBIO.PWM como PWM
importar Adafruit_BBIO.ADC como ADC
servo_pin = "P8_13" pin_sensor = 'P9_40' Configuración.ADC deber_min = 85 deber_max = 95 duty_span = duty_max - duty_min PWM.start(servo_pin, (100-duty_min), 60.0) mientras que Verdadero: lectura = ADC.read(sensor_pin) ángulo = lectura * 1800 si el ángulo > 270: PWM.parada(servo_pin) Limpieza.PWM romper ángulofl = flotador(ángulo) deber = 100 - ((ángulofl / 180) * deber_span + deber_min) PWM.set_duty_cycle(servo_pin, deber)

###

Diagramas de circuito

servo-BBB6 controlado por beagleblack

Vídeo del proyecto

Volver al blog

Deja un comentario

Los comentarios deben ser aprobados antes de su publicación.