自制头部追踪器教程

电子说

1.2w人已加入

描述

分享我的第一个真正完成的Arduino项目。我试图制作一种自制的增强现实。让我向你解释一下:

它基本上是一个系统,它使用一个摄像头跟踪你的头部移动,使其适应X和Y操纵杆轴。在那之前,该项目可以适应你想要的任何游戏。

然后,我们将这些轴链接到战争雷霆设置中的头部运动,以在驾驶舱视图中给予更多感觉。

要制作这个项目,您将需要:

Arduino Uno (操纵杆库仅适用于那些但您可以使用它许多其他方式),

一个Wii远程摄像头(我真的建议你带一个旧遥控器,不要买一个新遥控器,因为它仍然很贵),

一个100kΩ电阻,

一个100 nF电容,

一个25MHz振荡器(4个引脚),

一个红外LED,

一个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轴连接到向上 - 向下轴。在游戏中测试它所做的移动,你可以通过“缩放”设置重新缩放以使移动尽可能逼真。

你现在可以为你的飞机游戏享受更逼真的游戏体验。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分