找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 25989|回复: 16

使用AppInverntor开发Andriod蓝牙遥控程序

[复制链接]
发表于 2013-1-8 19:34:57 | 显示全部楼层 |阅读模式
          很多热衷于玩单片机小车、机器人的童靴,往往也向往着有天能自己编写一个Android手机的遥控程序,通过自己的手机遥控小车,单片机程序用C语言或者汇编什么的都可以容易完成,,无奈要写一个Android控制程序就要会java、还要学一点xml知识,对于只学过C 或C++的人来说……..╮(╯▽╰)╭

         不过万能的Google提供了一款云端Android程序开发工具: AppInventor。因为对于想要用手机控制机器人的使用者而言,他们不大需要太华丽的界面,只要使用基本组件例如按钮、文字输入输出即可,所以,App Inventor 让你抛开复杂的程序代码,使用搭积木式的方法来完成您的Android程序。(完全不需要编程哦)

上个效果图先。


1346763634_5079.png


呵呵,有没有跃跃欲试的冲动?按照下面的步骤一步一步来吧:

(转自:http://blog.csdn.net/tidavery/article/details/7943654,部分内容有所删改,对部分图片有所修改,以下内容括号部分为本人所补充,包括这一句,呵呵!)

相关下载及学习资源见9楼

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
 楼主| 发表于 2013-1-8 19:35:47 | 显示全部楼层
本帖最后由 ntwuhui 于 2013-1-9 00:40 编辑

一、 要有一台电脑(废话呀…………)

系统需求:

1)Macintosh:Mac OS X 10.5,10.6等均可以,(10.8.2下也可以,亲测通过)

2)Windows系列:Windows XP,Windows Vista,Windows 7、8都可以的(Win8下测试通过)

3)GUN/Linux系统:Ubuntu 8+,Debian 5+ 等。(有时间测试下)

浏览器:(基于国情,google相关网页链接不是很稳定,需要照一款软件或者好的代理取跨长城了)

1)Mozilla Firefox 3.6或更高

2)Apple Safari 5.0或更高

3)Google Chrome 4.0或更高(个人推荐使用,就是不太稳定,理由:此软件本就是google和mit联合搞出来的)

4)IE6及更高

其次测试一下你的Java环境配置是否正确:

这需要在你的电脑上能够运行Java ,目前官方更新到了Java 7,如果没有安装的话,可以在Oracle官方网站上去下载或者到9楼也可以。9楼的jslp文件记事本用于安装好的Java测试。


另外要有一个Gmail帐号,个人认为Gmail邮箱是必备的邮箱啊,没有就申请一个。

最后,安装App Inventor软件包:在使用前,你还需要安装一个叫做App Inventor Setup的软件包。当然你需要根据你的操作系统来下载不同的软件包。这里我提供的是Windows系统和mac下的软件包, 点击打开安装即可,这里建议最好不要更改安装路径的。这里提供以下地址:http://beta.appinventor.mit.edu/learn/setup/setupwindows.html或者去9楼相关内容处下载

到目前为止,以上4个步骤如果都顺利,那么我们可以登录这里开始编写Android软件:http://appinventor.mit.edu/

点击右边的红色“Invent”按钮进入MyProjects页面,这里就可以新建工程,开始编写Android软件。


1346760391_2886.png



如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-1-8 19:36:22 | 显示全部楼层
本帖最后由 ntwuhui 于 2013-1-9 00:42 编辑

二、编写下位机(单片机小车)程序,设置好蓝牙通信协议。

走到第二步,对于很多智能小车、机器人爱好者来说都不是问题了。

先理一下Android手机与小车的遥控方式:


1.jpg

这样一来,手机发送事先规定好的数据指令,蓝牙模块接收到,再传送给小车,小车对指令进行一下Switch,是前进指令的就前进、该后退的就后退……

相应的,下位机小车应该要有的几个基本功能函数,它们应该是:

前进函数(Forward(void) )、后退(Backward(void) )、左转(Lift(void))、右转(Right(void) )、停止(Stop(void) )。

这里名称是否一致,内容是什么的无关紧要,你也可以拿来控制机器人相应的动作,下位机由人怎么写控制函数的程序段都行。。这里是我们设定的小车的协议,有这个现成的下位机程序供我们驱动,玩其他智能小车、机器人的童靴可以自己编嘛。   

2.png
3.png

目前就先控制这几个命令吧,协议里面加、减速,转圈等功能就不做控制了。

个人按照自己的要求写好下位机程序,这一步就算完成了。


如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-1-8 19:37:14 | 显示全部楼层
本帖最后由 ntwuhui 于 2013-1-9 00:45 编辑

三、 利用Appinventor开始搭建Android控制软件

在这之前先对Appinventor界面做一下讲解:

A、建立一个新工程:(红框所示位置)


1.png

B、如图,进入到了软件编辑界面以此可见各个区域的功能(控件编辑区虚拟的软件界面软件所添加使用的控件当前选中控件的属性“Block Editor” and“Package for Phone”

1.jpg


2.png

我们将需要使用的控件从控件编辑区拖拽到虚拟的软件界面并对相应的控件修改其属性。

添加完控件,点击“Block Editor”将进入搭积木式的编程界面(这里会先下载App Inventor for Android 模块编辑器) :


3.png


“New emulator”是生成一个Android模拟机,由于体态传感器和蓝牙设备模拟器是无法实现的,所以还是连接自己的手机吧(本人没有真机,只能用模拟机了),右边的“Connect to Device”可以连接自己的手机,这样编程过程中,会实时的显示软件界面和程序运行状况。



如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-1-8 19:44:30 | 显示全部楼层
本帖最后由 ntwuhui 于 2013-1-9 00:48 编辑

Block Editor里面各类模块代表的意义:
1346760854_1751.png

1346760857_2327.png

1346760861_6378.png
1346762579_4269副本.png

1346762631_4923.jpg

现在该考虑一下我们的Android软件要怎么运行,列出来需要哪些控件。

向前按钮、向后按钮、向左、向右、………,哦,不要这样吧,试一试手机的重力感应功能,通过手机体态传感器来控制小车显然比按按钮更酷一些。

简要流程图:                              我的手机软件截图:


1346760982_7660.png

可能要添加的控件:

Button :按钮,用来触发某功能

Label:  标签,用来显示当前状态

BluetoothClient : 蓝牙控件,用来蓝牙配对、连接、通信。

Clock:  时钟,定时触发某程序段

OrientationSensor: 体态传感器,目前绝大多数的手机都有的,用来获取手机当前的状态(倾倒度数、斜率角度等等);

TinyDB :一款手机上的简易数据库控件,这里用来记录软件上次运行时配对过的蓝牙设备,便于选取。

Notifier :警示窗口,当软件运行出现意外时,提示信息,避免程序崩溃掉。

Arrangement :把按钮、Label等控件排列整齐

图文详解:

1346761023_2529.png

         考虑更多的细节……

1、

1346761073_9448.png

程序初始化时:

应该检查体态传感器是否存在于手机,没有传感器的话,再往下也就没有执行的意义了;

时钟当前最好设置为关闭状态,因为蓝牙还没有连接呢,还不需要读取传感器、判断手机动作吧;

读取数据库,之前有没有配对过的蓝牙设备呢?有的话就列出出来,供我们下面选择,没有也得告诉一下我们吧;

1346761181_8569.png

1346761208_9886.png

1346761246_6560.png

1346761252_7562.png

1346761284_2938.png


1346762711_9538.jpg


1346761341_3333.png

这里借用一张图片:

(X轴: Pitch, Y轴: Roll, Z轴: Yaw, (App Inventor中称为Azimuth方位角).)

1346761396_6752.png
可以用手机自测一下,这用我们只用Roll 和Pitch两个数据,当手机平置时,它们接近于0,当手机前翻或侧翻时,两个值分别在±90之间变化。利用这两个数据便可搭建传送蓝牙指令的程序了。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-1-8 19:44:50 | 显示全部楼层

4、

1346761492_4490.png


我们把发送指令的程序段放在时钟里面,这里每300ms执行一次程序段:

1346761521_5301.png

5、

最后考虑一下当程序出错了要怎么办吧:


1346762805_5360.jpg

Final:

自此,程序模块搭建完成了,返回到软件便捷界面。点击“Download to this Computer”等一小会就会下载下来打包的.apk文件,安装到手机里面就可以使用了。

1346761633_8889.png

这里提供一个好看点的Ico图标:


1346761678_1334.png
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-1-8 19:45:11 | 显示全部楼层
本帖最后由 ntwuhui 于 2013-1-9 00:51 编辑

还有优酷的视频链接,有兴趣可以了解一下

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-1-8 20:11:20 | 显示全部楼层
补充:基本模块中有一组专门针对NXT的模块,有兴趣的一起研究下!

QQ20130108-6.png

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-1-8 20:12:29 | 显示全部楼层
本帖最后由 ntwuhui 于 2013-1-9 18:13 编辑

相关下载:
1、Java虚拟机(其他版本请移步这里:http://www.java.com/zh_CN/download/manual.jsp)
Windows联机版本:854K    http://javadl.sun.com/webapps/download/AutoDL?BundleId=71847
Windows脱机版本:30M     http://javadl.sun.com/webapps/download/AutoDL?BundleId=71835

MAC OSX:(版本 10.7.3 和更高版本) 50M   
http://javadl.sun.com/webapps/download/AutoDL?BundleId=71829

2、jnlp文件
记事本:用于测试 java  虚拟机  (如果有打不开的现象,请将文件关联到Java Web Start即可)
http://beta.appinventor.mit.edu/learn/setup/misc/JWSTest/notepad.jnlp

App Inventor for Android 模块编辑器 :   用于搭建代码
(这里也可不下载,等进入http://beta.appinventor.mit.edu/后再单击相应按钮openthe blocks editors下载)
http://beta.appinventor.mit.edu/ode/webstaerjnlp/codeblocks/178083067

3、App Inverntor Setup Software(其他版本:http://appinventor.mit.edu/explore/install-app-inventor-software.html)
Windows:
http://dl.google.com/dl/appinventor/installers/windows/appinventor_setup_installer_v_1_2.exe

Mac OSX:
http://dl.google.com/appinventor/installers/mac/AppInventor_Setup_v_1.1.dmg

相关学习资源:
APPInventor 官网教程:  http://www.appinventor.org/projects
APPInventor 爱好者论坛:http://www.appinventor.com.cn
APPInventor 中文学习网档案库:http://www.appinventor.tw/filepool
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-1-8 21:20:17 | 显示全部楼层
顶一个
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-1-8 21:20:39 | 显示全部楼层
写得很详细,可以作为教程了。辛苦了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-1-9 07:34:41 | 显示全部楼层
学习了
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-1-9 08:42:18 | 显示全部楼层
楼主是天使啊~~~强烈喜欢啊
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-1-9 10:15:50 | 显示全部楼层
强帖,不得不顶!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-1-9 14:04:55 | 显示全部楼层
好东西,用手机控制乐高
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2025-7-2 14:07 , Processed in 0.339406 second(s), 26 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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