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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

如何創建可以通過USB OTG電纜與Arduino通信的android應用程序

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-12-11 15:05 ? 次閱讀

步驟1:下載Android Studio

如何創建可以通過USB OTG電纜與Arduino通信的android應用程序

從http://developer.android.com/sdk/index.html獲取android studio

單擊“下載android studio”按鈕開始下載

同意按照條款和條件,您的下載應該開始

文件將是exe文件,文件大小將約為gig

步驟2:安裝Android Studio

通過一些基本的安裝步驟來安裝exe文件

最后,它將自動安裝最新的SDK版本,使其完成。

最后,您將獲得android studio的歡迎屏幕。

第3步:設置在Android Studio中

在在歡迎屏幕上,您應該看到配置按鈕,通過選擇它,您應該進入配置頁面。單擊第一個選項將是“ SDK管理器”,方法是單擊一個新窗口,其中將顯示當前SDK的詳細信息。可以選擇“啟動獨立的SDK管理器”,方法是單擊將打開良好的舊SDK管理器,然后您可以根據需要添加新的SDK工具。

Android studio有一個用于測試android代碼的模擬器,但是很遺憾,我們不能在這種情況下使用它,因為這涉及到物理設備與另一臺設備通信。相反,我們可以使用Android手機本身來調試代碼。

由于我們使用的是Android設備來調試代碼,因此我們只需下載該設備特定版本的“ SDK平臺”即可,首先了解android手機的操作系統版本。就我而言,我使用的是具有5.0(棒棒糖)的Samsung note3,因此只需從“ Android 5.0.1(API 21)”下載“ SDK平臺”就足夠了。

步驟4 :關于庫

我用來進行通信的庫稱為http://www.physicaloid.com/上的physicaloid,該庫最近更新于2年前最終更新無法正常工作(至少對我而言)。因此,在與github存儲庫中的人討論之后,我設法獲得了該庫的舊工作jar文件。

通過使用該庫,我們不僅可以與Arduino通信,而且可以將已編譯的十六進制文件上傳到Arduino,庫具有內置的avrdude功能。

步驟5:在Android Studio中創建新項目

首先,我想制作一個外觀與Arduino的串行監視器窗口相同的應用程序。

在android studio的歡迎屏幕上,將有一個創建新項目的選項,選擇“開始一個新的android studio項目”

在下一頁中輸入您的項目名稱和位置,然后單擊下一步

在下一頁中,選擇我們正在為其開發應用程序的平臺,然后選擇正確的手機版本,然后單擊下一步。

在下一頁中,默認情況下將選擇“空白活動”并保持現狀。并在下一頁上為您的活動(您在應用程序的主屏幕)命名。

然后單擊完成,新創建的項目將在android studio中打開,我們現在就可以進行處理

步驟6:將庫添加到新項目中

在左上角在主屏幕上,將出現一個下拉菜單,其名稱為android,將選項更改為project以查看項目的目錄結構。

在目錄結構中,通過展開“ app”文件夾,您可以找到lib該文件夾是放置我們的庫的默認文件夾。

復制physicaloidlibrary.jar文件并將其粘貼到libs文件夾中

粘貼后,單擊頂部的“與gradle文件同步項目”按鈕。

現在庫已添加,我們可以在代碼中使用其功能。

在首次創建項目時自動創建的主要活動將位于

App》 src》 main》 java》 YOUR_ACTIVITY

布局將位于

App》 src》 main》 res》布局》 activity_serial_monitor.xml

步驟7:編輯Manifest.xml

清單文件類似于我們項目的主要屬性文件,其中包含權限詳細信息和活動詳細信息

清單文件位于App》 src》 main》 AndroidManifest中.xml

打開文件并添加

我的清單文件上方的行看起來像

通過添加該行,我們每次將USB設備連接到OTG端口時都要求用戶許可

步驟8:設計布局

編輯應在“ content_serial_monitor.xml”文件中完成

我已拖動3個按鈕,1個編輯文本,1個文本視圖顯示在屏幕上,然后重命名并按正確順序放置它們。

打開–打開與USB設備的連接

關閉–關閉與USB設備的連接

發送–將數據發送到Arduino

我還添加了一個微調器,以選擇串行監視器中可用的波特率和自動滾動功能

將此字符串數組添加到位于應用程序》 src》 main》 res》值》 strings.xml中的strings.xml文件中

Serial Monitor

Settings

Choose Baudrate

300 baud

1200 baud

2400 baud

4800 baud

9600 baud

19200 baud

38400 baud

576600 baud

744880 baud

115200 baud

230400 baud

250000 baud

讓我們在應用程序中添加精美的圖標

右鍵單擊應用程序》新建》圖像資產

現在瀏覽所需的圖像文件并將其設置為ic_launcher,它將覆蓋默認的android圖標

Step 9:將代碼添加到UI元素

我附加了完整的Java文件Serial_monitor.java,首先下載了該文件并將其與這些小代碼段進行比較。

首先我們創建所有UI元素和庫變量

Button btOpen, btClose, btWrite;

EditText etWrite;

TextView tvRead;

Spinner spBaud;

CheckBox cbAutoscroll;

Physicaloid mPhysicaloid; // initialising library

下一步,在onCreate方法中,我們可以初始化我們創建的那些變量

btOpen = (Button) findViewById(R.id.btOpen);

btClose = (Button) findViewById(R.id.btClose);

btWrite = (Button) findViewById(R.id.btWrite);

etWrite = (EditText) findViewById(R.id.etWrite);

tvRead = (TextView) findViewById(R.id.tvRead);

spBaud = (Spinner) findViewById(R.id.spBaud);

cbAutoscroll = (CheckBox)findViewById(R.id.autoscroll);

mPhysicaloid = new Physicaloid(this); // setting the context for library

現在我們可以顯示屏幕上必需的UI元素,我正在調用一個方法來實現此目的

該方法采用布爾參數,該參數指定天氣應用是否已連接到Arduino

setEnabledUi(false);//未連接到Arduino,所以為假

//setEnabledUi method to set UI elements on screen

private void setEnabledUi(boolean on) {

if(on) { // if connected to device

btOpen.setEnabled(false); //hide open button (already opened)

spBaud.setEnabled(false); //hide baudrate selector

cbAutoscroll.setEnabled(false); // hide autoscroll

btClose.setEnabled(true); // display close button

btWrite.setEnabled(true); // display send button

etWrite.setEnabled(true); // display edittext field

} else { // if not connected to device

btOpen.setEnabled(true); //display open button

spBaud.setEnabled(true); //display baudrate selector

cbAutoscroll.setEnabled(true); //display autoscroll

btClose.setEnabled(false); // hide close button (already closed)

btWrite.setEnabled(false); // hide send button

etWrite.setEnabled(false); // hide edittext field

}

}

現在我們根據需要顯示了所有內容,現在我們可以向按鈕添加操作。

打開按鈕的偵聽器方法,在此方法涵蓋了波特率設置,自動滾動選項以及與設備的連接。

public void onClickOpen(View v) {

// setting the baudrate based on spinner

String baudtext = spBaud.getSelectedItem().toString(); // get the text from spinner

//switch statement to check for baud rate

switch (baudtext) {

case “300 baud”:

mPhysicaloid.setBaudrate(300);

break;

case “1200 baud”:

mPhysicaloid.setBaudrate(1200);

break;

case “2400 baud”:

mPhysicaloid.setBaudrate(2400);

break;

case “4800 baud”:

mPhysicaloid.setBaudrate(4800);

break;

case “9600 baud”:

mPhysicaloid.setBaudrate(9600);

break;

case “19200 baud”:

mPhysicaloid.setBaudrate(19200);

break;

case “38400 baud”:

mPhysicaloid.setBaudrate(38400);

break;

case “576600 baud”:

mPhysicaloid.setBaudrate(576600);

break;

case “744880 baud”:

mPhysicaloid.setBaudrate(744880);

break;

case “115200 baud”:

mPhysicaloid.setBaudrate(115200);

break;

case “230400 baud”:

mPhysicaloid.setBaudrate(230400);

break;

case “250000 baud”:

mPhysicaloid.setBaudrate(250000);

break;

default: // default is 9600

mPhysicaloid.setBaudrate(9600);

}

if(mPhysicaloid.open()) { // tries to connect to device and if device was connected

setEnabledUi(true);

if(cbAutoscroll.isChecked()) { // if auto scroll was selected

tvRead.setMovementMethod(new ScrollingMovementMethod());

}

// read listener, When new data is received from Arduino add it to Text view

mPhysicaloid.addReadListener(new ReadLisener() {

@Override

public void onRead(int size) {

byte[] buf = new byte[size];

mPhysicaloid.read(buf, size);

tvAppend(tvRead, Html.fromHtml(“” + new String(buf) + “”)); // add data to text viiew

}

});

} else {

//Error while connecting

Toast.makeText(this, “Cannot open”, Toast.LENGTH_LONG).show();

}

}

tvAppend方法將接收到的數據寫入Textview

Handler mHandler = new Handler();

private void tvAppend(TextView tv, CharSequence text) {

final TextView ftv = tv;

final CharSequence ftext = text;

mHandler.post(new Runnable() {

@Override

public void run() {

ftv.append(ftext); // add text to Text view

}

});

}

用于關閉按鈕的監聽器

public void onClickClose(View v) { //when close button is pressed

if(mPhysicaloid.close()) { //close the connection to arduino

mPhysicaloid.clearReadListener(); //clear read listener

setEnabledUi(false); // set UI accordingly

}

}

發送按鈕的監聽器

public void onClickWrite(View v) { // when send button is prressed

String str = etWrite.getText().toString()+“ ”; //get text from EditText

if(str.length()》0) {

byte[] buf = str.getBytes(); //convert string to byte array

mPhysicaloid.write(buf, buf.length); //write data to arduino

}

}

這一切都已完成,只需連接手機并運行應安裝并打開的程序即可。

第10步:測試應用程序

現在連接手機并通過以下方式運行代碼使用頂部的“播放”按鈕,現在會彈出設備選擇器對話框,并詢問該應用程序應安裝在哪個設備上。

注意:如果您在列表中找不到手機,請嘗試重新安裝手機驅動程序。

p》

如果選擇正確,則應用程序應自動安裝在手機上,并對UI進行必要的調整。

運行一些測試代碼并上傳到arduino

void setup()

{

// Open serial communications and wait for port to open:

// Serial.begin(1200);

// Serial.begin(2400);

// Serial.begin(4800);

Serial.begin(9600);

// Serial.begin(14400);

// Serial.begin(19200);

// Serial.begin(38400);

// Serial.begin(57600);

// Serial.begin(115200);

}

void loop()

{

while(Serial.available() 》 0) {

Serial.write(Serial.read());

}

}

斷開手機與PC的連接,并使用OTG電纜連接到Arduino,并發送一些應返回的數據

步驟11:其他用途

您可以修改布局和代碼以適合您的需要,并為分別制造的每臺設備制作一個應用程序

例如,我修改了相同的項目以用作我的電動機計時器控制器接口

責任編輯:wv

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

    關注

    12

    文章

    3946

    瀏覽量

    128119
  • OTG
    OTG
    +關注

    關注

    2

    文章

    150

    瀏覽量

    45636
  • Arduino
    +關注

    關注

    188

    文章

    6478

    瀏覽量

    188134
收藏 1人收藏
  • 帝昇设计1

評論

相關推薦

如何使用Arduino實現CAN總線通信

CAN(Controller Area Network)總線是一種常用于汽車和工業控制系統的串行通信協議,以其高可靠性和實時性而聞名。Arduino,作為一種流行的開源微控制器平臺,可以通過
的頭像 發表于 12-23 09:06 ?633次閱讀

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

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

開源項目!基于 Arduino 的 MIDI 架子鼓

牢固地固定在插槽中。 第 6 步:給鼓墊接線 1、固定電纜: 使用熱膠將帶狀電纜連接到墊子上。 2、焊接鼓墊: 通過焊接將鼓墊連接到多頻段帶狀電纜。 第 7 步:制作
發表于 11-25 12:00

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

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

基于Arduino的串口通信項目

Arduino Mega等。 USB數據線 :用于將Arduino開發板連接到計算機。 串口設備 :可以是另一個Arduino開發板、傳感
的頭像 發表于 11-22 09:24 ?925次閱讀

如何使用Arduino實現CAN總線通信

開源硬件平臺,通過添加CAN總線模塊,也可以實現CAN通信。 硬件準備 Arduino開發板 :可以選擇
的頭像 發表于 11-12 10:09 ?1459次閱讀

OTG技術的原理是什么

OTG(On-The-Go)技術是一種允許USB設備之間直接進行數據交換的技術,它允許USB設備之間無需通過計算機即可直接連接和通信。這項技
的頭像 發表于 09-26 16:16 ?3058次閱讀

如何使用長USB電纜通過TPS25840-Q1設備改進眼圖

電子發燒友網站提供《如何使用長USB電纜通過TPS25840-Q1設備改進眼圖.pdf》資料免費下載
發表于 09-25 14:25 ?0次下載
如何使用長<b class='flag-5'>USB</b><b class='flag-5'>電纜</b><b class='flag-5'>通過</b>TPS25840-Q1設備改進眼圖

如果SPI啟動失敗,如何創建通過USB啟動的兩階段啟動加載程序

包括 SPI 啟動和 USB 啟動。 選擇 USB 啟動時,該應用程序 支持加載和運行完整的固件應用程序;無需通過
發表于 08-01 08:13

CYC8PROTO-063-BLE是否可以通過智能手機上的標準設置應用程序建立連接?

你好,我是使用 BLE 的新手,正在使用 CYC8PROTO-063-BLE 板,我想知道是否可以通過智能手機(iOS 或 Android)上的標準設置應用程序建立連接。 到目前為止,
發表于 07-23 08:20

如何在Android 10設備上通過App控制GPIO

本文檔提供了在 Android 10 設備上通過應用程序(App)控制通用輸入輸出(GPIO)的詳細指南。這涵蓋了從創建 gpio驅動到App 配置 以及 SELinux 策略以允許特
的頭像 發表于 07-22 17:59 ?1386次閱讀

用于USB-HS/USB OTG/USB充電器接口的TPD4S012 4通道ESD解決方案

電子發燒友網站提供《用于USB-HS/USB OTG/USB充電器接口的TPD4S012 4通道ESD解決方案.pdf》資料免費下載
發表于 06-29 10:22 ?0次下載
用于<b class='flag-5'>USB</b>-HS/<b class='flag-5'>USB</b> <b class='flag-5'>OTG</b>/<b class='flag-5'>USB</b>充電器接口的TPD4S012 4通道ESD解決方案

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

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

帶有USB C的便攜式設備可以通過USB C轉USB A電纜連接到計算機的USB A嗎?

通過 PC 進行數據傳輸。 但是我們現在正在解決USB A到PC的向后兼容問題,這樣即使沒有USB C連接器,用戶也可以將我們的設備連接到PC并使用該
發表于 02-23 07:12

LTE MQTT通信應用程序說明

電子發燒友網站提供《LTE MQTT通信應用程序說明.pdf》資料免費下載
發表于 02-21 10:47 ?0次下載
LTE MQTT<b class='flag-5'>通信</b><b class='flag-5'>應用程序</b>說明
主站蜘蛛池模板: 国产经典三级在线 | 黄色午夜剧场 | 真爽~张开腿~让我插 | 4hc44www四虎永久 | 欧美色图综合 | 国产三级精品三级 | 日本一区视频在线观看 | 国产一线在线观看 | 天天射日日操 | 又粗又大的机巴好爽欧美 | 日本一区二区三区欧美在线观看 | 天天做天天玩天天爽天天 | 天堂资源wwww在线看 | 天天爱天天做天天爽天天躁 | 天天鲁天天爽精品视频 | 美女黄页免费 | 亚洲欧洲色| 不卡精品国产_亚洲人成在线 | 视频色版| 羞羞影院男女午夜爽爽影视 | 免费性bbbb台湾| 午夜三级a三点 | 亚洲精品成人a | 亚洲成人高清在线观看 | 日日操夜夜操天天操 | 国产三级 在线播放 | 日韩a视频 | 亚洲一区免费观看 | 亚洲精品在线视频观看 | 四虎影院观看视频在线观看 | 亚洲伦理一区二区三区 | 婷婷开心六月久久综合丁香 | 久久久夜色精品国产噜噜 | 精品热99 | 性夜黄a爽爽免费视频国产 羞羞答答xxdd影院欧美 | 国产精品 视频一区 二区三区 | 日本三级日产三级国产三级 | 精品视频在线观看视频免费视频 | 8090yy理论三级在线观看 | 特级一级毛片视频免费观看 | 四虎影永久地址www 四虎影永久在线观看精品 四虎影永久在线观看网址 四虎影院.com |

電子發燒友

中國電子工程師最喜歡的網站

  • 2931785位工程師會員交流學習
  • 獲取您個性化的科技前沿技術信息
  • 參加活動獲取豐厚的禮品