Skelbimas

„Microsoft“ ruošiasi visam darbui su „Windows 10“, pagaliau įgyvendindama svajonę turėti programas, kurios veikia keliose platformose. Kartu su oficialia „Arduino“ parama jūs turite savo galingą naują įrankį: galimybę lengvai sukurti universalias „Windows“ programas, turinčias aparatinės įrangos ryšį su realiuoju pasauliu.

Štai kaip pradėti, net jei anksčiau niekada neužprogramuodavote „Windows“ programos.

Prieš skaitydami toliau, peržiūrėkite demonstracinį modelį, ką mes ketiname sukurti.

Turėčiau pastebėti, kad nenaudojau „Visual Studio“ ar net paliečiau C #, nes maždaug prieš 10 metų. Aš tai žvelgiu iš naujo „Visual Studio“ diegimo perspektyvos ir pamirštu viską, ką žinau.

Jei jau esate gana patyrę naudodami „Windows“ programų programavimą ar net ieškote paprasto būdo, kaip pradėti programuoti „Windows“ be šių „Arduino“ dalykų, išbandykite Ryano paprastos „Visual Basic“ programos sudarymo vadovas Kaip galite sukurti savo paprastą programą naudodami VBANorite sužinoti, kaip sukurti savo VBA programą, norint išspręsti problemas? Naudokitės šiais patarimais kurdami savo VBA programinę įrangą.

instagram viewer
Skaityti daugiau . Absoliutus programavimo pradedantiesiems gali tekti patikrinti mano Programavimas 101 Kompiuterio programavimo pagrindai 101 - kintamieji ir duomenų tipaiPrieš tai supažindinome ir šiek tiek papasakojome apie objektų programavimą, kur ir koks jo vardas kilęs, maniau, kad laikas pereiti absoliučius programavimo pagrindus, nesusijusius su kalba būdas. Šiame ... Skaityti daugiau (ir 2 dalis Absoliutūs programavimo pagrindai pradedantiesiems (2 dalis)Absoliučio pradedančiųjų programavimo vadovo 2 dalyje aprašysiu funkcijų pagrindus, grąžinimo reikšmes, kilpas ir sąlygas. Prieš pradėdami spręsti šią problemą, būtinai perskaitykite 1 dalį, kur paaiškinau ... Skaityti daugiau ) straipsnis pirmasis.

Turėtumėte būti susipažinę su kai kuriais pradedančiųjų „Arduino“ projektai 15 puikių „Arduino“ projektų pradedantiesiemsJus domina Arduino projektai, bet nežinote nuo ko pradėti? Šie pradedančiųjų projektai išmokys jus pradėti. Skaityti daugiau (o gal net perskaitykite mūsų „Arduino“ vadovas Darbo pradžia „Arduino“: vadovas pradedančiajam„Arduino“ yra atvirojo kodo elektronikos prototipų kūrimo platforma, pagrįsta lanksčia, lengvai naudojama aparatine ir programine įranga. Jis skirtas menininkams, dizaineriams, mėgėjams ir visiems, besidomintiems interaktyvių objektų ar aplinkos kūrimu. Skaityti daugiau ), tačiau tai greičiausiai bus pirmas kartas, kai bandysite sukurti tikrą kompiuterio programinės įrangos sąsają su ja.

Siuntiniai

Pirma: turite prisijungti „Windows Insider“ programa gauti naujausią „Visual Studio 2015“, ir naujausias „ „Windows 10“ peržiūra. Atlikite tai dabar - nemokamai. „Windows 10“ yra kūrėjo peržiūra ir neturėtų būti įdiegta kaip pagrindinė operacinė sistema. Tai nepatogu kaip pragaras.

  • Prisijungti prie „Windows Insider“ programair atsisiųskite „Windows 10“ techninę peržiūrą
  • Gaukite „Visual Studio 2015“ bendruomenės leidimo apžvalgą [nebėra.

„Visual Studio“ yra pačios „Microsoft“ kūrimo aplinka, kurią naudosime kurdami „C # Windows“ programą.

Kodėl C #? Su dideliais „Java“ panašumais, tai yra gana lengva programavimo kalba pradedantiesiems, norint paruošti veikiančią programą ir ją paleisti, tačiau galinga pakankamai, kad galėtumėte kurti nuostabias programas (net žaidimus: C # yra pasirinkta „Unity“ scenarijų kalba - patikrinkite nemokamą el. knyga, Žaidimo programavimo programa „Unity“ pradedančiųjų vadovas Žaidimo su vienybe programavimas: vadovas pradedančiajamBesivystančiame „indie“ žaidimų kūrimo peizaže „Unity“ pasirodė kaip faktiškas standartas: dėl mažų kainų, patogumo naudoti ir plačių funkcijų rinkinio jis puikiai tinka greitam žaidimų vystymui. Skaityti daugiau ).

Jei dar to nepadarėte, atsisiųskite Arduino IDE iš pareigūno Arduino.cc svetainėje ir įdiekite standartinė firmata ant lentos. Jį rasite žemiau Pavyzdžiai -> Firmata -> Standartinė Firmata. Tai tiesiog paverčia „kvailu“ serijiniu įrenginiu, kuris padarys viską, ką liepia mūsų programa - nebus jokios programos logika pačioje plokštėje, tiesiog sąsaja tarp mūsų programos ir visų jutiklių ar išvesties įrenginių, prijungtų prie Arduino.

Kalbant apie laidus, galite arba pritvirtinti šviesos diodą tiesiai prie 13 kaiščio ir GND, kaip nurodyta toliau, arba naudoti įmontuotą LED. Jums taip pat reikės kintamo rezistoriaus (aš panaudojau 10 k tiesinį potenciometrą), einantį į A0 (akivaizdžiai turint tinkamas kojas ant GND ir + 5 V).

arduino-windows10-demo

Galiausiai atsisiųskite nuotolinio laidų paketą iš „GitHub“. Tai yra tas sluoksnis, kurį turime pridėti, kad mūsų „Windows“ programa įgalintų kalbėtis su Arduino.

Sukurkite programą

Pirmyn ir atidarykite „Visual Studio“. Jei tai paleidote pirmą kartą, jums bus suteikta galimybė prisijungti. Nepaisykite to, jei norite. Pasirinkite „Visual C“ kaip plėtros variantą ir tęsti; Bet kuriuo atveju „Visual Studio“ paruošti naudoti pirmą kartą.

Sukurkite naują projektą naudodami šabloną „Visual C“ -> Tuščia programa („Windows Universal“). Aš vadinau mano „Arduino testą“, bet tai nesvarbu.

naujoji „c sharp“ universaliųjų langų programa

Šioje vietoje susidūriau su klaida, kai norėjau iš tikrųjų paleisti programą, kai „Windows 10“ reikėjo perjungti į kūrėjo režimą. Eikite į priekį ir padarykite tai, nors, jei pastebite, kad „Windows 10“ kompiuteryje stringa šis nustatymas, tai yra žinoma klaida ir jums reikės naudokite grupės politikos rengyklę, kad įgalintumėte kūrėjo režimą.

Tada dešiniuoju pelės mygtuku spustelėkite bet kurią vietą Sprendimų naršyklė (tai yra dešinėje) ir pasirinkite Papildyti -> Esamas projektas.

sprendimų tyrinėtojas prideda projektus

Eikite į vietą, kur atsisiuntėte nuotolinio laidų failus iš „Github“ - jei jis buvo išpakuotas, tai turėtų būti aplankas, vadinamas nuotolinis laidų sujungimas. Viduje rasite „Microsoft“. Maker.win10; o jo viduje rasite dar 3 aplankus. Savo ruožtu pridėkite kiekvieną naršydami tuose trijuose aplankuose ir rasdami projekto failą.

Jei gaunate klaidų apie „XAML 8.2 failą nerastas“, turite netinkamą „Visual Studio“ versiją arba dar neįdiegėte kūrėjo įrankių. Grįžkite į šio straipsnio pradžią ir įsitikinkite, kad atsisiuntėte ir įdiegėte abu susietus „Visual Studio“ failus.

Šie 3 projektai, kuriuos ką tik pridėjote, yra tik skirtingi „Arduino“ sąsajos sluoksniai. Jei naudojate sprendimų naršyklę, paspauskite dešinį pelės mygtuką ir pasirinkite Priklausomybės -> Sukurkite priklausomybes, galite pamatyti, nuo kurių sluoksnių priklauso (Serijinis nepriklauso nuo nieko; Firmata priklauso nuo serialo; Nuotolinis laidai priklauso nuo abiejų). Vienintelis pakeitimas, kurį turite atlikti, yra išskleidžiamajame meniu pasirinkti savo projektą ir pažymėti kiekvieną langelį, kad būtų nurodyta, jog jūsų projektas priklauso nuo visų kitų projektų.

patikrinti priklausomybes

Paskutinis žingsnis: vėl iš sprendimų naršyklės dešiniuoju pelės mygtuku spustelėkite Nuorodos elementą po savo projektu ir pasirinkite Pridėti nuorodą. Iš kairės eikite į „Windows Universal“, tada pažymėkite langelį šalia „Microsoft Visual C ++ AppLocal Runtime Package“. Dar neuždarykite dialogo lango.

projekto nuorodos

Kitas eikite į Projektai (taip pat tame pačiame dialogo lange iš sąrašo kairėje) ir pažymėkite langelį šalia kiekvieno iš trijų „Microsoft“. Makeris projektai.

gamintojo nuorodos

Tai buvo sunkiau, nei turėtų būti, bet jums reikia tai padaryti tik vieną kartą; dabar galime smagiai leisti laiką programuodami - pažadu, kad tai nėra taip baisu.

Programavimas

Jei kyla problemų sekant kartu, visą kodą galite rasti Pastebin. Vis dėlto aš labai siūlau perskaityti žemiau pateiktas pastabas, kad galėčiau paaiškinti, kas iš tikrųjų yra kodas.

Pirmiausia reikia pridėti šiek tiek kodo, kuris sako, kad mums reikia USB prievado, kad galėtume susisiekti su Arduino. Surask „Package.appxmanifest“ failą iš sprendimo naršyklės ir dukart spustelėkite, kad galėtumėte jį redaguoti. Čia turime įklijuoti tam tikrą kodą - techniškai mes „įterpsime vaiko mazgą“, nes tai yra XML failas, bet tiesiog pakeisime visą skyrių su žemiau esančiu kodu, kad jis atrodytų taip:

galimybes

Tikslus kodas skirsis, jei naudojate „Bluetooth“ arba jei taikote pagal „Win8.1“, o ne 10, bet toliau pateiktą „Windows 10“, USB jungtį.

Eik į Sukurkite meniu -> Atkurkite sprendimąir įsitikinkite, kad nepadarėte klaidų.

Iš sprendimų naršyklės išplėskite „MainPage.xaml“ mazgas. Dukart spustelėjus tai, bus įkeltas formos dizaineris, prie kurio grįšime vėliau, bet kol kas jis bus atidarytas „MainPage.xaml.cs“, kurioje yra pagrindinė mūsų programos logika.

Pirmame skyriuje pridėkite dvi eilutes, kad nurodytume, kad mes „naudosime“ Arduino bitus.

naudojant „Microsoft“. Maker.serial; naudojant „Microsoft“. Makeris. Nuotolinis laidai;

Taip pat pridėjau eilutę, kad pasakytume, jog naudosimės Sistema. Diagnostika; o tai leidžia mums naudotis Derinti. „WriteLine“ () funkcija išvesti derinimo pranešimus IDE.

Pirmiausia apibrėžkime keletą kintamųjų, kuriuos naudosime visame. Pridėkite šias eilutes prieš viešas pagrindinis puslapis () funkcijos deklaracija.

„UsbSerial“ ryšys; „RemoteDevice arduino“; „UInt16“ paskutinė vertė;

Tada pereikite į „MainPage“ () funkciją - ji vadinama konstruktoriumi ir tai funkcija, kuri iškart iškviečiama, kai yra sukurta mūsų programa, todėl mes ją naudojame viskam nustatyti.

Pirmiausia pridėkite eilutę, kad galėtumėte užmegzti USB nuoseklųjį ryšį su konkrečiu USB įrenginiu („Arduino“).

jungtis = nauja „UsbSerial“ („VID_2341“, „PID_0043“);

Atminkite, kad standartinio „Arduino Uno“ USB ID jau yra užkoduoti bloke, tačiau tai galite patikrinti naudodami Įrenginių tvarkytuvė -> Uostai (COM ir LPT) -> Arduino Uno -> Išsami informacija skirtukas -> Techninės įrangos ID.

patikrinti usb paslėpti

Tada iškart po to pridėkite šias eilutes.

arduino = naujas „RemoteDevice“ (ryšys); ryšys. ConnectionEstablished + = OnConnectionEstablished; „connection.begin“ (57600, „SerialConfig“. SERIAL_8N1);

Čia vyksta keli dalykai. Pirmiausia mes kuriame „RemoteDevice“ objektą - atminkite, kad tas sluoksnis suteikia mums krūvą Arduino komandų - ir suteikiame jam kintamąjį pavadinimą „arduino“. Kita eilutė pridedama prie „ConnectionEstablished“ įvykio „Kai sėkmingai užmegzsi USB ryšį, paleisk funkciją OnConnectionEstablish ()“.

Finalas tiesiog nurodo, kad ryšys jau turėtų būti pradėtas, naudojant 57600 perdavimo spartą, naudojant 8N1 bitų modelis.

Taip pat turėsite sukurti šią „OnConnectionEstablished ()“ funkciją dabar, todėl perkelkite funkciją „MainPage ()“ ir atlikite tuščią funkciją, kaip nurodyta toliau.

privati ​​tuštuma OnConnectionEstablished () { // LOGIKA ČIA. }

Grįžkite prie anksčiau minėto formos kūrėjo (jei pamiršote, kaip tai padaryti: dukart spustelėkite „MainPage.xaml“ iš tiriamojo tiriamojo). Sukurkite du mygtukus. Norėdami tai padaryti, atidarykite skirtuką „Įrankių dėžė“, kurią rasite vertikaliai kairėje ekrano pusėje. Vilkite du mygtukus ant puslapio, tada etiketę pažymėkite Įjungta ir vienas Išjungta.

formos dizainerio mygtukai

Pasirinkite pirmąjį mygtuką, tada apatiniame dešiniajame kampe esančiame ypatybių laukelyje pavadinkite jį „OnButton“. Spustelėkite mažą žaibo piktogramą - tai yra įvykių ir veiksmų sąrašas, kuris naudojamas nurodyti, kas nutinka, kai sąveikauja formos elementai. Įveskite „OnButtonClick“ į Spustelėkite laukas.

Kai paspausite „Enter“, jis automatiškai sukurs to konkretaus mygtuko įvykio kodą ir įkels standartinį kodo rodinį. Dabar pereikite prie formos kūrėjo ir darykite tą patį su mygtuku „Išjungti“, tačiau šį kartą vadinkite jį „OffButton“ ir „OffButtonClick“. Kol esate ten, eikite į priekį ir pagrindinio lango formą pavadinkite „Puslapis“ - mes tai naudosime vėliau. Dabar turėtumėte kažką panašaus į ekrano kopiją:

dizaineris kuria renginius

Akimirką vėl grįžkite į dizainerį ir vėl nustatykite kiekvieno mygtuko mygtuką isEnabled nuosavybė Melagingas. Tai galite padaryti įvesdami nuosavybę tiesiai į XAML kodo rodinį, arba galite tai rasti žymės langelį lauke Ypatybės (spustelėkite veržliaraktį, jei vis dar matote veiksmų rodinį) - jis yra po išsiplėtė Dažnas savybių kategorija.

Tai nėra būtina, tačiau gera praktika yra išjungti mygtukus, kol nebūsime tikri, kad „Arduino“ yra prijungtas ir prijungtas.

Norėdami jas vėl įjungti, pridėkite šias funkcijas prie „OnConnectionEstablished ()“ funkcijos. Nesijaudinkite per daug dėl tikslios kodo reikšmės kol kas. Tai tiesiog būdas, kurį turėtumėte tvarkyti formų atnaujinimuose šiuolaikinėse „Windows“ programose, kad užtikrintumėte gerą našumą. Prisijungę prie Arduino, mes nustatėme „IsEnabled“ mygtukų savybė tikra.

private void OnConnectionEstablished () {// įjungti įjungimo mygtukus var action = Dispečeris. „RunAsync“ („Windows“. UI.Core. „CoreDispatcherPriority“. Įprasta, nauja „Windows“. UI.Core. DispatchedHandler (() => {OnButton. IsEnabled = tiesa; „OffButton“. IsEnabled = tiesa; })); arduino.pinMode (14, „PinMode“. ANALOGAS); arduino. AnalogPinUpdatedEvent + = MyAnalogPinUpdateCallback; Derinti. „WriteLine“ (arduino.analogRead (14)); }

Taip pat pamatysite labiau pažįstamą „pinMode“ () teiginį, sakydami, kad turime 14 analogo įvestį (yra 13 skaitmeninių kaiščių, taigi A0 pradėkite skaičiuoti nuo 14). Tada mes turime kitą įvykio deklaraciją - kai atnaujinama analoginio kaiščio vertė, iškvieskite funkciją „MyAnalogPinUpdateCallback“.

Galiausiai turime redaguoti mygtuko paspaudimo įvykius ir nuspręsti, kas atsitiks, kai pasikeis analoginis įvestis. Pradėkime nuo mygtukų. Mes galime bendrauti su Arduino naudodami panašius funkcijų pavadinimus kaip įprastą Arduino kodą:

arduino.digitalWrite (13, „PinState“. AUKŠTAS);

Įklijuokite tai „onButton“ įvykiui, o šį - „offButton“:

arduino.digitalWrite (13, „PinState“. MAŽAI);

Paprasta. Analoginis „Arduino“ įėjimas yra šiek tiek sudėtingesnis, tačiau štai ką aš sugalvojau.

public void MyAnalogPinUpdateCallback (baito PIN, UInt16 reikšmė) {if (reikšmė paskutinė vertė> 5 || paskutinė vertė vertė> 5) {
Derinti. „WriteLine“ („Pin A“ + PIN + „dabar yra„ + reikšmė “); var action = Dispečeris. „RunAsync“ („Windows“. UI.Core. „CoreDispatcherPriority“. Įprasta, nauja „Windows“. UI.Core. DispatchedHandler (() => {baitų skaičius = Konvertuoti. „ToByte“ (vertė / 4); Puslapis. Fonas = naujas SolidColorBrush („Windows“. UI.Color. „FromArgb“ (255, num, num, Konvertuoti. „ToByte“ (255 -num))); })); } paskutinė vertė = reikšmė; }

Atminkite, kad ankstesnę vertę, kurią gavome iš kaiščio, kaupiu kintamajame, vadinamame lastValue; tai leidžia mums patikrinti, kiek pasikeitė vertė, ir reaguoti tik tuo atveju, jei skirtumas yra didelis (tam tikras signalo išlyginimas). Jei ji keičiasi bet kuria kryptimi daugiau nei 5 (0–1024 yra visas verčių diapazonas), tada mes reaguojame keičiant puslapio elemento RGB fono spalvos vertę.

Kadangi mes turime tik vieną numerį, su kuriuo turime dirbti, ir aš skubėjau, aš čia truputį susitvarkau su trimis skaičiais, kurių reikia R, G ir B padaryti. Tikriausiai galite sugalvoti kažką daug gražesnio.

Baigta

arduino langai 10 baigti

Štai viskas - paleiskite kodą ir turėtumėte pamatyti kažką panašaus į aukščiau pateiktą ekrano kopiją. Mygtukai įjungs ir išjungs šviesos diodą, o kintamasis rezistorius pakeis foną. Jei kiltų problemų, nepamirškite visas kodas yra čia.

Dabar, kai galite parašyti savo „Windows 10“ programas, sąveikaujančias su Arduino, ką pagaminsite? Galbūt a namų automatikos valdiklis Namų automatikos vadovas su „Raspberry Pi“ ir „Arduino“Namų automatikos rinka yra užtvindyta brangių vartotojų sistemų, nesuderinamų viena su kita ir brangiai kainuojančių įrengimo. Jei turite aviečių pi ir arduino, tą patį galite pasiekti ... Skaityti daugiau ? Praneškite man komentaruose.

Jamesas yra dirbtinio intelekto bakalauras ir yra CompTIA A + bei Network + sertifikuotas. Jis yra pagrindinis „MakeUseOf“ kūrėjas ir laisvalaikį praleidžia žaisdamas VR dažasvydį ir stalo žaidimus. Nuo mažens jis statė kompiuterius.