Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python和Wiimote使用pywiiuse模块_Python_Wiimote_Wii - Fatal编程技术网

Python和Wiimote使用pywiiuse模块

Python和Wiimote使用pywiiuse模块,python,wiimote,wii,Python,Wiimote,Wii,在看到wiimotes的功能和可黑客性之后,我真的很想在我的“编程入门”决赛中使用它。每个人都必须制作一个python程序并向全班展示 我想用pygame和wiimote制作一个游戏。我发现这是使用c类型的库的一个非常基本的包装器 除了LED灯和振动灯,我什么也做不到。按钮,红外,运动感应,什么都没有。我试过wiiuse、pywiiuse甚至python的不同版本。我甚至无法运行随附的示例。下面是我作为一个简单测试编写的代码。我复制了一些C++代码。 from pywiiuse import *

在看到wiimotes的功能和可黑客性之后,我真的很想在我的“编程入门”决赛中使用它。每个人都必须制作一个python程序并向全班展示

我想用pygame和wiimote制作一个游戏。我发现这是使用c类型的库的一个非常基本的包装器

除了LED灯和振动灯,我什么也做不到。按钮,红外,运动感应,什么都没有。我试过wiiuse、pywiiuse甚至python的不同版本。我甚至无法运行随附的示例。下面是我作为一个简单测试编写的代码。我复制了一些C++代码。
from pywiiuse import *
from time     import sleep

#Init
wiimotes = wiiuse_init()

#Find and start the wiimote
found    = wiiuse_find(wiimotes,1,5)

#Make the variable wiimote to the first wiimote init() found
wiimote  = wiimotes.contents

#Set Leds
wiiuse_set_leds(wiimote,WIIMOTE_LED_1)

#Rumble for 1 second
wiiuse_rumble(wiimote,1)
sleep(1)
wiiuse_rumble(wiimote,0)

#Turn motion sensing on(supposedly)
wiiuse_motion_sensing(wiimote,1)

while 1:
    #Poll the wiimotes to get the status like pitch or roll
    if(wiiuse_poll(wiimote,1)):
        print 'EVENT'
这是我运行它时的输出

wiiuse version 0.9
wiiuse api version 8
[INFO] Found wiimote [assigned wiimote id 1].
EVENT
EVENT
Traceback (most recent call last):
  File "C:\Documents and Settings\Nick\Desktop\wiimotetext.py", line 26, in <mod
ule>
    if(wiiuse_poll(wiimote,1)):
WindowsError: exception: access violation reading 0x00000004
wiuse版本0.9
使用api版本8
[信息]找到wiimote[已分配wiimote id 1]。
事件
事件
回溯(最近一次呼叫最后一次):
文件“C:\Documents and Settings\Nick\Desktop\wiimotext.py”,第26行,在
如果(wiuse_poll(wiimote,1)):
WindowsError:异常:访问冲突读取0x00000004
似乎每次我运行它时,它都会打印事件2-5次,直到回溯。在这一点上我不知道该做什么,过去两天我一直在努力让它工作

谢谢

如果你找到的库对你不起作用,谷歌代码可能会有所帮助。。。如果你有时间,试试看

不过,这似乎是一个相当新的产品,可能不会更好


祝你好运

我建议您看看Uwe Schmidt的Wiimote白板Java版本,可能会错过要点

它使用用于Java的WiiRemoteJ库

我曾经尝试过使用Python实现,但没有成功,因为它们要么不完整,要么没有功能。也许通过检查Schmidt在Java中的工作版本,您可以确定Python中缺少了什么


祝你的课好运。

我已经在Wiimote上搜索了将近两天的Python包装,以下是我对最新技术的总结:

pywiimote(来自谷歌):大约完成了一半,在我下载最新版本(r52)时没有编译,有一些不错的想法,但需要大量投资才能开始工作

Pywiius(上图):理论上很好

cwiid:未积极开发,仅针对Linux(无法在Cygwin下编译)

总之,现在没有现成的(3/24/2009)。将继续调查


--Bryan

将您的python版本更改为2.5.2我相信它现在可以运行了

我知道您的课程现在已经结束了,但对于其他人来说,cwiid确实不错。像这样安装在Ubuntu中:

apt-get install libcwiimote-dev python-cwiid
或者从您的网站获取最新信息

读取wiimote传感器(如加速度计的俯仰)非常简单:

import cwiid
print 'place wiimote in discoverable mode (press 1 and 2)...'
wiimote = cwiid.Wiimote()
wiimote.rpt_mode = cwiid.RPT_ACC
#wiimote.state dict now has an acc key with a three-element tuple
print 'pitch: %d' % (wiimote.state['acc'][cwiid.Y])

对于那些仍在寻找的人,我发现并记录了一种使用lightblue库将Wii Remote与python配对的简单方法。我在OSX上测试了它,但它应该可以跨平台工作(即在Linux上)


这是我写的:

我更新了Pywiuse包装。它似乎不是为wiiuse的最新版本(在回答这个问题时为0.12)制作的,因为它的大部分内容在当前的迭代中无法工作

我在这里发布了软件包和一些示例脚本:

你也应该能够做到

easy_install wiiuse

因为我也在pypi上托管了它。

我一直在为.NET工作,它非常稳定。而且还包含wii远程扩展,如nunchcuk和其他。

我想你说的“我什么都得不到…”你可能实际上是指“我什么都得不到…”呃,是的,我刚刚注意到。什么样的老师会在他自己做不到的事情上测试学生?还有,尼克,你真的不是那样的人,也不工作。不会连接到wiimote,而且这个库看起来太像一个不支持加速度计的WIP(这是我真正需要的),无论如何谢谢链接。