如何将智能手机与机器人项目集成在一起?[关闭]


24

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

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

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


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

Answers:


19

Android的配件开发套件(ADK)应该做你需要的一切。

ADK

这是专门设计用于与Android交互的Arduino板。您可以通过蓝牙或USB(我认为是WiFi /以太网)将两者连接。

由于整个体系结构都是开放的,因此您可以充分利用每个部分的优势。您编写Android代码以从手机的内置传感器获取数据并控制显示。然后,您可以编写Arduino代码来控制执行器,伺服器和其他电话无法提供的传感器。两者之间进行通讯的代码是通过Google提供的开放源代码。

Arduino博客

Android Open Accessory Development Kit(ADK)提供了一个Android USB附件的实现,该附件基于Arduino开源电子原型平台,该附件的硬件设计文件,实现该附件的固件的代码以及与该应用程序交互的Android应用程序附件。硬件设计文件和代码包含在ADK软件包下载中。

大多数示例都是围绕使用电话作为某种硬件附件(例如时钟)的图形界面而设计的。但是没有理由您也无法访问手机的传感器并来回传递数据。

Adafruit甚至在其商店页面的ADK 上提到使用它制作机器人:

快速追踪您的Android手机硬件开发或仅使用Arduino ADK 设计 手机机器人!Arduino ADK是基于功能强大的ATmega2560(数据表)的微控制器板。它具有USB主机接口,可与基于Android的手机连接,并具有电源升压转换器,可在将其插入ADK时通过DC电源为手机充电。

(强调我的)


11

另一个选择是IOIO-OTG板

IOIO-OTG板

Sparkfun产品说明描述了它的功能:

它具有PIC微控制器,其作用类似于桥接器,可将PC或Android设备上的应用程序连接至GPIO,PWM,ADC,I2C,SPI和UART等底层外围设备。应用程序级库可帮助您以编写其他Java应用程序的相同方式为这些低级外围设备编写控制代码!

该开发板应该可以完成您希望做的所有事情,甚至还提供了一个不错的教程来帮助您入门。


6

我看到的主要问题并不是与执行器真正连接-如果您有一种很好的方法来无线传输数字信号(甚至更好的模拟信号,或者一个足以执行PWM的通道),则可以将其与电机驱动器芯片(例如L293D),一切顺利。对于伺服器,您需要良好的响应时间,以便可以处理脉冲。如果您具有支持PWM的通道,那么该通道就不会很难,因为该通道已经具有高波特率。如果通道较慢,则可能需要伺服,因为您需要精确的脉冲时序。

我看到的第一个选项(虽然它很笨重)是拿起Raspberry Pi,通过以太网将其连接到无线路由器,然后将电话无线地连接到同一台。现在,只需为您的手机编写一个基本应用程序,即可根据输入将请求发送到Pi,并为该应用程序编写另一个服务器(如应用程序)来处理这些请求。IMO可能很笨重,但可以扩展。你也可以将路由器放在车外,并坚持这一进PI(或使用热点,完全消除了路由器)。

另一种选择是使用像此处所示的蓝牙控制器。我以前没有使用过,但是看起来您仍然需要一个微控制器来处理它。我想您可以将其RX / TX引脚直接连接到arduino上的TX / RX,尽管我对此不太确定。

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

最后一种选择是将电话USB端口与常规的无线控制设置(XBee /其他)一起使用-但这将需要一个来编写驱动程序和所有驱动程序。


5

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


4

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

我已经进行了足够的实验,以至于当使用OTG电缆连接时,诸如Leonardo或Teensy 2之类的“普通” Arduino在Android手机上看起来像是TTY(例如串行端口)设备。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.