如何使用Flex传感器和电位计构建愤怒小鸟的游戏控制器

这一切都始于黑暗时代的一款名为“马里奥”的小游戏,从一个小家伙跳上鸭子拯救我的公主到成为一个阳刚英俊的王子在波斯漫游(波斯王子)与黑暗作斗争以拯救我的世界,我一直是玩电子游戏的忠实粉丝,我从小玩它们。但他们有时确实会感到无聊,我觉得参与其中的程度较低。今天,先进的游戏机支持虚拟游戏,并帮助我们比键盘或鼠标更好地感受游戏。
作为一名arduino爱好者,我厌倦了使用键盘和鼠标玩名为 “愤怒的小鸟” 的著名游戏,并决定 使用flex传感器和电位计构建自己的游戏控制器 。当柔性传感器被拉动时,弹射器上的鸟也会被拉动,您可以使用电位计设置它的发射方向。然后,当您释放柔性传感器时,鸟将被发射。我非常喜欢这样做,所以如果你打算构建非常相似的东西,那么本教程将很有帮助。本教程还将有助于 使用电位计控制鼠标光标 。
软件和硬件要求:软件:
arduino ide处理集成开发环境愤怒的小鸟游戏在电脑上硬件:
arduino (任何版本)电位计柔性传感器47k 欧姆电阻器连接线面包板
背后的概念:arduino 板从电位计和 flex senor 读取值 ,并通过正常的 serial.write() 函数通过 usb com 端口将它们传输到笔记本电脑/pc。然后,我们使用 processing 读取此信息,并使用 java 中的 robot 类控制鼠标光标,该类受 process ide 支持。我们对处理 ide 进行了编程,当拉动 flex 传感器时,将单击鼠标,并且根据拉动的程度,鼠标指针将沿 x 方向移动。然后根据电位计的值,我们将在 y 方向上移动鼠标光标,这样我们就可以设置应该发射鸟的方向。
电路图:使用柔性传感器和电位计播放愤怒的小鸟的电路很简单。
我们已经简单地将电位计和柔性传感器连接到arduino的模拟输入(a0,a1)。flex 传感器的输出也使用 47k 下拉电阻下拉。
您可以直接将其连接到面包板上或将它们焊接到 perf 板上,然后将其组装在手套或其他东西上以使其更具创意。我只是使用面包板进行连接,如下所示:
arduino 计划:完整的arduino代码在本教程结束时给出。下面解释几个重要的行。
我们初始化程序以使用 9600 波特率,并开始从 flex 传感器和电位计读取值。众所周知*,serial.write()* 函数一次只能发送一个字节的数据。由于一个字节是 8 位,2^8 = 256。我们将能够发送从 0 到 256 的值。因此,我们必须将 flex 传感器输出和电位计输出的值压缩为 0 到 256。
为此,我们使用 arduino 中的 map() 函数。来自柔性传感器的所有值都从 5 转换为 100,因此当我们弯曲传感器时,它将从 5 递增,释放时它将回到 5。提及鼠标单击,使用值 1 和 0。发送 1 时按下鼠标,发送 0 时释放鼠标。
if (flexvalue>=65 && flexvalue=5) // 1 and 0 is used for mouse click so start from 5 { mclick=true; serial.write(1); //1 is sent to make mouse left click serial.write(flexvalue); //flex value is the distance to move mouse in x direction } else { mclick=false; serial.write(0);} }类似地,电位计中的值从 101 转换为 200,通过 map( ) 函数,并发送到笔记本电脑 com 端口,通过 serial.write() 函数,如下所示。
if (potvalue0) { data=port.read(); println(data); //read the data from com port and save it in data } if (data>=101 && data=5 && data 50) robot.mouserelease(inputevent.button1_down_mask); //release the mouse button } if (click == true) //when flex sesnor is pulled { robot.mousepress(inputevent.button1_down_mask); //press the mouse button robot.mousemove(crntx-pull, crnty+turn); //move the mouse based on the flex and pot value }}启动时,处理 ide 还将显示一个小对话框,您可以在其中找到“拉动”、“转动”的值和“鼠标单击”的状态,如下所示
加工:要使用提供的代码使这个愤怒的小鸟项目工作,请根据电路图组装您的硬件并上传给定的 arduino 代码。然后记下您的arduino连接到哪个com端口,并在处理代码中进行必要的更改并启动处理草图。
现在,只需启动愤怒的小鸟游戏并将光标放在弹射器附近,然后拉动柔性传感器以拉动鸟并使用电位计设置方向。设置方向后,松开柔性传感器
eeeewwwwweeeeeeeeee!!!!!!!!!!...............
你的鸟会被直接抛到空中,轰!!在小猪身上。完整的工作可以在下面给出的视频中找到。
/* * angry bird game controller program * code by : b.aswinth raj * dated : 3-8-2017 * more details : www.circuitdigest.com */void setup() { serial.begin(9600); //transmit at 9600 baud rate}boolean mclick = false;void loop() { int potvalue = analogread(a0); //variable to store potvalue int flexvalue = analogread(a1); //variable to store flex value // serial.println(flexvalue); // serial.print(pot: ); // serial.println(potvalue); // serial.print(flex: ); if (flexvalue>=65 && flexvalue=5) // 1 and 0 is used for mouse click so start from 5 { mclick=true; serial.write(1); //1 is sent to make mouse left click serial.write(flexvalue); //flex value is the distance to move mouse in x direction } else { mclick=false; serial.write(0);} } else { mclick=false; serial.write(0);} if (potvalue<=200) { potvalue = map(potvalue,0,200,101,201); //based in turn convert to 101 to 201 serial.write(potvalue); //pot value is the distance to move mouse in y direction } delay(500); //stability delay }

三星Note8什么时候上市?三星Note8最新消息:三星Note8发布会时间确定?三星Note8双摄加持开创盛世
德州仪器推出业界首款0级数字隔离器,可支持高达150°C的0级高温限值
海康威视陈宗年:主攻智能制造 借助机器眼睛卡位智能时代
研究表明rfid高频率技术相对性要完善一些
118万台苹果出货!目前iPhone8和iphone8plus已超过162万的预约量,库克这场饥饿营销战实在打的漂亮
如何使用Flex传感器和电位计构建愤怒小鸟的游戏控制器
利用Tensorlow及其API为例来进行讨论,理解深度学习背后的魅力
自动驾驶的巨大商机,MIPI和以太网将发生怎样的竞争?
搭载麒麟990 5G芯片的设备,AI跑分高达76206
IntraSense系列传感器应用新突破:植入体内监测肿瘤
模拟芯片常用的BCD工艺国内外差距有多大?
摩托罗拉宣布将有23款智能机可用上Android11
汇川HD92系列高压变频器满足带式输送机各种运行工况要求
iphone13价格表今日价格
“STARALGO 星航链”云平台 ,我们生活的“边缘计算”世界
华为澳大利亚董事长John Lord表示华为绝对不会退出澳大利亚市场
串口屏解决方案:大彩串口屏在空气检测仪上的应用
三大运营商的物联网业务最新进展介绍
华为技术有限公司宣布,已获得了超过25份5G商业合同
特斯拉Cybertruck玻璃被砸裂的原因是什么?