Presentation is loading. Please wait.

Presentation is loading. Please wait.

使用Android控制Arduino 史先强 2016.08.23.

Similar presentations


Presentation on theme: "使用Android控制Arduino 史先强 2016.08.23."— Presentation transcript:

1 使用Android控制Arduino 史先强

2 Android端配置

3 第一步:修改开发板配置,开放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

4 第二步:修改工程配置 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“ />

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

6 第一步:编写代码 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); } }

7 第一步:编写代码 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!"); } }

8 第二步:为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开发板

9 第三步:测试功能 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在以设定的频率闪烁。

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


Download ppt "使用Android控制Arduino 史先强 2016.08.23."

Similar presentations


Ads by Google