2014-7-14 17:38:19 [显示全部楼层]
14200浏览
查看: 14200|回复: 7

[项目] 手机app控制小车

[复制链接]
本帖最后由 tzlzy 于 2014-7-30 18:13 编辑


手机app控制小车主要运用蓝牙作为通讯工具,上位机的程序编写使用的是App Inventor,下位机使用的是我们熟悉的Arduino。有些筒子们还不太熟悉App Inventor ,先简单介绍一下吧。

App Inventor是一个基于云端的、可拖曳的手机应用软件开发环境。它将枯燥的编码转变成积木式的拼图,使得手机应用软件的开发变得简单而有趣。即使不懂得编程语言,也可以开发出属于自己的手机软件,具有零基础、无门槛、组件多、功能强和出错少等特点。最初的App Inventor由 Google实验室于2010年7月推出。此后于2011年8月将其源代码对外开放,随后交由麻省理工学院移动学习中心(The MIT Centre for Mobile Learning)开发,并于2012年3月对外开放使用,并更名为MIT App Inventor。2013年12月3日,App Inventor 2(简称AI2)问世,其新版主页口号是“随身的编程工具,尽情发明吧!


       看起来好像so easy呦,那就跟我一起玩吧。


一、搭建App Inventor平台。

       首先,我们得去搭建一下App Inventor平台。App Inventor是Google推出的,但是众所周知,Google好像跟我国处的不太好,在国内使用谷歌比较麻烦,也比较慢,这对于我们做开发而言,简直是噩梦般的折磨啊啊啊。不过很多网站上已经给出了ai2的离线包,大家直接下载离线包,在离线的环境下开发就可以啦。

      当然,还得啰嗦几句。
      1.在使用App Inventor之前,你得确保安装了JAVA环境。
      2.安装完了Java环境,你需要安装一个叫做App Inventor的软件包,不要急,这个软件很好找的。建议这里安装的时候不要修改安装路径,楼主在这里绕过很多弯路,都是辛酸泪,大家就不要重蹈覆辙了。
      3.打开离线包,双击“启动AIServer.cmd”,双击“启动BuildServer.cmd”,打开Chrome内核浏览器(比如Chrome,百度、猎豹、360等浏览器的极速模式)地址栏输入http://127.0.0.1:8888
      是不是很麻烦,不要担心,我们干的是一劳永逸的工作,现在麻烦一些是值得的,至少免去了以后无数次网页打不开之苦啊,(*^__^*) 。

二、编写上位机程序
   (一)软件界面设计
图片1.png


      软件的界面还是比较粗糙的,主要的关注点还是在功能实现上面。大家跟着楼主把这些控件拖出来就可以啦。当然你也可以自行设计美观大方的界面,楼主自行惭愧,捂脸狂奔中......
    (二)App功能实现
      界面设计完毕以后,就开始我们的编程之旅啦。听起来很高大上啊,但是我们的App Inventor是很善解人意的,零基础的人完全可以学会。所以不要又任何压力,跟着楼主一起拖拖拽拽就OK啦。
     1.程序初始化时,需要去数据库,查看之前有没有配对蓝牙,如果有的话,就将之前的蓝牙设备列出来,以供选择。
图片2.png       
      2.通过Connect和Select Device两个按键来实现蓝牙连接,通信。
1.png 2.png 3.png


      最后完成与下位机的通信。上下左右四个箭头以及stop按钮分别对应下位机中小车前进、后退、左转、右转、停止的程序。
4.png

      按下不同的按钮,通过蓝牙给arduino发送不同的信息,然后让arduino判断指令,并且给小车信号,控制小车。最后,打包成APK,在手机中进行安装。打包方法见下图:
图片1.png
      选择Build——>Save App(Save .apk to my computer)就可以将apk文件打包在电脑上了。我们将该文件安装在手机中就可以。

三、下位机程序说明先贴代码,很简单,看下面。
  1. char a;
  2. void setup() {
  3.   // put your setup code here, to run once:
  4.     Serial.begin(9600);
  5. }
  6. void loop() {
  7.   // put your main code here, to run repeatedly:
  8.     a=Serial.read();
  9.     Serial.println(a);
  10.       if (a=='w')
  11.     {
  12.       digitalWrite(4,HIGH);
  13.       digitalWrite(7,HIGH);
  14.       analogWrite(5,120);
  15.       analogWrite(6,120);
  16.     }
  17.       if (a=='s')
  18.     {
  19.       digitalWrite(4,LOW);
  20.       digitalWrite(7,LOW);
  21.       analogWrite(5,120);
  22.       analogWrite(6,120);
  23.     }
  24.      if (a=='a')
  25.     {
  26.       digitalWrite(4,LOW);
  27.       digitalWrite(7,HIGH);
  28.       analogWrite(5,0);
  29.       analogWrite(6,80);
  30.     }
  31.      if (a=='d')
  32.     {
  33.       digitalWrite(4,HIGH);
  34.       digitalWrite(7,LOW);
  35.       analogWrite(5,80);
  36.       analogWrite(6,0);
  37.     }
  38.     if (a=='p')
  39.     {
  40.       digitalWrite(4,HIGH);
  41.       digitalWrite(7,HIGH);
  42.       analogWrite(5,0);
  43.       analogWrite(6,0);
  44.     }
  45. }
复制代码
      这里面,串口读取的数据是上位机发送过来的,与上位机中的程序相对应。附上实物图一张:
图片1.png
四、使用步骤。
1.在文件夹中选择“手机控制小车.apk”,将该应用软件安装到手机上。
2.打开手机蓝牙,将手机蓝牙与小车蓝牙相匹配。
3.将小车接上蓝牙,锂电池供电。
4.在应用程序界面中,点击“Select Device”,选择相应的蓝牙,再点击“Connect”。连接成功之后,就可以使用我们的手机控制小车啦。
5.手机点击前进、后退、左转、右转、停止按键对小车进行相应的控制。

最后请欣赏手机控制小车视频。


---------------------------------------------------    社区活动向导    --------------------------------------------------------

喜欢这个项目,可以为它进行投票,投票请点击“支持”按钮
欢迎到比赛专区围观其他参赛项目,参与投票。

>>>>>>>>>>>>>>>>>>DF创客社区比赛专区<<<<<<<<<<<<<<<<<<<


手机控制小车(apk,以及arduino代码).zip

1.27 MB, 下载次数: 1329

Phoebe  高级技匠

发表于 2014-7-15 17:55:32

哇哦,cool。。。写的很详细,感谢分享
回复

使用道具 举报

tzlzy  中级技师
 楼主|

发表于 2014-7-15 18:12:25

Phoebe 发表于 2014-7-15 17:55
哇哦,cool。。。写的很详细,感谢分享

:handshake:handshake:handshake
回复

使用道具 举报

hnyzcj  版主

发表于 2014-7-16 19:41:49

:lol支持楼主
回复

使用道具 举报

tzlzy  中级技师
 楼主|

发表于 2014-7-17 09:37:45


:handshakeO(∩_∩)O
回复

使用道具 举报

DIE  学徒

发表于 2016-4-21 12:08:44

不错不错,只是有APP源码?
回复

使用道具 举报

senghu  初级技师

发表于 2016-6-5 12:25:00

学习了
回复

使用道具 举报

20060606  高级技匠

发表于 2020-8-17 05:42:56

App Inventor有国内服务器
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail