如今,智能手机通常都配备了陀螺仪,加速度计,指南针,照相机和GPS传感器。他们通常还可以通过Wifi和移动数据网络连接到互联网。我见过很多将手机用作机器人遥控器的案例,但在我看来,手机本身是自主机器人的理想轻量级计算和传感平台。

我看到的主要障碍是与执行器接口。例如,能够控制电机来操纵台式机器人或控制伺服器。与微控制器的连接和通信也可能是一个障碍。

作为一名机器人爱好者,我想知道如何克服这些障碍以及其他障碍,以便能够将智能手机的功能用于我的机器人项目。

评论

只需添加iOS选项,即可将SESO iPhone视为机器人控制器

#1 楼

Android附件开发套件(ADK)应该可以满足您的所有需求。您可以通过蓝牙或USB(我认为是WiFi /以太网)将两者连接。您编写Android代码以从手机的内置传感器获取数据并控制显示。然后,您可以编写Arduino代码来控制执行器,伺服器和其他电话无法提供的传感器。两者之间进行通信的代码是通过Google提供的开源软件。

来自Arduino博客:
基于
Arduino开源电子原型平台,附件的硬件设计文件,实现附件的固件的代码,Android的Android USB附件的实现。与附件交互的应用程序。
硬件设计文件和代码包含在ADK软件包中,
下载。像时钟一样的硬件配件。但是没有理由您也无法访问手机的传感器并来回传递数据。 br />
使用Arduino ADK快速跟踪Android手机的硬件开发或仅设计
手机机器人! Arduino ADK是基于强大ATmega2560(数据表)的微控制器板。它
具有USB主机接口,可与基于Android的手机连接,并且
电源升压转换器可在将其插入ADK时从直流电源为手机充电。 br />
(强调我的)

#2 楼

另一个选项是IOIO-OTG板:



Sparkfun产品描述描述了其功能:


它具有PIC微控制器,就像桥接器一样,将您的PC或Android设备上的应用程序连接到GPIO,PWM,ADC,I2C,SPI和UART等底层外围设备。应用程序级库可帮助您以编写任何其他Java应用程序的相同方式为这些低级外围设备编写控制代码!有一个很好的教程可以帮助您入门。

#3 楼

我看到的主要问题并不是与执行器真正连接-如果您有一种很好的方式来无线传输数字信号(甚至更好的模拟信号,或者一个足以执行PWM的通道),则可以将其与电机驱动器芯片(例如L293D),一切顺利。对于伺服器,您需要良好的响应时间,以便可以处理脉冲。如果您具有支持PWM的通道,那么该通道就不会很难,因为该通道已经具有高波特率。如果通道较慢,则可能需要伺服,因为您需要精确的脉冲时序。无线路由器,然后将手机无线连接到同一部手机。现在,只需为您的手机编写一个基本应用程序,即可根据输入将请求发送给Pi,并为该应用程序编写另一个服务器(例如应用程序)来处理这些请求。 IMO可能很笨重,但有些可扩展。您也可以将路由器放在舷外并将其插入Pi(或使用热点并完全淘汰路由器)。我以前没有使用过,但是看起来您仍然需要一个微控制器来处理它。我想您可以将其RX / TX引脚直接连接到arduino上的TX / RX,尽管我不太确定。

如果您以前使用过XBee / ZigBee,则可以想要尝试蓝牙蜂。

#4 楼

是的,智能手机上缺少GPIO引脚是一种遗憾。如果您已经在机器人上运行了ROS,则可以在Android手机上使用此应用来访问手机上的传感器套件。

#5 楼

许多最新的Android设备(例如Nexus 7)都支持USB On The Go(OTG),这是支持“ USB Host Mode”的一种很好的说法。在这些情况下,只要电缆价格低于1美元,就可以使用任何兼容的USB设备。您不需要具有用于USB主机模式的硬件的Arduino专业版本。

我已经进行了足够的实验,以了解出现了诸如Leonardo或Teensy 2这样的“普通” Arduino通过OTG电缆连接到Android手机上作为TTY(例如串行端口)设备。

本文深入介绍了如何使用Android USB Host API从Android与Arduino通信应用程式。它需要Android 3.1及更高版本,并且不需要您root设备。