给自己置办一个年货 ——节日抽奖盒子
2016-02-29 17:20:58创客三级跳
给自己置办一个年货——节日抽奖盒子
新年马上就要到了,作为一个创客,怎么能不给自己准备一些特别的节日礼物呢?那还不快来,跟着“创客三级跳”一起准备创客“年货”,和朋友们过一个快乐的新年。
如果我们从新年时,朋友们在一起聚会少不了做游戏的角度考虑,我们还是做一个比较老套但是很适合一群人玩的游戏机——抽奖盒子,基本功能类似于一个骰子,使用舵盘制作一个指针来显示随机数的结果,看起来挺简单的,那说做就做,让想法变成现实。
原理:让指针指向一个随机的角度这好像是一件比较容易的事情,首先我们将舵机固定在一个t1 型号的纸盒上面,方法是:在纸盒上用针沿着舵机的一周扎一圈小孔,用力按压一下,就出现一个和舵机尺寸相当的方形洞,让舵机从上到下装在上面。然后用排针和绕线棒制作3 根两边都是针的连接线,分别是红色、黑色和蓝色,其中,红色接舵机的红色端,黑色接舵机的棕色端,蓝色接舵机的黄色端,这样就把舵机的三孔接口转接为三针接口,方便连接在板子上。接下来,把红色导线接在power 区的5v 的位置,黑色导线接下面的gnd,蓝色导线接digital 区的8 号端口。
下载s4a 固件到arduino 上以后,就可以使用s4a 软件来控制arduino 上的各个输入端口了。程序并不难, 用变量n 设定为0 ~180 的随机数,然后让8 号舵机转向一个随机的角度。
但是我们希望增加程序本身的乐趣,于是我们设定让指针来回抖动一会儿,然后再指向某一个角度,比如抖动2s。
感觉上好很多,但是我还是希望能够增加随机性,每次都等待2s 不是特别有趣,我们发现a0 ~ a5 的数值受到自然界当中随机信号的干扰是不断变化的,变化范围是0 ~ 1023,于是,我们将程序执行时间设定为2 a0/1023,这样程序的随机性就更好了。
这样一个比较好的随机转动的指针就做好了。使用a0 的真随机数来平衡计算机生成的伪随机数是一种常用的方法。
但是,有的时候我们会发现a0 的抖动并不大,为了加强a0 对自然界随机产生的电磁干扰的接收,我们可以在a0 处插一个排针,然后延长出一段导线。
(未完。详见《无线电》杂志2016年第2期)