fbpixel
Etiquetas: , , ,
0
(0)

Uno de los principales objetivos en robótica es hacer que las cosas se muevan por sí mismas. Para dar movimiento a un robot, a menudo se utilizan motores eléctricos, como los motores de corriente continua (CC), especialmente para robots móviles. En este tutorial, veremos cómo controlar dicho motor usando RaspberryPi y un puente H.

Prerequisite: Programación con Raspberry Pi

Material

  • Pantalla
  • cable HDMI
  • Teclado
  • Raspberry PI 3 (con sistema operativo en micro SD)
  • Mouse
  • Fuente de alimentación micro USB B
  • Motor CC x1
  • H-Bridge SN754410NE x1

Motor de corriente continua

Los motores de corriente continua a menudo se usan con una caja de cambios para aumentar el par mientras se mantienen las pequeñas dimensiones. DC Motor es bastante simple de usar. Para hacerlo funcionar, lo único que debe hacer es aplicarle voltaje. El signo y el nivel del voltaje determinarán la velocidad y el sentido de rotación.

Para modular el voto aplicado al motor, se puede usar un relé eléctrico o un puente en H.

H-bridge

Un puente H distribuye energía al motor eléctrico y modula el voltaje de acuerdo con las señales enviadas a sus entradas. Se puede dibujar como cuatro interruptores que redirigirán la corriente según el comando del microcontrolador.

El dispositivo que utilizamos para este proyecto es un SN754410NE. Puede conducir dos motores de CC y tiene varios pines que tienen su propio propósito.

Pequeño recordatorio sobre el pinout:

  • GND están conectados entre ellos y deben estar conectados a la tierra del proyecto.
  • + 5V recibe la potencia para el circuito lógico, generalmente proporcionado por la salida 5V de Arduino
  • M1 Enable y M2 Enable se utilizan para activar los puentes. Recibieron un voltaje ALTO / BAJO del Arduino.
  • M1/M2 Forward, M1/M2 Reverse reciben las señales PWM y corresponden a las direcciones del motor.
  • + Motor Power IN recibe la fuente de alimentación del motor (5,6, 7V y a veces 24V o más)
  • El motor 1 y el motor 2 están conectados a los cables del motor.

Cableado del motor CC

Stepper se alimenta a través del módulo ULN2003A. Las entradas del módulo del 1 al 4 están conectadas a la salida 18,22,24,26 (GPIO24, GPIO25, GPIO8, GPIO7) del RaspberryPi. Los pines + y – del módulo están conectados al pin 5V y GND del RaspberryPi.

Dependiendo de la potencia requerida para el motor, se puede usar la salida de voltaje de la Raspberry Pi, pero se recomienda encarecidamente usar una fuente de alimentación externa para proteger el microcontrolador.

Como recordatorio, aquí está el pinout de la Raspberry Pi 3.

Código básico para controlar un motor CC

Para conducir el motor, se debe habilitar Hbridge y se debe enviar una señal PWM hacia adelante o hacia atrás, dependiendo de la dirección de rotación.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO 
from time import sleep

GPIO.setmode(GPIO.BCM)
#Pins 18 22 24 GPIO 24 25 8
Motor1E = 24 #  Enable pin 1 of the controller IC
Motor1A = 25 #  Input 1 of the controller IC
Motor1B = 8 #  Input 2 of the controller IC


GPIO.setup(Motor1A,GPIO.OUT)
GPIO.setup(Motor1B,GPIO.OUT)
GPIO.setup(Motor1E,GPIO.OUT)

forward=GPIO.PWM(Motor1A,100) # configuring Enable pin for PWM
reverse=GPIO.PWM(Motor1B,100) # configuring Enable pin for PWM


if __name__ == '__main__' :
	forward.start(0) 
	reverse.start(0)

	# this will run your motor in reverse direction for 2 seconds with 80% speed by supplying 80% of the battery voltage
	print "GO backward"
	GPIO.output(Motor1E,GPIO.HIGH)
	forward.ChangeDutyCycle(0)
	reverse.ChangeDutyCycle(80)
	sleep(2)


	# this will run your motor in forward direction for 5 seconds with 50% speed.
	print "GO forward"
	GPIO.output(Motor1E,GPIO.HIGH)
	forward.ChangeDutyCycle(50)
	reverse.ChangeDutyCycle(0)
	sleep(5)

	#stop motor
	print "Now stop"
	GPIO.output(Motor1E,GPIO.LOW)
	forward.stop() # stop PWM from GPIO output it is necessary
	reverse.stop() 

	GPIO.cleanup()

NB: Tenga cuidado al copiar el código Python de Internet, puede encontrar problemas de sangría que conducen a un error de compilación.

Sources

Encuentre otros tutoriales y ejemplos en el generador de código automático
Arquitecto de Código

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en los medios sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?