Kako stvoriti Windows 10 Arduino aplikaciju (za apsolutne početnike)

  • Lesley Fowler
  • 0
  • 4390
  • 506
Oglas

Microsoft radi na Windows 10 i konačno ostvaruje san o aplikacijama koje pokreću cross-platformu. U kombinaciji s službenom podrškom za Arduino na raspolaganju vam je novi moćan alat: mogućnost jednostavnog stvaranja univerzalnih Windows aplikacija koje imaju hardversku vezu s stvarnim svijetom.

Evo kako započeti, čak i ako nikada prije niste programirali Windows aplikaciju.

Prije nego što pročitate, pogledajte prikaz onoga što ćemo napraviti.

Moram napomenuti da od prije desetak godina nisam koristio Visual Studio ili čak dotaknuo C #. Prilazim tome iz perspektive svježe instalacije Visual Studio i zaboravio sve što znam.

Ako ste već prilično iskusni u programiranju Windows aplikacija ili čak tražite jednostavan način da započnete s programiranjem u sustavu Windows bez ove Arduino stvari, iskušajte Ryanin vodič za izradu jednostavne Visual Basic aplikacije Kako možete napraviti svoju vlastitu jednostavnu aplikaciju sa VBA Kako možete napraviti vlastitu jednostavnu aplikaciju s VBA-om Za one od vas koji bi stvarno voljeli biti u stanju napisati vlastiti zahtjev, ali nikada prije nisu upisali niti jedan redak koda, provest ću vas kroz to što napravite svoj …. Apsolutni početnici programiranja možda žele provjeriti moje programiranje 101 Osnove računalnog programiranja 101 - Varijable i DataTypes Osnove računalnog programiranja 101 - Varijable i DataTypes Nakon uvođenja i razgovora o objektno orijentiranom programiranju prije i odakle dolazi njegov imenjak, mislio je da je vrijeme da prođemo kroz apsolutne osnove programiranja na nejezički specifičan način. Ovo… (i 2. dio Apsolutne osnove programiranja za početnike (2. dio) Apsolutne osnove programiranja za početnike (2. dio) U 2. dijelu našeg apsolutnog vodiča za programiranje početnika, obrađivat ću osnove funkcija, vrijednosti, petlje i uvjeti. Obavezno pročitajte 1. dio prije nego što se pozabavite ovim, gdje sam prvo objasnio članak ...).

Trebali biste biti upoznati s nekim početničkim Arduino projektima 15 Velikih Arduino projekata za početnike 15 Velikim Arduino projektima za početnike Zanimaju Arduino projekti, ali niste sigurni gdje započeti? Ovi početnički projekti naučit će vas kako započeti. (a možda čak i pročitajte naš Arduino vodič Početak rada s Arduinom: Vodič za početnike Početak rada s Arduinom: Vodič za početnike Arduino je platforma za prototiranje elektronike otvorenog koda koja se temelji na fleksibilnom, jednostavnom hardveru i softveru. Namijenjena je umjetnicima, dizajneri, hobisti i svi zainteresirani za stvaranje interaktivnih objekata ili okruženja.), ali ovo će vjerojatno biti prvi put da ste pokušali stvoriti pravi dio računalnog softvera za interakciju s njim.

Preuzimanja

Prvo: morate se pridružiti Windows Insider programu kako biste dobili najnovije pregledno izdanje Visual Studio 2015, i najnovija gradnja Windows 10 Preview. Učinite to sada - besplatno je. Windows 10 je pregled za programere i ne bi ga trebao instalirati kao vaš glavni operativni sustav. Glup je kao pakao.

  • Pridružite se programu Windows Insider i preuzmite Windows 10 Technical Preview
  • Preuzmite pregled izdanja Visual Studio 2015 Community [Više nije dostupno].

Vizualni studio Microsoftovo vlastito razvojno okruženje koje ćemo koristiti za izradu C # Windows aplikacije.

Zašto C #? S jakim sličnostima s Javom, to je relativno lagan programski jezik za početnike za pokretanje i radnu aplikaciju, ali dovoljno moćan da možete nastaviti s izradom nekih zapanjujućih aplikacija (čak i igre: C # je jezik skripta Unity po izboru - provjerite iz naše besplatne e-knjige, Vodič za početnike za programiranje igre s jedinstvom Programiranje igre s jedinstvom: Vodič za početnike Programiranje igre s jedinstvom: Vodič za početnike U evoluirajućem krajoliku razvoja indie igara, Jedinstvo je postalo nešto kao de facto standard: niski troškovi, jednostavna upotreba i široki set značajki čine ga idealnim za brzi razvoj igara.).

Ako to već niste, preuzmite Arduino IDE s službenog web-mjesta Arduino.cc, i instalirajte standardna firmata na ploču. Pronaći ćete ga ispod Primjeri -> Firmata -> Standardna firma. Ovo ga samo pretvara u “glup” serijski uređaj, koji će raditi sve što nam naša aplikacija kaže - neće biti logike aplikacije na samoj ploči, samo sučelje između naše aplikacije i bilo kojeg senzora ili izlaznih uređaja povezanih s Arduinom.

U pogledu ožičenja, možete lijepiti LED izravno na pin 13 i GND kao dolje ili koristiti ugrađeni LED. Trebat će vam i promjenjivi otpornik (koristio sam 10k linearni potenciometar) koji ide u A0 (s odgovarajućim nogama na GND-u i + 5V također, očito).

Napokon, preuzmite paket udaljenog ožičenja s GitHub-a [No Longger Available]. Ovo je sloj koji moramo dodati i koji će omogućiti našoj Windows aplikaciji da razgovara s Arduinom.

Kreirajte aplikaciju

Samo naprijed i otvorite Visual Studio. Ako je ovo prvi put da ste ga pokrenuli, imat ćete mogućnost prijave. Ignorirajte to ako želite. izabrati Visual C # kao razvojna opcija i dalje; Bilo kako bilo, treba nekoliko minuta da pripremite Visual Studio za prvu upotrebu.

Stvorite novi projekt pomoću predloška Visual C # -> Prazna aplikacija (Windows Universal). Zvao sam svoje “Arduino test”, ali nema veze.

Trenutačno sam naišao na pogrešku što moram prebaciti Windows 10 u programere ako želim zaista pokrenuti aplikaciju. Naprijed i učinite to, iako ako vam se Windows Windows 10 sruši na toj postavci, to je poznati programski program i morat ćete koristiti uređivač pravila grupe da biste omogućili način za programere.

Zatim desnom tipkom miša kliknite bilo gdje u Explorer Rješenje (to je stvar desno) i odaberite Dodati -> Postojeći projekt.

Dođite do mjesta gdje ste preuzeli datoteke udaljenog ožičenja s Githuba - ako ih je otpakirao, to bi trebala biti mapa koja se zove daljinsko ožičenje-razvoj. Unutra ćete pronaći Microsoft.Maker.win10; a unutar toga pronaći ćete još 3 mape. Zauzvrat, dodajte svaku od njih tako što ćete se kretati unutar te tri mape i pronaći datoteku projekta.

Ako primite bilo kakve pogreške u vezi “Datoteka XAML 8.2 nije pronađena”, imate pogrešnu verziju Visual Studio ili još uvijek nisu instalirani alati za razvojne programere. Vratite se na početak ovog članka i osigurajte da ste preuzeli i instalirali obje povezane datoteke Visual Studio.

Ova tri projekta koja ste upravo dodali samo su različiti slojevi Arduino sučelja. Ako desnom tipkom miša kliknete i odaberete od Explorera rješenja ovisnosti -> Izgradite ovisnosti, možete vidjeti o kojim slojevima ovisi (Serijski ne ovisi o ničemu; Firmata ovisi o serijskoj; RemoteWiring ovisi o oba). Jedina promjena koju ovdje morate izvršiti je odabir vašeg projekta s padajućeg izbornika i potvrdite svaki okvir da biste naznačili da vaš projekt ovisi o svim tim ostalim projektima.

Posljednji korak: iz programa za istraživanje rješenja ponovno kliknite desnim klikom na Reference stavku ispod vašeg projekta i odaberite Dodajte referencu. S lijeve strane idite na Windows Universal, a zatim označite okvir pored Microsoft Visual C ++ AppLocal paket za vrijeme izvođenja. Još ne zatvorite dijalog.

Zatim idite do Projekti (također u istom dijaloškom okviru s popisa s lijeve strane) i potvrdite okvir pored svake od triju Microsoft.Maker projekti.

To je bilo teže nego što bi trebalo biti, ali to trebate učiniti samo jednom; sad se možemo zabaviti s programiranjem - obećavam da nije tako zastrašujuće.

Programiranje

Ako imate poteškoća, slijedite čitav kod na Pastebin. Ipak toplo predlažem da pročitate bilješke ispod, tako da mogu objasniti što kod zapravo radi.

Prvo moramo dodati malo koda koji kaže da nam treba USB priključak za komunikaciju s Arduinom. Naći Package.appxmanifest datoteku iz preglednika rješenja i dvaput kliknite da biste je uredili. Ovdje moramo zalijepiti neki kod - tehnički ćemo biti “umetanje dječjeg čvora” jer je XML datoteka, ali cijeli odjeljak zamijenite donjim kodom tako da izgleda ovako:

Točan kôd ovisit će ako koristite Bluetooth ili ako ciljate Win8.1 umjesto 10, ali slijedi za Windows 10, USB vezu.

       

Idi na Izgraditi izbornik -> Obnovite rješenje, i budite sigurni da ne vidite greške.

Iz istraživača rješenja proširite okvir MainPage.xaml čvor. Dvostrukim klikom na to učit ćemo dizajner forme na koji ćemo se vratiti kasnije, ali za sada se otvoriti MainPage.xaml.cs, koja sadrži glavnu logiku koja stoji iza naše aplikacije.

Dodajte dva retka u prvi odjeljak, kako biste naznačili da ćemo biti “koristeći” bode Arduino.

koristeći Microsoft.Maker.serial; pomoću Microsofta.Maker.RemoteWiring;

Dodao sam i liniju da kažem da ćemo je koristiti System.Diagnostics; što nam omogućava upotrebu Debug.WriteLine () funkcija za slanje pogrešaka u IDE.

Najprije definirajmo nekoliko varijabli koje ćemo tijekom upotrebe koristiti. Dodajte ove retke neposredno prije javna glavna stranica () deklaracija o funkciji.

UsbSerial veza; RemoteDevice arduino; UInt16 lastvalue;

Zatim skočite na funkciju MainPage () - to se zove konstruktor i to je funkcija koja se zove odmah kada se kreira naša aplikacija, pa je koristimo za postavljanje svega.

Prvo, dodajte liniju za uspostavu USB serijske veze na određeni USB uređaj (Arduino).

veza = nova UsbSerial ("VID_2341", "PID_0043");

Primijetite da su USB ID-ovi standardnog Arduino Uno-a već kodirani u bloku, ali to možete provjeriti iz Upravitelj uređaja -> Portovi (COM i LPT) -> Arduino Uno -> Detalji kartica -> ID-ovi hardvera.

Zatim dodajte sljedeće retke odmah nakon toga.

arduino = novi RemoteDevice (veza); veza.ConnectionEstablished + = OnConnectionEstablished; veza.begin (57600, SerialConfig.SERIAL_8N1);

Ovdje se događaju neke stvari. Prvo stvaramo objekt RemoteDevice - zapamtite, to je onaj sloj koji nam daje gomilu Arduino naredbi - i dajemo mu naziv varijable “Arduino”. Sljedeći se redak odnosi na događaj ConnectionEstablished “Nakon uspostavljanja USB veze, pokrenite funkciju koja se zove OnConnectionEstablish ()”.

Konačno samo govori kako bi se veza trebala započeti već, brzinom prijenosa 57600, korištenjem 8N1 bit uzorka.

Morat ćete sada stvoriti i onConnectionEstablished () funkciju, pa se pomaknite izvan MainPage () funkcije i jednostavno izvršite praznu funkciju na sljedeći način.

privatna praznina OnConnectionEstablished () // LOGIC HERE

Skočite natrag u dizajnera obrasca kojeg sam ranije spomenuo (ako ste zaboravili kako: dvaput kliknite na MainPage.xaml od istraživača rješenja). Stvorite dva gumba. Da biste to učinili, otvorite karticu Toolbox na kojoj ćete na lijevoj strani zaslona biti okomito zakačeni. Povucite dva gumba na stranici, a zatim označite jedan Na i jedan od.

Odaberite prvi gumb, a zatim u okviru Svojstva u donjem desnom kutu imenovajte ga “OnButton”. Kliknite malu ikonu munje - ovo je popis događaja i radnji koji služi za određivanje onoga što se događa pri interakciji elemenata oblika. Tip “OnButtonClick” u Klik polje.

Kada pritisnete Enter, automatski će se stvoriti kôd za taj određeni događaj gumba i učitati standardni prikaz koda. Za sada se vratite na dizajnera obrasca i učinite isto za gumb Isključeno, ali ovaj put to nazovite “iskljucivanje”, i “OffButtonClick”. Dok ste tamo, nastavite i imenovati glavni prozor prozora iza “Stranica” - koristit ćemo to kasnije. Sada biste trebali imati nešto nalik zaslonu u nastavku:

Za trenutak se vratite dizajneru i opet za svaki od gumba podesite isEnabled vlasništvo lažan. To možete učiniti ako upišete entitet izravno u prikaz XAML koda ili ga možete pronaći u polju Svojstva (kliknite ključ ako ste i dalje u prikazu radnji) - ispod je proširenog Uobičajen kategorija svojstava.

To nije bitno, ali dobra je praksa onesposobiti gumbe dok ne budemo sigurni da je Arduino priključen i spojen.

Da biste ih ponovo omogućili, dodajte sljedeće u funkciju OnConnectionEstablished (). Za sada se ne brinite previše za točno značenje koda, to je samo način na koji biste trebali rukovati ažuriranjima obrasca u modernim aplikacijama za Windows kako biste osigurali dobre performanse. Nakon što smo se povezali s Arduinom, postavili smo IsEnabled svojstvo tipki na true.

privatna void OnConnectionEstablished () // omogući gumbe za isključivanje var action = Dispatcher.RunAsync (Windows.UI.Core.CoreDispatcherPriority.Normal, novi Windows.UI.Core.DispatchedHandler (() => OnButton.IsEnabled = true; OffButton.IsEnabled = true;)); arduino.pinMode (14, PinMode.ANALOG); arduino.AnalogPinUpdateEvent + = MyAnalogPinUpdateCallback; Debug.WriteLine (arduino.analogRead (14)); 

Vidjet ćete i poznatiju izjavu pinMode (), kako bi rekli da imamo analogni ulaz na pin 14 (ima 13 digitalnih pinova, pa A0 počnite brojati od 14). Zatim imamo još jednu deklaraciju događaja - kada se analogna vrijednost pin ažurira, nazovite funkciju MyAnalogPinUpdateCallback.

Na kraju, trebamo urediti događaje klikanja gumba i odlučiti što će se dogoditi kad se promijeni analogni ulaz. Počnimo s gumbima. Možemo komunicirati s Arduinom koristeći slična imena funkcija kao i obični Arduino kod, kako slijedi:

arduino.digitalWrite (13, PinState.HIGH);

Zalijepite to za događaj onButton, a ovo za offButton:

arduino.digitalWrite (13, PinState.LOW);

Jednostavan. Analogni ulaz iz Arduino-a je malo zamršeniji, ali evo što sam smislio.

javna void MyAnalogPinUpdateCallback (bajt pin, vrijednost UInt16) if (vrijednost-lastvalue> 5 || lastvalue-vrijednost> 5) 
Debug.WriteLine ("Pin A" + pin + "je sada" + vrijednost); var action = Dispatcher.RunAsync (Windows.UI.Core.CoreDispatcherPriority.Normal, novi Windows.UI.Core.DispatchedHandler (() => byte num = Convert.ToByte (value / 4); Page.Background = novi SolidColorBrush ( Windows.UI.Color.FromArgb (255, num, num, Convert.ToByte (255 -num)));));  lastvalue = vrijednost; 

Imajte na umu da prethodnu vrijednost koju smo dobili s pina spremam u varijablu zvanu lastValue; ovo nam omogućava da provjerimo koliko je vrijednost promijenjena i da reagiramo samo ako je razlika značajna (vrsta izglađivanja signala). Ako se promijeni u bilo kojem smjeru više od 5 (0-1024 je cijeli raspon vrijednosti), tada reagiramo mijenjanjem vrijednosti RGB pozadinske boje elementa Stranica.

Budući da imamo samo jedan broj s kojim treba raditi, a ja sam bio u žurbi, ovdje sam malo izmijenio stvari s 3 broja potrebna za izradu R, G i B. Vjerojatno možete smisliti nešto puno ljepše.

Gotovi

To je to - pokrenite kôd, a trebali biste vidjeti nešto slično gornjoj snimci zaslona. Tipke će uključivati ​​i isključivati ​​LED, a promjenjivi otpornik će promijeniti pozadinu. Ako ste imali problema, ne zaboravite cijeli kod.

Sad kad možete napisati vlastite Windows 10 aplikacije koje komuniciraju s Arduinom, što ćete napraviti? Možda kontroler kućne automatizacije Vodič za automatizaciju kućanstava sa Raspberry Pi i Arduino Vodič za automatizaciju kućanstava s Raspberry Pi i Arduino Tržište kućne automatizacije preplavljeno je skupim potrošačkim sustavima, nespojivim jedni s drugima i skupim za instalaciju. Ako imate Raspberry Pi i Arduino, u osnovi možete postići istu stvar ...? Javite mi u komentarima.




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.