3

在看到 wiimotes 的能力和可破解性之后,我真的很想在我的“编程入门”决赛中使用它。每个人都必须制作一个 Python 程序并提交给全班同学。

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

除了 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

似乎每次我运行它时,它都会打印出 EVENT 2-5 次,直到回溯。我现在不知道该怎么做,过去两天我一直在努力让它工作。

谢谢!

4

8 回答 8

3

我更新了 pywiiuse 包装器。它似乎不是为最新版本的wiiuse(在这个答案时为0.12)制作的,因为其中大部分在当前迭代中都不起作用。

我在这里发布了包和一些示例脚本: http ://code.google.com/p/pywiiuse/downloads/list

你也应该能够做到

easy_install wiiuse

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

于 2010-10-23T03:23:01.770 回答
1

我知道你的课现在已经结束了,但是对于其他人来说,cwiid 真的很好。像这样安装在Ubuntu中:

apt-get install libcwiimote-dev python-cwiid

或者从github获取最新信息。

读取 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])
于 2009-12-04T03:25:10.633 回答
1

I've been working with wiimotelib for .NET and it is pretty stable. And contains also wii remote extensions like nunchcuk and other.

于 2010-11-27T06:44:36.727 回答
1

近两天来一直在寻找 Wiimote 的一组 Python 包装器,这是我对最新技术的总结:

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

pywiiuse(上图):理论上不错,

cwiid:未积极开发,仅适用于 Linux(无法在 Cygwin 下编译)。

总之——现在没有现成的东西(2009 年 3 月 24 日)。会继续调查...

——布莱恩

于 2009-03-24T19:49:05.873 回答
1

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

这是我的文章:http: //smus.com/prototyping-wii-remote-python/

于 2010-05-29T17:47:14.587 回答
0

我建议您看一下 Uwe Schmidt 的 WiimoteWhiteboard Java 版本,这可能会漏掉重点

http://www.uweschmidt.org/wiimote-whiteboard

它使用用于 Java 的 WiiRemoteJ 库。

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

祝你的课好运。

于 2009-01-27T18:12:56.200 回答
0

Change your python version to 2.5.2 I believe it will work now

于 2009-06-23T18:45:22.600 回答
0

pywiimote on Google Code 可能会有所帮助,如果您找到的库对您失败...如果您有时间,请尝试一下。

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

祝你好运!

于 2009-01-27T00:48:39.943 回答