Raspberry Pi, elektronik mühendisleri ve hobiler için tasarlanmış ARM mimarisi işlemci tabanlı bir karttır. PI, şu anda piyasadaki en güvenilir proje geliştirme platformlarından biridir. Daha yüksek işlemci hızı ve 1 GB RAM ile PI, Görüntü işleme ve Nesnelerin İnterneti gibi birçok yüksek profilli proje için kullanılabilir.
Yüksek profilli projelerden herhangi birini yapmak için, PI'nin temel işlevlerini anlamak gerekir. Bu eğitimlerde Raspberry Pi'nin tüm temel işlevlerini ele alacağız. Her öğreticide PI işlevlerinden birini tartışacağız. Bu Raspberry Pi Eğitim Serisinin sonunda, yüksek profilli projeleri kendi başınıza yapabileceksiniz. Aşağıdaki eğiticilere göz atın:
- Raspberry Pi'ye Başlarken
- Raspberry Pi Yapılandırması
- LED Yanıp Sönen
- Raspberry Pi Düğme Arayüzü
- Raspberry Pi PWM üretimi
- Raspberry Pi kullanarak DC Motorun Kontrol Edilmesi
Bu eğitimde, Raspberry Pi kullanarak Step Motorun Hızını Kontrol Edeceğiz. Step Motor'da, adından da anlaşılacağı gibi, milin dönüşü Step formundadır. Farklı Step Motor türleri vardır; burada en popüler olan Unipolar Step Motor olanı kullanacağız. DC motordan farklı olarak, step motoru uygun talimatlar vererek herhangi bir açıya döndürebiliriz.
Bu Dört Aşamalı Step Motoru döndürmek için, Step Motor Sürücü Devresini kullanarak güç darbeleri vereceğiz. Sürücü devresi, PI'dan mantık tetikleyicileri alır. Mantık tetikleyicilerini kontrol edersek, güç darbelerini ve dolayısıyla step motorun hızını kontrol ederiz.
Orada Ahududu Pi 2'de 40 GPIO çıkış pimleri. Ancak 40 taneden yalnızca 26 GPIO pini (GPIO2'den GPIO27'ye) programlanabilir. Bu pinlerden bazıları bazı özel işlevleri yerine getirir. Özel GPIO'yu bir kenara bıraktığımızda, sadece 17 GPIO'muz kaldı. Bu 17 GPIO pininin her biri maksimum 15mA akım sağlayabilir. Ve tüm GPIO Pinlerinden gelen akımların toplamı 50mA'yı geçemez . GPIO pinleri hakkında daha fazla bilgi edinmek için şunları gözden geçirin: Raspberry Pi ile LED Yanıp Sönüyor
Kart üzerinde diğer modülleri ve sensörleri bağlamak için + 5V (Pin 2 & 4) ve + 3.3V (Pin 1 & 17) güç çıkış pinleri bulunmaktadır. Bu güç rayları Step Motoru sürmek için kullanılamaz çünkü onu döndürmek için daha fazla güce ihtiyacımız var. Bu yüzden gücü başka bir güç kaynağından Step Motora iletmeliyiz. Step motorumun voltaj değeri 9V, bu yüzden ikinci güç kaynağım olarak 9v pil kullanıyorum. Voltaj derecesini öğrenmek için step motor model numaranızı arayın. Derecelendirmeye bağlı olarak ikincil kaynağı uygun şekilde seçin.
Daha önce belirtildiği gibi, Step Motoru sürmek için bir sürücü devresine ihtiyacımız var. Burada ayrıca bir Basit Transistör Sürücü Devresi tasarlayacağız.
Gerekli Bileşenler:
Burada Raspbian Jessie OS ile Raspberry Pi 2 Model B kullanıyoruz. Tüm temel Donanım ve Yazılım gereksinimleri daha önce tartışılmıştır, ihtiyaç duyduğumuz dışında bunları Raspberry Pi Giriş bölümünde bulabilirsiniz:
- Bağlantı pimleri
- 220Ω veya 1KΩ direnç (3)
- Step Motor
- Düğmeler (2)
- 2N2222 Transistör (4)
- 1N4007 Diyot (4)
- Kondansatör - 1000 uF
- Ekmek Tahtası
Devre Açıklaması:
Step motor, 360 derece dönüşü tamamlamak için 200 adım kullanır, bu, adım başına 1.8 derece dönmesi anlamına gelir. Dört Aşamalı Step Motor kullandığımız için, tek bir mantık döngüsünü tamamlamak için dört darbe vermemiz gerekiyor. Bu motorun her adımı 1.8 derece dönüşü tamamlar, bu nedenle bir çevrimi tamamlamak için 200 darbeye ihtiyacımız var. Yani tek bir dönüşü tamamlamak için 200/4 = 50 mantık döngüsü gereklidir. Stepper Motorları ve Sürüş Modları hakkında daha fazla bilgi edinmek için bunu kontrol edin.
Bu dört bobinin her birini bir NPN transistörü (2N2222) ile sürüyoruz, bu NPN transistörü PI'dan mantık darbesini alıyor ve ilgili bobini sürüyor. Dört transistör, step motorun dört aşamasını sürmek için PI'dan dört mantık alıyor.
Transistör sürücü devresi karmaşık bir kurulumdur; burada, transistörü yanlış şekilde bağlamanın, panele ağır bir şekilde yüklenip zarar verebileceğine dikkat etmeliyiz. Step Motor Sürücü Devresini doğru anlamak için bunu kontrol edin.
Motor bir endüksiyondur ve bu nedenle motoru değiştirirken endüktif artış yaşarız. Bu artış, transistörü büyük ölçüde ısıtacaktır, bu nedenle, Endüktif Spiking'e karşı transistöre koruma sağlamak için Diyot (1N4007) kullanacağız.
Amacıyla gerilim dalgalanmaları azaltmak için, biz bir bağlantı olacak 1000uF kapasitör devre şeması gösterildiği gibi, güç kaynağından karşıya.
Çalışma Açıklaması:
Her şey devre şemasına göre bağlandıktan sonra, programı PYHTON'da yazmak için PI'yi AÇIK hale getirebiliriz.
PYHTON programında kullanacağımız birkaç komuttan bahsedeceğiz, Kütüphaneden GPIO dosyasını içe aktaracağız, aşağıdaki fonksiyon PI'nın GPIO pinlerini programlamamızı sağlar. Ayrıca "GPIO" yu "IO" olarak yeniden adlandırıyoruz, bu nedenle programda GPIO pinlerine başvurmak istediğimizde "IO" kelimesini kullanacağız.
RPi.GPIO'yu IO olarak içe aktar
Bazen kullanmaya çalıştığımız GPIO pinleri başka işlevler yapıyor olabilir. Bu durumda programı çalıştırırken uyarılar alacağız. Aşağıdaki komut PI'ya uyarıları dikkate almamasını ve programa devam etmesini söyler.
IO.setwarnings (False)
PI'nın GPIO pinlerini, kart üzerindeki pin numarasına veya fonksiyon numaralarına göre yönlendirebiliriz. Karttaki 'PIN 35' gibi 'GPIO19'. Yani burada ya buradaki pimi '35' veya '19' ile temsil edeceğimizi söylüyoruz.
IO.setmode (IO.BCM)
Step motorun dört bobinini sürmek için çıkış olarak dört GPIO pini ayarlıyoruz.
IO.setup (5, IO.OUT) IO.setup (17, IO.OUT) IO.setup (27, IO.OUT) IO.setup (22, IO.OUT)
GPIO26 ve GPIO19'u giriş pinleri olarak ayarlıyoruz. Düğmeye basmayı bu pinlerle tespit edeceğiz.
IO.setup (19, IO.IN) IO.setup (26, IO.IN)
Küme parantezindeki Koşul doğru ise, döngü içindeki ifadeler bir kez çalıştırılacaktır. Dolayısıyla, GPIO pimi 26 düşerse, IF döngüsü içindeki ifadeler bir kez çalıştırılacaktır. GPIO pimi 26 düşmezse, IF döngüsü içindeki ifadeler çalıştırılmayacaktır.
eğer (IO.input (26) == Yanlış):
Bu komut, döngüyü 100 kez yürütür, x, 0'dan 99'a yükseltilir.
(100) aralığındaki x için:
1 iken: sonsuz döngü için kullanılır. Bu komutla, bu döngü içindeki ifadeler sürekli olarak yürütülecektir.
Bununla Step Motorun Hız Kontrolünü elde etmek için gereken tüm komutlara sahibiz.
Programı yazıp çalıştırdıktan sonra geriye kalan tek şey kontrolü kullanmaktır. PI'ye bağlı iki düğmemiz var. Biri, dört darbe arasındaki gecikmeyi artırır ve diğeri, dört darbe arasındaki gecikmeyi azaltır. Gecikmenin kendisi hızdan bahsediyor; Eğer gecikme yüksek motor, her etabı arasında ve böylece fren alır dönüş yavaş. Eğer gecikmeli sıfıra yakın, daha sonra maksimum hızda motor döner.
Burada darbeler arasında biraz gecikme olması gerektiği unutulmamalıdır. Bir darbe verdikten sonra, step motorun son aşamasına ulaşması birkaç milisaniye sürer. Darbeler arasında herhangi bir gecikme yoksa, step motor hiç hareket etmeyecektir. Normalde darbeler arasında 50 ms gecikme yeterlidir. Daha doğru bilgi için veri sayfasına bakın.
Böylece, iki düğme ile, kademeli motorun hızını sırayla kontrol eden gecikmeyi kontrol edebiliriz.