极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21323|回复: 6

关于arduino编程控制android/iphone 手机的方案如 Amarino

[复制链接]
发表于 2013-9-11 12:31:02 | 显示全部楼层 |阅读模式
本帖最后由 hick 于 2013-9-11 12:34 编辑

搜索 android arduino 资料,看了一圈,很多都是从 android 控制 arduino 的。 貌似 Amarino 这个比较靠谱:


Amarino is a toolkit to connect Android-driven mobile devices with Arduino microcontrollers via Bluetooth. The toolkit provides easy access to internal phone events which can be further processed on the Arduino open-source prototyping platform.

这句话我理解主要是 arduino 去操作 android , 应该是是操作各种 android 机组件,比如摄像头、sd卡、gps等各种手机传感器---没确认目前支持的传感器列表,原理应该很简单,就是连接蓝牙以后,通过串口通信交流指令。我理解不难实现,我都想自己搞个 python 版的类似桥接工具了。


  1. /*
  2. * Receives compass sensor events from your phone.
  3. */
  4. #include <MeetAndroid.h>

  5. MeetAndroid meetAndroid(error);

  6. void error(uint8_t flag, uint8_t values){
  7. meetAndroid.send("ERROR: ");
  8. meetAndroid.send(flag);
  9. }

  10. void setup() {
  11. Serial.begin(57600);
  12. meetAndroid.registerFunction(compass, 'A');
  13. }

  14. void loop() {
  15. meetAndroid.receive(); // you need to keep this in your loop() to receive events
  16. }

  17. /*
  18. * Compass events are sent several times a second.
  19. * therefore this method will be called constantly.
  20. *
  21. * note: flag is in this case 'A' and numOfValues is 1
  22. * since compass event sends exactly one single int value for heading
  23. */
  24. void compass(byte flag, byte numOfValues) {
  25. // we use getInt(), since we know only data between 0 and 359 will be sent
  26. int heading = meetAndroid.getInt();

  27. doSomethingUseful(heading);
  28. }

复制代码



目前看官方资料, 貌似除了上面的实现,也支持 android 机上去操作 arduino .

还有没有更好的方案? 对利用废旧 android 手机非常感兴趣! 原先个人是想拆解利用手机传感器,了解一圈以后感觉很困难。感觉 amarino 这个方案不错, 以后可以考虑收集 android 机做各种事了。

有兴趣的一起学习交流哈, 可以加我微信: hickwu --- 请注明 arduino-android , 也可在我 blog 留言交流: http://blog.hickwu.com/posts/282
回复

使用道具 举报

发表于 2013-9-11 13:43:41 | 显示全部楼层
方案,要么走WIFI 要么走蓝牙。其他的都只是从APP数据回传给Arduino。控制手机有啥好玩,返过来控制还有点意思。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-11 14:12:10 | 显示全部楼层
wyd1520 发表于 2013-9-11 13:43
方案,要么走WIFI 要么走蓝牙。其他的都只是从APP数据回传给Arduino。控制手机有啥好玩,返过来控制还有点意 ...

我拿 amarino 说方案不是说走什么通信哈,  要 amarino 那样的是提供编程接口的方案。

我是做遥控小车的时候,感觉控制手机传感器很实用; 另外后两年肯定会出现大量的淘汰下来的 android 手机, 怎么利用不仅仅是兴趣问题,而且很有市场.

像 amarino 提供的,我现在理解就是双向控制。 现在基本是走蓝牙的方式,个人理想化里,应该把蓝牙的通信方式抽象出来,作为协议层,以驱动的方式支持各种协议, 包括 wifi 就牛了。
回复 支持 反对

使用道具 举报

发表于 2013-9-11 20:07:21 | 显示全部楼层
hick 发表于 2013-9-11 14:12
我拿 amarino 说方案不是说走什么通信哈,  要 amarino 那样的是提供编程接口的方案。

我是做遥控小车 ...

就遥控小车来说,如果你想用到手机的传感器,一般都会把手机和小车放在一起。如果这样的话,再通过蓝牙来让手机和arduino小车通信,有点费电。
不如直接通过OTG线、或者音频线连接android、arduino来的直接。
你介绍的Amarino是个不错的东东,它大大简化了android传感器编程
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-12 00:17:07 | 显示全部楼层
shytian 发表于 2013-9-11 20:07
就遥控小车来说,如果你想用到手机的传感器,一般都会把手机和小车放在一起。如果这样的话,再通过蓝牙来 ...

OTG 之前听说过, 我的魅族 M9 不支持。

音频线这个貌似不错,想起来见过有人做过类似组件。  多谢提醒,嘿嘿
回复 支持 反对

使用道具 举报

发表于 2013-9-14 11:08:40 | 显示全部楼层
但amarino有个问题,在android的amarino类库中没有接收arduino的方法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-14 12:02:16 | 显示全部楼层
luochen_2011 发表于 2013-9-14 11:08
但amarino有个问题,在android的amarino类库中没有接收arduino的方法

不会吧, 倒是没仔细看,好像示范程序中有从手机端操作的。

从原理性上,有了通信渠道了自己捣腾也不是很麻烦。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 20:00 , Processed in 0.037468 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表