Како створити Виндовс 10 Ардуино апликацију (за апсолутне почетнике)

Како створити Виндовс 10 Ардуино апликацију (за апсолутне почетнике)

Мицрософт ради све за Виндовс 10, коначно остварујући сан о томе да има апликације које раде на више платформи. У комбинацији са званичном подршком за Ардуино, на располагању имате моћан нови алат: могућност лаког креирања универзалних Виндовс апликација које имају хардверску везу са стварним светом.





Ево како започети, чак и ако никада раније нисте програмирали Виндовс апликацију.





Пре него што наставите са читањем, погледајте демо шта ћемо направити.





Требао бих напоменути да нисам користио Висуал Студио, па чак ни додирнуо Ц#, од пре око 10 година. Долазим на ово из перспективе нове инсталације Висуал Студио -а и заборавио сам све што знам.

Ако сте већ прилично искусни у програмирању апликација за Виндовс или чак тражите једноставан начин да започнете програмирање у систему Виндовс без ових Ардуино ствари, испробајте Риан'с водич за израду једноставне апликације Висуал Басиц . Апсолутни почетници у програмирању ће можда желети прво да погледају мој чланак о програмирању 101 (и део 2).



Требали бисте бити упознати са некима Ардуино пројекти за почетнике (а можда чак и прочитајте наше Ардуино водич ), али ово ће вероватно бити први пут да покушате да направите прави део рачунарског софтвера за интеракцију са њим.

Преузимања

Прво: морате се придружити Виндовс Инсидер програм да бисте добили најновије претпрегледно издање Висуал Студио 2015 , и најновију верзију Преглед оперативног система Виндовс 10 . Учините то сада - бесплатно је. Виндовс 10 је преглед програмера и не треба га инсталирати као главни оперативни систем. Паклено је гадно.





  • Придружи Виндовс Инсидер програм и преузмите Виндовс 10 Тецхницал Превиев
  • Преузмите преглед Висуал Студио 2015 Цоммунити Едитион [више није доступно].

Визуелни студио је Мицрософт -ово властито развојно окружење које ћемо користити за креирање Ц# Виндовс апликације.

Зашто Ц#? Са јаким сличностима са Јавом, то је релативно једноставан програмски језик за почетнике да покрену радну апликацију, али ипак довољно моћан да можете да креирате неке запањујуће апликације (чак и игре: Ц# је Унити скриптни језик по избору - проверите из наше бесплатне е -књиге, Водич за почетнике у програмирању игре са јединством ).





Ако већ нисте, преузмите Ардуино ИДЕ од званичног Ардуино.цц сајт и инсталирајте стандардна фирма на плочу. Наћи ћете га испод Примери -> Потписан -> Стандард Цомпани . Ово га само претвара у „глупи“ серијски уређај, који ће радити све што нам апликација каже - неће бити логике апликације на самој плочи, само интерфејс између наше апликације и било који сензор или излазни уређај повезан са Ардуином .

Што се тиче ожичења, можете или залијепити ЛЕД диоду директно на пин 13 и ГНД као што је доље, или користити уграђену ЛЕД диоду. Такође ће вам требати променљиви отпорник (користио сам 10к линеарни потенциометар) који иде у А0 (са одговарајућим ногама на ГНД и +5в, такође).

На крају, преузмите пакет даљинског ожичења са ГитХуб -а [више није доступно]. Ово је слој који морамо додати који ће омогућити нашој Виндовс апликацији да разговара са Ардуином.

Креирајте апликацију

Само напред и отворите Висуал Студио. Ако га први пут покрећете, добићете могућност да се пријавите. Занемарите то ако желите. Одаберите Висуал Ц# као развојну опцију и наставити; у сваком случају, потребно је неколико минута да се Висуал Студио припреми за прву употребу.

тцл року тв даљински не ради

Креирајте нови пројекат користећи шаблон Висуал Ц# -> Празна апликација (Виндовс Универсал) . Ја сам свој назвао 'Ардуино Тест', али није важно.

У овом тренутку сам наишао на грешку о томе да морам да пребацим Виндовс 10 у режим за програмере ако сам заиста желео да покренем апликацију. Само напред и урадите ово, мада ако откријете да се ваша верзија оперативног система Виндовс 10 руши на тој поставци, то је позната грешка и мораћете да користите уређивач смерница групе да бисте омогућили режим програмера .

Затим кликните десним тастером миша било где у Солутион Екплорер (то је оно што је десно) и изаберите Додати -> Постојећи пројекат .

Идите до места на којем сте преузели датотеке удаљеног ожичења са Гитхуб -а - ако је распакован, то би требало да буде фасцикла под називом даљинско ожичење-развити . Унутра ћете пронаћи Мицрософт.Макер.вин10 ; а унутар тога ћете пронаћи још 3 фасцикле. Заузврат, додајте сваку тако што ћете се кретати унутар те три фасцикле и пронаћи датотеку пројекта.

Ако примите грешке у вези са „датотека КСАМЛ 8.2 није пронађена“, имате погрешну верзију Висуал Студија или још нисте инсталирали алатке за програмере. Вратите се на почетак овог чланка и уверите се да сте преузели и инсталирали обе повезане датотеке Висуал Студио.

Ова 3 пројекта која сте управо додали само су различити слојеви Ардуино интерфејса. У претраживачу решења кликните десним тастером миша и изаберите Зависности -> Изградите зависности , можете видети који слојеви зависе од којих ( Сериал не зависи ни од чега; Потписан зависи од Сериал; РемотеВиринг зависи од оба) . Једина промена коју морате да направите овде је да изаберете свој пројекат са падајућег менија и означите свако поље да означите да ваш пројекат зависи од свих ових других пројеката.

Последњи корак: из истраживача решења поново кликните десним тастером миша на Референце ставку испод вашег пројекта и изаберите Додајте референцу . С леве стране идите на Виндовс Универсал , а затим означите поље поред Мицрософт Висуал Ц ++ АппЛоцал Рунтиме пакет . Не затварајте дијалог још.

Затим идите на Пројекти (такође у истом дијалогу, са листе са леве стране), и означите поље поред сваког од три Мицрософт.Макер пројекти.

То је било теже него што би требало бити, али то морате учинити само једном; сада можемо мало да се позабавимо програмирањем - обећавам да није тако страшно.

Програмирање

Ако имате проблема са праћењем, цео код је доступан на Пастебину . Ипак, снажно предлажем да прочитате доле наведене напомене, како бих могао да објасним шта код заправо ради.

Прво, морамо додати мало кода који каже да нам је потребан УСБ порт за комуникацију са Ардуином. Пронађите Пацкаге.аппкманифест датотеку из истраживача решења и двапут кликните да бисте је уредили. Овде морамо да убацимо неки код - технички ћемо 'уметати подређени чвор' јер је то КСМЛ датотека, али само замените цео одељак доњим кодом тако да изгледа овако:

Тачан код ће се разликовати ако користите Блуетоотх или ако циљате Вин8.1 уместо 10, али следеће је за Виндовс 10, УСБ везу.








Идите на Буилд мени -> Ребуилд Солутион , и уверите се да не добијате грешке.

Из истраживача решења проширите МаинПаге.камл чвор. Дупли клик на то учитаће дизајнер образаца на који ћемо се вратити касније, али за сада отворите МаинПаге.камл.цс , који садржи главну логику иза наше апликације.

Додајте два реда у први одељак да бисте назначили да ћемо „користити“ Ардуино битове.

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

Такође сам додао линију да кажем да ћемо користити Систем.Диагностицс; што нам омогућава да користимо Дебуг.ВритеЛине () функција за слање порука за отклањање грешака у ИДЕ.

За почетак, хајде да дефинишемо неколико променљивих које ћемо користити. Додајте ове редове непосредно пре јавна главна страница () декларација функције.

UsbSerial connection;
RemoteDevice arduino;
UInt16 lastvalue;

Затим скочите у функцију МаинПаге () - то се зове конструктор, и то је функција која се позива одмах када се наша апликација креира, па је користимо за постављање свега.

Прво додајте линију за успостављање серијске УСБ везе на одређени УСБ уређај (Ардуино).

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

Имајте на уму да су УСБ ИД -ови стандардног Ардуино Уно већ кодирани у блоку, али то можете проверити са Менаџер уређаја -> Прикључци (ЦОМ и ЛПТ) -> Ардуино уно -> Детаљи картица -> ИД -ови хардвера .

Затим додајте следеће редове одмах након тога.

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

Овде се дешава неколико ствари. Прво, креирамо објекат РемотеДевице - запамтите, то је слој који нам даје гомилу Ардуино команди - и дајемо му променљиву назив 'ардуино'. Следећи ред се односи на догађај ЦоннецтионЕстаблисхед 'након што је УСБ веза успешно успостављена, покрените функцију ОнЦоннецтионЕстаблисх ()'.

Финале само говори да веза већ почиње, брзином пријеноса од 57600, користећи 8Н1 битни узорак .

Такође ћете сада морати да креирате ту функцију ОнЦоннецтионЕстаблисхед (), па се померите изван функције МаинПаге () и само направите празну функцију на следећи начин.

private void OnConnectionEstablished()
{
// LOGIC HERE
}

Вратите се на дизајнера образаца који сам раније споменуо (ако сте заборавили како: двапут кликните на МаинПаге.камл из истраживача решења). Направите два дугмета. Да бисте то урадили, отворите картицу Тоолбок коју ћете окомито закачити на левој страни екрана. Превуците два дугмета на страницу, а затим означите једно на и један Ван .

Изаберите прво дугме, а затим у пољу Својства у доњем десном углу дајте му име „ОнБуттон“. Кликните на малу икону муње - ово је листа догађаја и радњи која се користи за одређивање шта се дешава када се ступи у интеракцију са елементима обрасца. Откуцајте „ОнБуттонЦлицк“ у Кликните поље.

Када притиснете ентер, он ће аутоматски креирати код за тај догађај и учитати стандардни приказ кода. За сада се вратите на дизајнер образаца и учините исто за дугме Искључено, али овај пут га назовите „ОффБуттон“ и „ОффБуттонЦлицк“. Док сте тамо, само назовите образац главног прозора иза њега као 'Страница' - то ћемо користити касније. Сада би требало да имате нешто слично снимку екрана испод:

Поново се вратите на тренутак на дизајнера и поново за свако дугме притисните дугме је омогућено имовина да Нетачно . Ово можете урадити уписивањем својства директно у приказ КСАМЛ кода или то поље за потврду можете пронаћи у пољу Својства (кликните на кључ ако сте још увек у приказу радњи) - налази се под проширеним Заједнички категорију некретнина.

Ово није битно, али добра је пракса да онемогућите дугмад док не будемо сигурни да је Ардуино укључен и повезан.

Да бисте их поново омогућили, додајте следеће функцији ОнЦоннецтионЕстаблисхед (). Не брините превише о тачном значењу кода за сада, то је само начин на који треба да поступате са ажурирањима образаца у модерним Виндовс апликацијама како бисте осигурали добре перформансе. Након што смо се повезали са Ардуином, поставили смо Је омогућено својство дугмади на труе.

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));
}

Видећете и познатији исказ пинМоде (), да кажемо да имамо аналогни улаз на пину 14 (постоји 13 дигиталних пинова, па А0 почиње да броји од 14). Затим имамо још једну декларацију догађаја - када се вредност аналогног пина ажурира, позовите функцију МиАналогПинУпдатеЦаллбацк.

Коначно, морамо уредити догађаје при притиску дугмета и одлучити шта ће се догодити када се промени аналогни улаз. Почнимо са дугмадима. Можемо комуницирати са Ардуином користећи називе функција сличне уобичајеном Ардуино коду, на следећи начин:

arduino.digitalWrite(13, PinState.HIGH);

Залепите то за догађај онБуттон, а ово за оффБуттон:

arduino.digitalWrite(13, PinState.LOW);

Једноставно. Аналогни улаз са Ардуина је мало компликованији, али ево шта сам смислио.

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;
}

Имајте на уму да претходну вредност коју смо добили од пин -а чувам у променљивој ластВалуе; ово нам омогућава да проверимо колико је вредност промењена и реагујемо само ако је разлика значајна (врста изглађивања сигнала). Ако се промени у било ком смеру за више од 5 (0-1024 је цео опсег вредности), тада реагујемо променом вредности боје РГБ позадине елемента Паге.

Пошто имамо само један број за рад, а ја сам био у журби, мало сам побркао ствари са 3 броја потребна за израду Р, Г и Б. Вероватно можете смислити нешто много лепше.

Готов

То је то - покрените код и требало би да видите нешто слично горњој слици. Дугмад ће укључити и искључити ЛЕД, а променљиви отпорник ће променити позадину. Ако сте имали проблема, не заборавите цео код је овде .

Сада када можете да напишете сопствене апликације за Виндовс 10 које су у интеракцији са Ардуином, шта ћете направити? Можда контролер кућне аутоматизације? Јавите ми у коментарима.

Објави Објави Твеет Емаил Како променити изглед и осећај ваше Виндовс 10 радне површине

Желите да знате како да Виндовс 10 изгледа боље? Користите ове једноставне прилагодбе да бисте Виндовс 10 учинили својим.

Прочитајте следеће
Повезане теме
  • ДИИ
  • Програмирање
  • Ардуино
О аутору Јамес Бруце(707 објављених чланака)

Јамес је дипломирао вештачку интелигенцију и има ЦомпТИА А+ и Нетворк+ сертификат. Кад није заузет као уредник прегледа хардвера, ужива у ЛЕГО, ВР и друштвеним играма. Пре него што се придружио МакеУсеОф -у, био је техничар осветљења, учитељ енглеског језика и инжењер дата центра.

Више од Јамеса Бруцеа

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили