reklama

Microsoft se chystá vše pro Windows 10, konečně si uvědomuje sen mít aplikace, které běží 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 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 poznamenat, že jsem nepoužíval Visual Studio, ani jsem se nedotkl C #, asi před 10 lety. Přicházím na to 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 systém Windows nebo hledáte snadný způsob, jak začít s programováním ve Windows bez těchto Arduino věcí, zkuste Ryan průvodce jednoduchou aplikací jazyka Visual Basic Jak si můžete vytvořit vlastní jednoduchou aplikaci s VBAChcete vědět, jak vytvořit vlastní aplikaci VBA pro řešení problémů? Tyto tipy použijte k vytvoření vlastního softwaru VBA. Přečtěte si více

instagram viewer
. Absolutní programování začátečníci mohou chtít podívat na můj Programování 101 Základy počítačového programování 101 - Proměnné a typy datPo představení a mluvení o objektově orientovaném programování před a tam, kde je jeho jmenovec pochází z, myslel jsem si, že je čas, abychom prošli absolutními základy programování v jiném než konkrétním jazyce způsob. Tento... Přečtěte si více (a část 2 Absolutní základy programování pro začátečníky (část 2)V části 2 našeho průvodce pro absolutní začátečníky k programování se budu věnovat základům funkcí, návratových hodnot, smyček a podmíněností. Před vyřešením tohoto problému si přečtěte část 1, kde jsem vysvětlil ... Přečtěte si více ) první článek.

Měli byste se s některými seznámit Arduino projekty pro začátečníky 15 skvělých Arduino projektů pro začátečníkyMáte zájem o projekty Arduino, ale nejste si jisti, kde začít? Tyto začátečníky vás naučí, jak začít. Přečtěte si více (a možná dokonce číst naše Průvodce Arduino Začínáme s Arduino: Příručka pro začátečníkyArduino je platforma s otevřeným zdrojovým kódem elektroniky založená na flexibilním, snadno použitelném hardwaru a softwaru. Je určen pro umělce, designéry, fandy a kohokoli, kdo má zájem o vytváření interaktivních objektů nebo prostředí. Přečtěte si více ), ale pravděpodobně to bude poprvé, kdy jste se pokusili vytvořit skutečný kousek počítačového softwaru, který s ním bude spolupracovat.

Stahování

Nejprve: musíte se připojit Windows Insider Program získat nejnovější náhled vydání Visual Studio 2015, a nejnovější 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 Windows Insider programa 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ý zajistí funkční a funkční fungování aplikace, ale přesto výkonný natolik, že budete moci vytvářet některé úžasné aplikace (dokonce i hry: C # je skriptovací jazyk Unity, který si můžete vybrat - podívejte se na naše bezplatné eBook, Průvodce pro začátečníky k programování hry s jednotou Programování hry s jednotou: Průvodce pro začátečníkyV rozvíjející se krajině nezávislého vývoje her se Unity objevila jako něco de facto standardu: díky nízké ceně, snadnosti použití a široké sadě funkcí je ideální pro rychlý vývoj her. Přečtěte si více ).

Pokud jste tak ještě neučinili, stáhněte si Arduino IDE od úředníka Arduino.cc a nainstalovat standardní firmata na palubu. Najdete ji pod Příklady -> Firmata -> Standardní Firmata. Díky tomu se to změní na „hloupé“ sériové zařízení, které bude dělat, co nám naše aplikace řekne - nebude žádná aplikace logika na samotné desce, pouze rozhraní mezi naší aplikací a všemi senzory nebo výstupními zařízeními připojenými k internetu 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) přecházející do A0 (s patřičnými nohami na GND a + 5V samozřejmě).

arduino-windows10-demo

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 je toto spuštění poprvé, budete mít možnost přihlásit se. Ignorujte to, pokud chcete. 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 svůj „Arduino test“, ale na tom nezáleží.

nové c ostré univerzální okna aplikace

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í padá, je to známá chyba a budete muset pomocí editoru zásad skupiny povolte režim vývojáře.

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.

Průzkumník řešení přidat projekty

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ř 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 zobrazí nějaké chyby týkající se souboru XAML 8.2 nebyl nalezen, máte špatnou 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 si 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 zde musíte provést, 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.

zkontrolovat závislosti

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, zaškrtněte políčko vedle Balíček Microsoft Visual C ++ AppLocal Runtime. Dialog ještě nezavírejte.

reference projektu

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. Výrobce projekty.

reference výrobce

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, celý kód je 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 „vložíme podřízený uzel“, protože se jedná o soubor XML, ale nahradí celý sekce s kódem níže, takže to vypadá takto:

schopnosti

Přesný kód se bude lišit, pokud používáte Bluetooth, nebo pokud cílíte na Win8.1 namí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 nemáte žá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žívat“ bity Arduino.

pomocí společnosti Microsoft. Maker.serial; pomocí společnosti Microsoft. Výrobce. RemoteWiring;

Také jsem přidal řádek, který říká, že budeme používat Systém. Diagnostika; což nám umožňuje používat Ladit. 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 () - nazývá se konstruktor a je to funkce, která je 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.

zkontrolovat usb schoval pid

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

arduino = nový RemoteDevice (připojení); spojení. ConnectionEstproveded + = OnConnectionEstproveded; 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í proměnný název „arduino“. Další řádek se připojuje k události ConnectionEstproveded „Jakmile je připojení USB úspěšně navázáno, spusťte prosím funkci nazvanou OnConnectionEstigure ()“.

Finále právě řekne připojení začít již při přenosové rychlosti 57600, pomocí 8N1 bitový vzor.

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

soukromá prázdnota OnConnectionEstproveded () { // LOGICKÁ TU. }

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.

tlačítka návrháře formulářů

Vyberte první tlačítko a poté z pole 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ž se prvky formuláře ovlivňují. Do „.“ Zadejte „OnButtonClick“ Klikněte na pole.

Po stisknutí klávesy 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 to samé pro tlačítko Vypnuto, ale tentokrát to nazývejte „Vypnuto“ a „VypnutoButtonClick“. Když jste tam, pokračujte a pojmenujte za ním hlavní okno 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:

návrhář vytváří události

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 to najdete zaškrtněte políčko v poli Vlastnosti (klikněte na klíč, pokud jste stále v zobrazení akcí) - je pod položkou rozšířený 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 se připojíme k Arduinu, nastavíme Je povoleno vlastnost tlačítek na true.

private void OnConnectionEstendeded () {// povolit tlačítka on off var action = Dispatcher. RunAsync (Windows. UI.Core. CoreDispatcherPriority. Normální, nové Windows. UI.Core. DispatchedHandler (() => {OnButton. IsEnabled = true; OffButton. IsEnabled = true; })); arduino.pinMode (14, PinMode. ANALOGOVÝ); arduino. AnalogPinUpdatedEvent + = MyAnalogPinUpdateCallback; Ladit. WriteLine (arduino.analogRead (14)); }

Uvidíte také známější příkaz pinMode (), který říká, ž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. VYSOKÝ);

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

arduino.digitalWrite (13, PinState. NÍZKÝ);

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) {
Ladit. WriteLine ("Pin A" + pin + "je nyní" + hodnota); var action = Dispečer. RunAsync (Windows. UI.Core. CoreDispatcherPriority. Normální, nové Windows. UI.Core. DispatchedHandler (() => {byte num = Převést. ToByte (hodnota / 4); Stránka. Pozadí = nový 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 je rozdíl 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 zde zmatil věci se 3 čísly potřebnými pro výrobu R, G a B. Pravděpodobně můžete přijít s něčím mnohem hezčím.

Dokončeno

arduino Windows 10 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 plný kód je zde.

Nyní, když můžete psát své vlastní Windows 10 aplikace, které spolupracují s Arduino, co uděláte? Možná a řadič domácí automatizace Průvodce domácí automatizací s Raspberry Pi a ArduinoTrh domácí automatizace je zaplaven drahými spotřebitelskými systémy, nekompatibilními navzájem a nákladnou instalací. Pokud máte Raspberry Pi a Arduino, můžete v podstatě dosáhnout totéž na ... Přečtěte si více ? Dejte mi vědět v komentářích.

James má bakalářský titul v oboru umělé inteligence a je držitelem certifikátu CompTIA A + a Network +. Je hlavním vývojářem MakeUseOf a tráví svůj volný čas hraním VR paintballu a deskových her. Staví počítače od dětství.