搜档网
当前位置:搜档网 › 无需编程,DIY自己智能小车的Android蓝牙遥控软件

无需编程,DIY自己智能小车的Android蓝牙遥控软件

无需编程,DIY自己智能小车的Android蓝牙遥控软件
无需编程,DIY自己智能小车的Android蓝牙遥控软件

无需编程,DIY自己智能小车的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 的官方链接里看一下知道了

https://www.sodocs.net/doc/d216659148.html,/zh_CN/download/installed.jsp)。

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

最后,安装App Inventor软件包:在使用App Inventor之前,你还需要安装一个叫做App Inventor Setup的软件包在你的电脑上。当然你需要根据你的操作系统来下载不同的软件包的。这里我提供的是Windows

系统下的软件包,其他的可以在Google的网站上去下载!Download!!下载完成后的文件名应该是:

AppInventor_Setup_Installer_v_1_2.exe (~92 MB),点击打开安装即可,这里建议最好不要更改安装路径的。这里提供以下地址:

https://www.sodocs.net/doc/d216659148.html,/learn/setup/setupwindows.html

到目前为止,以上4个步骤如果都顺利,那么我们可以登录这里开始编写Android软件啦:https://www.sodocs.net/doc/d216659148.html,/

点击右边的红色“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”可以连接自己的手机,这样编程过程中,会实时的显示软件界面和程序运行状况。

无需编程,DIY自己智能小车的Android蓝牙遥控软件(二)

分类:单片机小车2012-09-04 20:13 1435人阅读评论(4) 收藏举报Block Editor里面各类模块代表的意义:

现在该考虑一下我们的Android软件要怎么运行,列出来需要哪些控件。向前按钮、向后按钮、向左、向右、………,哦,不要这样吧,试一试手机的重力感应功能,通过手机体态传感器来控制小车显然比按按钮更酷一些。

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

可能要添加的控件:

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

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

BluetoothClient :蓝牙控件,用来蓝牙配对、连接、通信。Clock:时钟,定时触发某程序段

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

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

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

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

图文详解:

考虑更多的细节……

1、

程序初始化时:

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

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

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

这里借用一张图片:

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

4、

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

5、

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

Final:

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

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

基于stm32f4的蓝牙控制小车

ARM-STM32校园创新大赛 项目报告 题目:基于stm32f4的蓝牙控制小车 学校:中南民族大学 指导教师: 视频观看地址:https://www.sodocs.net/doc/d216659148.html,/v_show/id_XNjA3NTE4MzU2.html

题目:基于stm32f4的蓝牙控制小车 关键词:STM32F4 LM2940-5.0 L298N FBT06_LPDB 蓝牙串口通信android 摘要 “基于stm32f4的蓝牙控制小车”是一个基于意法半导体与ARM公司生产的STM32F4 DISCOVERY开发板的集电机驱动模块、电源管理模块、stm32f4主控模块、蓝牙串口通信模块、android控制端模块。电机驱动模块使用了两个L298N 芯片来驱动4路电机,使能端连接4路来自主控板的PWM波信号,8个输入端接主控板的8个输出端口;电源管理模块使用了LM2940-5.0芯片进行12V到5V 的转换,12V用于电机模块的供电,5V用于蓝牙模块、传感器等的供电;主控模块采用了MDK编辑程序,然后下载到主控板,实现硬件与软件的交互;蓝牙串口通信模块则是采用了FBT06_LPDB针插蓝牙模块,与主控板进行串口通信,同时与android手机进行通信;android控制端模块是一个集开启蓝牙、搜索蓝牙、控制小车等功能。用户可以通过android控制端进行控制小车的运动,实现一些用户需要的功能和服务。 1.引言 蓝牙的创始人是瑞典爱立信公司,蓝牙技术是一种无限数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。手机之间通过蓝牙实现数据共享成为常理,将手机变为遥控器为人们的生活带来无限方便。遥控小车在工业、国防、科研等领域应用越来越广泛,例如说:消防遥控小车、探测小车等。本文详细阐述了使用蓝牙通信的手机遥控小车前行、倒退、左转、右转和停止等功能的软硬件设计过程。 2.系统方案 该系统分为电机驱动模块、电源管理模块、主控板、蓝牙通信模块、android 控制端等5个模块,如图2.1所示:

蓝牙串口通信遥控小车

蓝牙串口通信遥控小车

————————————————————————————————作者:————————————————————————————————日期:

蓝牙串口通信遥控小车 目录 1系统方案论证及方案选择 2本系统软硬件设计 2.1单元硬件电路设计 2.2软件部分设计 参考文献 附录1原器件清单 附录2电路原理图及印制板图 附录3程序 1. 系统方案论证及方案选择 1.总体设计方案 题目要求设计一个蓝牙串口遥控小车,通过对电机转速的控制,调节速度的大小,改变小车角度,并能实现转弯和旋转。设计主要由主控单片机STC 12C5A60S2驱动直流电机,使车轮工作,带动小车的转动。

2.基本工作原理

3.STC89C52RC有定时器T0 T1 T2,在自动控制领域经常把T1作为串口通信了T0作PWM调速用因此有必要把T2定时器拿出来作定时器作为声音频谱程序。下面介绍T2的用法 STC89C52RC有定时器T2 ?void main(void) ?{ ?/* T2定时器赋预装载值,溢出16次就是1秒。*/ ?RCAP2H=(65536-5000)/256; ?RCAP2L=(65536-5000)%256; ?ET2=1; //允许T2定时器中断 ?EA=1; //打开总中断 ?TR2=1; //启动T2定时器

?while(1); // 死循环,等待T2定时器的溢出中断 ?} ?void Timer2_Server(void) interrupt5 ?{ ?staticuint Timer2_Server_Count; ?// 定义静态变量,用来计数T2定时器的溢出次数(进入本函数的次数) ?TF2=0; ?// T2定时器发生溢出中断时,需要用户自己清除溢出标记,而51的其他定时器是自动清除的 ?Timer2_Server_Count++; ?if(Timer2_Server_Count==16)// T2定时器的预装载值为0x0BDC,溢出16次就是1秒钟。 ?{ ?Timer2_Server_Count=0; ?P1_7=~P1_7; // LED11反转显示。 ?} ?} ?voidTimer2_Server(void)interrupt5

成功实现手机蓝牙控制智能小车机器人!视频+程序源代码(Android)

上次成功实现了通过笔记本电脑蓝牙来控制智能小车机器人的运动,但是通过电脑控制毕竟不方便,于是乎~本人打算将控制程序移植到手机上。 目前主流的手机操作系统有塞班、安卓(Android)、Windows Mobile,对比了一下,首先,塞班是用C++写的,这么多门语言我唯独看到C++就头大···,放弃了···,Windows Moblie 其实和之前发的电脑端程序基本是一样的,也就没什么意思了,最后决定选择目前正火的Android手机作为控制平台。 Android是个开源的应用,使用Java语言对其编程。于是这次的开发我选用Eclipse作为开发工具,用Java语言开发手机端的控制程序,由于之前对Android的蓝牙通信这块涉及不多,一开始感觉有点小茫然,而网上也少有这方面的例程,有少数人做出了类似的东西,但是只传了个视频装X!雪特···· 经过几天的研究,最终确定了手机蓝牙通信其实就是Socket编程,再经过一番编写和调试,昨晚终于大功告成! 这是视频: 下面开始介绍Android手机端控制程序的编写: 首先打开Eclipse,当然之前的Java开发环境和安卓开发工具自己得先配置好,这里就不多说了,网上教程一大摞。 然后新建一个Android项目,修改布局文件main.xml,代码如下: