So erstellen Sie eine Windows 10 Arduino-App (für absolute Anfänger)

So erstellen Sie eine Windows 10 Arduino-App (für absolute Anfänger) / DIY

Microsoft setzt alles für Windows 10 und erfüllt endlich den Traum von Apps, die plattformübergreifend laufen. In Verbindung mit der offiziellen Unterstützung für Arduino steht Ihnen ein leistungsfähiges neues Werkzeug zur Verfügung: Sie können problemlos universelle Windows-Apps erstellen, die eine Hardwareverbindung mit der realen Welt haben.

So können Sie loslegen, auch wenn Sie noch keine Windows-App programmiert haben.

Bevor Sie weiterlesen, lesen Sie die Demo von dem, was wir machen werden.

Ich sollte beachten, dass ich Visual Studio seit etwa 10 Jahren nicht mehr verwendet oder gar nicht mit C # angefasst habe. Ich komme dabei aus der Perspektive einer neuen Visual Studio-Installation und habe alles, was ich weiß, vergessen.

Wenn Sie bereits mit der Windows-App-Programmierung vertraut sind oder nach einer einfachen Methode suchen, um ohne diese Arduino-Software mit der Programmierung in Windows zu beginnen, probieren Sie Ryans Anleitung zur Erstellung einer einfachen Visual Basic-Anwendung. So können Sie Ihre eigene einfache Anwendung erstellen VBA So können Sie Ihre eigene einfache Anwendung mit VBA erstellen Für diejenigen von Ihnen, die wirklich gerne Ihre eigene Anwendung schreiben könnten, aber noch nie eine einzige Codezeile eingegeben haben, werde ich Sie durch die Erstellung Ihrer eigenen Anwendung führen … Weiterlesen . Anfänger für absolute Programmierung können sich meine Programmierung ansehen 101 Die Grundlagen der Computerprogrammierung 101 - Variablen und Datentypen Die Grundlagen der Computerprogrammierung 101 - Variablen und Datentypen Nachdem ich ein wenig über objektorientierte Programmierung und deren Namensgebung gesprochen und gesprochen habe, habe ich Ich denke, es ist an der Zeit, dass wir die absoluten Grundlagen des Programmierens nicht sprachspezifisch durcharbeiten. This… Read More (und Teil 2 Die absoluten Grundlagen der Programmierung für Anfänger (Teil 2) Die absoluten Grundlagen der Programmierung für Anfänger (Teil 2) In Teil 2 unseres absoluten Anfängerleitfadens zum Programmieren werde ich die Grundlagen der Funktionen erläutern , gibt Werte, Schleifen und Bedingungen zurück. Vergewissern Sie sich, dass Sie Teil 1 gelesen haben, bevor Sie sich damit befassen, wo ich zuerst den Artikel… Read More) erklärt habe.

Sie sollten mit einigen Arduino-Projekten für Anfänger vertraut sein 15 Große Arduino-Projekte für Anfänger 15 Große Arduino-Projekte für Anfänger Sie sind an Arduino interessiert, wissen aber nicht, wo Sie anfangen sollen? Hier sind einige unserer besten Arduino-Projekte für Anfänger! Lesen Sie mehr (und lesen Sie vielleicht auch unseren Arduino Guide. Erste Schritte mit Arduino: Ein Anfängerhandbuch Erste Schritte: Arduino: Ein Anfängerhandbuch Arduino ist eine Open Source-Prototyping-Plattform für elektronische Prototypen, die auf flexibler, benutzerfreundlicher Hard- und Software basiert Künstler, Designer, Hobbyisten und alle, die an der Erstellung interaktiver Objekte oder Umgebungen interessiert sind (lesen Sie mehr), aber es ist wahrscheinlich das erste Mal, dass Sie versucht haben, eine echte Computersoftware zu erstellen, um damit zu interagieren.

Downloads

Erstens: Sie müssen dem Windows Insider-Programm beitreten, um die neueste Vorschau-Edition von zu erhalten Visual Studio 2015, und der neueste Build von Windows 10-Vorschau. Tun Sie das jetzt - es ist kostenlos. Windows 10 ist eine Entwicklervorschau und sollte nicht als Hauptbetriebssystem installiert werden. Es ist wie die Hölle.

  • Treten Sie dem Windows Insider-Programm bei und laden Sie die technische Vorschau von Windows 10 herunter
  • Holen Sie sich die Vorschau von Visual Studio 2015 Community Edition [nicht mehr verfügbar].

Visual Studio ist die eigene Entwicklungsumgebung von Microsoft, mit der wir eine C # Windows-Anwendung erstellen.

Warum C #? Mit starken Ähnlichkeiten zu Java ist es eine relativ einfache Programmiersprache für Anfänger, die eine funktionsfähige App zum Laufen bringen. Sie ist jedoch so leistungsfähig, dass Sie einige beeindruckende Anwendungen erstellen können (sogar Spiele: C # ist die bevorzugte Skriptsprache von Unity - check.) aus unserem kostenlosen eBook, Anfängerleitfaden zur Programmierung eines Spiels mit Unity Programmieren eines Spiels mit Unity: eines Anfängerhandbuchs Programmieren eines Spiels mit Unity: eines Anfängerleitfadens In der sich entwickelnden Landschaft der Entwicklung von Indie-Spielen hat sich Unity als de facto herausgestellt Standard: Niedrige Kosten, Benutzerfreundlichkeit und umfassende Funktionen machen es ideal für die schnelle Entwicklung von Spielen..

Falls noch nicht geschehen, laden Sie das herunter Arduino IDE von der offiziellen Arduino.cc-Site, und installieren Sie die Standard Firmata auf das Brett Sie finden es unter Beispiele -> Firmata -> Standard Firmata. Dies macht es einfach zu einem “Dumm” serielles Gerät, das wird, wozu unsere App es sagt - es wird keine App-Logik auf der Platine selbst geben, sondern lediglich eine Schnittstelle zwischen unserer App und den an das Arduino angeschlossenen Sensoren oder Ausgabegeräten.

In Bezug auf die Verkabelung können Sie entweder eine LED direkt an Pin 13 und GND anbringen (siehe unten) oder die integrierte LED verwenden. Sie benötigen auch einen variablen Widerstand (ich habe ein lineares 10k-Potentiometer verwendet), das in A0 geht (mit den entsprechenden Zweigen auf GND und natürlich auch + 5V)..

Laden Sie schließlich das Remote Verdrahtungspaket von GitHub [nicht mehr verfügbar] herunter. Dies ist die Ebene, die wir hinzufügen müssen, damit unsere Windows-App mit dem Arduino kommunizieren kann.

Erstellen Sie eine Anwendung

Machen Sie weiter und öffnen Sie Visual Studio. Wenn Sie es zum ersten Mal ausführen, haben Sie die Möglichkeit, sich anzumelden. Ignorieren Sie dies, wenn Sie möchten. Wählen Visuelle C # als Entwicklungsoption und fortfahren; So oder so dauert es einige Minuten, um Visual Studio für die erste Verwendung vorzubereiten.

Erstellen Sie ein neues Projekt mithilfe der Vorlage Visuelle C # -> Leere App (Windows Universal). Ich habe meine angerufen “Arduino-Test”, aber es ist egal.

Zu diesem Zeitpunkt ist ein Fehler aufgetreten, weil Windows 10 in den Entwicklermodus versetzt werden musste, wenn ich die App tatsächlich ausführen wollte. Wenn Sie feststellen, dass Ihr Build von Windows 10 bei dieser Einstellung abstürzt, handelt es sich um einen bekannten Fehler, und Sie müssen den Gruppenrichtlinien-Editor verwenden, um den Entwicklermodus zu aktivieren.

Klicken Sie anschließend mit der rechten Maustaste irgendwo in der Lösungsforscher (das ist das Ding rechts) und wählen Sie aus Hinzufügen -> Bestehendes Projekt.

Navigieren Sie zu dem Ort, an dem Sie die Remote Wiring-Dateien von Github heruntergeladen haben. Wenn sie entpackt wurde, sollte es sich um einen Ordner handeln Fernverkabelung entwickeln. Dort drinnen findest du Microsoft.Maker.win10; und darin befinden sich 3 weitere Ordner. Fügen Sie der Reihe nach jeden hinzu, indem Sie in diesen drei Ordnern navigieren und die Projektdatei suchen.

Wenn Sie etwaige Fehler erhalten “XAML 8.2-Datei nicht gefunden”, Sie haben die falsche Version von Visual Studio oder haben die Entwicklertools noch nicht installiert. Gehen Sie zurück zum Anfang dieses Artikels und stellen Sie sicher, dass Sie beide verknüpften Visual Studio-Dateien heruntergeladen und installiert haben.

Diese 3 Projekte, die Sie gerade hinzugefügt haben, sind nur verschiedene Ebenen der Arduino-Benutzeroberfläche. Klicken Sie im Lösungs-Explorer mit der rechten Maustaste und wählen Sie Abhängigkeiten -> Abhängigkeiten erstellen, Sie können sehen, welche Schichten davon abhängen (Seriennummer hängt von nichts ab; Firmata hängt von Serial ab; RemoteWiring hängt von beiden ab. Die einzige Änderung, die Sie hier vornehmen müssen, besteht darin, Ihr Projekt aus der Dropdown-Liste auszuwählen und jedes Kontrollkästchen zu aktivieren, um anzugeben, dass Ihr Projekt von all diesen anderen Projekten abhängt.

Ein letzter Schritt: Klicken Sie erneut im Lösungs-Explorer mit der rechten Maustaste auf die Schaltfläche Verweise Element unter Ihrem Projekt und wählen Sie Füge Referenz hinzu. Navigieren Sie von links zu Windows Universal, Dann kreuzen Sie das Kästchen neben an Microsoft Visual C ++ - AppLocal-Laufzeitpaket. Schließen Sie den Dialog noch nicht.

Nächstes navigieren zu Projekte (auch in demselben Dialogfeld, in der Liste links), und aktivieren Sie das Kontrollkästchen neben den drei Optionen Microsoft.Maker Projekte.

Das war schwieriger als es sein sollte, aber Sie müssen es nur einmal tun; Jetzt können wir etwas Spaß beim Programmieren haben - ich verspreche, dass es nicht so unheimlich ist.

Programmierung

Wenn Sie Schwierigkeiten haben, dem zu folgen, ist der vollständige Code auf Pastebin verfügbar. Ich empfehle jedoch dringend, die folgenden Hinweise trotzdem durchzulesen, damit ich erklären kann, was der Code tatsächlich tut.

Zuerst müssen wir etwas Code hinzufügen, der besagt, dass wir einen USB-Anschluss benötigen, um mit dem Arduino zu kommunizieren. Finden Sie das Package.appxmanifest Datei aus dem Solution Explorer, und doppelklicken Sie, um sie zu bearbeiten. Wir müssen hier etwas Code einfügen - technisch werden wir das tun “Einfügen eines Kindknotens” denn es ist eine XML-Datei, ersetzt aber einfach die gesamte Abschnitt mit dem Code unten, so dass es so aussieht:

Der genaue Code hängt davon ab, ob Sie Bluetooth verwenden oder wenn Sie Win8.1 anstelle von 10 verwenden. Die folgenden Ausführungen beziehen sich auf eine Windows 10-USB-Verbindung.

       

Gehe zum Bauen Menü -> Lösung neu erstellen, und stellen Sie sicher, dass Sie keine Fehler erhalten.

Erweitern Sie im Lösungs-Explorer die Option MainPage.xaml Knoten. Wenn Sie darauf doppelklicken, wird der Formular-Designer geladen, auf den wir später zurückkommen werden, aber erst jetzt öffnen MainPage.xaml.cs, welches die Hauptlogik hinter unserer Anwendung enthält.

Fügen Sie im ersten Abschnitt zwei Zeilen hinzu, um Sie darauf hinzuweisen “mit” die Arduino-Bits.

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

Ich habe auch eine Zeile hinzugefügt, um zu sagen, dass wir verwenden werden Systemdiagnose; das ermöglicht uns die Verwendung der Debug.WriteLine () Funktion zur Ausgabe von Debug-Meldungen an die IDE.

Lassen Sie uns zunächst einige Variablen definieren, die wir überall verwenden werden. Fügen Sie diese Zeilen kurz vor dem hinzu public MainPage () Funktionsdeklaration.

UsbSerial Verbindung; RemoteDevice Arduino; UInt16 letzter Wert;

Springen Sie als nächstes in die MainPage () - Funktion - dies wird Konstruktor genannt. Diese Funktion wird sofort aufgerufen, wenn unsere App erstellt wird. Wir verwenden sie also, um alles einzustellen.

Fügen Sie zunächst eine Leitung hinzu, um die serielle USB-Verbindung zu einem bestimmten USB-Gerät (dem Arduino) herzustellen..

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

Beachten Sie, dass die USB-IDs eines Standard-Arduino Uno bereits im Block codiert sind. Sie können dies jedoch überprüfen Gerätemanager -> Ports (COM und LPT) -> Arduino Uno -> Einzelheiten Tab -> Hardware-IDs.

Dann füge die folgenden Zeilen direkt danach hinzu.

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

Hier passiert einiges. Zuerst erstellen wir ein RemoteDevice-Objekt. Denken Sie daran, dies ist die Ebene, die uns eine Reihe von Arduino-Befehlen gibt - und dem Variablennamen “Arduino”. Die nächste Zeile hängt mit dem ConnectionEstablished-Ereignis zusammen “Wenn die USB-Verbindung erfolgreich hergestellt wurde, führen Sie die Funktion OnConnectionEstablish () aus.”.

Das Finale sagt nur, dass die Verbindung bereits bei einer Baudrate von 57600 mit dem 8N1-Bitmuster beginnen soll.

Sie müssen jetzt auch die OnConnectionEstablished () - Funktion erstellen. Bewegen Sie sich also außerhalb der MainPage () - Funktion und erstellen Sie eine leere Funktion wie folgt.

private void OnConnectionEstablished () // LOGIK HIER

Springen Sie zurück zum Formular-Designer, den ich zuvor erwähnt habe (wenn Sie vergessen haben, wie: Doppelklicken Sie auf MainPage.xaml aus dem Solution Explorer). Erstellen Sie zwei Schaltflächen. Öffnen Sie dazu die Registerkarte Toolbox, die Sie auf der linken Seite des Bildschirms vertikal fixiert finden. Ziehen Sie zwei Schaltflächen auf die Seite und beschriften Sie sie dann Auf und ein aus.

Wählen Sie die erste Schaltfläche aus und benennen Sie sie dann im Feld Eigenschaften unten rechts “OnButton”. Klicken Sie auf das kleine Blitzsymbol. Dies ist die Liste der Ereignisse und Aktionen, in der festgelegt wurde, was passiert, wenn Formularelemente interagiert werden. Art “OnButtonClick” in die Klicken Feld.

Wenn Sie die Eingabetaste drücken, wird automatisch der Code für dieses bestimmte Schaltflächenereignis erstellt und die Standardcodeansicht geladen. Wechseln Sie vorerst wieder zum Formular-Designer, und tun Sie dasselbe für die Schaltfläche Aus, aber rufen Sie es diesmal an “OffButton”, und “OffButtonClick”. Wenn Sie dort sind, benennen Sie das Hauptfenster dahinter als “Seite” - wir werden das später verwenden. Sie sollten jetzt etwas haben, das dem folgenden Screenshot ähnelt:

Wechseln Sie für einen Moment wieder zum Designer, und stellen Sie erneut für jede der Schaltflächen die Option ein aktiviert Eigentum an Falsch. Sie können dies entweder tun, indem Sie die Eigenschaft direkt in die XAML-Codeansicht eingeben, oder Sie finden das Kontrollkästchen im Eigenschaftenfeld (klicken Sie auf den Schlüssel, wenn Sie sich noch in der Aktionsansicht befinden) - es befindet sich unter der erweiterten Ansicht Verbreitet Kategorie von Eigenschaften.

Dies ist nicht unbedingt erforderlich, aber es ist ratsam, die Tasten zu deaktivieren, bis der Arduino sicher angeschlossen und angeschlossen ist.

Um sie wieder zu aktivieren, fügen Sie der OnConnectionEstablished () - Funktion Folgendes hinzu. Machen Sie sich jetzt nicht zu viele Gedanken über die genaue Bedeutung des Codes. Es ist einfach die Art und Weise, wie Sie mit Formularupdates in modernen Windows-Apps umgehen, um eine gute Leistung zu gewährleisten. Sobald wir uns mit dem Arduino verbunden haben, stellen wir das ein Aktiviert Eigenschaft der Buttons auf true.

private void OnConnectionEstablished () // Aktivieren Sie die Schaltflächen "Ein". var action = Dispatcher.RunAsync (Windows.UI.Core.CoreDCatcherPriority.Normal, neuer Windows.UI.Core.DispatchedHandler (() => OnButton.IsEnabled = true; OffButton.IsEnabled = true;)); arduino.pinMode (14, PinMode.ANALOG); arduino.AnalogPinUpdatedEvent + = MyAnalogPinUpdateCallback; Debug.WriteLine (arduino.analogRead (14)); 

Sie werden auch eine bekanntere pinMode () - Anweisung sehen, um zu sagen, dass wir einen analogen Eingang an Pin 14 haben (es gibt 13 digitale Pins, daher beginnt A0 ab 14 zu zählen). Dann haben wir eine weitere Ereignisdeklaration - rufen Sie die Funktion MyAnalogPinUpdateCallback auf, wenn der analoge Pinwert aktualisiert wird.

Schließlich müssen wir die Schaltflächenklickereignisse bearbeiten und entscheiden, was passiert, wenn sich der Analogeingang ändert. Beginnen wir mit den Tasten. Wir können mit dem Arduino unter Verwendung ähnlicher Funktionsnamen wie normaler Arduino-Code wie folgt interagieren:

arduino.digitalWrite (13, PinState.HIGH);

Fügen Sie das für das onButton-Ereignis und das für das offButton ein:

arduino.digitalWrite (13, PinState.LOW);

Einfach. Der analoge Eingang des Arduino ist etwas komplizierter, aber hier habe ich was gefunden.

public void MyAnalogPinUpdateCallback (Byte-Pin, UInt16-Wert) if (value-lastvalue> 5 || lastvalue-value> 5) 
Debug.WriteLine ("Pin A" + Pin + "ist jetzt" + Wert); 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 = wert; 

Beachten Sie, dass ich den vorherigen Wert, den wir vom Pin erhalten haben, in einer Variablen mit dem Namen lastValue speichert. Auf diese Weise können wir überprüfen, wie stark der Wert geändert wird, und nur dann reagieren, wenn der Unterschied signifikant ist (eine Art Signalglättung). Wenn sich der Wert in beide Richtungen um mehr als 5 ändert (0-1024 ist der gesamte Wertebereich), reagieren wir durch Ändern des RGB-Hintergrundfarbwerts des Page-Elements.

Da wir nur eine Nummer haben, mit der ich arbeiten kann, und ich war in Eile, habe ich hier ein bisschen mit den 3 Nummern herumgetäuscht, die für die Erstellung von R, G und B erforderlich sind. Sie können sich wahrscheinlich viel schöneres einfallen lassen.

Fertig

Das ist es - führen Sie den Code aus, und Sie sollten etwas ähneln, das dem obigen Screenshot ähnelt. Die Tasten schalten die LED ein und aus und der variable Widerstand ändert den Hintergrund. Wenn Sie Probleme hatten, vergessen Sie nicht, dass der vollständige Code hier ist.

Jetzt können Sie Ihre eigenen Windows 10-Apps schreiben, die mit Arduino interagieren. Was machen Sie dann? Vielleicht ein Heimautomationscontroller Home Automation Guide mit Raspberry Pi und Arduino Home Automation Guide mit Raspberry Pi und Arduino Der Markt für Home Automation ist mit teuren Verbrauchersystemen überschwemmt, die untereinander nicht kompatibel sind und deren Installation kostspielig ist. Wenn Sie einen Raspberry Pi und einen Arduino haben, können Sie im Grunde dasselbe bei… Read More? Lass es mich in den Kommentaren wissen.

Erfahren Sie mehr über: Arduino, Programmierung.