Önceki eğitimimizde, windows makinemize python nasıl kurulacağını ve basit bir LED kontrol projesi kullanarak Arduino ile python arasında nasıl arayüz oluşturacağımızı öğrendik. Yeniyseniz, bu eğitim aynı şeyin devamı olduğu için önceki eğitime geri dönmenizi şiddetle tavsiye ederim.
Yapabileceği tek şey seri bağlantı noktası üzerinden iletişim kurmaksa neden Arduino ile python'a ihtiyacımız olduğunu merak etmeye başlamış olabilirsiniz. Ancak Python, makine öğreniminin, bilgisayarla görmenin ve çok daha fazlasının entegre edilebileceği birçok harika uygulamanın bulunduğu çok güçlü bir geliştirme platformudur. Bu eğitimde Python Kullanarak Nasıl Küçük Bir Grafik Arayüz Oluşturabileceğimizi öğreneceğiz. Bunu yapmak için Vpython adında bir modüle ihtiyacımız olacak. Aşağıdaki eğitim sadece Windows kullanıcıları için geçerlidir, çünkü Mac veya Linux kullanıcıları için prosedür farklıdır.
Bu eğitimin sonunda Python kullanarak nasıl basit GUI oluşturabileceğimizi öğreneceğiz. Arduino'ya takılan Ultrasonik sensörün değerine cevap veren küçük bir animasyon yapacağız. Bu uygulama nesneyi Ultrasonik sensör kullanarak izler ve VPython kullanarak bilgisayarda Grafik biçiminde görüntüler. Nesneyi hareket ettirdikçe Ultrasonik sensör mesafeyi algılar ve bu bilgiyi Arduino kullanarak Python programına gönderir ve bilgisayardaki nesneyi de hareket ettirir. Kulağa ilginç geliyor doğru! Öyleyse başlayalım…
Ön koşullar:
- Arduino (Herhangi bir versiyon)
- Ultrasonik Sensör HC-SR04
- Kabloların Bağlanması
- Python ile Bilgisayar
- Önceki öğretici hakkında bilgi
Bilgisayarınıza VPython Kurmak:
Önceki eğitimimizde, makinenize python'u nasıl kuracağınızı ve etrafında nasıl hareket edeceğinizi ve Arduino ile basit bir program oluşturmayı zaten öğrendik. Şimdi bunun üzerine Visual Python (VPython) kurduk, böylece Arduino için Python kullanarak harika Grafikler oluşturabiliriz. VPython ile başlamak için aşağıdaki basit adımlar için
1. Adım. Python'un önceki eğitim yönergelerine göre zaten kurulu olduğundan emin olun.
Adım 2. Visual Python için exe dosyasını indirmek için VPython'a tıklayın. Makineniz 64 bit üzerinde çalışsa bile 64 bit sürümünü yüklemeyi seçmeyin. Sadece verilen bağlantıyı takip edin.
3. Adım. Exe dosyasını başlatın ve kurulumu izleyin. Varsayılan dizin yolunu değiştirmeyin ve "tam kurulum" u seçtiğinizden emin olun.
4. adım. Kurulduktan sonra, aşağıda gösterildiği gibi masaüstünüzde veya uygulama panelinizde "VIDLE (VPython)" adlı yeni bir uygulama bulmalısınız.
5. Adım. Uygulamayı başlatın ve aşağıda gösterildiği gibi bir pencere açmalısınız.
6. adım. Bu, VPython için programa yazacağımız penceredir. Ancak şimdilik örnek bir program açarak Vpython'un çalışıp çalışmadığını kontrol edelim. Bunu yapmak için File-> Open-> Bounce'ı seçin
7. Adım. Açılmış bir örnek program almalısınız. Programı Çalıştır -> Çalıştırma Modülünü kullanarak başlatmayı deneyin. Her şey beklendiği gibi çalışıyorsa aşağıdaki ekranı görmelisiniz.
Başarılı derlemeyi gösteren iki >>> ile birlikte Kabuk penceresini (solda) ve bir topun zıpladığını gösteren gerçek pencereyi (ön) görmelisiniz .
Adım 8. VPython'un gücünü keşfetmek için başka örnek programları da deneyebilirsiniz, örneğin “elektrik motoru” adlı örnek program aşağıdaki ekranda sizi şaşırtacak.
Adım 9. Bu, VPython'unuzun kullanıma hazır olduğu ve " Vpython'unuzu Programlama " konusuna girebileceğiniz anlamına gelir.
10. adım. Aksi takdirde, "uyuşuk Hata" alan birçok kişiden biri gibiyseniz, umudunuzu kaybetmeyin, çünkü bu sorunu sonraki adımlarda çözeceğiz.
11. adım. Açık Benim bilgisayar -> C sürücüsü -> Python 27 -> Script -> local.bat . Bu, aşağıda gösterildiği gibi bir komut istemi başlatacaktır.
12. adım. Şimdi "pip install --upgrade numpy" yazın ve enter tuşuna basın. Numpy'nin yeni sürümü makinenize yüklenmelidir. İnternet bağlantınız yavaşsa bir süre beklemeniz gerekebilir.
13. adım. İşiniz bittiğinde 4. adıma geri dönebilir ve örnek bir programı deneyebilirsiniz ve onu çalıştırabilmelisiniz.
VPython Programlama:
Daha sonra VPython penceremize programlamaya başlarız. Bu programda , biri sabit Ultrasonik sensöre göre ekranın ortasına yerleştirilecek ve diğeri ABD sensörü ile nesne (kağıt) arasındaki mesafeye bağlı olarak dinamik bir konumda olacak iki 3 boyutlu dikdörtgen nesne oluşturacağız.
Tam Python kodu bu sayfanın sonunda bulunabilir. Daha ileride, bu python kodunu küçük anlamlı hurdalara bölerek açıkladım.
İlk satır, 3B nesneler oluşturabilmemiz için görsel Kitaplığı içe aktarmak olacaktır. Aşağıdaki satır aynı şeyi yapıyor.
görsel içe aktarmadan *
Daha önceki eğitimimizde zaten kullandığımız için sonraki dört satıra aşina olmalısınız. Seri ve zaman kitaplığını içe aktarmak ve ayrıca baud hızı olarak 9600 ile COM18'de Arduino ile seri bağlantı kurmak için kullanılırlar.
import serial # Seri haberleşme için içe aktarılmış seri # Gecikme fonksiyonlarını kullanmak için gerekli ArduinoSerial = serial.Serial ('com18', 9600) #Create Serial port object adlı arduinoSerialData time.sleep (2) # iletişim için 2 saniye bekle yerleşmek
Şimdi nesneler yaratmanın zamanı geldi. Ben var obj ve duvar olarak adlandırılan iki 3d dikdörtgenler yarattı. Walll ekran ortasına yerleştirilmiştir mavi renkte sabit bir duvar olup obj beyaz renkte hareketli bir amacıdır. Ayrıca duvar nesnesinin yanına bir "ABD sensörü" metni yerleştirdim.
obj = box (pos = (- 5,0,0), size = (0.1,4,4), color = color.white) wallL = box (pos = (- 1,0,0), size = (0,2, 12,12), renk = renk.cyan) metin (metin = 'ABD sensörü', eksen = (0,1,0), pos = (- 2, -6,0), derinlik = -0,3, renk = color.cyan)
Eminim ki, yukarıdaki üç satır ilk kez okuyanların çoğu için Yunanca ve Latince olarak görünebilirdi, ancak zamanla anlayabilirsiniz. Parantez içinde bahsedilen her şey (x, y, z) koordinatlarıdır. Ve bu koordinatlar, aşağıda gösterildiği gibi lise geometri sınıfımızda bulduklarımıza çok benziyor.
Artık grafik ve seri port hazır durumda, tek yapmamız gereken verileri okumak ve "obj" (beyaz dikdörtgen) 'i Arduino'dan gelen verilere göre bir yere yerleştirmek. Bu, obj.pos.x'in nesnenin X koordinat konumunu kontrol ettiği aşağıdaki satırlarla yapılabilir (Beyaz dikdörtgen).
t = int (ArduinoSerial.readline ()) # seri veriyi oku ve satırı t = t * 0.05 obj.pos.x = t olarak yazdır
Arduino'nuzu Hazırlamak:
Python betiği COM portundan gelen değerleri dinlemeye ve grafikleri buna göre hareketlendirmeye hazır, ancak Arduino'muz henüz hazır değil. Öncelikle Ultrasonik sensörü aşağıdaki Devre Şemasına göre Arduino'ya bağlamamız gerekiyor. ABD sensörü ve Arduino'da tamamen yeniyseniz, Arduino ve Ultrasonik Sensör Tabanlı Mesafe Ölçümü eğitimine geri dönmeniz gerekir.
Ardından bu sayfanın sonunda verilen Arduino Programını yükleyin. Program, yorum satırları kullanılarak kendi kendine açıklanmıştır. Ultrasonik sensörün, nabzın bir nesneye çarpması ve geri dönmesi için geçen süreyi hesaplayarak çalıştığını biliyoruz. Bu değer Arduino'daki PulseIn fonksiyonu kullanılarak hesaplanır. Daha sonra alınan zaman aşağıdaki çizgi kullanılarak mesafeye çevrilir.
dist = (zaman çizelgesi / 2) / 2.91;
Burada mesafe milimetre (mm) cinsinden hesaplanır.
Çalışma:
Projenin çalışması basittir. Python programını başlatın ve aşağıda gösterildiği gibi ABD sensörünün önüne bir nesne yerleştirin:
Şimdi python programını başlatın ve beyaz dikdörtgenin kağıdınızla birlikte hareket ettiğini fark edebilmelisiniz , kağıdınız ve sensör arasındaki mesafe aşağıdaki resimde gösterildiği gibi kabuk penceresinde de görüntülenecektir.
Ultrasonik sensör ve Python kullanarak Arduino ile nesnenin hareketini bu şekilde takip edebiliriz.
Umarım projeyi anladınız ve bir tane oluşturmaktan zevk almışsınızdır. Bu, python'a doğru atılan ince bir adımdır ancak bunu kullanarak çok daha yaratıcı şeyler inşa edebilirsiniz. Bu gönderi ile ne oluşturacağınız konusunda herhangi bir fikriniz varsa, bunları yorum bölümünde ve teknik yardım için forumları kullanın. Başka bir ilginç python projesinde görüşmek üzere.