<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 【學(xué)霸帶節奏】教你DIY跳舞機器人之“上位機部分”

【學(xué)霸帶節奏】教你DIY跳舞機器人之“上位機部分”

作者:郭曉宇 時(shí)間:2018-04-03 來(lái)源:電子產(chǎn)品世界 收藏

  通過(guò)前兩周介紹的機器人硬件部分和軟件部分,你打造的機器人是否已經(jīng)可以運動(dòng)起來(lái)了?這周小編將主要介紹機器人的上位機部分,讓你可以自由控制自己的小π。小π機器人的上位機部分分為電腦端的上位機軟件和手機端的APP。

本文引用地址:http://dyxdggzs.com/article/201804/377851.htm

  一、手機APP

  1、appinventor簡(jiǎn)介

  App Inventor 原是Google實(shí)驗室(Google Lab)的一個(gè)子計劃,由一群Google工程師和勇于挑戰的Google使用者共同參與設計完成。Google App Inventor是一個(gè)完全在線(xiàn)開(kāi)發(fā)的Android編程環(huán)境,拋棄復雜的程式代碼而使用積木式的堆疊法來(lái)完成開(kāi)發(fā)者的Android程式。除此之外它也正式支持樂(lè )高NXT機器人,對于A(yíng)ndroid初學(xué)者或是機器人開(kāi)發(fā)者來(lái)說(shuō)是一大福音。因為對于想要用手機控制機器人的使用者而言,他們不大需要太華麗的界面,只要使用基本元件例如按鈕、文字輸入輸出即可。

  2、手機APP開(kāi)發(fā)

  手機app部分主要包括三部分功能:實(shí)時(shí)遙控,重力遙控,動(dòng)作記錄。實(shí)時(shí)遙控功能即按一個(gè)動(dòng)作,小π完成一個(gè)動(dòng)作??梢詫?shí)現較復雜動(dòng)作如搖頭、抬腳、晃腿、彈跳等,比如重力遙控功能主要是使用手機的重力感應模塊,可以控制小π的前進(jìn)、左轉、右轉、后退等簡(jiǎn)易動(dòng)作。動(dòng)作記錄功能,可以實(shí)現一組動(dòng)作的記錄??梢詫?shí)現跳舞等功能,也可以自由擴展,達到意想不到的效果。

  我們所做出的APP,是一款用于操作小π實(shí)現一系列動(dòng)作的APP,下面是已經(jīng)制作出來(lái)的APP操作界面。

  圖1、2、3中按鈕為button,提示(如圖2中的“改變背景顏色:”等)為label,文本輸入框為textbox等,點(diǎn)擊按鈕時(shí)會(huì )觸發(fā)相應的事件,執行對應的代碼。例如,當點(diǎn)擊按鈕“前”時(shí),手機就會(huì )通過(guò)藍牙向單片機發(fā)送的命令。

圖1 重力感應界面

圖2 控制界面

圖3 編輯舞步界面

  使用者可以下達不同的動(dòng)作指令(如運動(dòng)方向、運動(dòng)形態(tài)等),來(lái)完成對機器人的動(dòng)作控制。并且可以通過(guò)下達其他指令(如背景顏色、音樂(lè )播放),來(lái)完成更為復雜的控制。圖3為設計舞步界面,用戶(hù)能設計一套屬于自己的舞蹈動(dòng)作。我們還設置了3套固定的動(dòng)作,供用戶(hù)調用。

  3、內部實(shí)現

  通信協(xié)議的基本格式為<指令,參數>。

  當APP檢測到前進(jìn)的按鈕被按下后,APP通過(guò)手機藍牙向小π機器人發(fā)送指令。這條指令的意思就是向前走1步。其它動(dòng)作指令也是類(lèi)似的。

  在重力感應模式下,手機通過(guò)內置的加速度傳感器和陀螺儀獲取手機當前的姿態(tài)信息,通過(guò)對姿態(tài)信息的判斷發(fā)送前后左右運動(dòng)命令。

  燈光顏色選擇指令由三條指令構成,分別為,。R、G、B的參數變化范圍為0-255,這樣就可以變化出1600多萬(wàn)種顏色。例如發(fā)送紅色命令就是<255,0><0,0><0,0>。

  當手機APP接收到超聲波距離、溫濕度等信息時(shí),將接收到的信息在A(yíng)PP界面上顯示出來(lái)。

  下圖是手機APP和HC-06藍牙模塊建立連接的核心代碼截圖,供大家參考。

圖4 APP核心代碼

  二、電腦上位機開(kāi)發(fā)

  1、C#簡(jiǎn)介

  C#是微軟公司發(fā)布的一種面向對象的、運行于.NET Framework之上的高級程序設計語(yǔ)言。C#使得C++程序員可以高效的開(kāi)發(fā)程序,且因可調用由 C/C++ 編寫(xiě)的本機原生函數,因此絕不損失C/C++原有的強大的功能。因為這種繼承關(guān)系,C#與C/C++具有極大的相似性,熟悉類(lèi)似語(yǔ)言的開(kāi)發(fā)者可以很快的轉向C#。

  2、電腦端串口調試助手

  串口調試助手通過(guò)C#編寫(xiě),界面如下圖所示。通過(guò)“串口設置”來(lái)設置串口的相應參數,“串口檢測”可以用來(lái)檢測計算機可用的串口?!鞍l(fā)送數據”可以將“數據發(fā)送”欄中的數據通過(guò)串口發(fā)送出去。一旦串口接收到數據,則會(huì )在“數據接收”欄中顯示出來(lái),通過(guò)先前設置的“字符顯示”或者“HEX顯示”來(lái)以字符顯示或者以十六進(jìn)制數顯示?!扒蹇諗祿眲t可以清除“數據接收”欄以及“收據發(fā)送”欄中的所有數據。通過(guò)串口調試助手發(fā)送相關(guān)的命令可以對小π機器人進(jìn)行調試。

圖5 電腦上位機界面

  串口調試助手的程序流程大致為開(kāi)始進(jìn)行串口初始化,在串口初始化過(guò)程中對串口號、波特率、奇偶校驗、數據位、停止位等進(jìn)行設置。初始化結束后可以對命令進(jìn)行收發(fā)。小π機器人中波特率為115200,無(wú)奇偶校驗、數據位為8位、停止位為1位。

  3、平板端上位機開(kāi)發(fā)

  Win10 IoT是微軟開(kāi)發(fā)的一款基于win10的物聯(lián)網(wǎng)操作系統。在裝有win10 IoT系統的平板電腦中可以直接運行小π機器人的平板端程序。平板端程序功能和手機APP程序類(lèi)似,可以通過(guò)藍牙對小π機器人進(jìn)行相應的控制。程序是通過(guò)C#編寫(xiě)的,程序界面如下圖所示。

圖6 平板上位機界面



關(guān)鍵詞: EDA設計 小π DIY

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>