在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何創建Windows 10 Arduino應用程序

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-12-03 08:53 ? 次閱讀

Microsoft將全力投入Windows 10,最終實現了擁有可跨平臺運行的應用程序的夢想。結合對Arduino的官方支持,您可以使用一個功能強大的新工具:能夠輕松創建具有與現實世界硬件連接的通用Windows應用程序的功能。

即使在這種情況下,入門方法也是如此您以前從未編程過Windows應用。

在繼續閱讀之前,請查看我們將要制作的演示。

我應該注意,我還沒有從大約10年前開始使用Visual Studio,甚至使用C#。我是從全新安裝Visual Studio的角度來解決這個問題的,而忘記了我所知道的一切。

如果您已經對Windows應用程序編程非常有經驗,或者正在尋找一種簡單的方法來要開始在沒有Arduino東西的情況下在Windows中進行編程,請嘗試Ryan制作簡單的Visual Basic應用程序的指南。絕對的編程初學者可能想先閱讀我的Programming 101(第2部分)文章。

您應該熟悉一些初學者的Arduino項目(甚至可以閱讀我們的Arduino指南),但這可能是您第一次嘗試創建真正的計算機軟件來與之交互。

下載

首先:您需要加入Windows Insider計劃才能獲取 Visual Studio 2015 的最新預覽版和 Windows 10 Preview 的最新版本。立即執行-免費。 Windows 10是開發人員預覽版,不應安裝為主要操作系統

加入Windows Insider程序,然后下載Windows 10技術預覽版

獲取Visual Studio 2015 Community Edition的預覽版[不再可用]。

Visual Studio 是Microsoft自己的開發環境,我們將使用它來創建C#Windows應用程序。

為什么要使用C#? 與Java極為相似,它是一種相對簡單的編程語言,對于初學者來說,它可以啟動并運行可運行的應用程序,但功能強大到足以繼續創建一些令人驚嘆的應用程序(甚至游戲:C#是Unity腳本語言)選擇-請查看我們的免費電子書,《使用Unity編程游戲的初學者指南》。

如果尚未下載,請從官方Arduino.cc下載 Arduino IDE 。網站,然后將標準固件安裝到板上。您可以在示例-》 Firmata -》 標準固件下找到它。這只是將其變成“啞”串行設備,它將執行我們的應用程序告訴它的所有操作–板上本身沒有應用程序邏輯,只有我們的應用程序與連接到Arduino的任何傳感器或輸出設備之間的接口

就接線而言,您可以如下所示將LED直接粘貼到引腳13和GND,或者使用板載LED。您還需要將一個可變電阻器(我使用了10k線性電位計)接入A0(顯然,相應的支腳也位于GND和+ 5v上)。

最后,從GitHub [不再可用]下載Remote Wiring軟件包。這是我們需要添加的層,它將使我們的Windows應用程序能夠與Arduino對話。

創建應用程序

繼續并打開Visual Studio。如果這是您第一次運行它,則可以選擇登錄。如果愿意,請忽略它。選擇 Visual C#作為開發選項,然后繼續;無論哪種方式,都需要花費幾分鐘的時間來準備首次使用Visual Studio。

使用模板 Visual C#-》 空白應用程序(Windows Universal)創建一個新項目)。我稱我為“ Arduino測試”,但這沒關系。

這時,我遇到了有關必須將Windows 10切換到Windows 10的錯誤。開發人員模式(如果我想實際運行該應用程序)。繼續執行此操作,盡管如果您發現Windows 10的構建在該設置下崩潰,則這是一個已知的錯誤,您將需要使用組策略編輯器啟用開發人員模式。

下一步,右鍵單擊解決方案資源管理器中的任意位置(在右側),然后選擇添加-》 現有項目。

導航至從Github下載Remote Wiring文件的位置-如果已解壓縮,則應為名為 remote-wiring-develop 的文件夾。在其中可以找到 Microsoft.Maker.win10 ;在其中,您會發現另外3個文件夾。反過來,通過在這三個文件夾中導航并找到項目文件來添加每個文件。

如果收到有關“找不到XAML 8.2文件”的任何錯誤,則說明您使用的Visual Studio版本錯誤或沒有還沒有安裝開發人員工具。返回本文開頭,確保已下載并安裝了兩個鏈接的Visual Studio文件。

您剛剛添加的這3個項目只是Arduino界面的不同層。在解決方案資源管理器中,如果右鍵單擊并選擇 Dependencies -》 Build Dependencies ,則可以查看哪些層取決于哪個( Serial 》不依賴任何內容; Firmata 依賴于Serial; RemoteWiring 依賴于兩者)。您需要在此處進行的唯一更改是從下拉列表中選擇您的項目,然后選中每個框以表明您的項目依賴于所有其他項目。

最后一步:再次從解決方案資源管理器中,右鍵單擊項目下的參考項目,然后選擇添加參考。從左側導航到 Windows Universal ,然后在 Microsoft Visual C ++ AppLocal Runtime Package 旁邊打鉤。

下一步導航到 Projects (也在同一對話框的列表中) (在左側),并選中三個 Microsoft.Maker 項目中的每個項目旁邊的框。

那很難超出了應有的程度,但是您只需要執行一次即可;現在我們可以從編程中獲得樂趣–我保證這并不可怕。

編程

如果您在后續操作中遇到困難,可以在Pastebin上找到完整的代碼。無論如何,我還是強烈建議您仔細閱讀下面的說明,以便我可以解釋代碼的實際作用。

首先,我們需要添加一些代碼,表明我們需要USB端口才能與Arduino通信。從解決方案資源管理器中找到 Package.appxmanifest 文件,然后雙擊進行編輯。我們需要在此處粘貼一些代碼–從技術上講,我們將“插入子節點”,因為它是一個XML文件,但是只需將整個部分替換為下面的代碼即可,如下所示:

如果您使用的是藍牙,或者針對的是Win8.1而不是10,則確切的代碼會有所不同,但以下內容適用于Windows 10,USB連接。

轉到構建菜單-》 重建解決方案,并確保沒有收到任何錯誤。

從解決方案資源管理器中,展開 MainPage.xaml 節點。雙擊將加載表單設計器,稍后我們將返回,但現在打開 MainPage.xaml.cs ,其中包含我們應用程序背后的主要邏輯。

在第一部分中添加兩行,以表明我們將“使用” Arduino位。

using Microsoft.Maker.serial;

using Microsoft.Maker.RemoteWiring;

我還添加了一行以表示我們將使用 System.Diagnostics; ,這使我們能夠使用 Debug.WriteLine()函數將調試消息輸出到IDE。

首先,讓我們定義一些我們將始終使用的變量。在 public MainPage()函數聲明之前添加這些行。

UsbSerial connection;

RemoteDevice arduino;

UInt16 lastvalue;

下一步,跳轉到MainPage()函數–這稱為構造函數,并且該函數會在創建我們的應用后立即被調用,因此我們使用它來設置所有內容。

首先,添加一行以建立到特定USB設備的USB串行連接(

connection =new UsbSerial(“VID_2341”, “PID_0043”);

注意,標準Arduino Uno的USB ID已被編碼到模塊中,但是您可以從設備管理器進行驗證。 》-》 端口(COM和LPT)-》 Arduino Uno -》 詳細信息選項卡-》 硬件ID 。

然后在其后添加以下幾行。

arduino = new RemoteDevice(connection);

connection.ConnectionEstablished += OnConnectionEstablished;

connection.begin(57600, SerialConfig.SERIAL_8N1);

正在發生一些事情這里。首先,我們創建一個RemoteDevice對象-記住,這一層為我們提供了許多Arduino命令-并將其命名為“ arduino”。下一行附加到ConnectionEstablished事件,表示“一旦成功建立USB連接,請運行名為OnConnectionCreate()的函數。”。

最后一個命令使用8N1位模式通知連接已經以57600的波特率開始。

您還需要立即創建該OnConnectionEstablished()函數,因此將其移出MainPage()函數,只是制作一個空白函數,如下所示。

private void OnConnectionEstablished()

{

// LOGIC HERE

}

跳回到我前面提到的表單設計器(如果您忘記了如何:雙擊《解決方案資源管理器中的strong》 MainPage.xaml )。創建兩個按鈕。為此,請打開“工具箱”標簽,該標簽會垂直固定在屏幕左側。將兩個按鈕拖到頁面上,然后標記為 On 和一個 Off 。

選擇第一個按鈕,然后從右下角的“屬性”框中將其命名為“ OnButton”。單擊小圖標-這是事件和操作列表,用于指定與表單元素進行交互時發生的情況。在 Click 字段中鍵入“ OnButtonClick”。

按Enter鍵時,它將自動為該特定按鈕事件創建代碼并加載標準代碼視圖。切換回現在是表單設計者,并且對“關閉”按鈕執行相同的操作,但是這次將其稱為“ OffButton”和“ OffButtonClick”。當您到達那里時,請繼續并將其后面的主窗口表單命名為“頁面”-我們稍后將使用它。現在,您應該具有類似于以下屏幕截圖的內容:

再次切換回設計器片刻,然后再次對每個按鈕進行設置 isEnabled 屬性設置為 False 。您可以通過直接在XAML代碼視圖中鍵入屬性來執行此操作,也可以在“屬性”框中找到該復選框(如果仍在“動作”視圖中,則單擊“扳手”),該復選框位于展開的 Common

這不是必需的,但是禁用按鈕是一個好習慣,直到我們確定已插入并連接了Arduino。

要重新啟用它們,將以下內容添加到OnConnectionEstablished()函數。現在,不必太擔心代碼的確切含義,這只是您應該在現代Windows應用程序中處理表單更新以確保良好性能的方式。連接到Arduino之后,將按鈕的 IsEnabled 屬性設置為true。

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

}

您還將看到更加熟悉的pinMode()語句,說我們在引腳14上有一個模擬輸入(有13個數字引腳,所以A0從14開始計數)。然后,我們有了另一個事件聲明–當模擬引腳值更新時,調用函數MyAnalogPinUpdateCallback。

最后,我們需要編輯按鈕單擊事件,并確定模擬輸入更改時會發生什么。讓我們從按鈕開始。我們可以使用與常規Arduino代碼類似的函數名稱來與Arduino交互,如下所示:

arduino.digitalWrite(13, PinState.HIGH);

將其粘貼到onButton事件中,并將其粘貼到offButton中:

arduino.digitalWrite(13, PinState.LOW);

簡單。來自Arduino的模擬輸入有些棘手,但這就是我的想法。

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;

}

請注意,我正在存儲我們從引腳接收到的先前值(稱為lastValue);這使我們能夠檢查該值有多少變化,并且僅在差異顯著時才作出反應(一種信號平滑)。如果它在任一方向上的變化都超過5(值的整個范圍是024,那么我們將通過更改Page元素的RGB背景顏色值來做出反應。

因為我們只有一個數字和我一起工作時,我很著急,在這里用制作R,G和B所需的3個數字對事情稍作改動。您可能會想出一些更漂亮的東西。

完成

就是這樣–運行代碼,您應該會看到類似于上面的屏幕截圖的內容。這些按鈕將打開和關閉LED,可變電阻器將改變背景。如果遇到問題,請不要忘記完整的代碼。

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • WINDOWS
    +關注

    關注

    4

    文章

    3551

    瀏覽量

    88909
  • 應用程序
    +關注

    關注

    37

    文章

    3283

    瀏覽量

    57750
  • Arduino
    +關注

    關注

    188

    文章

    6472

    瀏覽量

    187330
收藏 人收藏

    評論

    相關推薦

    android手機上emulate應用程序的方法

    在Android手機上模擬(emulate)應用程序的方法通常涉及到使用Android模擬器(Emulator)或類似的工具來模擬Android環境,以便在沒有實際物理設備的情況下運行和測試應用程序
    的頭像 發表于 12-05 15:33 ?345次閱讀

    AWTK-WEB 快速入門(1) - C 語言應用程序

    導讀AWTK可以使用相同的技術棧開發各種平臺的應用程序。有時我們需要使用Web界面與設備進行交互,本文介紹一下如何使用C語言開發AWTK-WEB應用程序。用AWTKDesigner新建一個應用程序
    的頭像 發表于 11-27 11:46 ?231次閱讀
    AWTK-WEB 快速入門(1) - C 語言<b class='flag-5'>應用程序</b>

    使用OpenVINO? ElectronJS中創建桌面應用程序

    的用戶體驗。 1 應用程序概覽:一種簡單的背景虛化方法 這個演示展示了如何在 Node.js 環境中使用 OpenVINO 工具包實現背景虛化,并通過 Electron.js 創建的直觀桌面界面進行
    的頭像 發表于 11-25 11:35 ?204次閱讀
    使用OpenVINO? ElectronJS中<b class='flag-5'>創建</b>桌面<b class='flag-5'>應用程序</b>

    Windows 10將于2025年終止免費更新,微軟力推Windows 11

    近日,微軟在其官方網站上發布了一則通知,宣布自2025年10月14日起,將正式停止為Windows 10操作系統提供來自Windows更新的免費軟件更新、技術支持以及安全修復
    的頭像 發表于 11-05 10:35 ?458次閱讀

    ADL-GPIB IEEE 488命令集函數參考手冊

    使用 Microsoft Visual C/C++ 創建一個 Windows 2000/NT/98 ADL-GPIB 應用程序 通過使用 ADL-GPIB 和 Microsoft Visual C/C++ 來
    發表于 11-04 17:43 ?2次下載

    創通聯達Snapdragon Dev Kit for Windows上市開售

    日前,創達聯達宣布Snapdragon Dev Kit for Windows 正式在Arrow電子商城面向全球范圍上市開售,售價為899美元。該開發套件是一款搭載驍龍X Elite的小型PC,旨在助力開發者面向下一代AI PC創建或優化
    的頭像 發表于 08-20 09:25 ?535次閱讀

    CYW20829從Eclipse為Modustoolbox創建\"新應用程序時出現錯誤\"的原因?

    CYW20829]從 Eclipse 為 Modustoolbox 創建\"新應用程序時出現錯誤\"
    發表于 05-22 06:12

    AIROC客戶端控制應用程序不起作用的原因?

    正常,但當啟動客戶端控制應用程序并打開串行端口時,卻什么也沒發生--所有控件都是灰色的。 然后,我還按照說明中的建議從 Windows 10 PC 上運行 BTSpy 并進行連接 - 客戶端控制
    發表于 05-21 06:56

    【從0開始創建AWTK應用程序】編譯應用到RTOS平臺

    AWTK是基于C語言開發的跨平臺GUI框架。本系列文章介紹如何從0開始創建AWTK應用程序,包括搭建開發調試環境、使用AWTK創建Hello工程并在模擬器上運行、將AWTK應用程序移植
    的頭像 發表于 03-21 08:23 ?634次閱讀
    【從0開始<b class='flag-5'>創建</b>AWTK<b class='flag-5'>應用程序</b>】編譯應用到RTOS平臺

    應用程序中的服務器錯誤怎么解決?

    在使用應用程序時,可能會遇到服務器錯誤的問題。這種錯誤通常會導致應用程序無法正常運行 ,給用戶帶來不便。下面將介紹應用程序中的服務器錯誤及其解決方法,幫助您快速解決這一問題。
    的頭像 發表于 03-12 15:13 ?6321次閱讀

    微軟Windows 10/11系統自帶OneDrive卸載功能

    若您僅希望停止使用OneDrive,首先應取消與之的鏈接。若決心完全移除該軟件,Windows 10/11用戶可以點擊開始菜單中的“程序”選項,并搜尋“添加或刪除程序”。
    的頭像 發表于 03-11 10:19 ?869次閱讀

    如何使用Arduino設置熱敏電阻來創建溫度計

    在本教程中,我們將指導您如何使用Arduino設置熱敏電阻以創建基本溫度計。提供的原理圖、試驗板圖和示例代碼將使熱敏電阻工作變得簡單明了。
    的頭像 發表于 02-11 10:37 ?2613次閱讀
    如何使用<b class='flag-5'>Arduino</b>設置熱敏電阻來<b class='flag-5'>創建</b>溫度計

    如何將增量旋轉編碼器與Arduino連接

    在本教程中,您將學習如何將增量旋轉編碼器與Arduino連接,以讀取旋鈕的運動。這對于在機器人和其他應用程序創建用戶界面或讀取機械位置非常有用。
    的頭像 發表于 02-11 10:00 ?1474次閱讀
    如何將增量旋轉編碼器與<b class='flag-5'>Arduino</b>連接

    使用modustoolBox為psoc4 4100S Max Pioneer Kit創建演示應用程序失敗了的原因?

    不確定這是否是最好的去處。 正在嘗試使用 modustoolBox 為 psoc4 4100S Max Pioneer Kit 創建演示應用程序。 具體來說,是演示 CSD 觸摸板應用程序。 在構建
    發表于 01-31 08:15

    通過實時加速器技術實現實時應用程序Windows

    時功能應用程序。這是通過專門為實時應用程序保留一個或多個CPU來實現的,設置 Windows 適當的參數化并利用 acontis 內核驅動程序進行精確定時和直接硬件
    的頭像 發表于 01-29 16:03 ?928次閱讀
    通過實時加速器技術實現實時<b class='flag-5'>應用程序</b>的 <b class='flag-5'>Windows</b>
    主站蜘蛛池模板: 日本免费三级网站| 久久五月天婷婷| 亚洲欧美精品一区二区| 中文字幕乱码人成乱码在线视频| 美女扒开尿口给男人爽免费视频| 国产精品女丝袜白丝袜| 一级毛毛片毛片毛片毛片在线看| 亚洲欧洲日韩综合| 四虎影视永久地址| 欧美videos 另类| 国模私拍一区二区| 夜夜爽爽爽| 久久99国产亚洲高清观看首页| abc欧美成人影院| 亚洲一区二区三区免费视频| 狠狠色噜噜狠狠狠狠999米奇| 午夜免费成人| 欧美白人极品性喷潮| 国产美女精品视频免费观看| 亚洲第一香蕉视频| 国产免费的野战视频| 69 hd xxxx日本| 在线观看中文字幕第一页| 四虎在线电影| 美女教师一级毛片| 7m视频精品凹凸在线播放| 国产成人综合日韩精品婷婷九月 | 六月丁香婷婷网| 丁香四月婷婷| 免费午夜视频| 2015xxxx欧美| 欲色天天| 欧美三级视频网站| www.色爱| 国产第一页在线观看| 男啪女色黄无遮挡免费视频| 婷婷sese| 国产美女特级嫩嫩嫩bbb| 四色成人网| 亚洲成人精品| 色女人网|