tzlzy 发表于 2014-7-14 17:38:19

手机app控制小车


手机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等浏览器的极速模式)地址栏输入127.0.0.1:8888。
      是不是很麻烦,不要担心,我们干的是一劳永逸的工作,现在麻烦一些是值得的,至少免去了以后无数次网页打不开之苦啊,(*^__^*) 。

二、编写上位机程序
   (一)软件界面设计


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


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

      按下不同的按钮,通过蓝牙给arduino发送不同的信息,然后让arduino判断指令,并且给小车信号,控制小车。最后,打包成APK,在手机中进行安装。打包方法见下图:
      选择Build——>Save App(Save .apk to my computer)就可以将apk文件打包在电脑上了。我们将该文件安装在手机中就可以。
三、下位机程序说明先贴代码,很简单,看下面。char a;
void setup() {
// put your setup code here, to run once:
    Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
    a=Serial.read();
    Serial.println(a);
      if (a=='w')
    {
      digitalWrite(4,HIGH);
      digitalWrite(7,HIGH);
      analogWrite(5,120);
      analogWrite(6,120);
    }
      if (a=='s')
    {
      digitalWrite(4,LOW);
      digitalWrite(7,LOW);
      analogWrite(5,120);
      analogWrite(6,120);
    }
   if (a=='a')
    {
      digitalWrite(4,LOW);
      digitalWrite(7,HIGH);
      analogWrite(5,0);
      analogWrite(6,80);
    }
   if (a=='d')
    {
      digitalWrite(4,HIGH);
      digitalWrite(7,LOW);
      analogWrite(5,80);
      analogWrite(6,0);
    }
    if (a=='p')
    {
      digitalWrite(4,HIGH);
      digitalWrite(7,HIGH);
      analogWrite(5,0);
      analogWrite(6,0);
    }
}      这里面,串口读取的数据是上位机发送过来的,与上位机中的程序相对应。附上实物图一张:
四、使用步骤。1.在文件夹中选择“手机控制小车.apk”,将该应用软件安装到手机上。2.打开手机蓝牙,将手机蓝牙与小车蓝牙相匹配。3.将小车接上蓝牙,锂电池供电。4.在应用程序界面中,点击“Select Device”,选择相应的蓝牙,再点击“Connect”。连接成功之后,就可以使用我们的手机控制小车啦。5.手机点击前进、后退、左转、右转、停止按键对小车进行相应的控制。
最后请欣赏手机控制小车视频。https://v.youku.com/v_show/id_XNzQ4NDU1Mjcy.html

---------------------------------------------------    社区活动向导    --------------------------------------------------------
喜欢这个项目,可以为它进行投票,投票请点击“支持”按钮。欢迎到比赛专区围观其他参赛项目,参与投票。
>>>>>>>>>>>>>>>>>>DF创客社区比赛专区<<<<<<<<<<<<<<<<<<<

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

hnyzcj 发表于 2014-7-16 19:41
支持楼主

: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有国内服务器
页: [1]
查看完整版本: 手机app控制小车