Crazy_GF

论坛元老
  • 主题:2
  • 回复:3
  • 金钱:88235
  • 积分:103248
英文原文:Arduino bot Android remote control
翻译:@小铁锅  编辑:@Crazy_GF


简介:          
你好, 在这个教程中,我想探索Arduino和安卓之间的联系。二者都是开源的,并且有易于编程的环境(Android并不容易,但相对来说还好),以及它们之间的相互作用使得人机交互越来越有趣。
这里的目标是通过蓝牙连接,用最简单的Android应用程序驱动一个小Arduino机器人。机器人本身没有什么特别的,灵感则是来自于很多教程上的传播。但是我还没有找到教程如何创建一个Android远程控制,所以本文应运而生。

你需要懂:

----了解Arduino和电子知识,包括焊接,尽管这里只会用到一点点。Arduino初学者的工具箱必须是完备的。

----更重要的是,你需要有基础的安卓应用知识。如果没有的话,我建议你在安卓官方网站上学习相关的课程。

步骤一:材料清单

下边是材料清单:
--Arduino UNO板子或其兼容产品
--同Arduino兼容电流1A电机驱动板
--2个GM9减速电机
--2个GMPV轮子
--(可选)2个电机固定支架
--1个万向轮
--1个6节AA电池盒,带2.1mm插件
--蓝牙模块
--2mm厚的MDF板
--若干导线
--若干螺丝螺母
--电路试验板
--6节碱性AA电池或者6节充电电池(实际上这6节充电电池只能提供7.5V的电压,但是对于GM9依旧是可用的)

步骤二:进行电气连

1)     如图,将焊接上排针的电机驱动板按照上图的方式跟Arduino UNO板连接
2)     将蓝牙收发器插接到电路实验板上
3)     利用导线将电机驱动板上的电源+5V和接地处分别同电路实验板上的蓝牙模块的电源和接地处相连
4)     将蓝牙模块的Tx和Rx引脚同Arduino上的Tx和Rx互联
警告1:某一些的蓝牙模块连接可能要求Tx和Rx交叉互联(也就是说将蓝牙的Tx端同Arduino的Rx连接,蓝牙的Rx同Arduino的Tx连接)。在咱们所使用的这个模块中,咱们是使用Tx—Tx,Rx—Rx的连接方式。当然,当你不知道该如何连接的时候你可以任意按照一种方法连接,如果他不工作则将Tx和Rx的线相互交换。
警告2:当Arduino IDE在更新固件时需要将连接蓝牙模块的TX和RX引脚断开,否则会出现代码更新失败。

步骤三:准备电机

1)     在电机的两极上焊接上一定长度导线。
2)     (可选)利用螺丝将电机和电机座固定
步骤四:完成装配






1)     切出一片的MDF—大约20x20cm
2)     利用螺丝或者双面胶直接将Arduino UNO、电机驱动板、电池盒以及万向轮固定到MDF上
3)     将两个电机分别固定至MDF的两侧,为了小车的牢固性建议使用螺丝固定
4)     将电机的电源线同电机驱动板连接
恭喜你!如图,这就是一个简单的机器人了。给该机器人上电,如果你能够看到Arduino电源指示灯点亮了,并且蓝牙指示灯也开始闪烁了,那么说明硬件部分已经没有问题了。

步骤五:软件部分
软件部分一共包含以下三个方面:
1) 我们将提供一个安卓端的app,该app可以实现同机器人蓝牙的连接。当连接时,智能手机和Arduino机器人之间会存在一系列连接。
2) 用户可以利用app中的箭头去控制机器人的走向,利用stop使机器人停止运行,每次用户按下按钮,app会发射一个特征信号。

3) Arduino UNO一直在监听串口数据,一旦发现命令更新则去执行最新命令
步骤六:TheArduino sketch
代码利用Arduino IDE烧录至Arduino UNO中(记得将蓝牙模块同Arduino断开)。正如你在程序中所看到的,此处仅仅定义了5个指令:前进,后退,左转,右转和停止。在整个运行过程中电机都是以最高速运行的。我期待你在app中添加相应的调速的功能,或者只是某个轮子的速度调整。如果你实现了请告诉我,我会在机器人那一端去扩充对应的指令表。
arduino_for_android_remote.zip (936 Bytes, 下载次数: 0)
步骤七:安卓端App

提取下列文件到你的安卓常用项目文件夹,如果你使用Eclipse,,就类似Eclipse工作区。
然后,你的Android智能手机连接到您的计算机,并启动应用程序 - 它会自动转移到您的智能手机。
快速运行后。该应用程序有两种主要类型:
1.       AndroidRemoteActivity,主要的activity会布局activity_android_remote并且运行。他还可以定义按键,例如将发送字符关联到每一个箭头。
2.       一个BtInterface class可以提供所有实用工具来管理蓝牙连接。例如连接与断开,通过串口端接收与发送信息等。此实用程序来自本教程。
警告1:蓝牙模块的名称是硬编码在应用程序中。我的是“HC-05”。如果你的模块是不同的,你应该改变这个名字。
警告2:蓝牙模块尝试连接配对后,会与你的手机连接。要做到这一点,先用BT连接启动Arduino,然后打开智能手机的蓝牙。搜索你的模块,点击它(如果被要求输入密码,通常是“1234”或“0000”) - 在这里,它会配对成功。
最重要的
----用户点击“连接”-当Arduino板子被驱动,蓝牙模块闪烁时,应这么做。当你看到APP中显示“已连接”时,蓝牙模块应该停止闪烁。

----用户点击箭头或“停止”。该应用程序通过串行连接发送的字符到Arduino,与此同时您应该看到应用程序里会出现一个确认消息的机器人移动。