Windows 10 Arduino Uygulaması Nasıl Oluşturulur (Mutlak Yeni Başlayanlar İçin)

  • Lesley Fowler
  • 0
  • 2636
  • 392
reklâm

Microsoft, Windows 10 için her şeye giriyor, sonunda platformlar arası çalışan uygulamalara sahip olma hayalini gerçekleştirdi. Arduino için resmi destekle birleştirildiğinde, emrinizde yeni ve güçlü bir araca sahipsiniz: Gerçek dünyayla donanım bağlantısı olan evrensel Windows uygulamalarını kolayca oluşturma yeteneği.

Daha önce hiç bir Windows uygulaması programlamamış olsanız bile, nasıl başlayacağınız.

Okumaya başlamadan önce, ne yapacağımızın demosuna göz atın.

Dikkat etmeliyim ki, yaklaşık 10 yıldan beri Visual Studio'yu kullanmadım, hatta C # 'ya dokundum. Buraya yeni bir Visual Studio kurulumu perspektifinden geliyorum ve bildiğim her şeyi unuttum.

Windows uygulama programlaması konusunda zaten oldukça deneyimliyseniz veya Windows'ta bu Arduino uygulaması olmadan programlamaya başlamak için basit bir yol arıyorsanız bile, Ryan'ın basit bir Visual Basic uygulaması yapma kılavuzunu deneyin. VBA VBA İle Kendi Basit Uygulamanızı Nasıl Yapabilirsiniz? Kendi başvurunuzu yazmayı gerçekten çok ister, ancak daha önce hiçbir zaman tek bir kod satırı yazmamışsınız. …. Mutlak programlama yeni başlayanlar Programlamamı kontrol etmek isteyebilir 101 Bilgisayar Programlamanın Temelleri 101 - Değişkenler ve DataTypes Bilgisayar Programlamanın Temelleri 101 - Değişkenler Ve DataTypes Adake öğesinden önce ve nereden geldiğini, Nesne Yönelimli Programlama hakkında biraz konuştum ve konuştum. Programlamanın mutlak temellerini dile özgü olmayan bir yoldan geçirmenin zamanı geldiğini düşündüm. Bu… (ve bölüm 2 Yeni Başlayanlar İçin Programlamanın Mutlak Temelleri (Bölüm 2) Yeni Başlayanlar İçin Programlamanın Mutlak Temelleri (Bölüm 2) Yeni başlayanlar için Programlama rehberinin 2. bölümünde, fonksiyonların temelini ele alacağım, dönüş Değerler, döngüler ve şartlamalar ... Önce bunu anlattım,…) makalesini yazmadan önce 1. bölümü okuduğunuzdan emin olun..

Bazı yeni başlayanlar Arduino projeleri hakkında bilgi sahibi olmalısınız. 15 Yeni Başlayanlar İçin Büyük Arduino Projeleri 15 Yeni Başlayanlar İçin Büyük Arduino Projeleri Arduino projelerine ilgi duyuyor ancak nereden başlayacağınızdan emin değil misiniz? Bu başlangıç ​​projeleri size nasıl başlanacağını öğretecektir. (ve belki de Arduino Kılavuzumuzu okuyabilirsiniz Arduino ile Başlarken: Yeni Başlayanlar Kılavuzu Arduino ile Başlarken: Yeni Başlayanlar Kılavuzu Arduino, esnek, kullanımı kolay donanım ve yazılımı temel alan açık kaynaklı bir elektronik prototip platformudur. tasarımcılar, hobiler ve etkileşimli nesneler veya ortamlar oluşturmak isteyen herkes.), ancak bu muhtemelen onunla etkileşimde bulunmak için gerçek bir bilgisayar yazılımı oluşturmayı ilk kez denemeniz olacak..

İndirilenler

İlk önce, en son önizleme sürümünü almak için Windows Insider Programına katılmanız gerekir. Visual Studio 2015, ve son yapı Windows 10 Önizlemesi. Bunu şimdi yap - ücretsiz. Windows 10 bir geliştirici önizlemesidir ve ana işletim sisteminiz olarak kurulmamalıdır. Bu cehennem gibi adamım.

  • Windows Insider programına katılın ve Windows 10 Teknik Önizlemesini indirin
  • Visual Studio 2015 Community Edition’ın önizlemesini alın [Artık Kullanılmıyor].

Görsel stüdyo Microsoft'un C # Windows uygulaması oluşturmak için kullanacağımız kendi geliştirme ortamıdır..

Neden#? Java ile güçlü benzerliklere sahip, yeni başlayanlar için çalışan bir uygulamanın çalışmaya başlaması için nispeten kolay bir programlama dili olmasına rağmen, bazı çarpıcı uygulamalar (hatta oyunlar: C #, birliğin seçim dili komut dosyası dilidir - kontrol edin) Birlikle Bir Oyun Programlamak için Yeni Bir Kitapçık, Birlikle Bir Oyun Programlama: Birlikle Bir Oyun Programlama: Birlikle Bir Oyun Programlama: Bir Başlangıç ​​Kılavuzu Birlikle Başlayan Bir Oyun: Indie oyun geliştirmenin gelişen manzarasında, Birlik fiili bir şey olarak ortaya çıkmıştır. standart: düşük maliyeti, kullanım kolaylığı ve geniş özelliği sayesinde hızlı oyun gelişimi için idealdir.).

Henüz yapmadıysanız, indirmek Arduino IDE resmi Arduino.cc sitesinden standart firmata tahtaya. Altında bulacaksınız Örnekler -> Firmata -> Standart Firmata. Bu sadece bir dönüşür “dilsiz” Uygulamamız ne söylerse yapsın, seri bir cihaz - kurulun kendisinde bir uygulama mantığı olmayacak, sadece uygulamamız ile Arduino'ya bağlı herhangi bir sensör veya çıkış cihazı arasında bir arayüz olacak.

Kablolama açısından, bir LED'i aşağıdaki gibi doğrudan 13 ve GND pinlerine yapıştırabilir veya yerleşik LED'i kullanabilirsiniz. Ayrıca A0'a giden değişken bir rezistansa (10k lineer potansiyometre kullandım) ihtiyacınız var (GND ve + 5v'de uygun bacaklar da var).

Son olarak, Uzaktan Kablolama paketini GitHub [Artık Kullanılamaz] 'dan indirin. Bu, Windows uygulamamızın Arduino ile konuşmasını sağlayacak, eklememiz gereken katmandır..

Bir uygulama oluştur

Devam et ve Visual Studio'yu aç. İlk defa çalıştırıyorsanız, oturum açma seçeneği size sunulur. İsterseniz yok sayın. Seçmek Görsel C # gelişme seçeneği olarak; Her iki durumda da, Visual Studio'nun ilk kullanım için hazırlanması birkaç dakika sürer..

Şablonu kullanarak yeni bir proje oluşturun Görsel C # -> Boş Uygulama (Windows Universal). Benimkiyi aradım “Arduino Testi”, ama önemli değil.

Bu noktada, uygulamayı gerçekten çalıştırmak istersem, Windows 10'u geliştirici moduna geçirme konusunda bir hatayla karşılaştım. Devam edin ve bunu yapın, ancak Windows 10 sürümünüzün bu ayara çarptığını tespit ederseniz, bu bilinen bir hatadır ve geliştirici modunu etkinleştirmek için grup ilkesi düzenleyicisini kullanmanız gerekir..

Sonra, içinde herhangi bir yere sağ tıklayın. Çözüm Gezgini (sağdaki şey bu) ve seçim Eklemek -> Mevcut Proje.

Uzak Kablolama dosyalarını Github'dan indirdiğiniz yere gidin - açılmışsa, adı verilen bir klasör olmalıdır. Uzaktan kablolama-geliştirme. İçinde bulacaksın Microsoft.Maker.win10; ve bunun içinde başka bir 3 klasör bulacaksınız. Sırayla, bu üç klasörün içinde gezinerek ve proje dosyasını bularak her birini ekleyin..

Hakkında herhangi bir hata alırsanız, “XAML 8.2 dosyası bulunamadı”, Visual Studio'nun yanlış sürümüne sahipseniz veya henüz geliştirici araçlarına sahip değilseniz. Bu makalenin başına dönün ve bağlantılı Visual Studio dosyalarının her ikisini de indirip yüklediğinizden emin olun.

Yeni eklediğiniz bu 3 proje Arduino arayüzünün sadece farklı katmanları. Çözüm gezgininden sağ tıklayıp seçtiyseniz Bağımlılıklar -> Bağımlılıklar Oluştur, hangi katmanların hangilerine bağlı olduğunu görebilirsiniz (Seri hiçbir şeye bağlı değildir; Firmata Seriye bağlıdır; RemoteWiring her ikisine de bağlı). Burada yapmanız gereken tek değişiklik, aşağıdan projenizi seçmek ve projenizin diğer tüm projelere bağlı olduğunu belirtmek için her kutuyu işaretlemektir..

Son bir adım: çözüm kaşifinden tekrar sağ tıklayın Referanslar projenizin altındaki öğeyi seçin ve Referans ekle. Soldan git Windows Universal, sonra yanındaki kutuyu işaretleyin Microsoft Visual C ++ AppLocal Çalışma Zamanı Paketi. Henüz iletişim kutusunu kapatmayın.

Sonraki adrese git Projeler (aynı iletişim kutusunda, soldaki listeden) ve her üçün yanındaki kutuyu işaretleyin Microsoft.Maker projeler.

Olması gerektiğinden daha zordu, ama sadece bir kez yapman gerekiyor; şimdi programlama ile biraz eğlenebiliriz - söz veriyorum o kadar da korkutucu değil.

Programlama

Takip etmekte sorun yaşıyorsanız, kodun tamamı Pastebin'de mevcuttur. Yine de aşağıdaki notları okumanızı şiddetle tavsiye ediyorum, bu yüzden kodun gerçekte ne yaptığını açıklayabilirim.

Öncelikle, Arduino ile iletişim kurmak için bir USB portuna ihtiyacımız olduğunu söyleyen bir kod eklemeliyiz. Bul Package.appxmanifest Solution Explorer'dan dosya ve düzenlemek için çift tıklayın. Buraya bazı kodlar yapıştırmamız gerekiyor - teknik olarak “bir çocuk düğümü eklemek” çünkü bu bir XML dosyası, ancak sadece aşağıdaki bölümle tüm bölümü değiştirerek şöyle görünmesini sağlayın:

Bluetooth kullanıyorsanız veya 10 yerine Win8.1'i hedefliyorsanız, kodun tamamı değişebilir, ancak aşağıdakiler Windows 10, USB bağlantısı içindir.

       

Git İnşa etmek menü -> Yeniden Oluşturma Çözümü, ve hata alamadığınızdan emin olun.

Çözüm gezgininden, genişlet MainPage.xaml düğümü. Bunun üzerine çift tıklamak, daha sonra geri döneceğimiz form tasarımcısını yükleyecektir, ancak şimdi açılacaktır. MainPage.xaml.cs, uygulamamızın arkasındaki ana mantığı içeren.

İlk bölüme iki satır ekledik. “kullanma” Arduino bitleri.

Microsoft.Maker.serial kullanarak; Microsoft.Maker.RemoteWiring kullanarak;

Ayrıca kullanacağımızı söylemek için bir satır ekledim. System.Diagnostics; bu bize kullanmamızı sağlar Debug.WriteLine () IDE'ye hata ayıklama mesajları çıktısı alma işlevi.

Öncelikle, kullanacağımız birkaç değişkeni tanımlayalım. Bu satırları hemen önce ekleyin. genel MainPage () işlev bildirimi.

UsbSerial bağlantısı; RemoteDevice arduino; UInt16 son değeri;

Ardından, MainPage () işlevine atlayın - buna yapıcı adı verilir ve bu uygulamamız oluşturulduğunda hemen çağrılan bir işlevdir, bu yüzden her şeyi ayarlamak için onu kullanırız.

İlk önce, belirli bir USB cihazına (Arduino) USB seri bağlantısını kurmak için bir hat ekleyin..

connection = new UsbSerial ("VID_2341", "PID_0043");

Standart bir Arduino Uno'nun USB ID'lerinin zaten bloğa kodlanmış olduğuna dikkat edin, ancak bunu doğrulayabilirsiniz. Aygıt Yöneticisi -> Limanlar (COM ve LPT) -> Arduino Uno -> ayrıntılar sekme -> Donanım kimlikleri.

Sonra hemen sonra aşağıdaki satırları ekleyin.

arduino = yeni RemoteDevice (bağlantı); connection.ConnectionEstablished + = OnConnectionEstablished; connection.begin (57600, SerialConfig.SERIAL_8N1);

Burada birkaç şey oluyor. İlk önce, bir RemoteDevice nesnesi yaratıyoruz - hatırlayın, bize bir sürü Arduino komutu veren katman - ve ona değişken adını veren “arduino”. Bir sonraki satır, ConnectionEstablished olayına ekleniyor. “USB bağlantısı başarıyla kurulduktan sonra, lütfen OnConnectionEstablish () adlı işlevi çalıştırın.”.

Final, bağlantıya 8N1 bit kalıbı kullanarak 57600 baud hızında başlamasını söyler..

Ayrıca şimdi OnConnectionEstablished () işlevini yaratmanız gerekecek, bu nedenle MainPage () işlevinin dışına çıkın ve aşağıdaki gibi boş bir işlev yapın.

private void OnConnectionEstablished () // BURADA LOGIC

Daha önce bahsettiğim form tasarımcısına geri dönün (nasıl yaptığını unuttuysanız: üzerine çift tıklayın) MainPage.xaml çözüm kaşifinden). İki düğme oluşturun. Bunu yapmak için, ekranın sol tarafına dikey olarak tutturulmuş olarak bulacağınız Araç Kutusu sekmesini açın. İki düğmeyi sayfaya sürükleyin ve ardından bir etiketleyin üzerinde ve bir kapalı.

İlk düğmeyi seçin, ardından sağ alttaki Özellikler kutusundan adlandırın “OnButton”. Küçük yıldırım ikonuna tıklayın - bu, form elemanları ile etkileşime girdiğinde ne olacağını belirlemek için kullanılan olaylar ve eylemler listesidir. tip “OnButtonClick” içine Click alan.

Enter tuşuna bastığınızda, belirli bir düğme olayı için kodu otomatik olarak oluşturur ve standart kod görünümünü yükler. Şimdilik form tasarımcısına geri dönün ve Kapalı düğmesi için aynısını yapın, ancak bu sefer onu arayın “OffButton”, ve “OffButtonClick”. Siz oradayken devam edin ve arkasındaki ana pencere formunu adlandırın. “Sayfa” - daha sonra kullanırız. Şimdi aşağıdaki ekran görüntüsüne benzeyen bir şeye sahip olmalısınız:

Bir an için tekrar tasarımcıya geri dönün ve her bir düğme için tekrar etkin özellik Yanlış. Bunu, özelliği doğrudan XAML kodu görünümüne yazarak yapın ya da bu onay kutusunu Özellikler kutusunda bulabilirsiniz (hala eylemler görünümündeyseniz anahtarın anahtarını tıklayın) - genişletilmiş durumda Ortak mülk kategorisi.

Bu zorunlu değil, ancak Arduino'nun takılı ve bağlı olduğundan emin olana kadar düğmeleri devre dışı bırakmak iyi bir uygulamadır..

Bunları yeniden etkinleştirmek için, OnConnectionEstablished () işlevine aşağıdakileri ekleyin. Şimdilik kodun tam anlamıyla ilgili çok fazla endişelenmeyin, bu, iyi performans sağlamak için modern Windows uygulamalarında form güncellemelerini gerçekleştirmeniz gerektiği gibi. Arduino’ya bağlandıktan sonra, Etkin düğmelerin özelliği true.

private void OnConnectionEstablished () // açık düğmelerini etkinleştirin var action = Dispatcher.RunAsync (Windows.UI.Core.CoreDispatcherPriority.Normal, yeni Windows.UI.Core.DispatchedHandler (() => OnButton.IsEnabled = true; OffButton.IsEnabled = true;)); arduino.pinMode (14, PinMode.ANALOG); arduino.AnalogPinUpdatedEvent + = MyAnalogPinUpdateCallback; Debug.WriteLine (arduino.analogRead (14)); 

Ayrıca, 14. sırada bir analog girişimiz olduğunu söylemek için daha tanıdık bir pinMode () ifadesi göreceksiniz (13 dijital pin vardır, bu nedenle A0 14'ten saymaya başlar). Sonra başka bir olay bildirimi aldık - analog pin değeri güncellendiğinde, MyAnalogPinUpdateCallback işlevini çağırın.

Son olarak, düğme tıklatma olaylarını düzenlememiz ve analog giriş değiştiğinde ne olacağına karar vermemiz gerekir. Düğmelerle başlayalım. Arduino ile, normal Arduino kodu ile benzer fonksiyon isimleri kullanarak aşağıdaki gibi etkileşim kurabiliriz:

arduino.digitalWrite (13, PinState.HIGH);

Bunu onButton olayı ve offButton için yapıştırın:

arduino.digitalWrite (13, PinState.LOW);

Basit. Arduino'dan gelen analog giriş biraz daha zor, ama işte bunu buldum.

public void MyAnalogPinUpdateCallback (bayt pin, UInt16 değeri) if (value-lastvalue> 5 || lastvalue-değeri> 5) 
Debug.WriteLine ("Pin A" + pin + "şimdi" + değeridir); var action = Dispatcher.RunAsync (Windows.UI.Core.CoreDispatcherPriority.Normal, yeni Windows.UI.Core.DispatchedHandler (() => byte num = Convert.ToByte (değer / 4); Page.Background = new SolidColorBrush (değer / 4); Windows.UI.Color.FromArgb (255, num, num, Convert.ToByte (255-num)));));  son değer = değer; 

Pimden aldığımız önceki değeri lastValue adlı değişkende sakladığımı unutmayın; bu, değerin ne kadar değiştiğini kontrol etmemizi sağlar ve yalnızca fark önemliyse tepki verir (bir tür sinyal yumuşatma). Her iki yönde de 5'ten fazla değişirse (0-1024 tüm değer aralığıdır), o zaman Sayfa öğesinin RGB arka plan renk değerini değiştirerek tepki veririz..

Çalışacak tek bir numaramız olduğundan ve acelem olduğu için, burada R, G ve B yapmak için gereken 3 rakamı biraz karıştırdım. Muhtemelen çok daha güzel bir şeyle karşılaşabilirsiniz..

bitirdi

İşte bu - kodu çalıştırın ve yukarıdaki ekran görüntüsüne benzer bir şey görmelisiniz. Düğmeler LED'i açıp kapatacak ve değişken direnç arka planı değiştirecektir. Eğer sorun yaşadıysanız, kodun tamamını burada unutmayın..

Arduino ile etkileşime giren kendi Windows 10 uygulamalarınızı yazabileceğinize göre ne yapacaksınız? Belki de bir ev otomasyonu denetleyicisi Ahududu Pi ve Arduino ile Ev Otomasyonu Rehberi Ahududu Pi ve Arduino ile Ev Otomasyonu Rehberi Ev otomasyonu pazarı, pahalı tüketici sistemleriyle doludur, birbiriyle uyumsuz ve kurulumu maliyetlidir. Bir Ahududu Pi ve bir Arduino varsa, temelde aynı şeyi ... Yorumlarda bana bildirin.




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.