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 moćan novi 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.
Treba napomenuti, nisam koristio Visual Studio ili čak dotaknuo C # od prije otprilike 10 godina. 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 ovih Arduino stvari, isprobajte Ryan's vodič za izradu jednostavne aplikacije Visual Basic Kako možete napraviti svoju vlastitu jednostavnu aplikaciju s VBAŽelite znati kako napraviti vlastitu VBA aplikaciju za rješavanje problema? Pomoću ovih savjeta napravite vlastiti VBA softver. Čitaj više
. Apsolutni početnici programiranja možda žele provjeriti moju Programiranje 101 Osnove računalnog programiranja 101 - varijable i tipovi podatakaPredstavljajući se i porazgovarajući o objektno orijentiranom programiranju prije i gdje je njegov imenjak dolazi od, mislio sam da je vrijeme da prođemo apsolutne osnove programiranja u jeziku koji nije specifičan put. Ovaj... Čitaj više (i 2. dio Apsolutne osnove programiranja za početnike (2. dio)U drugom dijelu naših apsolutnih vodiča za početnike programiranja, prikazat ću osnove funkcija, povratne vrijednosti, petlje i uvjeti. Provjerite jeste li pročitali prvi dio prije nego što se riješite ovoga, gdje sam objasnio ... Čitaj više ) članak prvi.Trebali biste biti upoznati s nekima početni Arduino projekti 15 sjajnih Arduino projekata za početnikeZainteresirani za Arduino projekte, ali niste sigurni gdje započeti? Ovi početnički projekti naučit će vas kako započeti. Čitaj više (a možda i pročitati naše Arduino Vodič Početak rada s Arduinom: Vodič za početnikeArduino je platforma za prototiranje elektronike otvorenog koda koja se temelji na fleksibilnom hardveru i softveru koji se lako koristi. Namijenjen je umjetnicima, dizajnerima, hobistima i svima koji su zainteresirani za stvaranje interaktivnih objekata ili okruženja. Čitaj više ), ali ovo će vam biti vjerojatno prvi put da ste stvorili pravi dio računalnog softvera za interakciju s njim.
Preuzimanja
Prvo: morate se pridružiti Windows Insider Program da biste dobili najnovije pregledno izdanje Visual Studio 2015i najnoviju verziju softvera 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. Buka je kao pakao.
- Pridruži se Windows Insider programi preuzmite Windows 10 Technical Preview
- Preuzmite pregled izdanja Visual Studio 2015 Community [Više nije dostupno].
Vizualni studio Microsoftovo je razvojno okruženje koje ćemo koristiti za izradu C # Windows aplikacije.
Zašto C #? S jakim sličnostima s Javom, relativno je jednostavan programski jezik za početnike za pokretanje i pokretanje radne aplikacije, a opet moćan dovoljno da možete nastaviti sa stvaranjem zapanjujućih aplikacija (čak i igre: C # je jezik skripta Unity po izboru - pogledajte naš besplatni e-knjiga, Vodič za početnike za programiranje igre s jedinstvom Programiranje igre s jedinstvom: Vodič za početnikeU evoluirajućem krajoliku razvoja indie igara, Jedinstvo se pojavilo kao nešto što je de-facto standard: niski troškovi, jednostavna upotreba i široki set značajki čine ga idealnim za brzi razvoj igara. Čitaj više ).
Ako to već niste, preuzmite Arduino IDE od službene Arduino.cc web mjesto i instalirajte standardna firmata na ploču. Pronaći ćete ga ispod Primjeri -> Firmata -> Standardna firma. Ovo ga samo pretvara u "glupi" serijski uređaj koji će raditi sve što nam naša aplikacija kaže - neće biti aplikacije logika na samoj ploči, samo sučelje između naše aplikacije i svih senzora ili izlaznih uređaja povezanih na Težak.
Što se tiče ožičenja, možete lijepiti LED izravno na pin 13 i GND kao dolje ili koristiti ugrađeni LED. Trebat će vam i varijabilni otpornik (koristio sam 10k linearni potenciometar) koji ulazi 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 Longer Available]. Ovo je sloj koji moramo dodati koji će omogućiti našoj Windows aplikaciji da razgovara s Arduinom.
Kreirajte aplikaciju
Samo naprijed i otvorite Visual Studio. Ako ga prvi put pokrenete, 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). Nazvao sam svoj "Arduino test", ali nema veze.
Trenutačno sam naišao na pogrešku oko prebacivanja sustava Windows 10 u programere ako želim stvarno pokrenuti aplikaciju. Samo napred i učinite to, iako ako utvrdite da vam se sustav Windows 10 ruši na toj postavci, to je poznata greška i morat ćete koristite uređivač pravila grupe da biste omogućili način za razvojne programere.
Zatim desnom tipkom miša kliknite bilo gdje u Rješitelj preglednika (to je stvar na desnoj strani) i odaberite Dodati -> Postojeći projekt.
Dođite s mjesta Github gdje ste preuzeli datoteke za daljinsko ožičenje - 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 tako što ćete se kretati unutar te tri mape i pronaći datoteku projekta.
Ako primite bilo kakve pogreške u vezi s "datotekom 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 trebate učiniti je odabrati svoj projekt s padajućeg izbornika i potvrditi 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 pokraj 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. Tvorac projekti.
To je bilo teže nego što bi trebalo biti, ali to trebate učiniti samo jednom; sada se možemo zabaviti s programiranjem - obećajem da to nije tako zastrašujuće.
Programiranje
Ako imate poteškoća da sljedeći put, cijeli kod dostupan je na Pastebinu. 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 kôd - tehnički ćemo umetnuti dječji čvor jer je to XML datoteka, ali samo zamijeniti cijeli
Točan kôd ovisit će ako koristite Bluetooth ili ciljate Win8.1 umjesto 10, ali slijedi za Windows 10, USB vezu.
Idi na Izgraditi izbornik -> Obnovite rješenjei budite sigurni da nemate nikakvih pogrešaka.
Iz istraživača rješenja proširite okvir MainPage.xaml čvor. Dvostrukim klikom na to učit ćemo dizajner obrasca na koji ćemo se vratiti kasnije, ali za sada se otvoriti MainPage.xaml.cs, koja sadrži glavnu logiku naše aplikacije.
Dodajte dva retka u prvi odjeljak kako biste naznačili da ćemo "koristiti" Arduino bitove.
pomoću Microsofta. Maker.serial; pomoću Microsofta. Tvorac. RemoteWiring;
Dodao sam i redak da kažem da ćemo ga koristiti Sustav. Dijagnostika; što nam omogućava upotrebu Debug. WriteLine () funkcija za slanje pogrešaka u IDE.
Prvo, definirajmo nekoliko varijabli koje ćemo koristiti u čitavoj fazi. 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 podešavanje svega.
Prvo, dodajte liniju za uspostavljanje 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 blok, ali to možete provjeriti s 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 RemoteDevice objekt - zapamtite, to je sloj koji nam daje gomilu Arduino naredbi - i dajemo mu naziv varijable "arduino". Sljedeći se redak odnosi na događaj ConnectionEstablished "Jednom kada se USB veza uspješno uspostavi, pokrenite funkciju koja se zove OnConnectionEstablish ()".
Konačno samo govori kako bi se veza trebala započeti već, brzinom prijenosa 57600, korištenjem 8N1 bitni uzorak.
Morat ćete sada stvoriti i onConnectionEstablished () funkciju, pa se pomaknite izvan MainPage () funkcije i samo izvršite praznu funkciju na sljedeći način.
privatna praznina OnConnectionEstablished () { // LOGIKA OVDJE }
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 koja ćete na lijevoj strani zaslona pronaći okomito zakačenom. 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 "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. Unesite "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 nazivajte "OffButton" i "OffButtonClick". Dok ste tamo, idite naprijed i imenujte glavni obrazac prozora iza njega kao "Stranica" - to ćemo koristiti kasnije. Sada biste trebali imati nešto nalik zaslonu u nastavku:
Za trenutak se vratite dizajneru i za svaki od gumba ponovno postavite isEnabled vlasništvo lažan. To možete učiniti upisivanjem entiteta izravno u prikaz XAML koda ili ga možete pronaći potvrdni okvir u okviru Svojstva (kliknite ključ ako ste i dalje u prikazu radnji) - to je ispod proširen Uobičajen kategorija svojstava.
To nije bitno, ali dobra je praksa onesposobiti gumbe dok ne budemo sigurni da je Arduino uključen i spojen.
Da biste ih ponovo omogućili, dodajte sljedeće u funkciju OnConnectionEstablished (). Za sada se ne brinite previše o točnom značenju koda, to je samo način na koji biste trebali rukovati ažuriranjima obrasca u modernim aplikacijama za Windows kako biste osigurali dobre performanse. Jednom kada se povežemo s Arduinom, postavili smo IsEnabled svojstvo tipki na true.
privatna void OnConnectionEstablished () {// omogućuju tipke za isključivanje var action = Dispatcher. RunAsync (Windows. UI.Core. CoreDispatcherPriority. Normalni, novi Windows. UI.Core. DispedchedHandler (() => {OnButton. IsEnabled = istina; Iskljucivanje. IsEnabled = istina; })); arduino.pinMode (14, PinMode. ANALOG); Arduino. AnalogPinUpdateEvent + = MyAnalogPinUpdateCallback; Debug. WriteLine (arduino.analogRead (14)); }
Vidjet ćete i poznatiju pinMode () izjavu da kažemo da na pinu 14 imamo analogni ulaz (ima 13 digitalnih pinova, pa A0 početi brojati od 14). Zatim imamo još jednu deklaraciju događaja - kada se analogna vrijednost PIN-a 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. Krenimo 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 akcija = dispečer. RunAsync (Windows. UI.Core. CoreDispatcherPriority. Normalni, novi Windows. UI.Core. DispatchedHandler (() => {byte num = Pretvori. ToByte (vrijednost / 4); Stranica. Pozadina = novi SolidColorBrush (Windows. UI.Color. FromArgb (255, num, num, Pretvori. ToByte (255 -broj))); })); } lastvalue = vrijednost; }
Imajte na umu da pohranjujem prethodnu vrijednost koju smo dobili s pina 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 za rad, a ja sam bio u žurbi, ovdje sam malo izmijenio stvari s 3 broja koja su potrebna za izradu R, G i B. Vjerojatno možete smisliti nešto ljepše.
gotov
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 puni kod je ovdje.
Sad kad možete napisati vlastite Windows 10 aplikacije koje komuniciraju s Arduinom, što ćete napraviti? Možda a regulator kućne automatizacije Vodič za kućnu automatizaciju Raspberry Pi i ArduinoTrž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 isto na ... Čitaj više ? Javite mi u komentarima.
James je diplomirao iz umjetne inteligencije i certificiran je CompTIA A + i Network +. Vodeći je programer MakeUseOf-a, a svoje slobodno vrijeme provodi igrajući VR paintball i boardgames. Gradio je računala još od djeteta.