分享我的第一个真正完成的Arduino项目。我试图制作一种自制的增强现实。让我向你解释一下:
它基本上是一个系统,它使用一个摄像头跟踪你的头部移动,使其适应X和Y操纵杆轴。在那之前,该项目可以适应你想要的任何游戏。
然后,我们将这些轴链接到战争雷霆设置中的头部运动,以在驾驶舱视图中给予更多感觉。
要制作这个项目,您将需要:
Arduino Uno (操纵杆库仅适用于那些但您可以使用它许多其他方式),
一个Wii远程摄像头(我真的建议你带一个旧遥控器,不要买一个新遥控器,因为它仍然很贵),
一个100kΩ电阻,
一个100 nF电容,
一个25MHz振荡器(4个引脚),
一个3V纽扣电池(为LED供电),
一个小面包板(17个孔用于固定组件和相机,2个以上用于固定Nano(如果你使用这个)
一些电线和焊接材料。
我要感谢Eric Jacob用他的Instructable Wii远程红外摄像机Hack Arduino接口给了我这个想法。
步骤1:从Wii遥控器中提取相机
我拍了一个破旧的Wii遥控器,我建议你这样做。你仍然可以买一个,但我认为它会花费你40美元(昂贵!)。遥控器用四个三角十字架密封。找到合适的工具或粉碎框架。你看到方形相机?解开它! (我试过,但我不想烧相机。我直接在远程PCB上焊接电线)
第2步:添加组件
现在,将电线焊接到相机的引脚上,这样我们就可以将它插在面包板上。
相机在I²C工作,但是直接插在Arduino上时无法正常工作。我们将添加一些组件来模拟DFRobots红外相机。按照电气图完成相机。
尝试让相机在您的头部高度看着您,通常就像屏幕上的网络摄像头一样。
步骤3:LED跟踪器
只需将LED连接到纽扣电池并将其连接到耳机顶部即可。将LED朝向相机定位,以提高效率。
显然,不要忘记取下LED以避免电池断电。
第4步:代码
我使用UnoJoy和DFRobotIRPosition库来模拟操纵杆。原理很简单:
我们将相机声明为串行通信,将Arduino声明为游戏控制器。
我们得到记录的IR LED的X和Y值。
我们映射它以使10位(0-1023)返回值适合操纵杆的8位(0-255)值。
Arduino通过串口com端口发送操纵杆值。
步骤5:配置“controller”
一旦代码闪烁,我们需要将Arduino转换为操纵杆控制器。
连接最接近USB端口的两个引脚进入DFU模式,
您现在可以在库文件中执行“TurnIntoAJoystick.bat”文件,
现在,你可以拔掉/重新插入你的Arduino,它将被检测为控制器。
现在,你的Arduino将作为Windows的控制器出现。转到配置面板》硬件》外围设备》右键单击新控制器》设置》属性。你可以在这里看到一个面板,它可以预览操纵杆轴和按钮的演变。请注意,如果未检测到LED,则摄像机返回的值将为255,255。棒的默认位置将位于右下角。
重要说明:如果arduino没有返回任何值,即使代码和电路板正确,尝试拔出/重新拔出电线并将其重置,直到十字架显示右下角(这意味着相机现在正在通信)。
要恢复“Arduino模式”,请遵循相同的模式:
跳转USB端口附近的两个引脚,
执行“TurnIntoanArduino.bat”,
然后拔下/重新插入你的Uno。
步骤6:在游戏设置中链接操纵杆
控件我们要设置的是“Camera control”设置。将X轴连接到左右轴,将Y轴连接到向上 - 向下轴。在游戏中测试它所做的移动,你可以通过“缩放”设置重新缩放以使移动尽可能逼真。
你现在可以为你的飞机游戏享受更逼真的游戏体验。
-
摄像头
+关注
关注
59文章
4836浏览量
95597 -
追踪器
+关注
关注
0文章
171浏览量
25698 -
Arduino
+关注
关注
188文章
6468浏览量
186951
发布评论请先 登录
相关推荐
评论