Jak vytvořit aplikaci Windows 10 Arduino (pro absolutní začátečníky)

  • Owen Little
  • 0
  • 1907
  • 76
reklama

Microsoft jde do systému Windows 10 a konečně si uvědomuje sen mít aplikace, které fungují napříč platformami. V kombinaci s oficiální podporou Arduino máte k dispozici nový výkonný nástroj: schopnost snadno vytvářet univerzální aplikace systému Windows, které mají hardwarové připojení k reálnému světu.

Zde je návod, jak začít, i když jste nikdy předtím nenaprogramovali aplikaci pro Windows.

Než budete číst dál, podívejte se na ukázku toho, co uděláme.

Měl bych podotknout, že jsem nepoužíval Visual Studio, ani jsem se nedotkl C #, asi před 10 lety. Přicházím na toto z pohledu nové instalace Visual Studio a zapomněl jsem na všechno, co vím.

Pokud již máte zkušenosti s programováním aplikací pro Windows, nebo dokonce hledáte jednoduchý způsob, jak začít s programováním ve Windows, aniž by to obsahovalo Arduino, zkuste Ryanův průvodce, jak vytvořit jednoduchou aplikaci Visual Basic, jak si můžete vytvořit svou vlastní jednoduchou aplikaci VBA Jak si můžete vytvořit svou vlastní jednoduchou aplikaci s VBA Pro ty z vás, kteří by opravdu rádi mohli psát vlastní aplikaci, ale nikdy jste nikdy nepsali jediný řádek kódu, jdu si s vámi udělat svůj vlastní …. Absolutní programovací začátečníci si možná budou chtít vyzkoušet mé Programování 101 Základy počítačového programování 101 - Proměnné a datové typy Základy počítačového programování 101 - Proměnné a datové typy Po představení a mluvení o objektově orientovaném programování před a odkud pochází jeho jmenovec, jsem myslel, že je čas, abychom prošli absolutními základy programování jiným způsobem než jazykem. Toto… (a část 2 Absolutní základy programování pro začátečníky (část 2) Absolutní základy programování pro začátečníky (část 2) V části 2 našeho absolutního začátečníka průvodce programováním se budu věnovat základům funkcí, návratu hodnoty, smyčky a podmíněné podmínky. Než začnete tento problém řešit, přečtěte si část 1, kde jsem nejprve vysvětlil článek ...).

Měli byste znát některé Arduino projekty pro začátečníky 15 Velké Arduino projekty pro začátečníky 15 Velké Arduino projekty pro začátečníky Zajímáte se o Arduino projekty, ale nevíte, kde začít? Tyto začátečníky vás naučí, jak začít. (a možná si také přečtěte našeho průvodce Arduino Začínáme s Arduino: Průvodce pro začátečníky Začínáme s Arduino: Průvodce pro začátečníky Arduino je platforma pro prototypování elektroniky založená na flexibilním a snadno použitelném hardwaru a softwaru. Je určena pro umělce, návrháři, fandové a kdokoli, kdo má zájem o vytváření interaktivních objektů nebo prostředí.), ale pravděpodobně to bude poprvé, kdy jste se pokusili vytvořit skutečný kousek počítačového softwaru, který by s ním spolupracoval..

Stahování

Nejprve: musíte se připojit k programu Windows Insider Program, abyste získali nejnovější vydání náhledu systému Windows Visual Studio 2015, a poslední sestavení Windows 10 Preview. Udělej to hned - je to zdarma. Windows 10 je náhled vývojáře a neměl by být nainstalován jako hlavní operační systém. Je to buggy jako peklo.

  • Připojte se k programu Windows Insider a stáhněte si technický náhled Windows 10
  • Získejte náhled aplikace Visual Studio 2015 Community Edition [již není k dispozici].

Vizuální studio je vlastní vývojové prostředí společnosti Microsoft, které budeme používat k vytvoření aplikace C # Windows.

Proč C #? Se silnými podobnostmi s Javou je to relativně snadný programovací jazyk pro začátečníky, který umožňuje provozovat fungující aplikaci, ale dostatečně silný, aby bylo možné vytvářet některé úžasné aplikace (dokonce i hry: C # je skriptovací jazyk Unity - zaškrtněte z naší bezplatné eKnihy, Průvodce pro začátečníky k programování hry s jednotou Programování hry s jednotou: Průvodce pro začátečníky Programování hry s jednotou: Průvodce pro začátečníky V rozvíjející se krajině vývoje indie hry se Unity objevila jako něco de facto standard: díky nízkým nákladům, snadnému použití a široké sadě funkcí je ideální pro rychlý vývoj her.).

Pokud jste tak již neučinili, stáhněte si Arduino IDE z oficiálního webu Arduino.cc a nainstalujte standardní firmata na palubu. Najdete ji pod Příklady -> Firmata -> Standardní Firmata. Tím se to prostě změní na “němý” sériové zařízení, které bude dělat, co nám to naše aplikace řekne - na samotné desce nebude žádná logika aplikace, pouze rozhraní mezi naší aplikací a všemi senzory nebo výstupními zařízeními připojenými k Arduino.

Pokud jde o zapojení, můžete buď nalepit LED přímo na pin 13 a GND, jak je uvedeno níže, nebo použít vestavěnou LED. Budete také potřebovat variabilní rezistor (použil jsem 10k lineární potenciometr) směřující do A0 (samozřejmě s odpovídajícími nohami na GND a + 5v).

Nakonec si stáhněte balíček Remote Wiring z GitHub [No Longer Available]. Toto je vrstva, kterou musíme přidat a která umožní naší aplikaci pro Windows hovořit s Arduino.

Vytvořte aplikaci

Pokračujte a otevřete Visual Studio. Pokud to poprvé spustíte, budete mít možnost přihlásit se. Pokud to chcete, ignorujte. Vybrat Visual C # jako možnost rozvoje a pokračovat; V každém případě trvá několik minut, než se Visual Studio připraví k prvnímu použití.

Vytvořte nový projekt pomocí šablony Visual C # -> Prázdná aplikace (Windows Universal). Zavolal jsem dolu “Arduino test”, ale na tom nezáleží.

V tuto chvíli jsem narazil na chybu v tom, že musím přepnout Windows 10 do vývojářského režimu, pokud chci aplikaci skutečně spustit. Pokračujte a udělejte to, i když zjistíte, že vaše sestavení systému Windows 10 na tomto nastavení selhává, je to známá chyba a pro aktivaci režimu vývojáře budete muset použít editor skupinových zásad..

Poté klepněte pravým tlačítkem myši kdekoli na Solution Explorer (to je věc vpravo) a vyberte Přidat -> Stávající projekt.

Přejděte do místa, kde jste stáhli soubory dálkového zapojení z Githubu - pokud to nebylo rozbaleno, měla by to být složka s názvem dálkové zapojení-vývoj. Uvnitř najdete Microsoft.Maker.win10; a uvnitř toho najdete další 3 složky. Postupně přidejte každou z nich procházením uvnitř těchto tří složek a vyhledejte soubor projektu.

Pokud se vám zobrazí nějaké chyby “Soubor XAML 8.2 nebyl nalezen”, máte nesprávnou verzi Visual Studio nebo ještě nemáte nainstalované vývojářské nástroje. Vraťte se na začátek tohoto článku a ujistěte se, že jste stáhli a nainstalovali oba propojené soubory Visual Studio.

Tyto 3 projekty, které jste právě přidali, jsou pouze různými vrstvami rozhraní Arduino. Pokud v Průzkumníku řešení kliknete pravým tlačítkem a vyberete Závislosti -> Budujte závislosti, můžete vidět, na kterých vrstvách závisí (Seriál nezávisí na ničem; Firmata závisí na Serial; RemoteWiring záleží na obou). Jedinou změnou, kterou musíte udělat, je vybrat svůj projekt z rozevíracího seznamu a zaškrtnutím každého políčka označte, že váš projekt závisí na všech těchto dalších projektech..

Jeden poslední krok: z průzkumníka řešení znovu klikněte pravým tlačítkem na Reference položku ve vašem projektu a vyberte Přidat odkaz. Zleva přejděte na Windows Universal, pak zaškrtněte políčko vedle Balíček Microsoft Visual C ++ AppLocal Runtime. Dialog ještě nezavírejte.

Dále přejděte na Projekty (také ve stejném dialogovém okně ze seznamu vlevo) a zaškrtněte políčko vedle každé ze tří Microsoft.Maker projekty.

Bylo to těžší, než by mělo být, ale musíte to udělat jen jednou; teď se můžeme bavit s programováním - slibuji, že to není tak děsivé.

Programování

Pokud máte potíže s pokračováním, je celý kód k dispozici na Pastebinu. Přesto důrazně doporučuji přečíst níže uvedené poznámky, abych mohl vysvětlit, co kód vlastně dělá.

Nejprve je třeba přidat trochu kódu, který říká, že pro komunikaci s Arduino potřebujeme port USB. Najít Package.appxmanifest soubor z Průzkumníka řešení a dvojitým kliknutím jej upravte. Musíme sem vložit nějaký kód - technicky to tak bude “vložení podřízeného uzlu” protože se jedná o soubor XML, ale celý oddíl nahraďte níže uvedeným kódem, takže vypadá takto:

Přesný kód se bude lišit, pokud používáte Bluetooth, nebo pokud cílíte na Win8.1 místo 10, ale následující je pro připojení Windows 10, USB.

       

Přejít na Stavět menu -> Znovu vytvořit řešení, a ujistěte se, že nedostanete žádné chyby.

Z průzkumníka řešení rozbalte MainPage.xaml uzel. Dvojitým kliknutím na toto načtete návrháře formulářů, ke kterému se vrátíme později, ale prozatím se otevřou MainPage.xaml.cs, která obsahuje hlavní logiku naší aplikace.

Do první sekce přidejte dva řádky, což znamená, že budeme “použitím” Arduino bity.

pomocí Microsoft.Maker.serial; pomocí Microsoft.Maker.RemoteWiring;

Také jsem přidal řádek, který říká, že budeme používat System.Diagnostics; což nám umožňuje používat Debug.WriteLine () funkce pro výstup ladících zpráv do IDE.

Nejprve definujme několik proměnných, které budeme v celém textu používat. Přidejte tyto řádky těsně před veřejná MainPage () deklarace funkce.

UsbSerial připojení; RemoteDevice arduino; UInt16 lastvalue;

Dále skočte do funkce MainPage () - to se nazývá konstruktor a je to funkce, která bude volána ihned po vytvoření naší aplikace, takže ji používáme k nastavení všeho.

Nejprve přidejte řádek pro vytvoření sériového připojení USB ke konkrétnímu zařízení USB (Arduino).

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

Všimněte si, že USB ID standardní Arduino Uno jsou již do bloku kódována, ale můžete to ověřit z Správce zařízení -> Porty (COM a LPT) -> Arduino Uno -> Podrobnosti tab -> ID hardwaru.

Poté přidejte následující řádky.

arduino = nový RemoteDevice (připojení); connection.ConnectionEstproveded + = OnConnectionEstendeded; connection.begin (57600, SerialConfig.SERIAL_8N1);

Děje se zde pár věcí. Nejprve vytváříme objekt RemoteDevice - pamatujte, že to je vrstva, která nám dává spoustu příkazů Arduino - a dáme jí název proměnné “arduino”. Další řádek se připojí k události ConnectionEstproveded “Po úspěšném navázání připojení USB spusťte prosím funkci nazvanou OnConnectionEstigure ()”.

Finále právě řekne připojení, aby se začalo již při přenosové rychlosti 57600 pomocí bitového vzoru 8N1.

Nyní budete také muset vytvořit tuto funkci OnConnectionEstproveded (), takže se přesuňte mimo funkci MainPage () a jednoduše vytvořte prázdnou funkci následujícím způsobem.

soukromá prázdnota OnConnectionEstproveded () // LOGIC HERE

Přejít zpět na návrháře formulářů, které jsem zmínil dříve (pokud jste zapomněli jak: dvakrát klikněte na MainPage.xaml z průzkumníka řešení). Vytvořte dvě tlačítka. Chcete-li to provést, otevřete kartu Toolbox, kterou najdete svisle připnutou na levé straně obrazovky. Přetáhněte dvě tlačítka na stránku a jedno označte Na a jeden Vypnuto.

Vyberte první tlačítko a poté v poli Vlastnosti vpravo dole jej pojmenujte “OnButton”. Klikněte na malou ikonu blesku - jedná se o seznam událostí a akcí, které slouží k určení toho, co se stane, když jsou prvky formuláře ovlivněny. Typ “OnButtonClick” do Klikněte na pole.

Když stisknete klávesu Enter, automaticky vytvoří kód pro danou událost tlačítka a načte standardní zobrazení kódu. Přepněte se zpět do návrháře formulářů a proveďte totéž pro tlačítko Vypnuto, ale tentokrát to nazývejte “OffButton”, a “OffButtonClick”. Když jste tam, jděte do toho a pojmenujte formulář hlavního okna za ním jako “Stránka” - použijeme to později. Nyní byste měli mít něco podobného níže uvedenému snímku obrazovky:

Na chvíli znovu přepněte na návrháře a znovu pro každé z tlačítek nastavte je povoleno majetek Nepravdivé. Buď to provedete zadáním vlastnosti přímo do zobrazení kódu XAML, nebo můžete toto zaškrtávací pole najít v poli Vlastnosti (pokud jste stále v zobrazení akcí, klikněte na klíč) - je to pod rozbaleným Společný kategorie nemovitostí.

To není podstatné, ale je dobré vypnout tlačítka, dokud si nebudeme jisti, že je Arduino zapojeno a připojeno.

Chcete-li je znovu povolit, přidejte do funkce OnConnectionEstoleded () následující. Nemějte příliš starosti s přesným významem kódu pro tuto chvíli, je to jen způsob, jakým máte zpracovávat aktualizace formulářů v moderních aplikacích Windows, abyste zajistili dobrý výkon. Jakmile jsme se připojili k Arduinu, nastavili jsme Je povoleno vlastnost tlačítek na true.

private void OnConnectionEstproveded () // povolit tlačítka on off 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)); 

Uvidíte také známější příkaz pinMode (), řekněme, že máme analogový vstup na pin 14 (existuje 13 digitálních pinů, takže A0 se počítá od 14). Pak máme další deklaraci události - když se aktualizuje hodnota analogového PINu, zavolejte funkci MyAnalogPinUpdateCallback.

Nakonec musíme upravit události kliknutí na tlačítko a rozhodnout, co se stane, když se změní analogový vstup. Začněme s tlačítky. Můžeme komunikovat s Arduino pomocí podobných názvů funkcí jako běžný Arduino kód, a to následovně:

arduino.digitalWrite (13, PinState.HIGH);

Vložte to pro událost onButton, a to pro offButton:

arduino.digitalWrite (13, PinState.LOW);

Jednoduchý. Analogový vstup z Arduina je trochu složitější, ale tady je to, s čím jsem přišel.

public void MyAnalogPinUpdateCallback (pin byte, hodnota UInt16) if (value-lastvalue> 5 || lastvalue-value> 5) 
Debug.WriteLine ("Pin A" + pin + "je nyní" + hodnota); var action = Dispatcher.RunAsync (Windows.UI.Core.CoreDispatcherPriority.Normal, nový 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 = hodnota; 

Všimněte si, že předchozí hodnotu, kterou jsme dostali od špendlíku, ukládám do proměnné zvané lastValue; to nám umožňuje zkontrolovat, jak se hodnota mění, a reagovat pouze v případě, že rozdíl je významný (druh vyhlazení signálu). Pokud se změní v obou směrech o více než 5 (0-1024 je plný rozsah hodnot), pak reagujeme změnou hodnoty barvy pozadí RGB prvku stránky.

Jelikož máme jen jedno číslo, se kterým můžeme pracovat, a já jsem byl ve spěchu, trochu jsem sem zatáčel věci se 3 čísly potřebnými k výrobě R, G a B. Pravděpodobně přijdete s něčím mnohem hezčím.

Dokončeno

To je vše - spusťte kód a měli byste vidět něco podobného výše uvedenému snímku obrazovky. Tlačítka zapnou a vypnou LED a proměnný rezistor změní pozadí. Pokud jste měli potíže, nezapomeňte, že je zde celý kód.

Nyní, když můžete psát své vlastní Windows 10 aplikace, které spolupracují s Arduino, co uděláte? Možná řadič domácí automatizace Příručka domácí automatizace s Raspberry Pi a Arduino Příručka domácí automatizace s Raspberry Pi a Arduino Trh domácí automatizace je zaplaven drahými spotřebitelskými systémy, které jsou vzájemně nekompatibilní a instalace je nákladná. Pokud máte Raspberry Pi a Arduino, můžete v podstatě dosáhnout stejné věci na…? Dejte mi vědět v komentářích.




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.