Jak utworzyć aplikację Arduino w systemie Windows 10 (dla absolutnie początkujących)

Jak utworzyć aplikację Arduino w systemie Windows 10 (dla absolutnie początkujących)

Microsoft idzie na całość dla systemu Windows 10, w końcu realizując marzenie o posiadaniu aplikacji działających na wielu platformach. W połączeniu z oficjalnym wsparciem dla Arduino, masz do dyspozycji nowe, potężne narzędzie: możliwość łatwego tworzenia uniwersalnych aplikacji Windows, które mają sprzętowe połączenie ze światem rzeczywistym.





Oto, jak zacząć, nawet jeśli nigdy wcześniej nie programowałeś aplikacji dla systemu Windows.





Zanim zaczniesz czytać dalej, obejrzyj demo tego, co zamierzamy zrobić.





Powinienem zauważyć, że nie korzystałem z Visual Studio, ani nawet nie dotknąłem C# od około 10 lat. Podchodzę do tego z perspektywy świeżej instalacji Visual Studio i zapomniałem wszystkiego, co wiem.

Jeśli jesteś już dość doświadczony w programowaniu aplikacji dla systemu Windows lub nawet szukasz prostego sposobu na rozpoczęcie programowania w systemie Windows bez tego Arduino, wypróbuj Ryana przewodnik po tworzeniu prostej aplikacji Visual Basic . Absolutnie początkujący programiści powinni najpierw zapoznać się z moim artykułem Programowanie 101 (i częścią 2).



Powinieneś znać niektóre projekty Arduino dla początkujących (a może nawet przeczytaj nasze Przewodnik po Arduino ), ale prawdopodobnie będzie to pierwsza próba stworzenia prawdziwego oprogramowania komputerowego do interakcji z nim.

Pliki do pobrania

Po pierwsze: musisz dołączyć do Niejawny program testów systemu Windows aby pobrać najnowszą wersję zapoznawczą Visual Studio 2015 i najnowsza kompilacja Podgląd systemu Windows 10 . Zrób to teraz - to nic nie kosztuje. Windows 10 to podgląd programisty i nie powinien być instalowany jako główny system operacyjny. Jest zapluskwiony jak diabli.





  • Dołącz Niejawny program testów systemu Windows i pobierz podgląd techniczny systemu Windows 10
  • Pobierz wersję zapoznawczą programu Visual Studio 2015 Community Edition [nie jest już dostępna].

Visual Studio to własne środowisko programistyczne firmy Microsoft, którego będziemy używać do tworzenia aplikacji C# Windows.

Dlaczego C#? Dzięki silnym podobieństwom do Javy jest to stosunkowo łatwy język programowania dla początkujących, aby uruchomić działającą aplikację, ale wystarczająco potężny, aby można było dalej tworzyć wspaniałe aplikacje (nawet gry: C# jest preferowanym językiem skryptowym Unity - sprawdź z naszego darmowego e-booka, Przewodnik dla początkujących dotyczący programowania gry w Unity ).





Jeśli jeszcze tego nie zrobiłeś, pobierz IDE Arduino od urzędnika Arduino.cc witryny i zainstaluj standardowa firma na tablicę. Znajdziesz to pod Przykłady -> Podpisano -> Firma standardowa . To po prostu zamienia go w „głupie” urządzenie szeregowe, które zrobi wszystko, co powie mu nasza aplikacja – na samej płycie nie będzie logiki aplikacji, tylko interfejs między naszą aplikacją a dowolnymi czujnikami lub urządzeniami wyjściowymi podłączonymi do Arduino .

Jeśli chodzi o okablowanie, możesz przykleić diodę LED bezpośrednio do pinu 13 i GND, jak poniżej, lub użyć wbudowanej diody LED. Potrzebny będzie również rezystor zmienny (użyłem potencjometru liniowego 10k) przechodzący do A0 (oczywiście z odpowiednimi nogami na GND i +5V).

Na koniec pobierz pakiet Remote Wiring z GitHub [Nie jest już dostępny]. Jest to warstwa, którą musimy dodać, aby umożliwić naszej aplikacji Windows komunikację z Arduino.

Utwórz aplikację

Śmiało i otwórz program Visual Studio. Jeśli uruchamiasz go po raz pierwszy, będziesz mieć możliwość zalogowania się. Zignoruj ​​to, jeśli chcesz. Wybierać Wizualizacja C# jako opcję rozwoju i kontynuować; tak czy inaczej, przygotowanie programu Visual Studio do pierwszego użycia zajmuje kilka minut.

czy mogę uzyskać wifi bez dostawcy internetu?

Utwórz nowy projekt, korzystając z szablonu Wizualizacja C# -> Pusta aplikacja (Windows Universal) . Nazwałem swój „Test Arduino”, ale to nie ma znaczenia.

W tym momencie napotkałem błąd dotyczący konieczności przełączenia systemu Windows 10 w tryb programisty, jeśli chciałem uruchomić aplikację. Śmiało i zrób to, ale jeśli zauważysz, że Twoja kompilacja systemu Windows 10 ulega awarii przy tym ustawieniu, jest to znany błąd i musisz użyj edytora zasad grupy, aby włączyć tryb programisty .

Następnie kliknij prawym przyciskiem myszy w dowolnym miejscu Eksplorator rozwiązań (to jest po prawej) i wybierz Dodać -> Istniejący projekt .

Przejdź do miejsca, w którym pobrałeś pliki Remote Wiring z Github - jeśli zostały rozpakowane, powinien to być folder o nazwie zdalne-okablowanie-opracowanie . W środku znajdziesz Microsoft.Maker.win10 ; aw środku znajdziesz kolejne 3 foldery. Z kolei dodaj każdy z nich, przechodząc do tych trzech folderów i odnajdując plik projektu.

Jeśli pojawią się jakiekolwiek błędy dotyczące „nie znaleziono pliku XAML 8.2”, oznacza to, że masz niewłaściwą wersję programu Visual Studio lub nie masz jeszcze zainstalowanych narzędzi deweloperskich. Wróć do początku tego artykułu i upewnij się, że pobrano i zainstalowano oba połączone pliki programu Visual Studio.

Te 3 projekty, które właśnie dodałeś, to tylko różne warstwy interfejsu Arduino. Z eksploratora rozwiązań, jeśli klikniesz prawym przyciskiem myszy i wybierzesz Zależności -> Zależności kompilacji , możesz zobaczyć, które warstwy zależą od których ( Seryjny nie zależy od niczego; Podpisano zależy od numeru seryjnego; Zdalne okablowanie zależy od obu) . Jedyną zmianą, którą musisz tutaj wprowadzić, jest wybranie projektu z listy rozwijanej i zaznaczenie każdego pola, aby wskazać, że Twój projekt zależy od wszystkich innych projektów.

Ostatni krok: ponownie w eksploratorze rozwiązań kliknij prawym przyciskiem myszy Bibliografia element pod twoim projektem i wybierz Dodaj odniesienie . Od lewej przejdź do Okna uniwersalne , a następnie zaznacz pole obok Pakiet Microsoft Visual C++ AppLocal Runtime . Nie zamykaj jeszcze okna dialogowego.

Następnie przejdź do Projektowanie (również w tym samym oknie dialogowym, z listy po lewej) i zaznacz pole obok każdego z trzech Microsoft.Maker projektowanie.

To było trudniejsze niż powinno być, ale wystarczy to zrobić tylko raz; teraz możemy się trochę pobawić programowaniem – obiecuję, że to nie jest takie straszne.

Programowanie

Jeśli masz problemy z podążaniem, pełny kod jest dostępny na Pastebin . Mimo to zdecydowanie sugeruję przeczytanie poniższych notatek, abym mógł wyjaśnić, co właściwie robi kod.

Najpierw musimy dodać fragment kodu, który mówi, że potrzebujemy portu USB do komunikacji z Arduino. Znaleźć Pakiet.appxmanifest plik z eksploratora rozwiązań i kliknij dwukrotnie, aby go edytować. Musimy wkleić tutaj trochę kodu – technicznie będziemy „wstawiać węzeł podrzędny”, ponieważ jest to plik XML, ale po prostu zastąp całą sekcję poniższym kodem, aby wyglądało to tak:

Dokładny kod będzie się różnić, jeśli używasz Bluetooth lub jeśli celujesz w Win8.1 zamiast 10, ale poniższe dotyczy połączenia USB w systemie Windows 10.








Przejdź do Budować menu -> Odbuduj rozwiązanie i upewnij się, że nie pojawiają się żadne błędy.

W eksploratorze rozwiązań rozwiń Strona główna.xaml węzeł. Dwukrotne kliknięcie spowoduje załadowanie projektanta formularzy, do którego wrócimy później, ale na razie otwórz Strona główna.xaml.cs , który zawiera główną logikę stojącą za naszą aplikacją.

Dodaj dwie linie w pierwszej sekcji, aby wskazać, że będziemy „używać” bitów Arduino.

using Microsoft.Maker.serial;
using Microsoft.Maker.RemoteWiring;

Dodałem również wiersz, aby powiedzieć, że będziemy używać Diagnostyka systemu; co umożliwia nam korzystanie z Debug.WriteLine() funkcja wyprowadzania komunikatów debugowania do IDE.

Po pierwsze, zdefiniujmy kilka zmiennych, których będziemy używać w całym tekście. Dodaj te wiersze tuż przed publiczna strona główna() deklaracja funkcji.

UsbSerial connection;
RemoteDevice arduino;
UInt16 lastvalue;

Następnie przejdź do funkcji MainPage() — nazywa się to konstruktorem i jest to funkcja, która jest wywoływana natychmiast po utworzeniu naszej aplikacji, więc używamy jej do konfigurowania wszystkiego.

Najpierw dodaj linię, aby nawiązać połączenie szeregowe USB z określonym urządzeniem USB (Arduino).

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

Zauważ, że identyfikatory USB standardowego Arduino Uno są już zakodowane w bloku, ale możesz to zweryfikować z Menadżer urządzeń -> Porty (COM i LPT) -> Arduino -> Detale zakładka -> Identyfikatory sprzętu .

Następnie dodaj następujące wiersze zaraz po tym.

arduino = new RemoteDevice(connection);
connection.ConnectionEstablished += OnConnectionEstablished;
connection.begin(57600, SerialConfig.SERIAL_8N1);

Dzieje się tu kilka rzeczy. Najpierw tworzymy obiekt RemoteDevice – pamiętaj, że jest to warstwa, która daje nam kilka poleceń Arduino – i nadajemy mu nazwę zmiennej „arduino”. Następny wiersz jest dołączany do zdarzenia ConnectionEstablished, aby powiedzieć 'po pomyślnym nawiązaniu połączenia USB, uruchom funkcję o nazwie OnConnectionEstablish()'.

W finale po prostu mówi się, że połączenie ma się już rozpocząć, z szybkością 57600 bodów, przy użyciu Wzór bitowy 8N1 .

Będziesz także musiał teraz utworzyć funkcję OnConnectionEstablished(), więc wyjdź poza funkcję MainPage() i po prostu utwórz pustą funkcję w następujący sposób.

private void OnConnectionEstablished()
{
// LOGIC HERE
}

Wróć do projektanta formularzy, o którym wspomniałem wcześniej (jeśli zapomniałeś jak: kliknij dwukrotnie na Strona główna.xaml z eksploratora rozwiązań). Utwórz dwa przyciski. Aby to zrobić, otwórz kartę Przybornik, którą znajdziesz przypiętą pionowo po lewej stronie ekranu. Przeciągnij dwa przyciski na stronę, a następnie oznacz jeden etykietą Na i jeden Wyłączony .

Wybierz pierwszy przycisk, a następnie w polu Właściwości w prawym dolnym rogu nazwij go „OnButton”. Kliknij małą ikonę błyskawicy — jest to lista zdarzeń i akcji, która służy do określania, co się dzieje, gdy elementy formularza wchodzą w interakcję. Wpisz „OnButtonClick” w Kliknij pole.

Gdy naciśniesz Enter, automatycznie utworzy kod dla tego konkretnego zdarzenia przycisku i załaduje standardowy widok kodu. Na razie przełącz się z powrotem do projektanta formularzy i zrób to samo dla przycisku Off, ale tym razem nazwij go „OffButton” i „OffButtonClick”. Skoro już tam jesteś, idź dalej i nazwij formularz głównego okna za nim jako „Strona” – użyjemy go później. Powinieneś teraz mieć coś przypominającego zrzut ekranu poniżej:

Przełącz się na chwilę z powrotem do projektanta i ponownie dla każdego z przycisków ustaw jest włączony własność do Fałszywe . Możesz to zrobić, wpisując właściwość bezpośrednio w widoku kodu XAML lub możesz znaleźć to pole wyboru w polu Właściwości (kliknij klucz, jeśli nadal jesteś w widoku akcji) — znajduje się pod rozwiniętym Pospolity kategoria nieruchomości.

Nie jest to konieczne, ale dobrą praktyką jest wyłączenie przycisków, dopóki nie będziemy pewni, że Arduino jest podłączone i podłączone.

Aby je ponownie włączyć, dodaj następujące elementy do funkcji OnConnectionEstablished(). Na razie nie przejmuj się zbytnio dokładnym znaczeniem kodu, jest to po prostu sposób, w jaki powinieneś obsługiwać aktualizacje formularzy w nowoczesnych aplikacjach Windows, aby zapewnić dobrą wydajność. Po połączeniu z Arduino ustawiamy Jest włączony właściwość przycisków na true.

private void OnConnectionEstablished()
{
// enable the on off buttons
var action = Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() => {
OnButton.IsEnabled = true;
OffButton.IsEnabled = true;
}));
arduino.pinMode(14, PinMode.ANALOG);
arduino.AnalogPinUpdatedEvent += MyAnalogPinUpdateCallback;
Debug.WriteLine(arduino.analogRead(14));
}

Zobaczysz również bardziej znane polecenie pinMode(), które mówi, że mamy wejście analogowe na styku 14 (jest 13 styków cyfrowych, więc A0 zaczyna liczyć od 14). Następnie mamy kolejną deklarację zdarzenia - gdy wartość pinu analogowego zostanie zaktualizowana, wywołaj funkcję MyAnalogPinUpdateCallback.

Na koniec musimy edytować zdarzenia kliknięcia przycisku i zdecydować, co się stanie, gdy zmieni się wejście analogowe. Zacznijmy od przycisków. Możemy wchodzić w interakcje z Arduino, używając podobnych nazw funkcji, jak zwykły kod Arduino, w następujący sposób:

arduino.digitalWrite(13, PinState.HIGH);

Wklej to dla zdarzenia onButton, a to dla offButton:

arduino.digitalWrite(13, PinState.LOW);

Prosty. Wejście analogowe z Arduino jest nieco trudniejsze, ale oto, co wymyśliłem.

public void MyAnalogPinUpdateCallback(byte pin, UInt16 value)
{
if(value-lastvalue >5 || lastvalue-value > 5){
Debug.WriteLine('Pin A' + pin + ' is now ' + value);
var action = Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() => {
byte num = Convert.ToByte(value / 4);
Page.Background = new SolidColorBrush(Windows.UI.Color.FromArgb(255, num, num, Convert.ToByte(255 -num)));
}));
}
lastvalue = value;
}

Zauważ, że przechowuję poprzednią wartość, którą otrzymaliśmy od pinu, w zmiennej o nazwie lastValue; dzięki temu możemy sprawdzić, jak bardzo zmienia się wartość, i reagować tylko wtedy, gdy różnica jest znacząca (rodzaj wygładzania sygnału). Jeśli zmienia się w dowolnym kierunku o więcej niż 5 (0-1024 to pełny zakres wartości), reagujemy zmieniając wartość koloru tła RGB elementu Page.

Ponieważ mamy tylko jedną liczbę do pracy, a ja się spieszyłem, trochę przerobiłem tutaj z trzema liczbami wymaganymi do stworzenia R, G i B. Prawdopodobnie możesz wymyślić coś o wiele ładniejszego.

Skończone

To wszystko - uruchom kod, a powinieneś zobaczyć coś podobnego do powyższego zrzutu ekranu. Przyciski będą włączać i wyłączać diodę LED, a rezystor zmienny zmieni tło. Jeśli miałeś kłopoty, nie zapomnij pełny kod jest tutaj .

Teraz, gdy możesz pisać własne aplikacje dla systemu Windows 10, które współpracują z Arduino, co zrobisz? Może sterownik automatyki domowej? Daj znać w komentarzach.

Udział Udział Ćwierkać E-mail Jak zmienić wygląd i styl pulpitu Windows 10?

Chcesz wiedzieć, jak poprawić wygląd systemu Windows 10? Skorzystaj z tych prostych dostosowań, aby dostosować system Windows 10 do własnych potrzeb.

Czytaj dalej
Powiązane tematy
  • majsterkowanie
  • Programowanie
  • Arduino
O autorze James Bruce(707 opublikowanych artykułów)

James ma tytuł licencjata w dziedzinie sztucznej inteligencji i posiada certyfikaty CompTIA A+ i Network+. Kiedy nie jest zajęty jako redaktor recenzji sprzętu, lubi LEGO, VR i gry planszowe. Przed dołączeniem do MakeUseOf był technikiem oświetlenia, nauczycielem języka angielskiego i inżynierem centrum danych.

Więcej od Jamesa Bruce .a

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować