从设备通过感知倾斜角角度的变革,实现改变本机所显示的信息,通过霍尔传感器感知周围环境中是否有其他从设备靠近或阔别,并通过无线旗子暗记将本机的信息发送给主设备。
主设备吸收到各个从设备发送回的信息后,通过扫描各从设备的特色值确定从设备的空间位置,并将它们进行排序,从而将各个从设备所发送回的信息进行判断、剖析、组合,末了向各个从设备发送不同的指令。
从设备吸收到主设备发送到的指令后,在OLED上显示出不同的信息,让利用者更形象、生动地不雅观察到实验结果。

制作所需材料如图13.1和表13.1所示。
电路设计本作品中的主设备是PC,从设备电路图如图13.2所示。
图13.1 制作所需的材料
表13.1 材料清单
图13.2 从设备电路图
制作过程01 按照电路事理图设计电路板,确定各元器件的摆放位置。
02 准备一块覆铜板以及所须要的元器件。
03 进行PCB制板,并将须要固定的元器件焊接在电路板上。
04 将其他元器件插接在电路板上。
05 将成品外不雅观进行美化,这时智能盒子的一个从设备就完成了。
06 制作多个从设备,数目自行确定。
07 最后进行调试。
程序设计
主设备紧张进行数据的处理与指令的发布,当主设备收到多个从设备发回的信息时,须要确定各个从设备的空间位置,并判断其返复书息,程序流程图如图13.3所示。
单个从设备须要感知自身的倾斜角和位移,并检测与周围从设备的打仗状况,其紧张代码如下所示。
图13.3 程序流程图
读取加速度值:
voidgetAccValues()
{
uchar VL,VH;
VL=Single_ReadADXL345(0x32);
VH=Single_ReadADXL345(0x33);
xAcc=(VH<<8)|VL;
VL=Single_ReadADXL345(0x34);
VH=Single_ReadADXL345(0x35);
yAcc=(VH<<8)|VL;
VL=Single_ReadADXL345(0x36);
VH=Single_ReadADXL345(0x37);
zAcc=(VH<<8)|VL;
}
读取倾斜角角度:
uchargetAngle()
{
ucharDataFlag;
floatangle_X,angle_Y;
getAccValues();
angle_X=atan(xAcc/zAcc)180/pi;
angle_Y=atan(yAcc/zAcc)180/pi;
if(angle_X>40)
DataFlag=DataAdd;
else if(angle_X<-40)
DataFlag=DataDec;
else if(angle_Y<-40)
DataFlag=OpChange;
else
DataFlag=DataKeep;
returnDataFlag;
}
主设备与从设备通过无线旗子暗记进行信息交互,在信息传输过程中,信息检讨屈服Boxes数据通信协议。由于代码过长,完全代码请到***群657864614进行***。
效果演示智能盒子与传统的玩具比较,其优点表示在智能盒子的操作办法与交互性两方面。传统玩具在利用时较为“木讷”,每一个步骤都需利用者设置,利用一次后,大部分需全部重新设置,显示结果的效果也较为单调。智能盒子的操作办法大略、交互性强,利用者只需将主设备与从设备进行连接,就能进行利用,并能实时返回游戏结果。下面以我们目前测试完成的一个大略运算的功能对智能盒子的操作办法、测试效果等方面进行演示。
01 首先,将一个主设备与5个从设备进行连接。通过改变从设备的倾斜角达到改变从设备显示信息的目的。
旁边倾斜改变数字大小
高下倾斜改变运算符号
02 变动4个从设备的显示信息,个中两个为数字,两个为运算符。变动完成后,将4个从设备拼接在一起。
当从设备相互靠近时,靠近方向的OLED边缘会显示为赤色
03 不变动第5个从设备的显示信息,将其置于算式末端,它将自动显示精确结果。
未变动信息前显示为“0”,组合后自动更新为算式精确答案“4”
04 一次运算完成后,利用者可选择变动所有从设备或某一个从设备的显示信息,也可选择直接交流各个从设备的排列顺序,组成新的算式。
变动减数与差的位置,此处为表现显示效果,同时将减数大小改变
从设备自动更新为算式的精确答案“3”
智能盒子紧张通过检测倾斜角、检测周围盒子的靠近或阔别状态、实时信息显示等功能组合成其他运用。由于是测试,我们将智能盒子的功能与显示做得较为大略,有兴趣的读者可变动OLED的显示效果,如颜色、大小等,使其显示效果更加绚丽。同时可增加从设备的个数,拓展其他运用。只须要变动软件中返复书息的判断条件,则可在OLED上显示出不同的预定的效果。如拼图、迷宫、单词拼写、各种意见意义游戏等。
强烈推举一个分歧凡响的淘宝店铺:首页-数码达人小二-淘宝网,不信你试试?