Iklan
Microsoft akan mendukung Windows 10, akhirnya mewujudkan impian memiliki aplikasi yang menjalankan lintas platform. Dikombinasikan dengan dukungan resmi untuk Arduino, Anda memiliki alat baru yang kuat yang dapat Anda gunakan: kemampuan untuk dengan mudah membuat aplikasi Windows universal yang memiliki koneksi perangkat keras ke dunia nyata.
Inilah cara memulai, bahkan jika Anda belum pernah memprogram aplikasi Windows sebelumnya.
Sebelum Anda membaca, periksa demo tentang apa yang akan kami buat.
Saya harus perhatikan, saya belum pernah menggunakan Visual Studio, atau bahkan menyentuh C #, sejak sekitar 10 tahun yang lalu. Saya datang dari perspektif instalasi Visual Studio baru, dan melupakan semua yang saya tahu.
Jika Anda sudah cukup berpengalaman dengan pemrograman aplikasi Windows, atau bahkan mencari cara sederhana untuk memulai pemrograman di Windows tanpa hal-hal Arduino ini, cobalah Ryan panduan untuk membuat aplikasi Visual Basic sederhana Bagaimana Anda Dapat Membuat Aplikasi Sederhana Anda Sendiri Dengan VBA Ingin tahu cara membuat aplikasi VBA Anda sendiri untuk menyelesaikan masalah? Gunakan tips ini untuk membangun perangkat lunak VBA Anda sendiri. Baca lebih banyak . Pemula pemrograman absolut mungkin ingin memeriksa Pemrograman 101 Dasar-Dasar Pemrograman Komputer 101 - Variabel Dan Tipe DataSetelah memperkenalkan dan berbicara sedikit tentang Pemrograman Berorientasi Objek sebelum dan di mana namanya berasal dari, saya pikir sudah saatnya kita pergi melalui dasar-dasar pemrograman mutlak dalam non-bahasa spesifik cara. Ini... Baca lebih banyak (dan bagian 2 Dasar-Dasar Mutlak Pemrograman Untuk Pemula (Bagian 2)Pada bagian 2 dari panduan pemula absolut kami untuk pemrograman, saya akan membahas dasar-dasar fungsi, mengembalikan nilai, loop, dan kondisional. Pastikan Anda sudah membaca bagian 1 sebelum menangani ini, di mana saya menjelaskan ... Baca lebih banyak ) artikel pertama.
Anda harus terbiasa dengan beberapa proyek Arduino pemula 15 Proyek Arduino Hebat untuk PemulaTertarik pada proyek Arduino tetapi tidak yakin harus mulai dari mana? Proyek-proyek pemula ini akan mengajarkan Anda cara memulai. Baca lebih banyak (dan bahkan mungkin membaca kami Panduan Arduino Memulai Dengan Arduino: A Beginner's GuideArduino adalah platform prototipe elektronik sumber terbuka yang didasarkan pada perangkat keras dan lunak yang fleksibel dan mudah digunakan. Ini ditujukan untuk seniman, perancang, penggemar, dan siapa pun yang tertarik untuk menciptakan objek atau lingkungan interaktif. Baca lebih banyak ), tetapi ini mungkin akan menjadi pertama kalinya Anda mencoba membuat sedikit perangkat lunak komputer untuk berinteraksi dengannya.
Unduhan
Pertama: Anda harus bergabung dengan Program Windows Insider untuk mendapatkan edisi pratinjau terbaru dari Visual Studio 2015, dan versi terbaru dari Windows 10 Preview. Lakukan itu sekarang - gratis. Windows 10 adalah pratinjau pengembang, dan tidak boleh diinstal sebagai sistem operasi utama Anda. Buggy sekali.
- Bergabung dengan Program Windows Insider, dan unduh Pratinjau Teknis Windows 10
- Dapatkan pratinjau Visual Studio 2015 Community Edition [Tidak Lagi Tersedia].
Studio visual adalah lingkungan pengembangan Microsoft sendiri yang akan kami gunakan untuk membuat aplikasi C # Windows.
Kenapa C #? Dengan kemiripan yang kuat dengan Java, ini adalah bahasa pemrograman yang relatif mudah bagi pemula untuk menjalankan dan menjalankan aplikasi, namun kuat cukup sehingga Anda dapat terus membuat beberapa aplikasi yang menakjubkan (bahkan game: C # adalah bahasa scripting pilihan Unity - lihat gratis kami eBuku, Panduan Pemula untuk Memprogram Game dengan Unity Memprogram Game A Unity: A Beginner's GuideDalam lanskap pengembangan game indie yang terus berkembang, Unity telah muncul sebagai standar de-facto: berbiaya rendah, mudah digunakan, dan rangkaian fitur yang luas menjadikannya ideal untuk pengembangan game yang cepat. Baca lebih banyak ).
Jika Anda belum melakukannya, unduh IDE Arduino dari resmi Arduino.cc situs, dan instal firmata standar ke papan tulis. Anda akan menemukannya di bawah Contohnya -> Firmata -> Firmata standar. Ini hanya mengubahnya menjadi perangkat serial "bodoh", yang akan melakukan apa pun yang diperintahkan aplikasi kita - tidak akan ada aplikasi logika di papan itu sendiri, hanya antarmuka antara aplikasi kami, dan semua sensor atau perangkat output yang terhubung ke Arduino.
Dalam hal pengkabelan, Anda dapat menempelkan LED langsung ke pin 13 dan GND seperti di bawah ini, atau menggunakan LED onboard. Anda juga akan memerlukan resistor variabel (Saya sudah menggunakan potensiometer linear 10k) masuk ke A0 (dengan kaki yang sesuai pada GND dan + 5v juga, jelas).
Terakhir, unduh paket Remote Wiring dari GitHub [Tidak Lagi Tersedia]. Ini adalah lapisan yang perlu kita tambahkan yang akan memungkinkan aplikasi Windows kita untuk berbicara dengan Arduino.
Buat Aplikasi
Silakan dan buka Visual Studio. Jika ini adalah pertama kalinya Anda menjalankannya, Anda akan diberikan opsi untuk masuk. Abaikan itu jika Anda suka. Memilih Visual C # sebagai opsi pengembangan dan melanjutkan; Bagaimanapun, dibutuhkan beberapa menit untuk menyiapkan Visual Studio untuk penggunaan pertama.
Buat proyek baru, menggunakan templat Visual C # -> Aplikasi Kosong (Windows Universal). Saya menyebut tes saya "Tes Arduino", tetapi itu tidak masalah.
Pada titik ini, saya menemukan kesalahan tentang harus beralih Windows 10 ke mode pengembang jika saya ingin benar-benar menjalankan aplikasi. Silakan dan lakukan ini, meskipun jika Anda menemukan build Windows 10 Anda mogok pada pengaturan itu, itu adalah bug yang dikenal dan Anda harus gunakan editor kebijakan grup untuk mengaktifkan mode pengembang.
Selanjutnya, klik kanan di mana saja di Penjelajah solusi (itu yang ada di sebelah kanan) dan pilih Menambahkan -> Proyek yang Ada.
Arahkan ke tempat Anda mengunduh file Pengkabelan Jarak Jauh dari Github - jika belum dibuka ritsletingnya, itu seharusnya folder yang disebut remote-kabel-berkembang. Di dalam sana Anda akan menemukan Microsoft Maker.win10; dan di dalamnya Anda akan menemukan 3 folder lain. Pada gilirannya, tambahkan masing-masing dengan menavigasi di dalam tiga folder dan menemukan file proyek.
Jika Anda menerima kesalahan tentang "file XAML 8.2 tidak ditemukan", Anda memiliki Visual Studio versi yang salah atau belum menginstal alat pengembang. Kembali ke awal artikel ini dan pastikan Anda telah mengunduh dan menginstal kedua file Visual Studio yang tertaut.
3 proyek yang baru saja Anda tambahkan ini hanyalah lapisan berbeda dari antarmuka Arduino. Dari penjelajah solusi, jika Anda klik kanan dan pilih Ketergantungan -> Bangun Dependensi, Anda dapat melihat lapisan mana yang bergantung padanya (Serial tidak bergantung pada apa pun; Firmata tergantung pada Serial; RemoteWiring tergantung keduanya). Satu-satunya perubahan yang perlu Anda lakukan di sini adalah memilih proyek Anda dari drop down, dan centang setiap kotak untuk menunjukkan bahwa proyek Anda bergantung pada semua proyek lainnya.
Satu langkah terakhir: dari solusi explorer lagi, klik kanan pada Referensi item di bawah proyek Anda, dan pilih Tambahkan Referensi. Dari kiri, navigasikan ke Windows Universal, lalu centang kotak di sebelah Paket Runtime Microsoft Visual C ++ AppLocal. Belum menutup dialog.
Navigasi berikutnya ke Proyek (juga pada kotak dialog yang sama, dari daftar di sebelah kiri), dan centang kotak di sebelah masing-masing dari ketiganya Microsoft Pembuat proyek.
Itu lebih sulit daripada seharusnya, tetapi Anda hanya perlu melakukannya sekali; sekarang kita bisa bersenang-senang dengan pemrograman - saya berjanji itu tidak menakutkan.
Pemrograman
Jika Anda mengalami kesulitan mengikuti, kode lengkap tersedia di Pastebin. Saya sangat menyarankan membaca catatan di bawah ini, jadi saya bisa menjelaskan apa kode sebenarnya.
Pertama, kita perlu menambahkan sedikit kode yang mengatakan kita membutuhkan port USB untuk berkomunikasi dengan Arduino. Temukan Package.appxmanifest file dari explorer solusi, dan klik dua kali untuk mengeditnya. Kami perlu menempelkan beberapa kode ke sini - secara teknis, kami akan "menyisipkan simpul anak" karena ini adalah file XML, tetapi ganti saja keseluruhannya
Kode persisnya akan bervariasi jika Anda menggunakan Bluetooth, atau jika Anda menargetkan Win8.1 alih-alih 10, tetapi yang berikut adalah untuk Windows 10, koneksi USB.
Pergi ke Membangun menu -> Membangun Kembali Solusi, dan pastikan Anda tidak mendapatkan kesalahan.
Dari solusi explorer, perluas MainPage.xaml simpul Mengklik dua kali pada itu akan memuat perancang formulir yang akan kita bahas nanti, tetapi untuk sekarang buka MainPage.xaml.cs, yang berisi logika utama di balik aplikasi kita.
Tambahkan dua baris di bagian pertama, untuk menunjukkan bahwa kita akan "menggunakan" bit Arduino.
menggunakan Microsoft. Pembuat.serial; menggunakan Microsoft. Pembuat. RemoteWiring;
Saya juga menambahkan baris untuk mengatakan kami akan menggunakan Sistem. Diagnostik; yang memungkinkan kita untuk menggunakan Debug. WriteLine () berfungsi untuk menampilkan pesan debug ke IDE.
Pertama, mari kita tentukan beberapa variabel yang akan kita gunakan di seluruh. Tambahkan baris ini tepat sebelum MainPage publik () deklarasi fungsi.
Koneksi UsbSerial; RemoteDevice arduino; Nilai terakhir UInt16;
Selanjutnya, lompat ke fungsi MainPage () - ini disebut konstruktor, dan itu adalah fungsi yang dipanggil segera ketika aplikasi kita dibuat, jadi kami menggunakannya untuk mengatur semuanya.
Pertama, tambahkan garis untuk membuat koneksi serial USB ke perangkat USB tertentu (Arduino).
connection = UsbSerial baru ("VID_2341", "PID_0043");
Perhatikan bahwa ID USB dari standar Arduino Uno sudah dikodekan ke dalam blok, tetapi Anda dapat memverifikasi ini dari Pengaturan perangkat -> Port (COM dan LPT) -> Arduino Uno -> Detail tab -> ID perangkat keras.
Kemudian tambahkan baris berikut setelah itu.
arduino = RemoteDevice baru (koneksi); koneksi. ConnectionEstablished + = OnConnectionEstablished; connection.begin (57600, SerialConfig. SERIAL_8N1);
Beberapa hal sedang terjadi di sini. Pertama, kami membuat objek RemoteDevice - ingat, itu lapisan yang memberi kami banyak perintah Arduino - dan memberinya nama variabel "arduino". Baris berikutnya adalah melampirkan ke acara ConnectionEstablished, untuk mengatakan “Setelah koneksi USB berhasil dibuat, jalankan fungsi yang disebut OnConnectionEstablish ()”.
Final hanya memberitahu koneksi untuk memulai sudah, pada baud rate 57600, menggunakan Pola 8N1 bit.
Anda juga harus membuat fungsi OnConnectionEstablished () sekarang, jadi keluarlah dari fungsi MainPage () dan buat saja fungsi kosong sebagai berikut.
private void OnConnectionEstablished () { // LOGIK DI SINI. }
Kembali ke perancang formulir yang saya sebutkan sebelumnya (jika Anda lupa caranya: klik dua kali MainPage.xaml dari explorer solusi). Buat dua tombol. Untuk melakukan ini, buka tab Toolbox yang akan Anda temukan tersemat secara vertikal di sisi kiri layar. Seret dua tombol ke halaman, lalu beri label satu Di dan satu Mati.
Pilih tombol pertama, lalu dari kotak Properties di kanan bawah, beri nama "OnButton". Klik ikon petir kecil - ini adalah daftar peristiwa dan tindakan yang digunakan untuk menentukan apa yang terjadi ketika elemen formulir berinteraksi dengan. Ketik "OnButtonKlik" ke dalam Klik bidang.
Saat Anda menekan enter, itu akan secara otomatis membuat kode untuk acara tombol tertentu dan memuat tampilan kode standar. Beralih kembali ke perancang formulir untuk saat ini dan lakukan hal yang sama untuk tombol Off, tetapi kali ini menyebutnya "OffButton", dan "OffButtonClick". Saat Anda berada di sana, silakan dan beri nama formulir jendela utama di belakangnya sebagai "Halaman" - kami akan menggunakannya nanti. Anda sekarang harus memiliki sesuatu yang menyerupai tangkapan layar di bawah ini:
Beralih kembali ke perancang lagi sejenak, dan lagi untuk masing - masing tombol, atur diaktifkan properti untuk Salah. Anda bisa melakukan ini dengan mengetikkan properti langsung ke tampilan kode XAML, atau Anda bisa menemukannya centang di kotak Properties (klik spanner jika Anda masih di tampilan tindakan) - itu di bawah diperluas Umum kategori properti.
Ini tidak penting, tetapi praktik yang baik untuk menonaktifkan tombol sampai kami yakin Arduino dicolokkan dan terhubung.
Untuk mengaktifkannya kembali, tambahkan berikut ini ke fungsi OnConnectionEstablished (). Jangan terlalu khawatir tentang arti sebenarnya dari kode untuk saat ini, itu hanya cara Anda seharusnya menangani pembaruan formulir di aplikasi Windows modern untuk memastikan kinerja yang baik. Setelah kami terhubung ke Arduino, kami mengatur Diaktifkan milik tombol untuk true.
private void OnConnectionEstablished () {// aktifkan tombol on off var action = Dispatcher. RunAsync (Windows. UI.Core. CoreDispatcherPriority. Normal, Windows baru. UI.Core. DispatchedHandler (() => {OnButton. IsEnabled = true; Tombol Off. IsEnabled = true; })); arduino.pinMode (14, PinMode. ANALOG); Arduino. AnalogPinUpdatedEvent + = MyAnalogPinUpdateCallback; Debug. WriteLine (arduino.analogRead (14)); }
Anda juga akan melihat pernyataan pinMode () yang lebih akrab, untuk mengatakan kami memiliki input analog pada pin 14 (ada 13 pin digital, jadi A0 mulai menghitung dari 14). Kemudian kami mendapatkan pernyataan acara lainnya - ketika nilai pin analog diperbarui, panggil fungsi MyAnalogPinUpdateCallback.
Terakhir, kita perlu mengedit acara klik tombol dan memutuskan apa yang terjadi ketika input analog berubah. Mari kita mulai dengan tombol. Kita dapat berinteraksi dengan Arduino menggunakan nama fungsi yang mirip dengan kode Arduino biasa, sebagai berikut:
arduino.digitalWrite (13, PinState. TINGGI);
Rekatkan itu untuk acara onButton, dan ini untuk offButton:
arduino.digitalWrite (13, PinState. RENDAH);
Sederhana. Input analog dari Arduino sedikit lebih rumit, tapi inilah yang saya hasilkan.
public void MyAnalogPinUpdateCallback (pin byte, nilai UInt16) {if (value-lastvalue> 5 || lastvalue-value> 5) {
Debug. WriteLine ("Pin A" + pin + "sekarang" + nilai); var action = Dispatcher. RunAsync (Windows. UI.Core. CoreDispatcherPriority. Normal, Windows baru. UI.Core. DispatchedHandler (() => {byte num = Konversi. ToByte (nilai / 4); Halaman. Background = SolidColorBrush baru (Windows. UI. Warna. FromArgb (255, num, num, Konversi. ToByte (255 -num))); })); } lastvalue = nilai; }
Perhatikan bahwa saya menyimpan nilai sebelumnya yang kami terima dari pin di variabel yang disebut lastValue; ini memungkinkan kita untuk memeriksa seberapa besar nilainya diubah, dan hanya bereaksi jika perbedaannya signifikan (semacam pemulusan sinyal). Jika ia berubah ke salah satu arah lebih dari 5 (0-1024 adalah rentang nilai penuh), maka kami bereaksi dengan mengubah nilai warna latar belakang RGB dari elemen Halaman.
Karena kami hanya memiliki satu nomor untuk dikerjakan, dan saya sedang terburu-buru, saya sedikit menipu hal-hal di sini dengan 3 angka yang diperlukan untuk membuat R, G, dan B. Anda mungkin dapat menemukan sesuatu yang jauh lebih cantik.
Jadi
Itu saja - jalankan kodenya, dan Anda akan melihat sesuatu yang mirip dengan tangkapan layar di atas. Tombol-tombol akan menyalakan dan mematikan LED, dan resistor variabel akan mengubah latar belakang. Jika Anda mengalami masalah, jangan lupa kode lengkap ada di sini.
Sekarang Anda dapat menulis aplikasi Windows 10 Anda sendiri yang berinteraksi dengan Arduino, apa yang akan Anda buat? Mungkin a pengontrol otomatisasi rumah Panduan Otomatisasi Rumah Dengan Raspberry Pi dan ArduinoPasar otomatisasi rumah dibanjiri dengan sistem konsumen yang mahal, tidak kompatibel satu sama lain dan mahal untuk dipasang. Jika Anda memiliki Raspberry Pi dan Arduino, Anda pada dasarnya dapat mencapai hal yang sama di ... Baca lebih banyak ? Beri tahu saya di komentar.
James memiliki gelar BSc dalam Artificial Intelligence, dan bersertifikat CompTIA A + dan Network +. Dia adalah pengembang utama MakeUseOf, dan menghabiskan waktu luangnya bermain VR paintball dan boardgames. Dia telah membangun PC sejak dia masih kecil.