AppInventor+掌控板做的遥控小车

2019-04-231.3万
AI 快速预览详细 收起
本文介绍了如何使用AppInventor和掌控板制作遥控小车。首先,通过图形化编程实现小车的前后左右控制、车灯开关及文本信息传输。硬件清单包括M20马达、电机驱动模块、LED、N+电池盒和拓展板。项目难度适中,适合初学者和STEM教育场景。
将AppInventor与掌控板互联成功后,开始尝试扩展更多的应用,图形化编程也能做好多内容。下面和大家分享一下遥控小车的案例。

一、App Inventor与掌控板的协作原理分析

AppInventor+掌控板做的遥控小车图19
手机与掌控板的协作过程中,掌控板充当了服务器的角色,而手机上的App则是客户端,客户端通过ip地址访问服务器,从而实现两者之间的信息往来。当客户端发出保存数据请求时,请求信息中会携带两个参数: 标记和数据,服务器会将“标记”解释为掌控板上的输出资源,例如,当标记为buzz时,输出资源为蜂鸣器,并将“数值”解释为具体的输出值,如蜂鸣器的鸣响频率。同样,当客户端发出读取数据请求时,会携带一个“标记”参数,服务器会将参数解释为掌控板上的某个资源,并将该资源的状态返回给客户端,例如,当标记为“buttona”时,掌控板将返回按键A的状态(1为断开,0为连通)。



由此可知,如果想在安卓应用中获取掌控板的状态数据,或控制掌控板的输出,就必须清楚地知道掌控板上各项资源的标记、名称,以及接收数据的规格,这也正是本文的目的所在。下面表格中列出的相关信息,可以帮助开发者实现安卓应用与掌控板之间的协作。

AppInventor+掌控板做的遥控小车图1
资料出处:https://mp.weixin.qq.com/s/o5KvA-7mjRTvaaHqk9wZUA(感谢金从军老师、谢作如老师!)
二、硬件准备与连接:

启动掌控板:编写程序(使用mpythonX),启动后屏幕上显示掌控板在局域网中的 IP地址,如图所示:

AppInventor+掌控板做的遥控小车图2                     AppInventor+掌控板做的遥控小车图3

设计好一辆小车并组装好:

AppInventor+掌控板做的遥控小车图5


采用了M20马达、电机驱动模块(盛思)、LED(盛思)、N+电池盒和拓展板

AppInventor+掌控板做的遥控小车图10AppInventor+掌控板做的遥控小车图11

三、AppInventor设计用户界面。

设想功能:

1、控制小车前后左右

2、控制车灯开关

3、传输文本信息至掌控板显示屏显示


根据以上三点,设计好用户界面:

AppInventor+掌控板做的遥控小车图20
四、程序思路剖析:

本程序是向掌控板发出保存数据请求,故需要用到以下模块:
AppInventor+掌控板做的遥控小车图4

当客户端发出保存数据请求时,请求信息中会携带两个参数: 标记和数据,服务器会将“标记”解释为掌控板上的输出资源,例如,当标记为buzz时,输出资源为蜂鸣器,并将“数值”解释为具体的输出值,如蜂鸣器的鸣响频率。

根据TinyWebIO服务协议表,我们本次要用到的标签有:oled和pina两类。
AppInventor+掌控板做的遥控小车图6

(1)设置IP地址

AppInventor+掌控板做的遥控小车图7

(2)传输文本信息及坐标

AppInventor+掌控板做的遥控小车图8

(3)清屏

AppInventor+掌控板做的遥控小车图9

(4)开灯、关灯(灯接到了扩展板p1引脚)


AppInventor+掌控板做的遥控小车图12

(5)前后左右

这里原本的思路是:手机按下按钮,改变掌控板某个引脚的模拟值,然后再从掌控板入手,读取当前模拟值,判断后执行不同的操作。但是发现无法再从掌控板中读取数据,因为“发送→改变”这个过程是一气呵成的,在浅层面上无法进行读取这个操作。所以决定分析驱动电机模块的代码,在AppInventor上面完成。
幸运的是,Bluebit里面电机驱动模块的代码并不复杂:
AppInventor+掌控板做的遥控小车图17AppInventor+掌控板做的遥控小车图18
我们可以发现,其实就是通过改变两个引脚之间的模拟信号差值来调整速度及方向,所以编程如下:

AppInventor+掌控板做的遥控小车图13AppInventor+掌控板做的遥控小车图14AppInventor+掌控板做的遥控小车图15AppInventor+掌控板做的遥控小车图16

小小尝试,若有不足,请不吝赐教

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(5)
gada888
gada888
收藏了
liuyu1009
liuyu1009
硬件如何连接?
Nplus实验室
Nplus实验室
作者
回复liuyu1009
加上电机就行,比如我是把电机接入P13、P14、p15、p16
szjuliet
szjuliet
赞哦!
请问N+扩展板在哪里可以买到?
szjuliet
szjuliet
赞哦!
请问N+扩展板在哪里可以买到?
szjuliet
szjuliet
赞哦!
请问N+扩展板在哪里可以买到?
szjuliet
szjuliet回复Nplus实验室
谢谢!
Nplus实验室
Nplus实验室
作者
回复szjuliet
- 没有更多了 -