реклама

Microsoft се занимава с Windows 10 и най-накрая осъзнава мечтата да има приложения, които работят на крос-платформа. В комбинация с официалната поддръжка за Arduino, имате на разположение нов мощен инструмент: възможност за лесно създаване на универсални приложения за Windows, които имат хардуерна връзка с реалния свят.

Ето как да започнете, дори ако никога досега не сте програмирали приложение за Windows.

Преди да прочетете, вижте демонстрацията на това, което ще правим.

Трябва да отбележа, че не съм използвал Visual Studio или дори съм докосвал C # от преди около 10 години. Идвам на това от гледна точка на нова инсталация на Visual Studio и забравих всичко, което знам.

Ако вече имате доста опит с програмирането на приложения за Windows или дори търсите лесен начин да започнете с програмирането в Windows без тези неща на Arduino, опитайте Ryan's ръководство за създаване на обикновено приложение Visual Basic Как можете да направите своя собствена проста ап с VBAИскате ли да знаете как да направите свое собствено приложение VBA за решаване на проблеми? Използвайте тези съвети, за да създадете свой собствен VBA софтуер.

instagram viewer
Прочетете още . Абсолютното начинаещо програмиране може да иска да провери моето Програмиране 101 Основите на компютърното програмиране 101 - Променливи и типове данниСлед като се запознахме и поговорихме малко за обектно-ориентираното програмиране преди и къде е съименникът му идва от, реших, че е време да преминем през абсолютните основи на програмирането в неезиков специфичен начин. Това... Прочетете още част 2 Абсолютните основи на програмирането за начинаещи (част 2)В част 2 от нашите абсолютни начинаещи ръководства за програмиране, ще разгледам основите на функциите, връщането на стойностите, контурите и условностите. Уверете се, че сте прочели част 1, преди да се заемете с това, където обясних ... Прочетете още ) статия първа.

Трябва да сте запознати с някои проекти за начинаещи Arduino 15 страхотни Arduino проекта за начинаещиИнтересувате се от проектите на Arduino, но не сте сигурни откъде да започнете? Тези проекти за начинаещи ще ви научат как да започнете. Прочетете още (и може би дори четете нашите Ардуино Ръководство Първи стъпки с Arduino: Ръководство за начинаещиArduino е платформа за създаване на прототипи за електроника с отворен код, базирана на гъвкав, лесен за използване хардуер и софтуер. Той е предназначен за художници, дизайнери, любители и всички, които се интересуват от създаването на интерактивни обекти или среди. Прочетете още ), но това вероятно ще бъде първият път, когато се опитате да създадете истински бит компютърен софтуер, за да взаимодействате с него.

Downloads

Първо: трябва да се присъедините към Програма за Windows Insider за да получите най-новото прегледно издание на Visual Studio 2015и най-новата версия на Windows 10 Preview. Направете това сега - безплатно е. Windows 10 е визуализация за програмист и не трябва да бъде инсталиран като основна операционна система. Бъги е ад.

  • Присъедини се към Програма за Windows Insiderи изтеглете Windows 10 Technical Preview
  • Вземете визуализацията на Visual Studio 2015 Community Edition [Няма по-дълго време на разположение].

Визуално студио е собствената среда за разработка на Microsoft, която ще използваме за създаване на C # Windows приложение.

Защо C #? Със силни прилики с Java, това е сравнително лесен език за програмиране за начинаещи, за да могат да работят работещо приложение, но същевременно мощно достатъчно, за да можете да продължите да създавате зашеметяващи приложения (дори игри: C # е скриптовият език на Unity по избор - вижте нашите безплатни електронни книги, Ръководство за начинаещи за програмиране на игра с Unity Програмиране на игра с единство: Ръководство за начинаещиВ развиващия се пейзаж на развитието на инди играта, Unity се превърна в нещо като де-факто стандарт: ниската си цена, лекотата на използване и широкия набор от функции го правят идеален за бързо развитие на играта. Прочетете още ).

Ако още не сте го изтеглете Arduino IDE от длъжностното лице Arduino.cc сайт и инсталирайте стандартни firmata върху дъската. Ще го намерите под Примери -> Фирмата -> Стандартни Firmata. Това просто го превръща в „тъпо“ серийно устройство, което ще направи всичко, което нашето приложение му каже - няма да има приложение логика на самата платка, просто интерфейс между нашето приложение и всички сензори или изходни устройства, свързани към Arduino.

Що се отнася до окабеляването, можете или да залепите LED директно, за да фиксирате 13 и GND, както е по-долу, или да използвате вградения светодиод. Ще ви трябва и променлив резистор (използвал съм 10k линеен потенциометър), влизащ в A0 (със съответните крака на GND и + 5V също, очевидно).

Ардуино-Windows 10-демо

Накрая изтеглете пакета за отдалечено окабеляване от GitHub [Няма по-дълги налични]. Това е слоят, който трябва да добавим, който ще даде възможност на нашето приложение за Windows да говори с Arduino.

Създайте приложение

Върви напред и отвори Visual Studio. Ако за първи път го стартирате, ще имате възможност да влезете. Игнорирайте това, ако искате. Избирам Visual C # като вариант за развитие и продължете; така или иначе, отнема няколко минути, за да подготвите Visual Studio за първа употреба.

Създайте нов проект, като използвате шаблона Visual C # -> Празно приложение (Windows Universal). Аз нарекох моя „Тест на Ардуино“, но това няма значение.

ново c остро универсално приложение за Windows

В този момент се сблъсках с грешка относно това, че трябва да превключа Windows 10 в режим на програмист, ако искам действително да стартирам приложението. Продължете напред и направете това, въпреки че ако установите, че вашето изграждане на Windows 10 се срива при тази настройка, това е известна грешка и ще трябва да използвайте редактора на груповите правила, за да активирате режима на програмист.

След това щракнете с десния бутон навсякъде в Solution Explorer (това е нещото отдясно) и изберете Добави -> Съществуващ проект.

добавяне на проекти

Придвижете се до мястото, където сте изтеглили файловете за отдалечено окабеляване от Github - ако той е разархивиран, трябва да е папка, наречена дистанционно окабеляване-развият. Там ще намерите Microsoft. Maker.win10; и вътре в това ще намерите още 3 папки. От своя страна добавете всяка от тях, като навигирате в тези три папки и намерите файла на проекта.

Ако получите грешки относно „Файл XAML 8.2 не е намерен“, имате грешна версия на Visual Studio или още нямате инсталирани инструменти за програмисти. Върнете се в началото на тази статия и се уверете, че сте изтеглили и инсталирали и двата свързани файла Visual Studio.

Тези 3 проекта, които току-що добавихте, са само различни слоеве на интерфейса на Arduino. От разгледача на решения, ако щракнете с десния бутон и изберете Зависимостите -> Изграждане на зависимости, можете да видите кои слоеве зависят от кои (Сериен не зависи от нищо; Фирмата зависи от сериен; RemoteWiring зависи и от двете). Единствената промяна, която трябва да направите тук, е да изберете вашия проект от падащото меню и да поставите отметка във всяко квадратче, за да посочите, че вашият проект зависи от всички тези други проекти.

проверете зависимостите

Последна стъпка: отново от Explorer Explorer, щракнете с десния бутон върху Препратки елемент от вашия проект и изберете Добавяне на референция. Отляво отидете на Windows Universal, след това поставете отметка в квадратчето до Пакет Microsoft Visual C ++ AppLocal Runtime. Не затваряйте диалоговия прозорец още.

референции за проекти

След това отидете до Проекти (също в същия диалогов прозорец от списъка вляво) и поставете отметка в квадратчето до всяко от трите Microsoft. производител проекти.

референции за производители

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

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

Ако имате проблеми с това, пълният код е наличен на Pastebin. Въпреки това горещо препоръчвам да прочетете бележките по-долу, така че мога да обясня какво всъщност прави кодът.

Първо, трябва да добавим малко код, който казва, че се нуждаем от USB порт за комуникация с Arduino. Намери Package.appxmanifest файл от Explorer Explorer и щракнете двукратно, за да го редактирате. Тук трябва да поставим някакъв код - технически, ние ще „вмъкнем детски възел“, защото това е XML файл, а просто заменим целия раздел с кода по-долу, така че да изглежда така:

възможности

Точният код ще варира, ако използвате Bluetooth или ако насочвате към Win8.1 вместо 10, но по-долу е за Windows 10, USB връзка.

Отидете на Изграждане меню -> Възстановете решениеи се уверете, че нямате грешки.

От разгледача на решения разширете MainPage.xaml възел. Двойното щракване върху това ще зареди дизайнера на формуляри, към който ще се върнем по-късно, но засега се отвори MainPage.xaml.cs, която съдържа основната логика зад нашето приложение.

Добавете два реда в първия раздел, за да посочите, че ще „използваме“ битовете на Arduino.

използвайки Microsoft. Maker.serial; използвайки Microsoft. Maker. RemoteWiring;

Добавих и ред, за да кажа, че ще използваме Система. Диагностика; което ни позволява да използваме Debug. WriteLine () функция за извеждане на съобщения за отстраняване на грешки в IDE.

Първо, нека да определим няколко променливи, които ще използваме през. Добавете тези редове точно преди обществена главна страница () декларация за функция

UsbSerial връзка; RemoteDevice arduino; UInt16 lastvalue;

След това преминете към функцията MainPage () - това се нарича конструктор и това е функция, която се извиква веднага при създаването на нашето приложение, затова го използваме, за да настроим всичко.

Първо, добавете линия за установяване на USB серийна връзка към конкретно USB устройство (Arduino).

връзка = нова UsbSerial ("VID_2341", "PID_0043");

Забележете, че USB идентификаторите на стандартен Arduino Uno вече са кодирани в блока, но можете да потвърдите това от Диспечер на устройства -> Пристанища (COM и LPT) -> Ардуино Уно -> детайли раздел -> Идентификационни номера на хардуера.

проверете usb скрит pid

След това добавете следните редове веднага след това.

arduino = ново RemoteDevice (връзка); Връзка. ConnectionEstablished + = OnConnectionEstablished; връзка.begin (57600, SerialConfig SERIAL_8N1);

Тук се случват няколко неща. Първо, ние създаваме обект на RemoteDevice - не забравяйте, че това е слоят, който ни дава куп Arduino команди - и му даваме променливото име „arduino“. Следващият ред е да се прикачи към събитието ConnectionEstablished "След като USB връзката е успешно установена, моля, стартирайте функцията, наречена OnConnectionEstablish ()".

Финалът просто казва на връзката да започне вече, със скорост на предаване 57600, като се използва 8N1 битов модел.

Също така ще трябва да създадете тази функция OnConnectionEstablished () сега, така че се преместете извън функцията MainPage () и просто направете празна функция, както следва.

частна невалидност OnConnectionEstablished () { // ЛОГИКА ТУК. }

Назад към дизайнера на формуляри, за който споменах по-рано (ако сте забравили как: щракнете два пъти върху MainPage.xaml от изследователя на решения). Създайте два бутона. За целта отворете раздела Toolbox, който ще намерите вертикално прикрепен от лявата страна на екрана. Плъзнете два бутона върху страницата, след което поставете етикет На и едно от.

форма дизайнерски добавяне на бутони

Изберете първия бутон, след което от полето Свойства в долния десен ъгъл го наречете „OnButton“. Щракнете върху малката икона на светкавица - това е списъкът със събития и действия, който се използва за определяне на това, което се случва при взаимодействието на елементите на формата. Въведете “OnButtonClick” в Кликнете област.

Когато натиснете Enter, той автоматично ще създаде кода за това конкретно събитие на бутона и ще зареди стандартния изглед на код. Завърнете се отново към дизайнера на формуляри и направете същото за бутона Off, но този път го наречете „OffButton“ и „OffButtonClick“. Докато сте там, продължете напред и назовете основния формуляр на прозореца зад него като „Страница“ - ще го използваме по-късно. Сега трябва да имате нещо, наподобяващо екрана по-долу:

дизайнер създава събития

Върнете се за миг отново към дизайнера и отново за всеки от бутоните, задайте isEnabled собственост на фалшив. Или правите това, като въведете свойството директно в изгледа на кода XAML, или можете да го намерите отметка в полето „Свойства“ (щракнете върху гаечен ключ, ако все още сте в екрана с действия) - той е под разширен често срещани категория имоти.

Това не е от съществено значение, но е добра практика да деактивирате бутоните, докато не сме сигурни, че Arduino е включен и свързан.

За да ги активирате отново, добавете следното към функцията OnConnectionEstablished (). За сега не се притеснявайте твърде точно за значението на кода, това е само начинът, по който трябва да боравите с актуализациите на формуляри в съвременните приложения на Windows, за да осигурите добра ефективност. След като се свържем с Arduino, ние поставихме IsEnabled свойство на бутоните за true.

private void OnConnectionEstablished () {// активиране на бутоните за изключване var action = Диспечер. RunAsync (Windows. UI.Core. CoreDispatcherPriority. Нормален, нов Windows. UI.Core. DispatchedHandler (() => {OnButton. IsEnabled = true; OffButton. IsEnabled = true; })); arduino.pinMode (14, PinMode ANALOG); Ардуино. AnalogPinUpdateEvent + = MyAnalogPinUpdateCallback; Debug. WriteLine (arduino.analogRead (14)); }

Ще видите и по-познато изявление pinMode (), за да кажем, че имаме аналогов вход на пин 14 (има 13 цифрови пина, така че A0 започнете да броите от 14). Тогава имаме още една декларация за събитие - когато стойността на аналоговия пин се актуализира, извикайте функцията MyAnalogPinUpdateCallback.

И накрая, трябва да редактираме събитията за щракване на бутона и да решим какво ще се случи, когато аналоговият вход се промени. Да започнем с бутоните Можем да взаимодействаме с Arduino, използвайки подобни имена на функции като обикновен Arduino код, както следва:

arduino.digitalWrite (13, PinState ВИСОКО);

Поставете това за събитието onButton и това за offButton:

arduino.digitalWrite (13, PinState LOW);

Simple. Аналоговият вход от Arduino е малко по-сложен, но ето какво измислих.

public void MyAnalogPinUpdateCallback (байтов пин, UInt16 стойност) {if (value-lastvalue> 5 || lastvalue-value> 5) {
Debug. WriteLine ("Pin A" + pin + "сега е" + value); var действие = Диспечер. RunAsync (Windows. UI.Core. CoreDispatcherPriority. Нормален, нов Windows. UI.Core. DispatchedHandler (() => {байт номер = Преобразуване. ToByte (стойност / 4); Page. Фон = нов SolidColorBrush (Windows. UI.Color. FromArgb (255, num, num, Преобразуване. ToByte (255 - брой))); })); } lastvalue = стойност; }

Обърнете внимание, че съхранявам предишната стойност, получена от пина в променлива, наречена lastValue; това ни дава възможност да проверим колко е променена стойността и да реагираме само ако разликата е значителна (вид изглаждане на сигнала). Ако тя се промени в която и да е посока повече от 5 (0-1024 е пълният диапазон от стойности), тогава реагираме чрез промяна на RGB стойността на цвета на фона на елемента Page.

Тъй като имаме само едно число, с което трябва да работим, и аз бях в бързаме, избих тук малко неща с 3-те числа, необходими за направата на R, G и B. Вероятно можете да измислите нещо много по-красиво.

завършен

arduino windows 10 завършени

Това е всичко - стартирайте кода и трябва да видите нещо подобно на екрана по-горе. Бутоните ще включват и изключват светодиода, а променливият резистор ще промени фона. Ако сте имали проблеми, не забравяйте Пълният код е тук.

Сега, когато можете да напишете свои собствени приложения за Windows 10, които взаимодействат с Arduino, какво ще направите? Може би a контролер за домашна автоматизация Ръководство за домашна автоматизация с Raspberry Pi и ArduinoПазарът на домашна автоматизация е залят от скъпи потребителски системи, несъвместими помежду си и скъпи за инсталиране. Ако имате Raspberry Pi и Arduino, можете основно да постигнете същото нещо при ... Прочетете още ? Уведомете ме в коментарите.

Джеймс има бакалавърска степен по изкуствен интелект и е сертифициран като CompTIA A + и Network +. Той е водещ разработчик на MakeUseOf и прекарва свободното си време, играейки VR пейнтбол и настолни игри. Той изгражда компютри още от дете.