İçindekiler:

Makine İzleyici Oluşturun: 9 Adım
Makine İzleyici Oluşturun: 9 Adım

Video: Makine İzleyici Oluşturun: 9 Adım

Video: Makine İzleyici Oluşturun: 9 Adım
Video: Kendi kendine saklambaç öğrenen makine 2024, Kasım
Anonim
Makine İzleyici Oluştur
Makine İzleyici Oluştur
Makine İzleyici Oluştur
Makine İzleyici Oluştur

Bu projenin başlangıç noktası, mikro denetleyici kartları hakkında birkaç şey öğrenmek için somut bir proje üzerinde çalışmaktı.

İlk fikir, Sürekli Entegrasyon Sistemini (VSTS|Azure DevOps) izleyebilecek ve yazılım oluşturma hatalarını bildirebilecek fiziksel bir nesne oluşturmaktı. BT departmanından gelen güvenlik endişeleri nedeniyle, "standart olmayan" bir cihazı doğrudan kurumsal ağa bağlamam reddedildi.

Yukarıdaki resimde gösterilen mimari ile bitirdim. Yürütme iş akışı şu şekilde özetlenebilir:

Bir Windows masaüstü uygulaması, VSTS Yapı Tanımlarını tarar (çeker). Yapının sonuçlarını analiz eder ve ardından fiziksel cihaza, kırmızı veya yeşil bayrağı göstermeden önce küçük bir animasyon dizisi yürüten bir komut gönderir.

Adım 1: Gerekli Parçalar

Aşağıdaki liste, gerekli tüm öğeleri özetlemektedir:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Genişletme Kalkanı (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 XBee S1 modülü (https://www.adafruit.com/product/128).
  • 1 XBee gezgin program kilidi (https://www.sparkfun.com/products/11697).
  • Sabitleme aksesuarları ile 2 sürekli servo motor 5VDC (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 9VDC güç kaynağı.
  • 3 LED.
  • 3 direnç 220 Ohm.
  • termo geri çekilebilir kol.
  • 1 basma düğmesi.
  • Yukarı çekme için 10KΩ çekme direnci.
  • 100nF kapasitör.
  • elektrik telleri.
  • şerit tahtası (düğmenin montajı için)
  • 5mm ahşap (50x50cm).
  • tahta çubuk kare kesit 5x5 mm (1m).
  • karton.
  • 10 X vida 2mm çap.
  • 4 vida 5mm çap.
  • güçlü mıknatıs.
  • çevirme modülü. Yanıp sönen bir ışığın dahili hareketli kısmını yeniden kullandım. ne istersen koyabilirsin Sadece 2 hareketli parçanın birbirine dokunmadan serbestçe hareket edebilmesine dikkat etmeniz gerekecek.

Adım 2: Kutuyu Oluşturma

Kutuyu İnşa Etme
Kutuyu İnşa Etme

Aslında istediğiniz şekilde bir kutuya sahip olabilirsiniz. Başlamadan önce düşünülmesi gereken en önemli şey, hareketli parçaların nerede olacağı ve birbirine dokunmadan serbestçe hareket edebilmelerini sağlamaktır. Bir diğer nokta da cihazı nereye koyacaksınız? Herhangi bir metalik desteğe yapıştırmak için bir mıknatıs (güçlü olan) ile bitirdim. Aynı kutuyu yapmak isterseniz box_drawings.pdf dosyasındaki yönergeleri takip edebilirsiniz.

Bu durumda, tüm farklı parçaları kesmeniz, servo motorlar, LED'ler, düğme ve vidalar için delikler açmanız ve son olarak tüm parçaları birbirine yapıştırmanız gerekir. Kuruduktan sonra biraz zımpara ve biraz renk.

İki bayrak biraz kırmızı ve yeşil karton kullanılarak yapılmıştır. Bayrak direğini servo motorlara sabitlemek için satın aldığınızda verilen montaj parçalarını kullanabilirsiniz.

Adım 3: Arduino Kurulumu

Arduino Kurulumu
Arduino Kurulumu

Arduino genişletme kartına bağlanan öğeler şunlardır:

  • D2 PIN: basma düğmesi.
  • D4 PIN: sistemin AÇIK olduğunu söyleyen LED.
  • D5 PIN: Bir döngü yürüttüğümüzü söyleyen LED.
  • D6 PIN: Cihazın yeni bir mesaj aldığını söyleyen LED.
  • D9 PIN: Gyroyu işleyen servo motor için PWM darbe sinyali.
  • D10 PIN: Bayrağı işleyen servo motor için PWM darbe sinyali.
  • XBee Soketi: bir ZigBee Modülü.

Yukarıdaki şema, tüm öğelerin panoya nasıl bağlandığını gösterir.

LED'ler için direnç ve teller doğrudan üzerine kaynaklanır (polariteye dikkat edin). Her şey daha sonra bir termo geri çekilebilir manşon içinde paketlenir.

Basma düğmesi için tüm parçalar (düğme, direnç ve kapasitör) doğrudan küçük bir uydu şerit panosuna kaynaklanır. Şerit levha daha sonra doğrudan iki vidayla (2 mm) sabitlenir

Servo motorlar 5V güç ile çalışır ve bu sayede doğrudan Arduino'ya bağlanabilir. Daha yüksek voltajlı (12V) olanları kullanırsanız, güç kaynağı için başka bir katman eklemeniz gerekecektir.

XBee modülleri için, birlikte konuşacak şekilde yapılandırıldıklarında (bir sonraki bölüme bakın), doğrudan soketlere takılabilirler.

Notlar: LED'ler ve basma düğmesi, gerekli güvenlik işlemlerini dahili olarak uygulayabileceğinden doğrudan Arduino pinlerine bağlanmış olabilir. Bu yön benim için çok net olmadığı için eski yolu yaptım.

Adım 4: Yazılım - XCTU

Yazılım - XCTU
Yazılım - XCTU

Yukarıda belirtildiği gibi, iki XBee cihazı birlikte konuşacak şekilde yapılandırılmalıdır. Bunu yapmak için DIGI'nin özel X-CTU yazılımını kullanmanız gerekir. Bu yapılandırma adımını yalnızca bir kez yapmanız gerekir. lütfen xbee_configuration.pdf dosyasında açıklanan prosedürü izleyin.

Konfigürasyon tamamlandıktan sonra her modülü kendi soketine bağlayabilirsiniz. Biri USB/Seri dönüştürücüde ve diğeri Arduino genişletme kartında.

USB/Seri dönüştürücü, Windows 10 tarafından otomatik olarak tanınmalıdır. Değilse, sürücüyü manuel olarak yüklemeniz gerekebilir.

Not:

Temel bir seri iletişim yapmak için XBee modüllerini kullanmak biraz abartılı. Projeye başladığımda, Windows 10'da (sürücü sorunları) kolayca kullanılabilen basit seri iletişim cihazları bulamadım. Ayrıca https://www.zigbee.org hakkında birkaç şey öğrenme fırsatı oldu.

Adım 5: Yazılım - Arduino Sketch

Yazılım - Arduino Sketch
Yazılım - Arduino Sketch

Arduino'yu programlamak için resmi web sitesinden erişilebilen IDE'yi kullanıyoruz.

Programın mantığı oldukça basittir, sadece tek harfleri ('a', 'b', …) kartın varsayılan seri portunu dinler. Alınan karakter bilinen bir komutla eşleşirse, bir alt işlev karşılık gelen diziyi oynatır.

2 ana faydalı komut, başarı animasyonu ('a') ve hata animasyonudur ('b').

Kutuyla biraz daha fazla oynayabilmek (veya hata ayıklamak) için yürütülebilecek bazı ekstra komutlar vardır. Onlar:

  • 'o': AÇIK LED'ini AÇIK olmaya zorlayın
  • 'p': AÇIK LED'ini KAPALI olmaya zorlayın
  • 'q': Yeni Mesaj LED'ini AÇIK olmaya zorlayın
  • 'r': Yeni Mesaj LED'ini KAPALI olmaya zorlayın
  • 's': Döngü LED'ini AÇIK olmaya zorlayın
  • 't': Döngü LED'ini KAPALI olmaya zorlayın
  • 'u': jiroskopun servo motorunu etkinleştirin
  • 'v': bayrağın servo motorunu etkinleştirin.

Seri komuta ek olarak cihaz üzerinde butona basıldığında devreye giren bir alt rutin (handlePushButton) bulunmaktadır. Bu durumda hata veya başarı animasyonu otomatik olarak oynatılır. Bu özellik, fiziksel aygıtın doğru şekilde monte edildiğinin kontrol edilmesini sağlar.

Arduino taslağının kodu tek dosya bsldevice.ino içindedir. IDE'yi kullanarak doğrudan yükleyebilirsiniz.

Adım 6: Yazılım - Masaüstü Uygulaması

Yazılım - Masaüstü Uygulaması
Yazılım - Masaüstü Uygulaması

Masaüstü uygulamasının amacı, Microsoft Azure DevOps (önceden VSTS) web sitesini izlemek ve bir Yapı Tanımlamasının başarılı mı yoksa hatalı mı olduğunu tespit etmektir. Bir derleme her tamamlandığında, masaüstü uygulaması derlemenin durumunu belirler ve ilgili komutu ('a' veya 'b') seri bağlantı noktasına (COMx) gönderir.

Uygulamayı başlattıktan sonra ilk eylem, ZigBee modülünün bağlı olduğu doğru com portunu seçmektir. Bağlantı noktasını belirlemek için Windows Aygıt Yöneticisi'ni kullanabilirsiniz (Bağlantı Noktaları altında (COM ve LPT bölümü)). Azure DevOps bağlantısı, geçerli kullanıcının kimlik bilgileri kullanılarak başlangıçta otomatik olarak yapılır. Sağdaki birleşik giriş kutusunu kullanarak önceden tanımlanmış herhangi bir komutu manuel olarak da gönderebilirsiniz.

Tüm kaynaklar Visual Studio 2017 profesyonel sürümü ile oluşturulmuştur.. NET Framework 4.6.1 gerektirir. VSTS web sitesine bağlantı/kimlik doğrulamayı kolaylaştırmak için Framework'ün bu sürümü tercih edilir.

kullanmak:

  • bslwatcher_sources.zip arşivini indirin.
  • Diskinize çıkarın.
  • Derleme ayrıntıları için how_to_build.txt dosyasını okuyun.

7. Adım: İlk Başlangıç

Kutuyu başlatırken akılda tutulması gereken iki ana şey vardır:

1-Sistemin kendi başına bayrakların nerede olduğunu bilmesine imkan yoktur. Sistem, başlangıçta yeşil bayrağın açık olduğunu varsayar.

2- Arduino kartını çalıştırırken hiçbir şey hareket etmemelidir. Sürekli servolar kullandığımız için, çizim dosyasında sıfır konumu varsayılan olarak 90'a ayarlanmıştır. Bir servo motor dönmeye veya biraz ses çıkarmaya başlarsa. sıfır konumunu yeniden tanımlamanız gerekebilir. Bunu yapmak için, servo motorun yanındaki küçük deliğin içindeki potansiyometreyi ayarlamanız yeterlidir.

www.arduino.cc/en/Reference/ServoWrite

cmra.rec.ri.cmu.edu/content/electronics/boe…

Adım 8: Sonuç

Bu küçük cihaz, Sürekli Entegrasyon Sisteminizin durumunu fiziksel olarak rapor edecektir.

"İstihbarat" masaüstü uygulamasında olduğundan, kutuyu diğer yazılımları veya işlemleri (posta, sıcaklık sensörü…) izlemek için kullanabilirsiniz. Sadece başka bir API'ye erişmeniz ve neyin "iyi" veya neyin "kötü" olduğuna karar vermeniz gerekiyor. Kırmızı ve yeşil ortak renkleri kullanmazsanız, "mesajın" anlamını bile değiştirebilirsiniz.

İyileştirmeler kutunun kendisine de getirilebilir:

  • Pil kullanın.
  • Başka bir iletişim protokolü kullanın.
  • Hangi bayrağın en üstte olduğunu öğrenmek için sensörler ekleyin.

Umarım bu projeyi ilginç bulmuşsunuzdur.

Buraya kadar okuduğunuz için teşekkürler.

9. Adım: Ek

Bu projeyi oluşturmak için kullanılan bağlantılardan bazıları:

Arduino web sitesi:

DIGI web sitesi:

XCTU yazılımı:

Başkalarından kullanılan bazı bilgiler:

arduino.stackexchange.com/questions/1321/se…

stackoverflow.com/questions/10399400/best-w…

www.mon-club-elec.fr/pmwiki_reference_ardui… (Fransızca)

jeromeabel.net/

Genel olarak MSDN web sitesi:

docs.microsoft.com/en-us/dotnet/framework/…

Önerilen: