İlan

Microsoft Windows 10 için her şeyi yapıyor ve nihayet platformlar arası çalışan uygulamalara sahip olma hayalini gerçekleştiriyor. Arduino için resmi destekle birlikte, emrinizde yeni ve güçlü bir araca sahipsiniz: gerçek dünyaya donanım bağlantısı olan evrensel Windows uygulamaları kolayca oluşturma yeteneği.

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

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

Yaklaşık 10 yıl önce Visual Studio kullanmadım, hatta C # 'a dokunmadım. Buna yeni bir Visual Studio yüklemesi perspektifinden geliyorum ve bildiğim her şeyi unuttum.

Windows uygulama programlama konusunda zaten deneyimliyseniz veya bu Arduino öğeleri olmadan Windows'ta programlamaya başlamak için basit bir yol arıyorsanız, Ryan’ın basit bir Visual Basic uygulaması yapma kılavuzu VBA ile Kendi Basit Uygulamanızı Nasıl Yapabilirsiniz?Sorunları çözmek için kendi VBA başvurunuzu nasıl yapacağınızı bilmek ister misiniz? Kendi VBA yazılımınızı oluşturmak için bu ipuçlarını kullanın. Daha fazla oku

instagram viewer
. Mutlak programlama yeni başlayanlar kontrol etmek isteyebilir Programlama 101 Bilgisayar Programlamanın Temelleri 101 - Değişkenler ve Veri TipleriNesneye Yönelik Programlamayı daha önce ve nerede ismiyle tanıştırıp konuştuk gelince, dilin spesifik olmayan bir şekilde programlamanın mutlak temellerinden geçmenin zamanı geldiğini düşündüm yol. Bu... Daha fazla oku (ve Bölüm 2 Yeni Başlayanlar İçin Programlamanın Mutlak Temelleri (Bölüm 2)Mutlak yeni başlayanlar için programlama kılavuzumuzun 2. bölümünde, fonksiyonların, dönüş değerlerinin, döngülerin ve koşulların temellerini ele alacağım. Bu konuyu ele almadan önce bölüm 1'i okuduğunuzdan emin olun. Daha fazla oku ) makale.

Bazılarına aşina olmalısınız acemi Arduino projeleri Yeni Başlayanlar İçin 15 Büyük Arduino ProjesiArduino projeleri ile ilgileniyor, ancak nereden başlayacağınızdan emin değil misiniz? Bu başlangıç ​​projeleri size nasıl başlayacağınızı öğretecek. Daha fazla oku (ve hatta belki de Arduino Uçak Bileti Arduino'ya Başlarken: Başlangıç ​​KılavuzuArduino esnek, kullanımı kolay donanım ve yazılıma dayalı açık kaynaklı bir elektronik prototipleme platformudur. Sanatçılar, tasarımcılar, hobiler ve etkileşimli nesneler veya ortamlar oluşturmak isteyen herkes için tasarlanmıştır. Daha fazla oku ), ancak bu muhtemelen onunla etkileşime geçmek için gerçek bir bilgisayar yazılımı oluşturmayı ilk kez denediniz.

İndirilenler

İlk olarak: Windows Insider Programı en son önizleme sürümünü almak için Visual Studio 2015ve son sürümü Windows 10 Önizleme. Bunu şimdi yap - ücretsiz. Windows 10 bir geliştirici önizlemesidir ve ana işletim sisteminiz olarak kurulmamalıdır. Cehennem gibi adamcağız.

  • Katılmak Windows Insider programı10 Teknik Önizleme'yi indirin ve indirin
  • Visual Studio 2015 Community Edition [Artık Kullanılamıyor] önizlemesini alın.

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

Neden#? Java ile güçlü benzerliklerle, yeni başlayanlar için çalışan bir uygulamayı çalıştırmak ve çalıştırmak, ancak güçlü olmak için nispeten kolay bir programlama dilidir. bazı çarpıcı uygulamalar oluşturmak için devam edebileceğiniz kadar (hatta oyunlar: C #, Unity komut dosyası dilidir - ücretsiz eKitap, Birliğin Bir Oyunu Programlama Başlangıç ​​Kılavuzu Unity ile Oyun Programlama: Başlangıç ​​KılavuzuBağımsız oyun geliştirmenin gelişen ortamında Unity, fiili bir standart olarak ortaya çıktı: düşük maliyeti, kullanım kolaylığı ve geniş özellik seti, hızlı oyun geliştirme için idealdir. Daha fazla oku ).

Henüz yapmadıysanız, Arduino IDE memurdan Arduino.cc ve standart firmata tahta üzerine. Altında bulacaksınız Örnekler -> Firmata -> Standart Firmata. Bu, onu uygulamamızın söylediği her şeyi yapacak olan "aptal" bir seri cihaza dönüştürüyor - uygulama olmayacak tahtada mantık, sadece bizim app ve herhangi bir sensör veya çıkış cihazları arasında bir arayüz Arduino.

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

Arduino-Windows 10-demo

Son olarak, Uzak Kablolama paketini GitHub [Artık Kullanılamıyor] 'dan indirin. Eklememiz gereken katman, Windows uygulamamızın Arduino ile konuşmasını sağlayacak.

Uygulama Oluştur

Devam edin ve Visual Studio'yu açın. İlk kez çalıştırıyorsanız, oturum açma seçeneği sunulur. İsterseniz bunu görmezden gelin. Seç Görsel C # geliştirme seçeneği olarak ve devam; 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). Benimkini “Arduino Testi” olarak adlandırdım, ama önemli değil.

yeni c keskin evrensel windows uygulaması

Bu noktada, uygulamayı gerçekten çalıştırmak istersem Windows 10'u geliştirici moduna geçirmek zorunda kalmayla ilgili bir hatayla karşılaştım. Devam edin ve bunu yapın, ancak Windows 10 yapınızın bu ayarda çöktüğünü fark ederseniz, bu bilinen bir hatadır ve yapmanız gerekir geliştirici modunu etkinleştirmek için grup ilkesi düzenleyicisini kullanma.

Ardından, herhangi bir yeri sağ tıklayın Çözüm Gezgini (sağdaki şey) ve Ekle -> Mevcut Proje.

çözüm gezgini proje ekleme

Uzaktan Kablolama dosyalarını Github'dan indirdiğiniz yere gidin - sıkıştırılmışsa, şu klasörde olmalıdır: Uzaktan kablolama-geliştirme. İçeride bulacaksınız Microsoft. Maker.win10; ve bunun içinde 3 klasör daha bulacaksınız. Buna karşılık, bu üç klasörün içinde gezinip proje dosyasını bularak her birini ekleyin.

“XAML 8.2 dosyası bulunamadı” hakkında herhangi bir hata alırsanız, Visual Studio'nun yanlış sürümüne sahipsiniz veya henüz geliştirici araçları yüklü değil. Bu makalenin başlangıcına geri dönün ve bağ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 Bağımlılıklar -> Bağımlılıklar Oluşturun, hangi katmanların hangisine 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ıdır). Burada yapmanız gereken tek değişiklik, projenizi açılır menüden seçmek ve projenizin diğer tüm projelere bağlı olduğunu belirtmek için her kutuyu işaretlemektir.

bağımlılıkları kontrol et

Son bir adım: çözüm gezgininden tekrar sağ tıklayın Referanslar projeniz altındaki öğeyi seçin ve Referans ekle. Soldan şuraya gidin: Windows Universal, ardından yanındaki kutuyu işaretleyin Microsoft Visual C ++ AppLocal Çalışma Zamanı Paketi. İletişim kutusunu henüz kapatma.

proje referansları

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

yapımcı referansları

Bu olması gerekenden daha zordu, ancak sadece bir kez yapmanız gerekir; şimdi programlama ile biraz eğlenebiliriz - söz veriyorum o kadar da korkutucu değil.

Programlama

Takip etmekte zorlanıyorsanız, tam kod Pastebin'de mevcuttur. Ben kesinlikle yine de aşağıdaki notları okuma öneririz, bu yüzden kod aslında ne yaptığını açıklayabilir.

İlk olarak, Arduino ile iletişim kurmak için bir USB portuna ihtiyacımız olduğunu söyleyen bir kod eklememiz gerekiyor. Bul Package.appxmanifest dosyasını çözüm gezgininden seçin ve düzenlemek için çift tıklayın. Buraya bir kod yapıştırmamız gerekiyor - teknik olarak, bir XML dosyası olduğu için “bir alt düğüm ekleyeceğiz”, ancak yalnızca aşağıdaki kod ile bölüm böylece aşağıdaki gibi görünür:

yetenekleri

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

Şuraya git: İnşa etmek menü -> Çözümü Yeniden Oluşturve hata almadığınızdan emin olun.

Çözüm gezgininden MainPage.xaml düğümü. Buna çift tıkladığınızda, daha sonra geri döneceğimiz form tasarımcısı yüklenir, ancak şimdilik açılır MainPage.xaml.csuygulamamızın arkasındaki ana mantığı içerir.

Arduino bitlerini “kullanacağımızı” belirtmek için ilk bölüme iki satır ekleyin.

Microsoft kullanıyor. Maker.serial; Microsoft kullanıyor. Maker. RemoteWiring;

Ayrıca kullanacağımızı söyleyecek bir satır da ekledim Sistemi. Teşhis; bu da Hata ayıklama. Yazı çizgisi() hata ayıklama iletileri IDE çıktısı işlevi.

Öncelikle, kullanacağımız birkaç değişkeni tanımlayalım. Bu satırları herkese açık MainPage () işlev bildirimi.

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

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

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

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

Standart bir Arduino Uno'nun USB kimliklerinin zaten bloğa kodlandığına dikkat edin, ancak bunu Aygıt Yöneticisi -> Bağlantı Noktaları (COM ve LPT) -> Arduino Uno -> ayrıntılar sekmesi -> Donanım kimlikleri.

usb hid pid'i kontrol et

Sonra hemen ardından aşağıdaki satırları ekleyin.

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

Burada birkaç şey oluyor. İlk olarak, bir RemoteDevice nesnesi oluşturuyoruz - unutmayın, bu bize bir grup Arduino komutu veren katman ve ona "arduino" değişken adını veriyor. Bir sonraki satır, ConnectionEstablished olayına, “USB bağlantısı başarıyla kurulduktan sonra, lütfen OnConnectionEstablish () adlı fonksiyonu çalıştırın”.

Final, bağlantının zaten 57600'lük bir baud hızında, 8N1 bit deseni.

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

özel void OnConnectionEstablished () { // BURAYA MANTIK. }

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

form tasarımcısı düğme ekleme

İlk düğmeyi seçin, ardından sağ alt taraftaki Özellikler kutusundan "OnButton" olarak adlandırın. Küçük yıldırım simgesini tıklayın - bu, form öğeleriyle etkileşime girdiğinde ne olacağını belirtmek için kullanılan olaylar ve eylemler listesidir. Şuraya “OnButtonClick” yazın Tıklayın alan.

Enter tuşuna bastığınızda, söz konusu düğme etkinliğinin kodunu 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 de aynısını yapın, ancak bu sefer ona “OffButton” ve “OffButtonClick” deyin. Siz oradayken, devam edin ve arkasındaki ana pencere formunu “Sayfa” olarak adlandırın - bunu daha sonra kullanacağız. Şimdi aşağıdaki ekran görüntüsüne benzeyen bir şey olmalıdır:

tasarımcı olaylar oluşturur

Bir süre daha tasarımcıya geri dönün ve düğmelerin her biri için tekrar etkin mülkiyet Yanlış. Bunu, özelliği doğrudan XAML kod görünümüne yazarak yaparsınız veya bunu bulabilirsiniz. Özellikler kutusundaki onay kutusunu işaretleyin (hala işlemler görünümündeyseniz anahtarı tıklayın) - genişletilmiş Yaygın özellik kategorisi.

Bu gerekli değildir, 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ı hakkında endişelenmeyin, sadece iyi performans sağlamak için modern Windows uygulamalarında form güncellemelerini kullanmanız gerekiyor. Arduino'ya bağlandıktan sonra, Etkin düğmelerin özelliği true.

private void OnConnectionEstablished () {// açma kapama 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; Hata ayıklama. WriteLine (arduino.analogOkuma (14)); }

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

Son olarak, düğme tıklama 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 gibi benzer işlev adlarını kullanarak etkileşim kurabiliriz:

arduino.digitalWrite (13, PinState. YÜKSEK);

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

arduino.digitalWrite (13, PinState. DÜŞÜK);

Basit. Arduino'nun analog girişi biraz daha hileli, ama işte burada buldum.

herkese açık geçersiz MyAnalogPinUpdateCallback (bayt pin, UInt16 değeri) {if (değer-son değer> 5 || son değer-değer> 5) {
Hata ayıklama. WriteLine ("Pin A" + pin + "artık" + değer); var action = Dağıtıcı. RunAsync (Windows. UI.Core. CoreDispatcherPriority. Normal, yeni Windows. UI.Core. DispatchedHandler (() => {byte num = Dönüştür. ToByte (değer / 4); Sayfa. Arka plan = yeni SolidColorBrush (Windows. UI.Color. FromArgb (255, num, num, Dönüştür. ToByte (255-nm))); })); } son değer = değer; }

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

Çalışmak için sadece bir sayımız olduğundan ve acelem vardı, burada R, G ve B yapmak için gereken 3 sayıyla biraz şeyleri geçirdim. Muhtemelen çok daha güzel bir şey bulabilirsin.

bitmiş

arduino windows 10 tamamlandı

İş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. Sorun yaşadıysanız, unutmayın tam kod burada.

Artık Arduino ile etkileşime giren kendi Windows 10 uygulamalarınızı yazabildiğinize göre, ne yapacaksınız? Belki bir ev otomasyon denetleyicisi Raspberry Pi ve Arduino ile Ev Otomasyon RehberiEv otomasyonu pazarı, birbiriyle uyumlu olmayan ve kurulumu pahalı olan pahalı tüketici sistemleriyle doludur. Bir Raspberry Pi ve bir Arduino'nuz varsa, aynı şeyi ... Daha fazla oku ? Yorumlarda bana bildirin.

James Yapay Zeka alanında lisans derecesine sahiptir ve CompTIA A + ve Network + sertifikalıdır. MakeUseOf'un baş geliştiricisi ve boş zamanlarını VR paintball ve boardgames oynayarak geçiriyor. Çocukluğundan beri bilgisayar yapıyor.