怎么用MIT APPmit inventorr编写一个在android手机上的“切水果”小游戏

1631人阅读
PS:不需写一行Android代码哦~~~& &
& && & 很多热衷于玩单片机小车、机器人的童靴,往往也向往着有天能自己编写一个Android手机的遥控程序,通过自己的手机遥控小车,单片机程序用C语言或者汇编什么的都可以容易完成,,无奈要写一个上位机的Android控制程序就要会java、还要学一点xml知识,对于只学过C
或C++的人来说……..╮(╯▽╰)╭
& && && &不过万能的Google提供了一款云端Android程序开发工具: AppInventor。因为对于想要用手机控制机器人的使用者而言,他们不大需要太华丽的界面,只要使用基本组件例如按钮、文字输入输出即可,所以,App
Inventor 让你抛开复杂的程序代码,使用搭积木式的方法来完成您的Android程序。(完全不需要编程哦)
上个效果图先,俺做的智能小车控制软件:
10:15 上传
& && && &呵呵,有没有跃跃欲试的冲动?按照下面的步骤一步一步来吧:
一、& && && && &要有一台电脑(废话呀…………)
系统需求:
1)Macintosh:Mac OS X 10.5,10.6
2)Windows系列:Windows XP,Windows Vista,Windows
3)GUN/Linux系统:Ubuntu 8+,Debian 5+ 等。
10:15 上传
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软件了。
10:15 上传
网站上也提供了一些教程。有兴趣可以浏览下。
二、& && && && &编写下位机(单片机小车)程序,设置好蓝牙通信协议。
走到第二步,对于很多智能小车、机器人爱好者来说都不是问题了。
先理一下Android手机与小车的遥控方式:
10:15 上传
这样一来,手机发送事先规定好的数据指令,蓝牙模块接收到,再传送给小车,小车对指令进行一下Switch,,是前进指令的就前进、该后退的就后退……
相应的,下位机小车应该要有的几个基本功能函数,它们应该是:
前进函数(Forward(void) )、后退(Backward(void)
)、左转(Lift(void))、右转(Right(void) )、停止(Stop(void) )。
这里名称是否一致,内容是什么的无关紧要,你也可以拿来控制机器人相应的动作,下位机由人怎么写控制函数的程序段都行。。这里是我们设定的小车的协议,有这个现成的下位机程序供我们驱动,玩其他智能小车、机器人的童靴可以自己编嘛。&
(程序在:& &LHcar光盘\No.3-Lighthouse源代码\Chapter10-小车综合程序\No.8-Android遥控蓝牙小车)
10:15 上传
10:15 上传
目前就先控制这几个命令吧,协议里面加、减速,转圈等功能就不做控制了。
& && && && && && & 个人按照自己的要求写好下位机程序,这一步就算完成了。
三、& && && && &利用Appinventor开始搭建Android控制软件。
第三步了,在这之前先对Appinventor界面做一下讲解:
A、建立一个新工程:(红框所示位置)
10:15 上传
B、如图,进入到了软件编辑界面以此可见各个区域的功能(控件编辑区、虚拟的软件界面、软件所添加使用的控件、当前选中控件的属性、“Block
Editor”and“Package for Phone”)
10:15 上传
我们将需要使用的控件从控件编辑区拖拽到虚拟的软件界面,并对相应的控件,修改其属性。
添加完控件,点击“Block Editor”将进入搭积木式的编程界面
10:15 上传
10:15 上传
“New emulator”是生成一个Android***,由于体态传感器和蓝牙设备模拟器是无法实现的,所以还是连接自己的手机吧,右边的“Connect
to Device”可以连接自己的手机,这样编程过程中,会实时的显示软件界面和程序运行状况。
Block Editor里面各类模块代表的意义:
10:15 上传
10:15 上传
10:15 上传
10:15 上传
10:15 上传
现在该考虑一下我们的Android软件要怎么运行,列出来需要哪些控件。
向前按钮、向后按钮、向左、向右、………,哦,不要这样吧,试一试手机的重力感应功能,通过手机体态传感器来控制小车显然比按按钮更酷一些。
简要流程图:& && && && && && && && && && &我的手机软件截图:
10:15 上传
可能要添加的控件:
Button :按钮,用来触发某功能
Label:&&标签,用来显示当前状态
BluetoothClient : 蓝牙控件,用来蓝牙配对、连接、通信。
Clock:&&时钟,定时触发某程序段
OrientationSensor: 体态传感器,目前绝大多数的手机都有的,用来获取手机当前的状态(倾倒度数、斜率角度等等);
TinyDB :一款手机上的简易数据库控件,这里用来记录软件上次运行时配对过的蓝牙设备,便于选取。
Notifier :警示窗口,当软件运行出现意外时,提示信息,避免程序崩溃掉。
Arrangement :把按钮、Label等控件排列整齐
图文详解:
10:15 上传
& && && &考虑更多的细节……
10:15 上传
程序初始化时:
应该检查体态传感器是否存在于手机,没有传感器的话,再往下也就没有执行的意义了;
时钟当前最好设置为关闭状态,因为蓝牙还没有连接呢,还不需要读取传感器、判断手机动作吧;
读取数据库,之前有没有配对过的蓝牙设备呢?有的话就列出出来,供我们下面选择,没有也得告诉一下我们吧;
10:15 上传
10:15 上传
10:15 上传
10:15 上传
10:15 上传
10:15 上传
10:15 上传
这里借用一张图片:
(X轴: Pitch, Y轴: Roll, Z轴: Yaw, (App Inventor中称为Azimuth方位角).)
10:15 上传
可以用手机自测一下,这用我们只用Roll 和Pitch两个数据,当手机平置时,它们接近于0,当手机前翻或侧翻时,两个值分别在±90之间变化。利用这两个数据便可搭建传送蓝牙指令的程序了。
10:15 上传
我们把发送指令的程序段放在时钟里面,这里每300ms执行一次程序段:
10:15 上传
最后考虑一下当程序出错了要怎么办吧:
10:15 上传
自此,程序模块搭建完成了,返回到软件便捷界面。点击“Download to this
Computer”等一小会就会下载下来打包的.apk文件,安装到手机里面就可以使用了。
10:15 上传
这里提供一个好看点的Ico图标:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4477次
排名:千里之外1.2 App Inventor 2环境搭建
本文所属图书&>&
本书是基于App Inventor 2的安卓开发教程。App Inventor 2是一款图形化在线安卓开发软件,软件入门门槛低,无需编程基础,程序员和非程序员均能上手。App Inventor 2不仅可以开发各种安卓程序,还可以同单&&
由于AI2是完全基于开发安卓应用的(也叫做云端开发),只要你能访问AI2云端官方服务器
http://ai2.appinventor.mit.edu(由于受Google插件影响,国内经常无法访问,可访问备用服务器
http://contest.appinventor.mit.edu/),再通过以下三种方式,就可以快速开发一个安卓应用。
尽管App Inventor 2官方是在线开发软件,但由于是开源软件,一些程序员也开发出了离线开发包,即没有互联网时,本地也可使用。由于离线包并非官网推出,本书不再介绍,有需要者可自行下载。
方式一:使用安卓设备(安卓手机或平板电脑)和无线网络进行开发(强烈推荐)
这种方式不需要你在计算机上下载任何额外的软件,而是直接在云端服务器上开发,并通过在安卓设备上安装MIT App Inventor Companion配套App进行实时调试,如图1-1所示。
      &
图1-1 Wi-Fi真机开发方式
以下是方式一的步骤。
步骤1:下载安装MIT App Inventor Companion配套App
可以扫描图1-2中的二维码从谷歌Play Store下载安装,这也是推荐方式。
另外也可以直接下载APK方式安装,地址为http://appinv.us/xAI2cf34。
如果你的安卓手机或平板电脑未安装二维码扫描App,也可以直接到谷歌应用市场搜索&MIT App Inventor Companion&然后安装。如果希望直接使用APK方式安装,请将手机设置为&信任未知源&,这在调试和安装软件时同样适用。
步骤2:将计算机和安卓设备连接到同一无线网络
记住,只有当计算机和安装有配套App的安卓设备连接到同一无线网络时,才能将你正在开发的App显示到安卓设备上,便于调试。换句话说,你的计算机和安卓设备必须在同一局域网。
步骤3:打开App Inventor的项目将它与安卓设备连接
打开App Inventor,新建一个项目,单击&Project&&&Start New Project&,然后输入一个项目名称(只能使用英文字母、数字或下划线组成项目名称)。
接下来在AI2的顶部菜单中选择&Connect&&&AI Companion&,如图1-3所示。
图1-3 AI Companion连接
然后浏览器中会出现一个二维码对话框。使用你的安卓设备像打开其他应用一样的方式开启AI Companion应用。然后单击&Scan QR code&按钮开始扫描浏览器中的二维码,如图1-4所示。
几秒钟之后,正在开发的App就会显示在安卓设备上了。在Designer或Blocks界面做了修改之后,安卓设备会即时更新你的App,这种特性叫做&实时调试&。
假如你的手机没有摄像头,或者其他原因导致无法扫描,你也可以直接将二维码对话框中&Your code is&下面的6个字母输入安卓设备中打开的配套App的输入框&Six Dight Code&中,然后单击&connect with code&按钮。
假如你设计的App没有显示在安卓设备上,可能原因如下:
你的配套App已经过期,需要更新。按步骤1的方法重新安装即可。
你的安卓手机或平板电脑没有连接到Wi-Fi。确认你的配套App下方显示了网络IP地址。
你的安卓设备没有和计算机连接到同一网络。确认计算机和手机连接的是同一Wi-Fi网络。
方式二:安装并运行AI2模拟器
假如没有安卓手机或平板电脑,你仍然可以使用AI2模拟器来调试App。AI2提供了一个安卓模拟器,同安卓设备一样,但需要在你的计算机上运行。你可以在安卓模拟器中调试程序,并打包分发到其他安卓设备,甚至上传到谷歌Play Store。很多学校或课后兴趣小组都使用模拟器这种方式来开发。注意:模拟器与真机在部分测试时可能有所不同。使用模拟器来开发,需要首先在计算机上安装相应的软件,步骤如下,如
图1-5所示。
步骤1:在计算机上安装 App Inventor Setup软件包
下载软件包(网址:http://appinv.us/aisetup_windows),双击打开软件包,像安装其他软件一样单击&Next&按钮(注意:必须使用管理员权限安装软件包)。
如以前使用过App Invnetor 1,请先卸载软件。另外在双击软件包时,可能会弹出&不可信任的发行者&对话框,请直接单击&确定&以继续。通常情况下App Inventor Setup软件可以自己找到安装程序的位置,但假如该软件询问软件安装位置,直接输入&C:\Program Files\Appinventor\commands-for-Appinventor&即可。如果你使用的是64位操作,请将Program Files替换成Program Files(x86)。
步骤2:启动aiStarter
我们需要辅助程序aiStarter才能在浏览器中启动模拟器。该程序已经在步骤1中安装App Inventor Setup软件包时安装好了,并在桌面创建了一个快捷方式,如图1-6所示。
双击该图标,便可启动辅助程序。在Windows操作下该程序默认开机自启动。启动后将会出现图1-7所示的窗口。
步骤3:打开App Inventor项目并连接到模拟器
同方式一一样,转到App Inventor Companion(网址ai2.appinventor.mit.edu),打开或创建一个项目。然后从App Inventor的顶部菜单中依次单击&Connenct& &&Emulator&菜单项,如图1-8所示。
浏览器中央会弹出一个对话框,如图1-9所示,告诉我们正在连接模拟器,可能需要几分钟时间。
同时,aiStarter窗口会有一些更新的状态信息,如图1-10所示。
接下来出现模拟器窗口,依次出现如图1-11的模拟器启动过程。图1-11a为启动初始状态,启动成功后,会显示图1-11b所示的状态。启动成功到可以显示你正在开发的App,可能还需要几分钟时间,这期间模拟器会准备SD卡:从模拟器顶部的状态栏中可以看到相应提示。完成该工作后,模拟器就会启动并显示你正在App Inventor中创建的App。
图1-10 aiStarter窗口状态
            &                
由于App Inventor还处于beta测试版,软件功能在不断变化,相应的配套软件更新有可能会滞后。如果遇到模拟器有类似如图1-12所示的画面,表示模拟器中的配套软件不是最新的版本,App Inventor会自动更新它。
在浏览器中单击&OK&按钮,将会下载最新版的配套App,然后自动安装到模拟器中。安装时,需要在模拟器中确认替换App。
如果你正在创建的App没有在模拟器中显示,请从以下方面排除故障。
确认是否是某一特定的项目不能显示?如果是某一项目的App没有显示,而其他的工作正常,则可能是你的App有问题。
确认是否有其他设备连接到你的计算机上?因为目前App Inventor 2配套软件只能处理一台设备或模拟器。如果是这种情况,请关闭其他设备或模拟器。
确认你的配套软件是否安装正确?App Inventor配套软件目录Commands for App Inventor应该安装在C:\Program Files或C:\Program Files(x86),当安装目录不在默认目录时,配套软件将不能启动模拟器。
确定你的浏览器是否运行了一些阻止连接模拟器的插件?已知的一个名叫NoScript的Firefox插件会阻止连接模拟器,假如你运行了类似的插件,使用App Inventor时最好禁用该插件。
App Inventor是否提示你重启配套App?AI配套软件包括运行在计算机上的模拟器、aiStarter,还包括运行在模拟器中的配套App。如果App Inventor不能和模拟器通信,它可能会提示你重启配套App。遇到这种情况,简单的方法就是关掉模拟器,然后重新开始步骤3。开始步骤3前,需要单击&Reset Connection&选项。
你是否等了足够长的时间?模拟器启动需要一个过程,特别是在你的计算机配置不是很高的情况下,需要耐心等待足够长的时间。
模拟器其实和真实安卓设备类似,可以改变系统语言,让界面变成中文版。具体设置步骤为:单击&Menu&,单击模拟器Setting,拖曳模拟器屏幕,定位到Language & Keyboard并单击,继续单击Select Language,拖曳模拟器屏幕,单击简体(中文)。你的模拟器就显示中文界面了。
更改模拟器分辨率。默认的模拟器分辨率是最小的HVGA。在C:\Program Files\AppInventor\commands-for-Appinventor目录,找到run-emulator.bat,右击编辑,在最下方找到skin HVGA-AppInventor,可以更改为C:\Program Files\AppInventor\commands-for-Appinventor\from--SDK\platforms\android-8\skins目录下的分辨率,如skin WVGA854。
方式三:使用USB数据线连接安卓手机或平板电脑
当你使用安卓手机或平板电脑连接App Inventor时,设备中配套App管理着与计算机中的配套软件通过计算机中浏览器建立的连接。方式一中步骤1已经说明了如何安装配套App,并且说明了使用无线网络来建立这种连接实时调试应用是App Inventor官方推荐的连接方式。
但是仍然会有一些场所不提供Wi-Fi网络,或者禁止连接Wi-Fi网络的设备彼此通信,例如,某些学校、酒店、会议中心等。尽管经验丰富的计算机使用者可以使用小型(例如小度Wi-Fi、360Wi-Fi)来建立小型无线网络,或者使用笔记本无线网卡提供小型无线网络,但是App Inventor还是提供了使用USB数据线来连接安卓手机或平板电脑的方式,如图1-13所示。
在Windows操作系统上使用USB数据线来连接App Inventor和安卓设备最大的不便就是安装驱动程序(Mac和操作系统不需要特别安装驱动程序),并且不同厂家的设备需要不同的驱动程序。因此,你需要查询设备官方网站来获取驱动程序。
       &
步骤1:在计算机上安装App Inventor Setup软件包
该步骤同方式二步骤1。
步骤2:下载安装MIT App Inventor Companion的配套App
该步骤同方式一步骤1。
步骤3:启动aiStarter
该步骤同方式二步骤2。
步骤4:在计算机上为安卓设备安装驱动程序,并打开调试模式
如之前所述,在Windows上使用USB数据线调试安卓应用,需要在系统设置里打开开发者选项,确保打开USB调试模式。在 3.2或以下版本操作系统的设备上,你可以在设置&应用程序&开发者选项中找到相关选项;在Android 4.0或以上版本的设备上,相关选项直接在设置&开发者选项里。
Android 4.2或以上版本的设备中,开发者选项默认是隐藏的。要使该选项可见,在设置&关于手机中单击几次Build Number,然后返回设置将可以看到开发者选项。
步骤5:使用USB数据连接计算机和安卓设备
要使用USB数据线连接安卓设备并调试应用,需要为安卓设备安装驱动程序。安卓设备连接计算机有很多种模式,比如大容量存储设备模式、多媒体设备模式,甚至上网卡模式。App Inventor官方建议使用大容量存储设备模式来连接计算机,并安装相应的驱动程序。由于制造安卓手机或平板电脑的厂商较多,请仔细说明书或在线支持网站来安装驱动程序。
Android 4.2.2版本或更新的操作系统的设备第一次连接到一台计算机时,会弹出&是否允许USB调试&对话框,单击&确定&按钮来允许这台计算机连接你的安卓设备。
很多智能手机助手软件可以自动帮你的安卓设备安装驱动程序,比如91手机助手、豌豆夹手机助手等。安装这类手机助手安卓版后,当你的设备使用USB数据线连接到计算机上之后,助手将会自动识别设备型号,并下载相应驱动程序,指导你打开调试模式。
步骤6:测试你的连接
使用浏览器打开连接测试网站(http://appinventor.mit.edu/test/),如果测试网站测试通过(即没有红色字出现),说明App Inventor可以检测到你的测试。接下来就可以开始制作你的App了。如果没通过测试,主要可能是步骤5的驱动程序没有正确安装,你可以向设备厂商或相关寻求帮助。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'利用AppInventor实现注册功能(完整版)
AppInventor中的web提供了调用网页数据和访问云端的功能,本文讨论使用AppInventor结合实现客户端注册的功能。
本程序想实现的具体功能:当手机终端输入用户名、密码和昵称后,点击&注册&按钮,APP便将数据上传至服务器端的处理程序,如果是新用户,则将用户名、密码和昵称保存在数据表中,如果用户已存在,则提示客户端重新输入信息。
Step1:设计界面
web_reg为web组件,主要用来处理客户端和服务器端的数据通信。
Step2:新建表名为&user&的数据表
数据表信息如下:
搭建好数据表结构如图所示:
至此,数据表已经成功搭建好待用!
Step3:编写服务器端脚本
这里使用PHP作为服务器端脚本语言。
$user=$_POST['user']; //获取客户端用户名,存入变量&user&
$pwd=md5($_POST['pwd']); //获取客户端密码,存入变量&pwd&
$nick=$_POST['nick']; //获取客户端昵称,存入变量&nick&
$ = new SaeMysql(); //初始化新浪服务器的MySQL类
$sql = &SELECT * FROM `user` where user='{$user}'&; //定义查询语句,看注册的用户名是否已经存在于数据库&student&中
$mysql-&runSql($sql); //执行sql语句
$no=$mysql-&affectedRows(); //sql语句影响的代码行数
if($no==0){ //如果没有影响到数据库中的数据(注册的用户是新用户)
$sql=&INSERT INTO `user` (`id` ,`user`,`password`,`nick`)VALUES (NULL , '{$user}','{$pwd}','{$nick}')&; //将新注册的用户插入到数据库中
$mysql-&runSql($sql); //执行插入操作
echo 1; //返回1表示用户注册成功
echo 2; //返回2表示用户已存在
?& //PHP代码结尾
将代码存成reg.php上传至SAE代码管理器中。
Step4:使用AppInventor处理服务器端数据
学过网页的人都知道注册框属于表单(Form),因此,问题转换为&AppInventor如何将表单信息提交给服务器脚本?&这里需要设置一个RequestHeader(请求头)。AppInventor中的请求头需要的参数如下图所示,由于AppInventor的组件没有完全汉化,因此有的解释依然是英语。大致的意思表明请求头参数为一个带有两个子列表的列表(即二级列表),二级列表的第一个子列表为域名,第二个子列表为域值。
这里参考了HTTP请求头的信息标准,二级列表的第一个子列表(域名)为:Content-Type,二级列表的第二个子列表(域值)为:application/x-www-form-urlencoded。
web组件的URL访问的是上次教程提到的PHP代码(如图所示URL为新浪二级域名++PHP文件名),本文链接为新浪云应用URL。(如果你还没有搭建新浪云应用,详情参考公众号菜单栏中的AI教程菜单中的&搭建新浪云应用&)
使用web组件的post请求向服务器传送用户名、密码和昵称,用户名、密码和昵称均以键值对的方式存储在二级列表中。(如下图所示:)
以上代码执行的功能是检测用户名、密码和昵称是否为空,如果有一项为空则显示警告&不能为空&,接下来设置web组件的请求头和URL,最后将用户名、密码和昵称以键值对的方式存储在二级列表中,并使用web组件的post方法上传至服务器。
接着是服务器端脚本提取用户名、密码和昵称,如果在数据表中找到同样的用户名则返回2,否则返回1。如果忘记服务器端代码,请参考本教程的上一篇教程,专门介绍了服务器端脚本。
接下来通过web组件的get文本事件对服务器端响应的内容进行处理。如果用户名存在,则服务器返回2,新用户则返回1,于是客户端需要对服务器返回的数据进行判断。如下图所示:响应内容为2,表示用户已经存在,响应内容为1,表示为新用户,显示&注册成功&,并显示欢迎信息!
Step5:测试
在客户端输入四个用户信息,在数据表中查看,结果如下图所示:
在数据表中发现,服务器代码已经成功地将客户端输入的用户信息存储到数据表中了,此时,大家会发现password是一串没有规律的字符串,这是用md5过的字符串,还记得上次教程中的脚本代码中有一行是这样的吗?$pwd=md5($_POST['pwd']); 这就是密码看起来是一串无规律的字符串的原因了!
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'

我要回帖

更多关于 mit app inventor下载 的文章

 

随机推荐