Windows 10 Arduino -sovelluksen luominen (täysin aloittelijoille)

Windows 10 Arduino -sovelluksen luominen (täysin aloittelijoille)

Microsoft on mukana Windows 10: ssä ja vihdoin toteuttaa unelmansa sovelluksista, jotka toimivat eri alustoilla. Yhdessä Arduinon virallisen tuen kanssa sinulla on käytössäsi uusi tehokas työkalu: mahdollisuus luoda helposti universaaleja Windows -sovelluksia, joilla on laitteistoyhteys todelliseen maailmaan.





Näin pääset alkuun, vaikka et olisi koskaan ohjelmoinut Windows -sovellusta aikaisemmin.





Ennen kuin luet, tutustu esittelyyn siitä, mitä aiomme tehdä.





Huomautan, etten ole käyttänyt Visual Studiota tai edes koskenut C#: een noin 10 vuotta sitten. Lähden tähän Visual Studio -asennuksen näkökulmasta ja unohdin kaiken mitä tiedän.

Jos olet jo melko kokenut Windows -sovellusten ohjelmoinnista tai jopa etsit yksinkertaista tapaa aloittaa ohjelmointi Windowsissa ilman tätä Arduino -tavaraa, kokeile Ryanin opas yksinkertaisen Visual Basic -sovelluksen tekemiseen . Absoluuttisen ohjelmoinnin aloittelijat saattavat haluta tarkistaa ensin Ohjelmointi 101 (ja osa 2) -artikkelin.



Sinun pitäisi olla tuttuja joistakin aloittelijoiden Arduino -projektit (ja ehkä jopa lukea meidän Arduino -opas ), mutta tämä on luultavasti ensimmäinen kerta, kun yrität luoda todellisen tietokoneen ohjelmiston vuorovaikutukseen sen kanssa.

Lataukset

Ensinnäkin: sinun täytyy liittyä Windowsin sisäpiiriohjelma saadaksesi viimeisimmän esikatseluversion Visual Studio 2015 ja uusin versio Windows 10 -esikatselu . Tee se nyt - se on ilmaista. Windows 10 on kehittäjien esikatselu, eikä sitä tule asentaa pääkäyttöjärjestelmäksi. Se on helvetin likainen.





  • Liity Windows Insider -ohjelma ja lataa Windows 10 Technical Preview
  • Hanki Visual Studio 2015 Community Editionin esikatselu [No Longer Available].

Visual Studio on Microsoftin oma kehitysympäristö, jota käytämme luodessamme C# Windows -sovelluksen.

Miksi C#? Se on hyvin samankaltainen kuin Java, joten se on suhteellisen helppo ohjelmointikieli aloittelijoille saada toimiva sovellus käyttöön, mutta silti tarpeeksi tehokas, jotta voit jatkaa upeiden sovellusten luomista (jopa pelejä: C# on Unityn komentosarjakieli - valitse ilmaisesta e -kirjastamme, Aloittelijan opas pelin ohjelmoimiseen Unityn kanssa ).





Jos et ole jo tehnyt sitä, lataa Arduino IDE virkamieheltä Arduino.cc sivusto ja asenna standardi yritys taululle. Löydät sen alta Esimerkkejä -> Allekirjoitettu -> Vakioyhtiö . Tämä muuttaa sen vain 'tyhmäksi' sarjalaitteeksi, joka tekee mitä sovelluksemme käskee - levylle ei tule mitään sovelluslogiikkaa, vain liitäntä sovelluksemme ja Arduinoon liitettyjen antureiden tai lähtölaitteiden välillä .

Johdotuksen osalta voit joko kiinnittää LEDin suoraan nastaan ​​13 ja GND: hen kuten alla, tai käyttää sisäistä LED -valoa. Tarvitset myös muuttuvan vastuksen (olen käyttänyt 10k lineaarista potentiometriä), joka menee A0: een (sopivat jalat GND: ssä ja +5v, tietenkin).

Lataa lopuksi Etäjohdotuspaketti GitHubista [Ei enää saatavilla]. Tämä on kerros, joka meidän on lisättävä, jotta Windows -sovelluksemme voi puhua Arduinolle.

Luo sovellus

Mene eteenpäin ja avaa Visual Studio. Jos käytät sitä ensimmäistä kertaa, sinulla on mahdollisuus kirjautua sisään. Ohita se, jos haluat. Valita Visuaalinen C# kehitysvaihtoehtona ja jatkaa; Kummassakin tapauksessa Visual Studion valmistelu ensimmäiseen käyttöön kestää muutaman minuutin.

näetkö, kuka etsii sinua Googlessa?

Luo uusi projekti mallin avulla Visuaalinen C# -> Tyhjä sovellus (Windows Universal) . Soitin omalleni 'Arduino Test', mutta sillä ei ole väliä.

Tässä vaiheessa kohtasin virheen, kun jouduin vaihtamaan Windows 10: n kehittäjätilaan, jos halusin todella käyttää sovellusta. Mene eteenpäin ja tee tämä, mutta jos huomaat, että Windows 10 -rakenne kaatuu kyseisessä asetuksessa, se on tunnettu virhe ja sinun on ota ryhmäkäytäntöeditori käyttöön kehittäjätilan ottamiseksi käyttöön .

Napsauta seuraavaksi hiiren kakkospainikkeella mitä tahansa kohtaa Ratkaisunhallinta (se on asia oikealla) ja valitse Lisätä -> Nykyinen projekti .

Siirry kohtaan, josta olet ladannut Remote Wiring -tiedostot Githubista - jos se on purettu, sen pitäisi olla kansio nimeltä etäjohdotus-kehittää . Sisältä löydät Microsoft.Maker.win 10 ; ja sen sisällä löydät vielä 3 kansiota. Lisää vuorotellen kukin siirtymällä näiden kolmen kansion sisälle ja etsimällä projektitiedosto.

Jos saat virheilmoituksen 'XAML 8.2 -tiedostoa ei löydy', sinulla on väärä Visual Studion versio tai sinulla ei ole vielä kehitystyökaluja. Palaa tämän artikkelin alkuun ja varmista, että olet ladannut ja asentanut molemmat linkitetyt Visual Studio -tiedostot.

Nämä kolme juuri lisäämääsi projektia ovat vain Arduinon käyttöliittymän eri tasoja. Jos napsautat ratkaisunhallintaohjelmassa hiiren kakkospainiketta ja valitset Riippuvuudet -> Rakenna riippuvuuksia , näet, mitkä kerrokset riippuvat mistä ( Sarja ei ole riippuvainen mistään; Allekirjoitettu riippuu sarjasta; Etäjohdotus riippuu molemmista) . Ainoa muutos, joka sinun on tehtävä tässä, on valita projekti alasvetovalikosta ja valita jokainen ruutu osoittaaksesi, että projektisi riippuu kaikista muista projekteista.

Viimeinen vaihe: napsauta uudelleen ratkaisututkimuksessa uudelleen Viitteet kohteen projektisi alla ja valitse Lisää viite . Siirry vasemmalta kohtaan Windows Universal ja valitse sitten valintaruutu Microsoft Visual C ++ AppLocal Runtime -paketti . Älä sulje valintaikkunaa vielä.

Siirry seuraavaksi kohteeseen Projektit (myös samassa valintaikkunassa vasemmalla olevasta luettelosta) ja valitse kunkin kolmen vieressä oleva valintaruutu Microsoft.Maker hankkeita.

Se oli vaikeampaa kuin sen pitäisi olla, mutta sinun täytyy tehdä se vain kerran; nyt voimme pitää hauskaa ohjelmoinnissa - lupaan, että se ei ole niin pelottavaa.

Ohjelmointi

Jos sinulla on vaikeuksia seurata, koko koodi on saatavilla Pastebinissa . Suosittelen kuitenkin lukemaan alla olevat muistiinpanot läpi, jotta voin selittää, mitä koodi todella tekee.

Ensinnäkin meidän on lisättävä vähän koodia, joka sanoo, että tarvitsemme USB -portin kommunikoidaksemme Arduinon kanssa. Etsi Package.appxmanifest -ratkaisua ja muokkaa sitä kaksoisnapsauttamalla. Meidän on liitettävä tähän jokin koodi - teknisesti 'lisäämme alisolmun', koska se on XML -tiedosto, mutta korvaa koko osa alla olevalla koodilla, joten se näyttää tältä:

Tarkka koodi vaihtelee, jos käytät Bluetoothia tai kohdistat Win8.1: een 10 sijasta, mutta seuraava koskee Windows 10: n USB -yhteyttä.








Siirry kohtaan Rakentaa valikko -> Rakenna ratkaisu uudelleen ja varmista, ettet saa virheitä.

Laajenna ratkaisututkimuksessa MainPage.xaml solmu. Kaksoisnapsauttamalla sitä lataa lomakkeen suunnittelijan, johon palaamme myöhemmin, mutta avaamme toistaiseksi MainPage.xaml.cs , joka sisältää sovelluksemme taustalla olevan päälogiikan.

Lisää kaksi riviä ensimmäiseen osaan osoittamaan, että käytämme Arduinon bittejä.

using Microsoft.Maker.serial;
using Microsoft.Maker.RemoteWiring;

Lisäsin myös rivin, että käytämme System.Diagnostics; jonka avulla voimme käyttää Debug.WriteLine () -toiminto lähettää virheenkorjausviestit IDE: lle.

Aluksi määritellään muutamia muuttujia, joita käytämme koko ajan. Lisää nämä rivit juuri ennen julkinen MainPage () toimintoilmoitus.

UsbSerial connection;
RemoteDevice arduino;
UInt16 lastvalue;

Siirry seuraavaksi MainPage () -toimintoon - tätä kutsutaan konstruktoriksi, ja se on toiminto, joka kutsutaan heti, kun sovelluksemme luodaan, joten käytämme sitä kaiken asettamiseen.

Lisää ensin rivi USB -sarjayhteyden muodostamiseksi tiettyyn USB -laitteeseen (Arduino).

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

Huomaa, että tavallisen Arduino Unon USB -tunnukset on koodattu jo lohkoon, mutta voit tarkistaa tämän osoitteesta Laitehallinta -> Portit (COM ja LPT) -> Arduino uno -> Yksityiskohdat välilehti -> Laitteistotunnukset .

Lisää sitten seuraavat rivit heti sen jälkeen.

arduino = new RemoteDevice(connection);
connection.ConnectionEstablished += OnConnectionEstablished;
connection.begin(57600, SerialConfig.SERIAL_8N1);

Täällä tapahtuu muutamia asioita. Ensin luomme RemoteDevice -objektin - muista, että se kerros antaa meille joukon Arduino -komentoja - ja annamme sille muuttujan nimen 'arduino'. Seuraava rivi liittyy ConnectionEstablished -tapahtumaan '' Kun USB -yhteys on muodostettu, suorita OnConnectionEstablish () -toiminto ''.

Finaali vain kertoo yhteyden alkavan jo 57600 baudinopeudella käyttämällä 8N1 -bittinen kuvio .

Sinun on myös luotava tämä OnConnectionEstablished () -toiminto nyt, joten siirry MainPage () -toiminnon ulkopuolelle ja tee tyhjä toiminto seuraavasti.

private void OnConnectionEstablished()
{
// LOGIC HERE
}

Siirry takaisin aiemmin mainitsemaani lomakesuunnittelijaan (jos olet unohtanut miten: kaksoisnapsauta MainPage.xaml ratkaisukehittäjältä). Luo kaksi painiketta. Voit tehdä tämän avaamalla Toolbox -välilehden, jonka löydät kiinnitettynä pystysuoraan näytön vasempaan reunaan. Vedä kaksi painiketta sivulle ja merkitse yksi Päällä ja yksi Vinossa .

Valitse ensimmäinen painike ja nimeä se sitten oikeassa alakulmassa olevasta Ominaisuudet -ruudusta OnButton. Napsauta pientä salaman kuvaketta - tämä on tapahtumien ja toimintojen luettelo, jonka avulla määritettiin, mitä tapahtuu, kun lomakkeen elementtejä käytetään. Kirjoita kohtaan OnButtonClick Klikkaus ala.

Kun painat Enter, se luo automaattisesti koodin kyseiselle painiketapahtumalle ja lataa vakiokoodinäkymän. Vaihda nyt lomakkeen suunnittelijaan ja tee sama Off -painikkeelle, mutta tällä kertaa kutsu sitä OffButton- ja OffButtonClick -painikkeiksi. Kun olet siellä, mene eteenpäin ja anna sen takana oleva pääikkunamuoto sivuksi - käytämme sitä myöhemmin. Sinun pitäisi nyt saada jotain, joka muistuttaa alla olevaa kuvakaappausta:

Vaihda takaisin suunnittelijaan hetkeksi ja aseta uudelleen jokaisen painikkeen kohdalla on käytössä omaisuutta Väärä . Voit joko tehdä tämän kirjoittamalla ominaisuuden suoraan XAML -koodinäkymään tai löydät kyseisen valintaruudun Ominaisuudet -ruudusta (napsauta jakoavainta, jos olet edelleen toimintonäkymässä) - se on laajennetun Yleinen kiinteistöjen luokka.

Tämä ei ole välttämätöntä, mutta on hyvä käytäntö poistaa painikkeet käytöstä, kunnes olemme varmoja, että Arduino on kytketty ja kytketty.

Voit ottaa ne uudelleen käyttöön lisäämällä OnConnectionEstablished () -toimintoon seuraavan. Älä huolehdi liikaa koodin tarkasta merkityksestä, se on vain tapa, jolla sinun pitäisi käsitellä lomakepäivityksiä nykyaikaisissa Windows -sovelluksissa hyvän suorituskyvyn varmistamiseksi. Kun olemme muodostaneet yhteyden Arduinoon, asetamme On käytössä painikkeiden ominaisuus tosi.

private void OnConnectionEstablished()
{
// enable the on off buttons
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));
}

Näet myös tutumman pinMode () -lausekkeen, jonka mukaan meillä on analoginen tulo nastassa 14 (on 13 digitaalista nastaa, joten A0 alkaa laskea 14: stä). Sitten meillä on toinen tapahtumailmoitus - kun analoginen nasta -arvo päivittyy, kutsu toiminto MyAnalogPinUpdateCallback.

Lopuksi meidän on muokattava painikkeen napsautustapahtumia ja päätettävä, mitä tapahtuu, kun analoginen tulo muuttuu. Aloitetaan painikkeista. Voimme olla vuorovaikutuksessa Arduinon kanssa käyttämällä samanlaisia ​​toimintojen nimiä kuin tavallinen Arduino -koodi seuraavasti:

arduino.digitalWrite(13, PinState.HIGH);

Liitä se onButton -tapahtumaan ja tämä offButtoniin:

arduino.digitalWrite(13, PinState.LOW);

Yksinkertainen. Arduinon analoginen tulo on hieman hankalampi, mutta tässä keksin.

public void MyAnalogPinUpdateCallback(byte pin, UInt16 value)
{
if(value-lastvalue >5 || lastvalue-value > 5){
Debug.WriteLine('Pin A' + pin + ' is now ' + value);
var action = Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new 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 = value;
}

Huomaa, että tallennan edellisen arvon, jonka saimme PIN -koodilta muuttujan nimeltä lastValue; Tämän avulla voimme tarkistaa, kuinka paljon arvoa muutetaan, ja reagoida vain, jos ero on merkittävä (eräänlainen signaalin tasoitus). Jos se muuttuu kumpaankin suuntaan enemmän kuin 5 (0-1024 on koko arvoalue), reagoimme muuttamalla Page-elementin RGB-taustaväriarvoa.

Koska meillä on vain yksi numero työskennellä, ja minulla oli kiire, hämmentelin asioita hieman kolmella numerolla, jotka tarvitaan R: n, G: n ja B: n tekemiseen. Voit luultavasti keksiä jotain paljon kauniimpaa.

Valmis

Siinä kaikki - suorita koodi ja sinun pitäisi nähdä jotain samanlaista kuin yllä oleva kuvakaappaus. Painikkeet kytkevät LED -valon päälle ja pois, ja muuttuva vastus muuttaa taustaa. Jos sinulla oli ongelmia, älä unohda koko koodi on täällä .

Nyt kun voit kirjoittaa omia Windows 10 -sovelluksiasi, jotka ovat vuorovaikutuksessa Arduinon kanssa, mitä aiot tehdä? Ehkä kodin automaation ohjain? Kerro minulle kommenteissa.

Jaa Jaa Tweet Sähköposti Kuinka muuttaa Windows 10 -työpöydän ulkoasua

Haluatko tietää, miten Windows 10 näyttää paremmalta? Näiden yksinkertaisten mukautusten avulla voit tehdä Windows 10: stä oman.

Lue seuraava
Liittyvät aiheet
  • tee-se-itse
  • Ohjelmointi
  • Arduino
Kirjailijasta James Bruce(707 artikkelia julkaistu)

Jamesilla on BSc tekoälyssä ja CompTIA A+ ja Network+ -sertifioitu. Kun hän ei ole kiireinen laitteistoarvostelujen editorina, hän nauttii LEGO-, VR- ja lautapeleistä. Ennen MakeUseOfiin tuloaan hän oli valaistustekniikka, englannin opettaja ja konesali -insinööri.

Lisää James Brucelta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi