MIT app编程应用
(安卓手机传感器部分)
大家好,今天我们来学习手机编程的传感器部分,本节课通过制作遥控手柄,来学习虚拟仪器键盘鼠标控制和手机传感器采集。把手机编程和虚拟仪器两个看似没有交集的领域联系起来,学会了本节课程后我们再也不用买游戏手柄了。
内容概要:
蓝牙方式基本的过程是:手机传感器信号,手机蓝牙数据传输,电脑蓝牙串口接收数据,数据解析,调用win32控制键盘鼠标,开启互动 wifi方式基本的过程是:手机传感器信号,手机http协议post传输数据,电脑TCP协议接收数据并响应,数据解析,调用win32控制键盘鼠标,开启互动 手机平衡状态的T范围是-10~+10,采集到的数据输入3态判断函数,其中a是中间的左右范围,下面是C代码表示的功能:
char range(int T,int a){
if(abs(T)>a) {
}
return "O";
}
例如手机加速度传感器输出在[-10,10] 分为3个区间[-10,-3)[-3,3](3,10] 输入数值后输出[A][O][B]。
通过范围的大小调节灵敏度
if(abs(输入)>范围) { //abs绝对值
if(输入>0)
if(输入
}
else return "O";
采集器的刷新频率不好控制,我们建立两个全局变量,用定时器来控制刷新频率,这样蓝牙发送数据[左右][上下][控制],如OOO表示无操作 RUK表示按下右键上键空格键 LDE表示按下左键下键回车键 win32里面控制键盘要按下/停顿/释放,千万不能弄反了,否则键盘会出现按键异常现象,可能C和V不能用,可能功能键, apk设计调试是重要的一个环节,使用实际的手机设备调试最好不过,拿着手机会感觉很麻烦的话,安装手机模拟器是很不错的选择,一些模拟器性能稳定助手甚至可以运行游戏,推荐蓝叠模拟器, 实现操作杆的控制,用正方的画布来作为上下左右的范围,精灵来作为操作杆对象,首先 按下获取到触摸位置 将精灵移动到触摸位 这个方法运行后会发现按下后精灵会偏移,我们需要处理一下:
[精灵xy]=[触摸xy]
[精灵xy]=[触摸xy]–[精灵尺寸]/2
[精灵xy]=[画布尺寸]/2–[精灵尺寸]/2
我们将直角坐标移动到画布原点就可以了,触摸坐标是局部变量,通过精灵来获取触摸位置:
[触摸xy]=[精灵xy]–[精灵尺寸]/2
需要注意的是画布获取到的精灵位置是左上角的位置, 接下来是添加按键,我们第一反应是用按钮,但是按钮的排版没有精灵控件灵活,我们再添加一个画布,这样控件都用精灵来实现,精灵1上下左右的操纵杆,独立占用一个画布,精灵2~精灵5在另一个画布,注意精灵与精灵的间距一定要控制好,离得太近会有同时按下的效果。 我们再做一个很好看的显示屏来显示状态。黑色的背景配合浅蓝色,连接状态模式,时间,操作显示用排版 为了防止蓝牙数据空发造成的错误,计时器运行代码里要添加跳闸操作:
[计时器]{ 程序代码 如果发送错误,[计时器]启用=F }
操作杆的数据更新到显示屏, 控制的数据都是由计时器控制更新周期,控制灵敏度。 最后是添加启动蓝牙与计时器添加传感器。
(添加微信公众号可查看大图)
lu yuan bin
" The quickest way to learn is to practice, a project will involve a wide range of knowledge, a little learning digestion, endless learning."
"This design is an original public welfare teaching course. The copyright of the content belongs to. It is only for study and not for profit-making activities."
——Dream doing(2018/12/31)
luyuanbin
千 里 教 学 基 地
微信公众号:qlyxgy
主页入口
领取专属 10元无门槛券
私享最新 技术干货