20 fontnál több rendelés esetén ingyen szállítsák!

Az SG90 szervo motor használata a Raspberry PI -vel

Using the SG90 Servo Motor with the Raspberry Pi

Az SG90 szervomotor egy kisméretű, könnyű szervó, amelyet gyakran használnak robotikában, automatizálásban és barkácsprojektekben. Lehetővé teszi a szöghelyzet precíz vezérlését impulzusszélesség-moduláció (PWM) segítségével. Ez az útmutató bemutatja, hogyan vezérelhet egy SG90 szervomotort Raspberry Pi-vel Python használatával.


Amire szüksége lesz

  1. Raspberry Pi (bármely modell GPIO-támogatással, pl. Pi 3, Pi 4)
  2. SG90 szervomotor
  3. Külső áramforrás (5V, több szervó esetén opcionális)
  4. Próbapanel és átkötő vezetékek
  5. Telepített Python a Raspberry Pi-n

1. lépés: Az SG90 szervó bekötése a Raspberry Pi-hez

Az SG90 szervomotornak három kivezetése van:

SG90 kivezetés Raspberry Pi kivezetés Funkció
VCC (piros) 5V (2. tű) Tápellátás
GND (barna) GND (6. tű) Földelés
Jel (narancssárga) GPIO18 (12. tű) PWM jelvezérlés

Megjegyzés: Ha több szervót használ, alkalmazzon külső 5V-os tápegységet a Raspberry Pi 5V-os tűjének túlterhelésének elkerülése érdekében.


2. lépés: PWM engedélyezése a Raspberry Pi-n

A Raspberry Pi PWM jeleket generál a szervó pozíciójának vezérléséhez.

  1. Telepítse a Raspberry Pi GPIO könyvtárat (ha még nincs telepítve):
    sudo apt update && sudo apt install python3-rpi.gpio
    
  2. Nyisson meg egy Python szkriptszerkesztőt:
    nano servo_control.py
    
  3. Másolja a következő Python szkriptet az SG90 szervomotor vezérléséhez3. lépés: Python kód a szervó vezérléséhez:

import RPi.GPIO as GPIO import time # GPIO tű beállítása PWM-hez SERVO_PIN = 18 # GPIO18 használata (12. tű) GPIO.setmode(GPIO.BCM) GPIO.setup(SERVO_PIN, GPIO.OUT) # PWM indítása 50Hz frekvenciával pwm = GPIO.PWM(SERVO_PIN, 50) pwm.start(0) def set_angle(angle): duty_cycle = (angle / 18) + 2.5 # Szög átalakítása kitöltési tényezővé GPIO.output(SERVO_PIN, True) pwm.ChangeDutyCycle(duty_cycle) time.sleep(0.5) # Várakozás a szervó mozgására GPIO.output(SERVO_PIN, False) pwm.ChangeDutyCycle(0) try: while True: angle = int(input("Adja meg a szöget (0-180): ")) if 0 <= angle <= 180: set_angle(angle) else: print("Érvénytelen szög! Adjon meg egy értéket 0 és 180 között.") except KeyboardInterrupt: print("Kilépés...") pwm.stop() GPIO.cleanup()

4. lépés: A szervovezérlő szkript futtatása

Mentse el a szkriptet és lépjen ki:

  1. Nyomja meg a

    • CTRL+X billentyűket, majd az Y gombot, végül az ENTER-t. Futtassa a szkriptet:.
  2. python3 servo_control.py

    Adjon meg 0 és 180 közötti szögeket
  3. a szervó mozgatásához.5. lépés: A PWM megértése a szervovezérléshez


PWM frekvencia:

  • Az SG90 50Hz-en működik.Kitöltési tényező számítása:.
  • 0° → 2.5% kitöltési tényező
    • 90° → 7.5% kitöltési tényező
    • 180° → 12.5% kitöltési tényező
    • Képlet:
  • duty_cycle = (angle / 18) + 2.5 6. lépés: Az

SG90 szervó alkalmazásai Raspberry Pi-velRobotkarok

  1. – Ízületek mozgatása.Automatizált ajtók és zárak
  2. – Nyitó/záró mechanizmusok szervóval.Pan-Tilt kamerarendszerek
  3. – Kamerák mozgatása megfigyeléshez vagy fényképezéshez.Okosotthon automatizálás
  4. – Karok, zárak és kapcsolók távoli vezérlése.Hibaelhárítás

Nem mozog a szervó?

  1. Ellenőrizze a

    • helyes bekötést (VCC, GND és GPIO18 a jelhez).Ha több szervót használ, alkalmazzon
    • külső 5V-os tápegységet..
  2. Szaggatott mozgás?

    • Gondoskodjon stabil tápellátásról; használjon kondenzátorokat (100µF) szükség esetén.
    • Használjon nagyobb pontosságú PWM vezérlést, például egy PCA9685 PWM modult több szervóhoz.
  3. Engedély megtagadva hiba?

    • Futtassa a szkriptet sudo használatával:
      sudo python3 servo_control.py
      

Összegzés

Az SG90 szervomotor nagyszerű módja annak, hogy mozgásvezérlést adjon Raspberry Pi projektjeihez. A PWM jelek használatával precízen vezérelheti a szervó pozícióját robotikai, automatizálási és IoT alkalmazásokhoz. Kísérletezzen különböző szögekkel és alkalmazásokkal, hogy kiaknázza a benne rejlő lehetőségeket! 🚀

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.

1 megjegyzés

Hi,
I’m considering buying some servos for a robotics and I keep seeing “analogue” and “digital” servos. If I’m using analogue servos do I need an ADC for each one, or can I plug them straight into the pi? is there even any difference? I assume this guide is for digital servos, but the pictures don’t have the “digital” label some do online

Fozzy,

Hagyj egy megjegyzést