
我们的主题:
Android 4.1.1平板电脑“ DNS AirTab M101w”和以下设备:
1. Tiva C系列TM4C123G LaunchPad
2. Stellaris LaunchPad EK-LM4F120XL板
3. Arduino MEGA 2560开发板
4.板载MSP430 LaunchPad,M430G2553
现在,按顺序,我们将所有这些板通过USB OTG连接到平板电脑,并尝试与它们建立连接,而无需诉诸root访问。
主题1. Tiva C系列TM4C123G LaunchPad
板上有一个微型USB“ DEBUG”连接器,以及一个RGB LED,我们将与它们一起玩。
以下草图是通过Energia IDE上传的:
char data = ' ';
就我而言,当连接到平板电脑时,tty1-1:1.0文件出现在/ dev / usb /目录中。 让我们尝试在终端仿真器中注册以下内容:
$ echo 2 > /dev/tty1-1:1.0 $ read s < /dev/tty1-1:1.0 $ echo $s RGB=010
然后,出乎我意料的是,绿灯亮了,我看到了一条输出线。 为什么出乎意料? 因为我忽略了预配置连接,所以将手指戳向天空,但是效果如何! 我们不会对此进行详细说明。 但是我要说的是,在内核的不同版本中,这些板的定义将有所不同,并且您无法想象没有拐杖的单个命令行
(是的,Linux很普通) 。
在玩了一些颜色后,向所谓的COM端口发送了不同的数字,我开始寻找一种通用的Android解决方案。 Google Play上有很多用于“串行UART”的工具,并且大多数应用程序都可以与德州仪器(TI)的玩具一起使用。 但是我寻找与开放源代码兼容的线程的尝试几乎没有成功。 对于Arduino,我发现了一个很酷的库,但下面的内容更多...
主题2:Stellaris LaunchPad EK-LM4F120XL板
据我了解,这是我们第一个测试主题的先前版本,其行为与android完全相同。 但是,当尝试填写草图时,当前的Energia 0101E0010无法看到该主板(Windows 8)。
No ICDI device with USB VID:PID 1cbe:00fd found! Failed!
因此,我只是打开了最终二进制路径到控制台的输出,并使用LM Flash Programmer手动加载了它。
主题3:Arduino MEGA 2560开发板
让我们稍微改变一下草图,我们将只用一个LED闪烁。
填充Arduino IDE
#define LED 13 char data = ' '; boolean ls = false; void setup() { pinMode(LED, OUTPUT); Serial.begin(9600); } void loop() { if (Serial.available()){ data = Serial.read(); switch (data){ case '1': ls = !ls; break; } digitalWrite(LED, ls); Serial.print("LED="); Serial.println(ls); } }
我们连接到平板电脑,再次在/ dev / usb /目录中看到tty1-1:1.0文件,我们重复实验:
$ echo 1 > /dev/tty1-1:1.0
然后我发现LED闪烁2次,持续约100毫秒,然后熄灭。 好的,我正在尝试以下操作:
$ read s < /dev/tty1-1:1.0
然后终端冻结了...好吧,Ctrl + C
$ echo $s
逻辑上说输出中什么也没有。
但这只是一个介绍,有一个很棒的项目
Physicaloid Library 。 首先,在Eclipse中将库作为普通的android项目打开。 现在创建一个新项目,并在其项目android中的属性中,库单击添加...,然后选择Physicaloid库。 现在,按下按钮以将字符串“ 1”发送到arduino:
public void onClick(View v) {
我认为我不需要告诉如何读取接收到的数据,因为所有内容都在库文档中。
主题4:MSP430 LaunchPad板,M430G2553。
该开发板根本不想使用我的硬件。 根本不是由系统决定的,刷新时USB设备信息就会挂起。
结果:
我想要一个用于Tiva C系列主板的库。 在技能还不够的情况下重做自己。