Instructables-logo

VHDL Motor Hız Kontrolü Yön ve Hıza Karar Verin Sol ve Sağ Hız Kontrol Cihazı

Talimatlar-VHDL-Motor-Hız-Kontrol-Yön-ve-Hız-Sol-ve-Sağ-Hız-Kontrol Cihazı-ÜRÜN

NOT: Bu sayfa daha büyük bir yapının bir parçasıdır. Lütfen BURADAN başladığınızdan emin olun, böylece aşağıdakilerin daha büyük projede nereye uyduğunu anlayabilirsiniz

Üzerindeview

Motor hız ve yön kontrolü, fotodetektör robotundaki iki ana bölümden biridir, diğeri ise fotodetektör veya ışık dedektörü bölümüdür. Fotodedektör bölümü robotun görüşüne odaklanırken, motor hızı ve yön kontrol bölümü robotun hareketine odaklanır. Motor hız ve yön kontrol işlem verileri fotodetektör bölümünden verilir ve motor hareketi şeklinde fiziksel bir çıktı verir.

Bu bölümün amacı ışık arayan robotun hem sol hem de sağ motorunun hızını ve yönünü kontrol etmektir. Bu değerlere karar vermek için kamera tarafından yakalanan ve eşikleme ile işlenen ışığın boyutuna ve konumuna ihtiyacınız olacaktır. Ayrıca her motorda ölçülen hıza ihtiyacınız olacaktır. Bu girişlerden, her bir motor için PWM (Darbe Genişliği Modülasyonu) değerinin çıktısını alabileceksiniz.

Bunu başarmak için şu VHDL modüllerini (ayrıca aşağıda bağlantılıdır) oluşturmanız gerekecektir:

  1. Kontrol
  2. Hata hesaplaması
  3. İkili dönüşüm
  4.  Bir ışık kaynağının bulunmaması

Bu bölümün VHDL koduna buradan bakabilirsiniz.

Tedarik
Kodu VHDL'de test etmek için de kullanılabildiğinden ISE Design Suite 14.7 ile kodlama yapmanızı öneririz. Ancak kodu BASYS 3'e yüklemek için Vivado (ver. 2015.4 veya 2016.4) kurmanız ve kısıtlamayı .xdc uzantılı yazmanız gerekecektir.Talimatlar-VHDL-Motor-Hız-Kontrol-Yön-ve-Hız-Sol-ve-Sağ-Hız-Kontrol Cihazı-şekil-1

VHDL Motor Hız Kontrolü: Yön ve Hıza Karar Verin, Sol ve Sağ Hız Kontrol Cihazı: Sayfa 1

TALİMAT ADIMI

Adım 1: Kontrol
Işık arayan robotun davranışının nasıl kontrol edileceğini anlamak için robotun bir ışık kaynağı gördüğünde nasıl davranması gerektiğini açıklayacağız. Bu davranış ışık kaynağının konumuna ve boyutuna göre kontrol edilecektir.talimatlar-VHDL-Motor-Hız-Kontrol-Yön-ve-Hız-Sol-ve-Sağ-Hız Kontrol Cihazı-

Kullanılan algoritma, bir kolu sola veya sağa döndürülebilen ve diğer kolu ileri veya geri döndürülebilen bir RC robot kontrolörüne benzer.

Işığı aramak için, ışık kaynağının konumu robotun tam önündeyse, bu robotun düz bir çizgide hareket etmesini istiyorsunuz. Bunu yapmak için hem sol hem de sağ motorlarda aynı hızın olmasını istiyorsunuz. Işık robotun sol tarafında bulunuyorsa, robotun sola ışığa doğru dönebilmesi için sağ motorun sol motordan daha hızlı hareket etmesini istiyorsunuz. Tersine, eğer ışık robotun sağ tarafında bulunuyorsa, robotun ışığa doğru sağa dönebilmesi için sol motorun sağ motordan daha hızlı hareket etmesini istersiniz. Bu, robotu sola, sağa veya düz olarak hareket ettirmek isteyip istemediğinizi kontrol edebileceğiniz RC kontrol cihazının sol koluna benzer.

Ardından, ışık kaynağı uzaktaysa (küçük ışık kaynağı) robotun ileri gitmesini veya algılanan ışık kaynağı çok yakınsa (büyük ışık kaynağı) geriye doğru hareket etmesini istiyorsunuz. Ayrıca robotun ışık kaynağından ne kadar uzakta olursa, robotun o kadar hızlı hareket etmesini istiyorsunuz. Bu, ileri veya geri hareket etmek isteyip istemediğinizi ve ne kadar hızlı hareket etmesini istediğinizi kontrol edebileceğiniz bir RC kontrol cihazının sağ koluna benzer.

Daha sonra motorların her birinin hızı için matematiksel bir formül türetebilirsiniz ve -255 ila 255 arasındaki hız aralığını seçiyoruz. Negatif bir değer, motorun geriye döneceği, pozitif bir değer ise motorun ileri döneceği anlamına gelir.

Bu robotun hareketinin temel algoritması budur. Bu modül hakkında daha fazla bilgi edinmek için burayı tıklayın.

Adım 2: Hata Hesaplaması
Motorlar için hedef hız ve yön zaten elinizde olduğundan, motorların ölçülen hızını ve yönünü de hesaba katmak istersiniz. Hız hedefine ulaşmışsa motorun yalnızca momentumuyla hareket etmesini istiyoruz. Değilse, motora daha fazla hız eklemek istiyoruz. Kontrol teorisinde bu, kapalı döngü geri beslemeli kontrol sistemi olarak bilinir.

Bu modül hakkında daha fazla bilgi edinmek için burayı tıklayın.Talimatlar-VHDL-Motor-Hız-Kontrol-Yön-ve-Hız-Sol-ve-Sağ-Hız-Kontrol Cihazı-şekil-2

Adım 3: İkili Dönüşüm
Önceki hesaplamalardan her bir motor için gereken eylemi zaten biliyordunuz. Ancak hesaplamalar imzalı ikili dosya kullanılarak yapılır. Bu modülün amacı, bu imzalı değerleri PWM üreteci tarafından okunabilecek yön (saat yönünde veya saat yönünün tersine) ve hız (0 ila 255 arasında değişen) değerlerine dönüştürmektir. Ayrıca motordan gelen geri bildirim işaretsiz ikili olarak ölçüldüğünden işaretsiz değerleri (yön ve hız) hata hesaplama modülü tarafından hesaplanabilen işaretli değere dönüştürmek için başka bir modüle ihtiyaç vardır. Bu modül hakkında daha fazla bilgi edinmek için burayı tıklayın.

Adım 4: Işık Kaynağının Yokluğu
Robot tarafından ışık algılandığında ışık aramak üzere hareket eden bir robot yaptınız. Peki robot ışığı algılamadığında ne olur? Bu modülün amacı, böyle bir durum mevcut olduğunda ne yapılacağını belirlemektir.

Bir ışık kaynağı bulmanın en kolay yolu robotun yerinde dönmesidir. Belirli bir süre döndükten sonra robot hala bir ışık kaynağı bulamadıysa, güç tasarrufu sağlamak için robotun hareket etmesinin durdurulmasını istersiniz. Belirli bir süre daha geçtikten sonra robot, ışığı aramak için tekrar yerinde dönmelidir. Bu modül hakkında daha fazla bilgi edinmek için burayı tıklayın.

Adım 5: Nasıl Çalışır?
Bu açıklama için yukarıdaki resme bakabilirsiniz. Bu talimatın başında belirtildiği gibi, eşikleme bölümünden "boyut" ve "pozisyon" girişlerine ihtiyacınız olacak. Bu girişlerin geçerli olduğundan emin olmak için (örneğinampÖrneğin, size = 0 aldığınızda, boyut gerçekten sıfırdır çünkü kamera ışığı algılamaz ve kamera hala başlatılıyor olduğundan değil), aynı zamanda "HAZIR" dediğimiz bir tür göstergeye de ihtiyacınız olacaktır. Bu veriler, her motorun hedef hızını (9 bit, imzalı) belirlemek için kontrol (Ctrl.vhd) tarafından işlenecektir.

Motorda daha kararlı bir çıkış elde etmek için kapalı döngü sisteminde geri bildirim kullanmak istiyorsunuz. Bu, motor hızı ölçüm bölümünden her motorun "yön" ve "hız" girişlerini gerektirir. Bu girişleri hesaplamalarınıza dahil etmek istediğiniz için bu işaretsiz değerleri 9 bitlik işaretli ikiliye dönüştürmeniz gerekecektir. Bu, imzasızdan imzalı ikili dönüştürücüye (US2S.vhd) yapılır.

Hata hesaplamasının (error.vhd) yaptığı şey, her motorun eylemini belirlemek için ölçülen hızı hedef hızdan çıkarmaktır. Bu, her ikisi de aynı değere sahip olduğunda çıkarma işleminin sıfır olacağı ve motorun yalnızca momentumuyla hareket edeceği anlamına gelir. Robotun hedef hızına daha hızlı ulaşabilmesi için bir çarpma faktörü de ekleyebilirsiniz.

Motor kontrol cihazı her motorun hızına ve yönüne ihtiyaç duyduğundan, eylemin işaretli değerlerini iki ayrı işaretsiz değere çevirmeniz gerekir: hız (1 bit) ve yön (8 bit). Bu, imzalıdan imzasıza ikili dönüştürücü (S2US.vhd) tarafından yapılır ve motor kontrol bölümünün girdileri haline gelir.

Ayrıca ışık algılanmadığında ne yapılacağını belirlemek için bir modül ekledik (ışık sayacı yok. Bhd). Bu modül temelde bir sayaç olduğundan, robotun ne kadar süre dönmesi veya yerinde kalması gerektiğini sayacaktır. Bu, robotun yalnızca önündekileri değil, çevresini "görmesini" sağlayacak ve hiçbir ışık kaynağı mevcut olmadığında pil gücünden tasarruf sağlayacaktır.Talimatlar-VHDL-Motor-Hız-Kontrol-Yön-ve-Hız-Sol-ve-Sağ-Hız-Kontrol Cihazı-şekil-3

Adım 6: Birleştirin Files
birleştirmek için files, her modülden gelen sinyalleri bağlamanız gerekir. Bunu yapmak için yeni bir üst seviye modül yapmalısınız. file. Önceki modüllerin giriş ve çıkışlarını bileşenler olarak ekleyin, bağlantılar için sinyaller ekleyin ve her bağlantı noktasını karşılık gelen çifte atayın. Yukarıdaki resimdeki bağlantılara bakabilir ve buradaki koda bakabilirsiniz.Talimatlar-VHDL-Motor-Hız-Kontrol-Yön-ve-Hız-Sol-ve-Sağ-Hız-Kontrol Cihazı-şekil-4

Adım 7: Test Edin
Kodun tamamını tamamladıktan sonra, özellikle kodun bazı kısımları farklı kişiler tarafından yapılmış olabileceğinden, kodunuzu panoya yüklemeden önce çalışıp çalışmadığını bilmeniz gerekir. Bu, kukla değerleri gireceğiniz ve kodun bizim istediğimiz gibi davranıp davranmadığını göreceğiniz bir test tezgahı gerektirir. Her bir modülü test ederek başlayabilir ve eğer hepsi düzgün çalışıyorsa, üst düzey modülü test edebilirsiniz.

Adım 8: Donanımda Deneyin
Kodunuz bilgisayarınızda test edildikten sonra kodu gerçek donanım üzerinde test edebilirsiniz. Kısıtlama yapmak zorundasın file Vivado'da (.xdc file BASYS 3 için) hangi giriş ve çıkışların hangi bağlantı noktalarına gideceğini kontrol etmek için.

ÖNEMLİ İPUCU: Elektrikli bileşenlerin maksimum akım veya hacim değerine sahip olabileceğini zor yoldan öğrendik.tages. Değerler için veri sayfasına başvurduğunuzdan emin olun. PMOD HB5 için ses düzeyini ayarladığınızdan emin olun.tage güç kaynağından 12 voltta (gerekli olan volüm budur)tage motor için) ve motorun hareket etmesi için gereken kadar az akım.

Adım 9: Diğer Parçalarla Birleştirin
Önceki adımlar başarılı olduysa, robota yüklenecek son kod için kodu diğer gruplarla birleştirin. O halde işte! Başarılı bir şekilde ışık arayan bir robot yaptınız.

Adım 10: Katkıda Bulunanlar
Soldan sağa:

  • Antonius Gregorius Deaven Rivaldi
  • Felix Wiguna
  • Nicholas Sanjaya
  • Richard MedyantoTalimatlar-VHDL-Motor-Hız-Kontrol-Yön-ve-Hız-Sol-ve-Sağ-Hız-Kontrol Cihazı-şekil-6

Çok hoş: VHDL Motor Hız Kontrolü: Yön ve Hıza Karar Verin, Sol ve Sağ Hız Kontrol Cihazı: Sayfa 6
tekrar teşekkürlerviewing! Bu proje aslında bir sınıf projesinin (BAYS 3 kartı ve OV7670 kameralı Işık Arayan Robot) yalnızca bir kısmıdır, bu yüzden yakında sınıfın talimatlarına bağlantıyı ekleyeceğim!

Mükemmel: Her şeyin bir araya getirildiğini görmeyi sabırsızlıkla bekliyorum.

Belgeler / Kaynaklar

VHDL Motor Hız Kontrolü Yön ve Hıza Karar Verin Sol ve Sağ Hız Kontrol Cihazı [pdf] Talimatlar
VHDL Motor Hız Kontrolü Yön ve Hıza Karar Verin Sol ve Sağ Hız Kontrol Cihazı, VHDL Motor Hızı, Kontrol Yön ve Hıza Karar Verin Sol ve Sağ Hız Kontrol Cihazı

Referanslar

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmiştir *