back to top

Raspberry Pi 3 İle Servo Motor Kontrolü Nasıl Yapılır? #12

Bu içerik 13 Ocak 2017 Tarihinde Raspberry Pi 3 Uyumlu Olacak Şekilde Güncellenmiştir. Güncellenen kısımları daha kolay şekilde görebilmeniz için farklı renkte (lacivert) yazdık. Güncelliğini yitiren kısımların ise üzerini çizdik. Keyifle oku, bol bol üret!

Raspberry Pi Dersleri serimizde kullanacağımız malzemelerin tamamına sizler için hazırladığımız setler ile kolayca sahip olabilirsiniz. Raspberry Pi’ye Uzaktan Bağlantı Yöntemleri (VNC,SSH,TTL) dersimize kadar olan malzemeler için Kombo Kit, Raspberry Pi 3 Röle Kartı İle Alarm Devresi Yapımı dersimize kadar olan malzemeler için Süper Başlangıç Seti, tüm derslerdeki malzemeler için Proje Seti tercih edebilirsiniz.

Merhaba arkadaşlar. Bu yazıda Raspberry Pi kullanarak servo motor sürmeyi anlatacağım.

Gerekli malzemeler:

Projedeki Malzemeler Bu Sette. Şimdi İncele >

Servo Motor Çalışma Mantığı

Servo motorlar, bildiğimiz üzere PWM ile çalışırlar. Çoğunlukla 0-180 derece arası açılarda çalışırlar. RC arabamızın direksiyonunda, helikopterlerin pervanelerine açı vermede ve uçakların kontrol yüzeylerini hareket ettirmede kullanılırlar.

servo_pwm

Devre şemamız bu şekilde (fazla akım çekmemesi için küçük boy plastik dişlili bir servo motor kullanmanızı tavsiye ederim):

ders7_servo_bb

Kodlama Kısmı

Devremiz ile birlikte kullanacağımız Pyhton kodu ise burada:

from Tkinter import *import RPi.GPIO as GPIOimport timeGPIO.setmode(GPIO.BCM)GPIO.setup(18, GPIO.OUT)pwm = GPIO.PWM(18, 100)pwm.start(5)GPIO.setwarnings(False)class App: def __init__(self, master): frame = Frame(master) frame.pack() scale = Scale(frame, from_=0, to=180, orient=HORIZONTAL, command=self.update) scale.grid(row=0) def update(self, angle): duty = float(angle) / 10.0 + 2.5 pwm.ChangeDutyCycle(duty)root = Tk()root.wm_title(‘Servo Control’)app = App(root)root.geometry(“200×50+0+0”)root.mainloop()

Python kodunu servo.py isimli bir dosyaya kaydedin ve

sudo python servo.py

komutu ile çalıştırın.

Raspbian’ın güncel sürümünde Python komutlarından önce sudo yazmamıza gerek yoktur.

ss

Ekranda çıkan “Servo Control” isimli penceredeki slider’ı kullanarak servo motorun açısını ayarlayabilirsiniz.

Programın detaylı bir şekilde anlatımı için aşağıdaki videoyu izleyebilirsiniz:

Raspberry Pi Hakkında Daha Fazlasını Öğrenmeye Devam Et

Raspberry Pi pek çok yönüyle avantaj sahibi ve geliştiriciler tarafından çok sevilen bir platform. Elektronik projelerinde, bilgisayar bilimlerinde ve robotik çalışmalarında sağladığı destek ve rahatlık ile öğrenmeyi sevdiren Raspberry Pi hergün daha da çok gelişiyor. 

Peki siz de daha fazla gelişmek istemez misiniz? Linux bilginizi geliştirmek, elektronik dünyasına atılmak ve eğlenceli projelere imza atmak için sizi Raspberry Pi ile yolculuğa çıkarıyoruz! Sizler için hazırladığımız Raspberry Pi eğitim serisine devam edin :

Raspberry ile Röle Kartı Devresi

Bu dersimizde Raspberry Pi’mizle hareket algılama uygulaması yapmıştık. Şimdi ise aynı hareket sensörünü ve bir röle kartı kullanarak Raspberry Pi’mizle hareket tetiklemeli alarm devresi yapacağız.

Raspberry 11. Dersimizde Raspberry ile Röle Kartı Devresini nasıl kuracağınızı adım adım sizler için anlattık.

RPi İle DC Motor Kontrolü

L293D, 2 adet DC motor sürmede kullanılabilecek oldukça popüler bir entegredir. 13. Dersimizde RPi ile DC Motor Kontrolünü nasıl yapacağımızı öğrenip, DC motor sürmeye başlayacağız.

Son Çıkan Yazılar

15 YORUMLAR

  1. Merhabalar,
    Ben bu kodu raspberry pi 3 te denedim çalıştırdım fakat 180 derece dönüşü 360 yapınca raspberry takıldı. Şuan da usb portları kesinlikle çalışmıyor. Neden olduğu konusunda yardımcı olabilir misiniz lütfen. Bitirme projesi yapıyoruz.

  2. iki servoyu rasberryde aynı anda kullanamazsınız bunun sebebi rasberry arduino gibi ek bir pwm sabitleyiciye sahip değildir bundan dolayı ek olarak bir pwm modülü kullanabilirsiniz PCA9685 16 KANALLI YADA DAHA AZ OLABİLİR

  3. selamlar
    pi zero w kullanmaya yeni basladım
    yukarda verdğiniz kodu masa ustune bir dısya açarak isminişde servo.py olarak açıp dosya içine kodları yazıyorum ancak asagıdaki hatayı alıyorum bunu nasıl duzeltebilirim

    shell kısmında ki hata:
    Python 3.5.3 (/usr/bin/python3)
    >>> %Run servo.py
    Traceback (most recent call last):
    File “/home/pi/Desktop/servo.py”, line 1, in
    from Tkinter import *
    File “/usr/lib/python3/dist-packages/thonny/backend.py”, line 317, in _custom_import
    module = self._original_import(*args, **kw)
    ImportError: No module named ‘Tkinter’
    >>> %Run servo.py
    Traceback (most recent call last):
    File “/home/pi/Desktop/servo.py”, line 1, in
    from Tkinter import *
    File “/usr/lib/python3/dist-packages/thonny/backend.py”, line 317, in _custom_import
    module = self._original_import(*args, **kw)
    ImportError: No module named ‘Tkinter’

  4. Merhaba,
    Yazdıklarınızdan hiçbirşey anlamadım.

    (‘Python kodunu servo.py isimli bir dosyaya kaydedin ve “sudo python servo.py” komutu ile çalıştırın.
    Raspbian’ın güncel sürümünde Python komutlarından önce sudo yazmamıza gerek yoktur.’ gibi)

    Bana yardımcı olabilir misiniz?

    Bu arada kanalıma “Arduino Türk Batu’ya” abone olur ve sitem olan “arduinoturkbatu.wordpress.com’u” ziyaret eder misiniz???

    İyi çalışmalar…
    Saygılarımla…

  5. Yada hem arduino hemde raspberry kullanarak birkaç servo motoru ses komutu ile kontrol etmek için nasıl bir kod gereklidir
    Teşekkür ederim

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz