“囚徒困境”抢答器

基于Arduino的抢答器,涉及手工制作

SPtuan

喜欢

1552
浏览
5
喜欢

> 更多图片

项目状态:已完成
开放度:公开
所属分类:电子
发布时间:2017-09-01
最近更新:2017-09-01

标签

描述

和同学合作做workshop的产物。神圣的抉择!公平的对决!抢答器可广泛用于“谁去拿快递”“谁叫外卖”“谁来埋单”等一系列令人深思的场景。


详细说明

0.序言

本作品是和几名工业设计专业的同学在十一月一起做的一个workshop产物,有相关的Arduino课程。

我则是纯去凑了热闹。

拖了这么久才攒文章,惭愧惭愧~

主要的分工,我来写代码,调试程序,排布器件。工业设计的同学做了模型和实体。

这篇文章是我稍带演绎的一篇纪录~

添加图片描述

成品做出来好漂亮,大家都是心灵手巧的人啊~


1.理念和需求

workshop的主题是做一个儿童向的互动玩具,用于抢答情景。我觉得这个情景不局限于自身,在以下场景中:

“谁去拿快递?”
“谁叫外卖?”
“谁来埋单?”

需求如下:

  • 1 抢答场景:定然有两个按键输入。用于比谁更快速

  • 2 输出的指示: 有一个输出的灯光指示,用于给予开始抢答的信号。

  • 3 输出的指示: 有若干计分灯光,用于计分。这部分和工设联动,设计成了一个灯光爬山的效果。

  • 4 胜利条件: 谁抢到山顶的“灯”谁就胜利!

  • 5 输入: 用于resetstart


2.作品设计

2.1 外观设计

外观

外观是一座山,模拟两个人攀比登峰,谁先到山顶,谁便胜利。手工制作实体,和输入按键。可以看到我排的led灯在山的两侧

2.2 硬件设计

主控当然选用Arduino,因为workshop要求就是用它来当主控。

Arduino

输入我选用了3端入口,为了节省不太富裕的io口。一个用于startreset,另外两个是抢答端。

输出的话依赖灯光。选用了4+4+1的设计,正好用足了所有的io口。因为没必要加外部元件用于专门的灯光管理。索性直接用Arduino驱动。

另外说一句,pullup功能可以自带拉高点评。因此输入端不需要人工布线拉高电平。

2.3 逻辑设计:

红灯用于指示抢答。

状态1:所有led跑马灯,等待红色按钮输入开始信号。

状态2:开始抢答,红灯亮起。若干秒后熄灭,开始按钮抢答输入

状态3:成功抢答的一端判断为胜利。计数加1,蓝灯或绿灯亮起。亮满4个最终胜利

状态4:重新循环状态1

2.4 代码

**代码见教程部分

注:后来我也思考了一下。这个代码还是有相当的改进余地的。

对于抢答按钮的输入,使用了循环扫描的方法,势必会有一个优先级的问题,一旦一个持续按下,就会触发bug必赢。

可以改用中断,套用几个flag变量,综合判断真正在抢答器结束后按击的人。或者提前按下的人直接判
负。


3 展示

3.1 成果

添加链接文字
我和小崔在原形上就玩得不亦乐乎……生生玩了一晚上……
原型机

作品最后外观是相当漂亮的~

外观

工设同学做的项目记录总是非常漂亮的,下面是制作过程若干图片

添加图片描述
添加图片描述
添加图片描述
添加图片描述
添加图片描述
添加图片描述
添加图片描述
添加图片描述
添加图片描述
添加图片描述

链接表


教程

组件清单

阅读教程全文