19 Haziran 2016 Pazar

Raspberry Pi Servo Motor Kontrol






     Bu uygulamada yazılımsal PWM kullandım. Cihazımız sadece yazılımsal PWM desteklemektedir. Motorda oluşan titreşimler yazılımsal PWM kullandığımız için işlemcinin farklı işlemcilerle uğraşmasından dolayı olabilmekle birlikte, yeterince kaliteli olmayan bazı motorlaralındıklarından itibaren titreşim yapmaya meyillidir. Bu sıkıntıların tek çözümü endüstriyel servo motorlardır.
    Bu uygulama sırasında kullandığım motor 180 derecedir. Bazı motorlar %5-%10 arası duty cycle da çalıştığını söylemesine rağmen uygulamada kullandığım motor %3-%12 bir aralıkta çalışmaktadır. 


Kullandığım motor: Tower Pro Micro servo 9g SG90
Uçları: 
Kırmızı +5V 
Kahverengi GND
Sarı Sinyal ucudur.



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from tkinter import *
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(19, GPIO.OUT)
pwm = GPIO.PWM(19, 50)
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 = 3+float(angle)/180.0*9
        pwm.ChangeDutyCycle(duty)
 
root = Tk()
root.wm_title('Servo Kontrol')
app = App(root)
root.geometry("200x50+0+0")
root.mainloop()
GPIO.cleanup()




Hiç yorum yok:

Yorum Gönder