极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 110208|回复: 51

【转】教你不用编程,设计一个Android蓝牙遥控小车软件

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

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

上个效果图先,俺做的智能小车控制软件:



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

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

系统需求:

1)Macintosh:Mac OS X 10.5,10.6

2)Windows系列:Windows XP,Windows Vista,Windows 7都可以的

3)GUN/Linux系统:Ubuntu 8+,Debian 5+ 等。


  

1)Mozilla Firefox 3.6或更高

2)Apple Safari 5.0或更高

3)Google Chrome 4.0或更高

4)IE6及更高


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

       这需要在你的电脑上能够运行Java ,目前官方更新到了Java 7,如果没有安装的话,可以在Oracle官方网站上去下载(我的电脑有没有装了java呢?到java 的官方链接里看一下知道了)。 要有一个Gmail帐号,个人认为Gmail邮箱是必备的邮箱啊,没有就申请一个。

       最后,安装App Inventor软件包:在使用App Inventor之前,你还需要安装一个叫做App Inventor Setup的软件包在你的电脑上。当然你需要根据你的操作系统来下载不同的软件包的。这里我提供的是Windows系统下的软件包,其他的可以在Google的网站上去下载!下载完成后的文件名应该是:AppInventor_Setup_Installer_v_1_2.exe (~92 MB), 点击打开安装即可,这里建议最好不要更改安装路径的。这里提供以下地址:(鉴于无url权限╮(╯▽╰)╭,自己在google上百度一下吧)

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



(搜索关键字:appinventor):点击右边的红色“Invent”按钮进入MyProjects页面,这里就可以新建工程,开始编写Android软件了。

网站上也提供了一些教程。有兴趣可以浏览下。


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

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

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

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

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

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

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

(程序在:   LHcar光盘\No.3-Lighthouse源代码\Chapter10-小车综合程序\No.8-Android遥控蓝牙小车)


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

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

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


第三步了,在这之前先对Appinventor界面做一下讲解:

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

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

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

添加完控件,点击“Block Editor”将进入搭积木式的编程界面 :


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

Block Editor里面各类模块代表的意义:




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

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

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



可能要添加的控件:

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

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

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

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

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

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

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

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

图文详解:



         考虑更多的细节……

1、



程序初始化时:

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

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

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



这里借用一张图片:

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


可以用手机自测一下,这用我们只用Roll 和Pitch两个数据,当手机平置时,它们接近于0,当手机前翻或侧翻时,两个值分别在±90之间变化。利用这两个数据便可搭建传送蓝牙指令的程序了。

4、


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



5、

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



Final:

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

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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1 +1 收起 理由
幻生幻灭 + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2013-1-10 10:50:45 | 显示全部楼层
{:soso_e179:}
回复 支持 1 反对 0

使用道具 举报

发表于 2012-9-8 12:05:23 | 显示全部楼层
万能的GOOGLE!
回复 支持 反对

使用道具 举报

发表于 2012-9-9 16:49:34 | 显示全部楼层
mark!!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2012-9-9 18:56:03 | 显示全部楼层
那个软件好像是arduino的图形化编程软件吧?
回复 支持 反对

使用道具 举报

发表于 2012-9-25 14:45:58 | 显示全部楼层
软件接触过,不过英语没学好,好多都看不懂~~
回复 支持 反对

使用道具 举报

发表于 2012-10-14 23:16:55 | 显示全部楼层
可恶的天朝登录不上AppInventor
回复 支持 反对

使用道具 举报

发表于 2012-10-15 09:37:39 | 显示全部楼层
早上找了下,有好消息,APP INVENTER转手MIT了,http://android.guao.hk/posts/mit ... google-account.html
能上,哈哈
回复 支持 反对

使用道具 举报

发表于 2012-10-26 22:48:20 | 显示全部楼层
速度Mark,谷歌的有些东西还真是方便啊
回复 支持 反对

使用道具 举报

发表于 2012-10-28 14:27:28 | 显示全部楼层
好贴!!!google太棒了,就是大陆网络不给力呀。
回复 支持 反对

使用道具 举报

发表于 2012-10-29 21:57:30 | 显示全部楼层
在初始化时,不是要Set Global DeviceMac吗,但是我一直没有找到这个,也不知道怎么弄,所以就卡在这边了,是不是要定义一个Global Variable还是怎样,麻烦大牛提供解答,谢谢!
回复 支持 反对

使用道具 举报

发表于 2012-12-4 15:29:31 | 显示全部楼层
不错啊,编程更简单了
回复 支持 反对

使用道具 举报

发表于 2012-12-16 00:16:04 | 显示全部楼层
万能的goole提供了一个超级超级好的软件啊!!!java没学好的飘过...强力支持!
回复 支持 反对

使用道具 举报

发表于 2013-1-20 16:50:54 | 显示全部楼层
不错啊,可以玩一下。看起来还是比较简单的。
回复 支持 反对

使用道具 举报

发表于 2013-2-5 12:41:04 | 显示全部楼层
终于找到了呢,不然还打算找人做一个呢!
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-27 07:00 , Processed in 0.047944 second(s), 35 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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