Alışverişlerinizi Robotistan’dan Yapın

Faydalı içerikler oluşturarak size yardımcı olmak istiyoruz. Aynı zamanda hızlı teslimat ve müşteri memnuniyetini ön planda tutarak malzeme satışı yapıyoruz. Alışverişlerini robotistan.com‘dan yaparak sen de bize yardımcı olabilirsin 🙂

Raspberry Pi 3 İle Step Motor Kontrolü Nasıl Yapılır? #14

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) #4 dersimize kadar olan malzemeler için Kombo Kit, Raspberry Pi 3 Röle Kartı İle Alarm Devresi Yapımı #11 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ımızda Raspberry Pi’mizi kullanarak step motor kontrolü uygulaması yapacağız.

Gerekli malzemelerimiz:

Projedeki Malzemeler Bu Sette. Şimdi İncele >

Step motorlar, hassas hareket gerektiren uygulamalarda kullanılan motorlardır. Fonksiyon olarak DC motorlar ile servo motorların her ikisinin de karakterini gösterir: istenildiğinde belirli bir konuma adım adım ilerleyebilir veya sürekli olarak istenilen yönde döndürülebilir. Normal yazıcılar ve 3B yazıcıların vazgeçilmez parçalarındandırlar.

Bizim bu uygulamamızda kullanacağımız step motor genellikle sürücü kartıyla birlikte satılmaktadır. Bu sayede breadboard’a ihtiyaç duymadan kolaylıkla bağlantı yapmamız mümkündür.

Bağlantıları yaptıktan sonra Raspberry Pi’mizi çalıştırıyor ve stepper.py isimli bir dosya oluşturarak aşağıdaki kodu içine yazıyoruz:

import RPi.GPIO as GPIOimport time GPIO.setmode(GPIO.BCM) enable_pin = 18coil_A_1_pin = 4coil_A_2_pin = 17coil_B_1_pin = 23coil_B_2_pin = 24 GPIO.setup(enable_pin, GPIO.OUT)GPIO.setup(coil_A_1_pin, GPIO.OUT)GPIO.setup(coil_A_2_pin, GPIO.OUT)GPIO.setup(coil_B_1_pin, GPIO.OUT)GPIO.setup(coil_B_2_pin, GPIO.OUT) GPIO.output(enable_pin, 1) def forward(delay, steps): for i in range(0, steps): setStep(1, 0, 1, 0) time.sleep(delay) setStep(0, 1, 1, 0) time.sleep(delay) setStep(0, 1, 0, 1) time.sleep(delay) setStep(1, 0, 0, 1) time.sleep(delay) def backwards(delay, steps): for i in range(0, steps): setStep(1, 0, 0, 1) time.sleep(delay) setStep(0, 1, 0, 1) time.sleep(delay) setStep(0, 1, 1, 0) time.sleep(delay) setStep(1, 0, 1, 0) time.sleep(delay) def setStep(w1, w2, w3, w4): GPIO.output(coil_A_1_pin, w1) GPIO.output(coil_A_2_pin, w2) GPIO.output(coil_B_1_pin, w3) GPIO.output(coil_B_2_pin, w4) while True: delay = raw_input(“Adim arasi bekleme suresi (milisaniye)?”) steps = raw_input(“Ileri kac adim? “) forward(int(delay) / 1000.0, int(steps)) steps = raw_input(“Geri kac adim? “) backwards(int(delay) / 1000.0, int(steps))

Bu kodu kaydettikten sonra

sudo python stepper.py

komutunu vererek programın çalışmasını sağlıyoruz. Raspbian’ın güncel sürümünde Python komutlarından önce sudo yazmamıza gerek yoktur. Program bize ilk olarak adım arası bekleme süresini soruyor. Bunu hız olarak düşünebiliriz, ne kadar düşük bir değer seçersek step motorumuz o kadar hızlı dönecektir. Daha sonraki adımda ileri yönde kaç adım gideceğini soruyor. Değeri girdikten sonra motor dönmeye başlıyor ve motor durduktan sonra bu sefer kaç adım geri gideceğini soruyor. Motor ters yönde çalıştıktan sonra da program tekrar başa dönüyor.

Yorumları Görüntüle

  • Gpio pimlerini tanıtırken hata veriyor raspberry iP 3 B+ modelini kullanıyorum sıkıntı neden olabilir bilgi verirseniz sevinirim teşekkürler.

  • Ses komutu ile step motor konrolü yapacağım , bunun için matlab de gerekli kodları yazdım ve 2018 sürümünde raspberry pi dan çıkış alabileceğimi öğrendim , Şimdi step motoru 10 tur saat yönünde döndürüp sonra resetlenecek raspi kodlarını yazmam gerek. Yardımcı olabilir misiniz

  • Merhaba,
    1 adet raspi3 e 6 step motor bağlanabilir mi ? yani 2 cnc sistemini tek raspi3 ile kontrol edebilir miyim ?
    bu iki cnc sistemi de eşzamanlı çalışabilecek şekilde nasıl kurgulayabilirim ?

    • 6 adet step motoru doğrudan bağlamanız için GPIO pinleri yeterli gelmeyebilir. Bu projeniz için step motorları sürücüler ile Arduino ya da benzeri bir mikrokontrolcü kartına bağlayabilir, daha sonra bu mikrokontrolcüyü Raspberry Pi'nize USB yada doğrudan UART üzerinden bağlayarak haberleştirme yapabilirsiniz.

  • Merhaba,
    Ben 12 tane step motor süreceğim. Nasıl sürerim? Step motoru I2C ya da SPI ile sürebilir miyim?

    • Merhabalar, step motorları doğrudan SPI ya da I2C ile süremezsiniz, bu haberleşme özelliklerine sahip uygun bir motor sürücü kullanmanız gerekir.

      • Peki hangi motor sürücüyü almalıyım? Bir sürücü önerirseniz çok sevinirim. Cevap verdiğiniz için teşekkürler...

  • meraba. python dili hakkında hiç bilgim yok ama projemizin basit bir kısmında kullanmam gerekiyor. sorum şu;
    raspberry pi 3 ile ultrasonik sensör veya pır sensörü ile hareket algılandığında step motor belli bi adım atacak, bir süre sonra aynı adımı geri gelecek. Yardımcı olursanız çok makbule geçer.

  • hocam step motorun sürücüsünü aynı sizin yaptığınız gibi 5 volt 1 amperlik adaptörle besliyorum, kod çalışıyor ve step motoru elime aldığımda içindeki dönüşleri hissedebiliyorum fakat motorun ucundaki mil dönmüyor. acaba verdiğim besleme mi yetersiz?

  • "python: can't open file 'stepper.py': [Errno 2] No such file or directory" hatası veriyor. Ne yapmalıyım ?

    • Kodu kaydetmiş olduğunuz dosya isminin "stepper.py" olduğundan emin misiniz? Ayrıca Linux işletim sisteminde dosya isimleri büyük/küçük harf duyarlıdır. Hatanız bundan kaynaklı olabilir.

En Son İçerik

Arduino’nun Korkulu Rüyası: ESP8266

Herkese merhabalar! Daha önce hiç kablosuz internet bağlantısı ile proje yaptınız mı? IoT projelerine ilginiz var mı? Sizi bu yazımızda…

3 gün Önce

Arduino ve C# ile LCD Ekrana Yazı Gönderme – 7. Ders

Sonraki Ders > < Önceki Ders Arkadaşlar merhaba, bu dersimizde C# ile hazırlayacağımız form uygulaması üzerinden Arduino'ya bağlı LCD ekranımızı…

3 hafta Önce

3D Printer Yapımı – 553TL’ye Kendi 3D Yazıcını Yap

Herkese merhabalar! Bu yazımızda üç boyutlu yapımı için hangi adımları uygulamak gerekiyor, 3D yazıcı yapımı için gerekli olan malzemelerden ve…

4 hafta Önce

Arduino ile Nabız Ölçer

Herkese merhabalar, bu yazımızda medikal sensörlerden biri olan Pulse nabız sensörünü kullanarak nabız verisini okumayı ve elde ettiğimiz sonucu Nokia…

2 ay Önce

Lipo Pil Nedir? Çeşitleri ile Kapsamlı Lipo Batarya Rehberi

Birçok RC araçta ve robot projelerinde kullanılan Li-Po batarya çeşitlerini, güvenli kullanım ve şarj yöntemlerini bu videomuzu izleyerek öğrenebilirsiniz.

2 ay Önce

Arduino ve C# Haberleşmesi: Bluetooth ile Servo Motor Kontrolü – 6. Ders

Sonraki Ders > < Önceki Ders Arkadaşlar merhaba, bu derste hazırladığımız arayüz üzerinden seri haberleşmeyi kullanarak servo motor kontrolünü göreceğiz.…

2 ay Önce