AppInventor+掌控板做的遥控小车
将AppInventor与掌控板互联成功后,开始尝试扩展更多的应用,图形化编程也能做好多内容。下面和大家分享一下遥控小车的案例。https://v.youku.com/v_show/id_XNDE0OTg2MTY2NA==.html?spm=a2hzp.8244740.0.0
一、App Inventor与掌控板的协作原理分析
手机与掌控板的协作过程中,掌控板充当了服务器的角色,而手机上的App则是客户端,客户端通过ip地址访问服务器,从而实现两者之间的信息往来。当客户端发出保存数据请求时,请求信息中会携带两个参数: 标记和数据,服务器会将“标记”解释为掌控板上的输出资源,例如,当标记为buzz时,输出资源为蜂鸣器,并将“数值”解释为具体的输出值,如蜂鸣器的鸣响频率。同样,当客户端发出读取数据请求时,会携带一个“标记”参数,服务器会将参数解释为掌控板上的某个资源,并将该资源的状态返回给客户端,例如,当标记为“buttona”时,掌控板将返回按键A的状态(1为断开,0为连通)。
由此可知,如果想在安卓应用中获取掌控板的状态数据,或控制掌控板的输出,就必须清楚地知道掌控板上各项资源的标记、名称,以及接收数据的规格,这也正是本文的目的所在。下面表格中列出的相关信息,可以帮助开发者实现安卓应用与掌控板之间的协作。
资料出处:https://mp.weixin.qq.com/s/o5KvA-7mjRTvaaHqk9wZUA(感谢金从军老师、谢作如老师!)
二、硬件准备与连接:
启动掌控板:编写程序(使用mpythonX),启动后屏幕上显示掌控板在局域网中的 IP地址,如图所示:
设计好一辆小车并组装好:
采用了M20马达、电机驱动模块(盛思)、LED(盛思)、N+电池盒和拓展板
三、AppInventor设计用户界面。
设想功能:
1、控制小车前后左右
2、控制车灯开关
3、传输文本信息至掌控板显示屏显示
根据以上三点,设计好用户界面:
四、程序思路剖析:
本程序是向掌控板发出保存数据请求,故需要用到以下模块:
当客户端发出保存数据请求时,请求信息中会携带两个参数: 标记和数据,服务器会将“标记”解释为掌控板上的输出资源,例如,当标记为buzz时,输出资源为蜂鸣器,并将“数值”解释为具体的输出值,如蜂鸣器的鸣响频率。
根据TinyWebIO服务协议表,我们本次要用到的标签有:oled和pina两类。
(1)设置IP地址
(2)传输文本信息及坐标
(3)清屏
(4)开灯、关灯(灯接到了扩展板p1引脚)
(5)前后左右
这里原本的思路是:手机按下按钮,改变掌控板某个引脚的模拟值,然后再从掌控板入手,读取当前模拟值,判断后执行不同的操作。但是发现无法再从掌控板中读取数据,因为“发送→改变”这个过程是一气呵成的,在浅层面上无法进行读取这个操作。所以决定分析驱动电机模块的代码,在AppInventor上面完成。
幸运的是,Bluebit里面电机驱动模块的代码并不复杂:
我们可以发现,其实就是通过改变两个引脚之间的模拟信号差值来调整速度及方向,所以编程如下:
小小尝试,若有不足,请不吝赐教 赞哦!
请问N+扩展板在哪里可以买到? 赞哦!
请问N+扩展板在哪里可以买到? 本帖最后由 szjuliet 于 2019-4-23 17:44 编辑
赞哦!
请问N+扩展板在哪里可以买到? szjuliet 发表于 2019-4-23 17:42
赞哦!
请问N+扩展板在哪里可以买到?
https://m.tb.cn/h.3A4Oa5b?sm=6dfa8e
淘宝上面有的 Nplus实验室 发表于 2019-4-24 09:18
https://m.tb.cn/h.3A4Oa5b?sm=6dfa8e
淘宝上面有的
谢谢! 硬件如何连接? liuyu1009 发表于 2019-7-30 11:09
硬件如何连接?
加上电机就行,比如我是把电机接入P13、P14、p15、p16 收藏了
页:
[1]