O Motor servo SG90 é um servo pequeno e leve comumente usado em projetos de robótica, automação e bricolage. Permite controle preciso da posição angular usando Modulação de largura de pulso (PWM). Este guia mostrará como controlar um Motor servo SG90 com um Raspberry Pi usando python.
O que você precisará
- Raspberry Pi (Qualquer modelo com suporte GPIO, por exemplo, PI 3, PI 4)
- Motor servo SG90
- Fonte de energia externa (5V, opcional para vários servos)
- Fios de pão e jumper
- Python instalado No Raspberry Pi
Etapa 1: Fiação do servo SG90 para o Raspberry Pi
O SG90 Servo Motor tem três pinos:
Pino sg90 | Pino de framboesa pi | Função |
---|---|---|
VCC (vermelho) | 5V (pino 2) | Fonte de energia |
GND (marrom) | GND (pino 6) | Chão |
Sinal (laranja) | GPIO18 (pino 12) | Controle de sinal PWM |
Observação: Se estiver usando vários servos, use um Fonte de alimentação externa de 5V Para evitar sobrecarregar o pino de 5V do Raspberry Pi.
Etapa 2: Ativar PWM no Raspberry Pi
O Raspberry Pi gera sinais PWM Para controlar a posição do servo.
- Instale o Biblioteca Raspberry Pi GPIO (se ainda não estiver instalado):
sudo apt update && sudo apt install python3-rpi.gpio
- Abra um editor de script Python:
nano servo_control.py
- Copie o seguinte script python para Controle o motor servo SG90:
Etapa 3: Código Python para controlar o servo
import RPi.GPIO as GPIO
import time
# Set up the GPIO pin for PWM
SERVO_PIN = 18 # Use GPIO18 (Pin 12)
GPIO.setmode(GPIO.BCM)
GPIO.setup(SERVO_PIN, GPIO.OUT)
# Start PWM with 50Hz frequency
pwm = GPIO.PWM(SERVO_PIN, 50)
pwm.start(0)
def set_angle(angle):
duty_cycle = (angle / 18) + 2.5 # Convert angle to duty cycle
GPIO.output(SERVO_PIN, True)
pwm.ChangeDutyCycle(duty_cycle)
time.sleep(0.5) # Wait for servo to move
GPIO.output(SERVO_PIN, False)
pwm.ChangeDutyCycle(0)
try:
while True:
angle = int(input("Enter angle (0-180): "))
if 0 <= angle <= 180:
set_angle(angle)
else:
print("Invalid angle! Enter a value between 0 and 180.")
except KeyboardInterrupt:
print("Exiting...")
pwm.stop()
GPIO.cleanup()
Etapa 4: executando o script de controle servo
-
Salve o script e a saída:
- Imprensa Ctrl+x, então Y, então DIGITAR.
-
Execute o script:
python3 servo_control.py
-
Entre ângulos entre 0 e 180 para mover o servo.
Etapa 5: Entendendo o PWM para controle de servo
- Frequência PWM: O SG90 opera em 50Hz.
-
Cálculo do ciclo de trabalho:
- 0 ° → 2,5% Ciclo de trabalho
- 90 ° → 7,5% do ciclo de trabalho
- 180 ° → 12,5% Ciclo de trabalho
-
Fórmula:
duty_cycle = (angle / 18) + 2.5
Etapa 6: Aplicações do servo SG90 com Raspberry Pi
- Braços robóticos - Controle juntas para movimento.
- Portas e bloqueios automatizados - Mecanismos abertos/próximos usando um servo.
- Sistemas de câmera de inclinação - Mova câmeras para vigilância ou fotografia.
- Automação residencial inteligente - Controle alavancas, bloqueios e interruptores remotamente.
Solução de problemas
-
Servo não está se movendo?
- Garantir fiação correta (VCC, GND e GPIO18 para sinal).
- Se estiver usando vários servos, use um fonte de energia externa de 5V.
-
Movimentos erráticos?
- Garanta energia estável; usar Capacitores (100µF) se necessário.
- Usar Controle PWM de maior precisão, como um Módulo PCA9685 PWM Para vários servos.
-
Permissão negado erro?
- Execute o script com
sudo
:sudo python3 servo_control.py
- Execute o script com
Conclusão
O Motor servo SG90 é uma ótima maneira de adicionar Controle de movimento para projetos Raspberry Pi. Usando Sinais PWM, você pode controlar com precisão a posição do servo para Aplicativos de robótica, automação e IoT. Experimente diferentes ângulos e aplicações para desbloquear todo o seu potencial! 🚀