Käyttämällä SG90 -servomoottoria Raspberry Pi: n kanssa

Using the SG90 Servo Motor with the Raspberry Pi

Se SG90 -servomoottori on pieni, kevyt servo, jota käytetään yleisesti robotti-, automaatio- ja DIY -projekteissa. Se mahdollistaa kulman asennon tarkan hallinnan käyttämällä Pulssin leveysmodulaatio (PWM). Tämä opas näyttää kuinka hallita SG90 -servomoottori vadelmapillä Pythonin käyttäminen.


Mitä tarvitset

  1. Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
  2. SG90 -servomoottori
  3. Ulkoinen virtalähde (5 V, valinnainen useille servoille)
  4. Leipälevy- ja hyppyjohdot
  5. Python asennettu Raspberry Pi

Vaihe 1: Sg90 -servon johdotus Raspberry Pi: lle

Se SG90 -servomoottorilla on kolme nastaa:

SG90 -nasta Raspberry Pi -tappi Funktio
VCC (punainen) 5v (nasta 2) Virtalähde
GND (ruskea) GND (nasta 6) Pohja
Signaali (oranssi) GPIO18 (nasta 12) PWM -signaalin hallinta

Huomaa: Jos käytät useita servoja, käytä Ulkoinen 5 V: n virtalähde Välttää Raspberry Pi: n 5 V: n tappi.


Vaihe 2: Ota PWM käyttöön Raspberry Pi

Vadelmapiiri tuottaa PWM -signaaleja Servo -aseman hallitsemiseksi.

  1. Asenna Raspberry Pi GPIO -kirjasto (Jos sitä ei ole vielä asennettu):
    sudo apt update && sudo apt install python3-rpi.gpio
    
  2. Avaa Python -komentosarjan editor:
    nano servo_control.py
    
  3. Kopioi seuraava Python -komentosarja osoitteeseen Hallitse SG90 -servomoottoria:

Vaihe 3: Python -koodi servon hallitsemiseksi

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

Vaihe 4: Servo -ohjauskomentosarjan suorittaminen

  1. Tallenna komentosarja ja poistu:

    • Painostaa Ctrl+xsilloin Ysilloin Kirjoittaa.
  2. Suorita käsikirjoitus:

    python3 servo_control.py
    
  3. Syötä kulmat välillä 0–180 Servon siirtäminen.


Vaihe 5: PWM: n ymmärtäminen servoohjaukseen

  • PWM -taajuus: SG90 toimii 50Hz.
  • Vuosyklin laskenta:
    • 0 ° → 2,5% käyttöjakso
    • 90 ° → 7,5% työsykli
    • 180 ° → 12,5% työsykli
  • Kaava: duty_cycle = (angle / 18) + 2.5

Vaihe 6: Sg90 -servon sovellukset Raspberry PI: llä

  1. Robottivarret - Ohjausliitokset liikkumiseen.
  2. Automatisoidut ovet ja lukot - Avaa/sulje mekanismit servolla.
  3. Pan-kallistuskamerajärjestelmät - Siirrä kameroita valvontaa tai valokuvausta varten.
  4. Älykäs kodin automaatio - Ohjausvivut, lukot ja kytkimet etäyhteydessä.

Vianetsintä

  1. Servo ei liiku?

    • Varmistaa oikea johdotus (VCC, GND ja GPIO18 signaalille).
    • Jos käytät useita servoja, käytä ulkoinen 5 V: n virtalähde.
  2. Virheelliset liikkeet?

    • Varmistaa vakaa voima; käyttää kondensaattorit (100µF) tarvittaessa.
    • Käyttää Korkeampi tarkkuus PWM -hallinta, kuten a PCA9685 PWM -moduuli useille servoille.
  3. Lupa kielsi virheen?

    • Suorita käsikirjoitus sudo:
      sudo python3 servo_control.py
      

Johtopäätös

Se SG90 -servomoottori on hieno tapa lisätä liikkeenohjaus Raspberry Pi -projekteihin. Käyttämällä PWM -signaalit, voit hallita tarkasti servon asemaa robotti-, automaatio- ja Internet -sovellukset. Kokeile erilaisia ​​kulmia ja sovelluksia sen koko potentiaalin avaamiseksi! 🚀

Jätä kommentti

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.