使用Android控制Arduino 史先强 2016.08.23.

Slides:



Advertisements
Similar presentations
小一家長會 訓育訊息 德性培育組 余家濂主任
Advertisements

課程地圖 (104年入學-日間部) 校通識核心 專業課程 必修與選修 與管理模組 網路技術 App設計與應用模組 學院通識核心 學院專業核心
学生教育办介绍 2015年9月.
第13章 繪圖與多媒體 13-1 顯示圖檔-行動相簿 13-2 音樂播放-音樂播放器 13-3 影片播放-視訊播放器
內湖高工講綱 Career雜誌總編輯 臧聲遠.
高雄市復華高級中學 校務分享簡介 簡報人:康木村 校長.
黃金廊道農業新方案暨行動計畫 簡介.
實驗五:多媒體播放器選單介面.
青岛市数字证书认证中心 2011年4月.
Part 2 開發Android應用程式的流程
位置與地圖應用 此投影片為講解Android如何取得定位經緯度和使用Google Map地圖.
荷福威士顿机器人科技有限公司 上海荷福集团
不動產市場 分析與預測 第四章 不動產市場分析與研究.
Android + Web Service 建國科技大學 資管系 饒瑞佶 2017/3 V1.
ArrayAdapter & Spinner
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日
實驗四:單位轉換程式.
第2章 建立Android應用程式 2-1 Java語言、XML文件與Android 2-2 建立第一個Android應用程式
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
實驗十三:顯示目前經緯度位置.
CH2 開發環境介紹 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
Ch06 再談選單元件 物件導向系統實務.
第一个Android程序 本讲大纲: 1、创建Android应用程序 2、Android项目结构说明 3、运行Android应用程序
Ch5 Android應用程式的主要組成.
Chapter 7 Android應用元件 Android應用元件可以幫助我們獲得系統資源訊息(ActivityManager)、提供系統服務(Service)、搜尋系統服務(SearchManager)、監聽Intent訊息(Broadcast Receiver)以及資料共享(ContentProvider和ContentResolver)。
Android Intent 建國科技大學 資管系 饒瑞佶 2011/1.
Chapter 6 進階UI設計.
    Arduino 1602 LCD 量測電壓顯示 LCD 示波器    林品成 月.
第4章 Android生命周期.
第9章 使用意圖啟動活動與內建應用程式 9-1 意圖的基礎 9-2 使用意圖啟動活動
CH7 佈局、按鈕與文字編輯元件.
Android + Service 建國科技大學 資管系 饒瑞佶.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
實驗十四:顯示與控制地圖.
第2讲 移动应用开发基础知识(二) 宋婕
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第6章 建立Android使用介面 6-1 介面元件的基礎 6-2 Android的事件處理 6-3 按鈕元件 6-4 文字元件
DHT11 溫溼度感測器 林品成 月.
C/C++/Java 哪些值不是头等程序对象
實驗十一:待辦事項程式 (儲存在手機上).
主编:钟元生 赵圣鲁.
Android 开发入门.
    使用Arduino量測交流(AC)電壓    林品成 月.
    使用Arduino量測直流(DC)電壓    林品成 月.
6-1 功能簡介 6-4 實驗成果 6-2 電路說明 6-5 延伸應用與練習 6-3 程式設計
亚博科技 Arduino视频教程 第8讲 蜂鸣器发声实验.
Chapter 5 Basic UI Design.
實驗九:延續實驗八, 製作一個完整音樂播放器
Location Based Services - LBS
進階UI元件:Spinner與接合器 靜宜大學資管系 楊子青
補間動畫 (Tween Animation) 靜宜大學資管系 楊子青
亚博科技 Arduino视频教程 第12讲 8乘8点阵.
物聯網期末報告 組員: 邱景柏 方嘉慶 陳約翰 洪銘陽
Arduino智慧機器人 觸鬚的觸碰式導航
Arduino課程 液晶1602 中部自造者基地-雲科大.
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
Android Speech To Text(STT)
Activity的生命週期: 播放音樂與影片 靜宜大學資管系 楊子青
用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青
科展心得分享 電子科教師:童信源.
第9章 BroadcastReceiver的使用
Android进程间通讯.
讀取網路資料及JSON開放資料 靜宜大學資管系 楊子青
美和科技大學資訊科技系 助理教授 美和科技大學資訊科技系 學生士
加速感測器 靜宜大學資管系 楊子青.
SQLite資料庫 靜宜大學資管系 楊子青.
控制UI界面 本讲大纲: 1、使用XML布局文件控制UI界面 2、在代码中控制UI界面 3、使用XML和Java代码混合控制UI界面
Part 8 Broadcast Receiver、Service和App Widget
進階UI元件:Spinner與接合器 靜宜大學資管系 楊子青
Presentation transcript:

使用Android控制Arduino 史先强 2016.08.23

Android端配置

第一步:修改开发板配置,开放USB-Host读写权限 1.1 打开Android Studio,使用开发板做为调试目标,连接开发板并上电 1.2 在AS的Terminal窗口中,输入命令:adb remount 1.3 在当前Android APP工程的根目录创建android.hardware.usb.host.xml,内容如下: <permissions>     <feature name="android.hardware.usb.host"/>   </permissions>  1.4 在Terminal窗口输入:adb push android.hardware.usb.host.xml /system/etc/permissions 1.5 在Terminal窗口输入:adb pull /system/etc/permissions/tablet_core_hardware.xml (如果是手机,对应的文件为handheld_core_hardware.xml) 1.6 修改Pull回来的文件,加上一条权限:<feature name="android.hardware.usb.host"/> 1.7 将修改好的文件Push回去:adb push tablet_core_hardware.xml /system/etc/permissions 1.8 重启开发板:adb reboot

第二步:修改工程配置 2.1 新建一个Android APP工程,将./JArduino-usb/android-config目录下的xml文件夹拷贝到 工程的./app/src/main/res/目录下 2.2 修改./app/src/main/目录下的AndroidManifest.xml文件,添加如下内容: <intent-filter> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> </intent-filter> <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED“ android:resource="@xml/device_filter" />

方案一:使用Jarduino框架 优点:简单 缺点:实现复杂Arduino功能较为困难 建议:仅作测试用

第一步:编写代码 1.1 将./Jarduino-usb/lib目录下的两个jar文件拷贝到工程的./app/libs/目录下 1.2新建一个Java Class,取名Blink,继承自UsbArduino类,并编写相应代码如下 public class Blink extends UsbArduino { public Blink(Context appContext) { super(appContext); } protected void setup() { pinMode(DigitalPin.PIN_13,PinMode.OUTPUT); } protected void loop(){ digitalWrite(DigitalPin.PIN_13, DigitalState.HIGH); delay(1000); digitalWrite(DigitalPin.PIN_13, DigitalState.LOW); delay(1000); } }

第一步:编写代码 1.3 在MainActivity.java中合适的位置(比如Button的响应代码)插入相应代码: public class MainActivity extends AppCompatActivity { JArduino arduino; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void buttonclick(View view) { TextView mytext = (TextView)findViewById(R.id.textView); arduino = new Blink(getApplicationContext()); arduino.runArduinoProcess(); mytext.setText("the button is clicked!"); } }

第二步:为Arduino烧写Jarduino固件 2.1 将Jarduino-usb/JArduino整个拷贝到Arduino的安装目录./libraries下 将JArduino.h中的#include <Wconstants.h> 修改为#include <Arduino.h> 将JArduino.cpp中的#include <WProgram.h> 修改为#include <Arduino.h> (最新版本的Jarduino不再需要修改源码)。 2.2 在Arduino软件中找到JArduinoFirmware, 打开后编译下载进Arduino开发板

第三步:测试功能 3.1 将Arduino开发板接入Android开发板的USB Host接口,电源指示灯亮 3.2 确认AS使用当前Android开发板作为调试对象,且已经通过USB接口正确连接开发板 按开发板的Power键,激活开发板并解锁屏幕 3.3 点击AS的Run按钮,APP自动在开发板上运行,此时不要做操作,由于USB的 权限问题,此时操作会失败; 3.4 退出当前APP,并拔下Arduino开发板。 3.5 再次插上Arduino开发板时,Android系统会提示是否打开APP(Manifest中的配置), 选择是,此时会自动打开APP,并赋予APP使用USB的权限。 3.6 点击屏幕上的Button,即可看到Pin13上连接的LED在以设定的频率闪烁。

方案二:使用串口通信 优点:稍复杂 缺点:可以任意实现相关功能 建议:使用 具体方案见后续技术培训…..