分享我第一个真正完成的Arduino项目。我试着自制了一个增强现实。让我给你解释一下:
它基本上是一个系统,使用一个摄像头来跟踪你的头部运动,并使其适应X和Y操纵杆轴。在此之前,该项目可以适应任何你想要的游戏。
然后,我们将这些轴链接到战雷设置中的头部运动,以在驾驶舱视图中给出更多的感觉。
要制作这个项目,您需要:
Arduino Uno(游戏杆库只适合那些但是你可以在很多其他方面使用它),
一个Wii遥控相机(真的建议你带个旧遥控器,不要买新的,因为还是贵),
一个100k电阻,
一个100 nF的电容器,
一个25MHz振荡器(4个引脚),
一种红外发光二极管,
3V钮扣电池(给LED供电),
一个小面包板(17孔固定元器件和摄像头,2孔以上固定Nano(如果用这个的话)。
一些电线和焊接材料。
我要感谢Eric Jacob用他的Wii远程红外摄像头接口给了我这个想法。
第一步:从Wii遥控器中取出相机。
我拿了一个破旧的Wii遥控器,建议你也这么做。还是可以买一个的,不过我觉得要花你40块钱(贵!)。遥控器用四个三角形十字密封。找到合适的工具或破碎框架。你看到一个方形照相机了吗?解开它!我试过了,但我不想烧掉相机。我直接在远程PCB上焊接电线)
步骤2:添加组件
现在,把电线焊接到摄像机的插销上,这样我们就可以把它插到面包板上了。
摄像头工作在IC上,直接插在Arduino上无法正常工作。我们将添加一些组件来模拟DFRobots红外摄像机。根据电路图完成相机。
尽量让摄像头在你的头部水平看着你,通常就像屏幕上的网络摄像头一样。
第三步:LED追踪器
只需将LED连接到纽扣电池,并将其连接到耳机的顶部。将LED朝向摄像机放置,以提高效率。
显然,不要忘记移除LED以避免电池电源故障。
第四步:编码
我使用UnoJoy和DFRobotIRPosition库来模拟操纵杆。原理很简单:
我们声明摄像头为串行通信,Arduino为游戏控制器。
我们得到记录的红外LED的x和y值。
我们映射它,以便10位(0-1023)返回值适合操纵杆的8位(0-255)值。
Arduino通过串行com端口发送操纵杆值。
步骤5:配置“控制器”
一旦代码闪烁,我们需要将Arduino转换为操纵杆控制器。
连接离USB端口最近的两个引脚进入DFU模式,
您现在可以执行库文件中的“TurnIntoAJoystick.bat”文件,
现在,您可以拔出/重新插入Arduino,它将被检测为控制器。
现在,你的Arduino将作为Windows的控制器出现。转到配置面板硬件外设右键单击新控制器设置属性。你可以在这里看到一个面板,它可以预览操纵杆轴和按钮的演变。请注意,如果没有检测到LED,摄像头返回的值将是255,255。魔杖的默认位置在右下角。
重要提示:如果arduino没有返回值,即使代码和电路板是正确的,也可以尝试拔/拔线复位,直到十字显示右下角(表示摄像头现在正在通信)。
要恢复Arduino模式,请遵循相同的模式:
跳过USB端口附近的两个引脚,
执行“TurnIntoanArduino.bat”,
然后拔出/重新插入您的Uno。
第六步:在游戏设置中链接操纵杆。
控制我们要设置的是“相机控制”设置。将X轴连接到左右轴,将Y轴连接到上下轴。在游戏中测试它的运动,你可以通过设置“缩放”来重新缩放它,使运动尽可能逼真。
你现在可以享受更真实的飞机游戏体验。
标签:ArduinoLED摄像头