Python с Wiimote с использованием модуля pywiiuse

После ознакомления с возможностями и способностями к wiimotes я действительно хочу использовать его в своем финале "Введение в программирование". Каждый должен сделать программу на Python и представить ее классу.

Я хочу сделать игру с Pygame, включающей wiimote. Я нашел pywiiuse, который является очень простой оболочкой для библиотеки wiiuse, использующей типы c.

Я не могу получить ничего, кроме светодиодов и вибрации, чтобы работать. Кнопки, ИК, датчик движения, ничего. Я пробовал разные версии 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

Кажется, что каждый раз, когда я запускаю его, он печатает СОБЫТИЕ 2-5 раз, пока не проследит след. Я понятия не имею, что делать на данный момент, я пытался в течение последних двух дней, чтобы заставить его работать.

Спасибо!

9 ответов

Я обновил оболочку pywiiuse. Похоже, это не было сделано для последней версии wiiuse (0.12 на момент этого ответа), так как большая часть этого просто не будет работать в текущей итерации.

У меня есть пакет и несколько примеров скриптов, размещенных здесь: http://code.google.com/p/pywiiuse/downloads/list

Вы также должны просто быть в состоянии сделать

easy_install wiiuse

Так как я также принимал это на pypi.

В течение почти двух дней я искал набор оберток Python для Wiimote, вот мое резюме состояния:

pywiimote (от Google): примерно наполовину закончен, не скомпилирован, когда я скачал последнюю версию (r52), есть некоторые интересные идеи, но для работы потребуются значительные инвестиции.

Pywiiuse (выше): хорошо в теории,

cwiid: не активно разрабатывается, только для Linux (не может компилироваться под Cygwin).

Подводя итог, можно сказать, что сейчас ничего нет с полки (24.03.2009). Будет продолжать съемки...

--Bryan

Я знаю, что ваш класс уже закончен, но для всех, кто ищет, 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])

Для тех, кто все еще ищет, я нашел и задокументировал простой простой способ сопряжения с Wii Remote с python, используя библиотеку lightblue. Я тестировал его на OS X, но он должен работать кроссплатформенно (т.е. на Linux)

Вот моя статья: http://smus.com/prototyping-wii-remote-python/

Я работал с wiimotelib для.NET, и он довольно стабильный. И содержит также удаленные расширения Wii, такие как Nunchcuk и другие.

Я рискну упустить момент, предложив вам взглянуть на Java-версию WiimoteWhiteboard Уве Шмидта

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

Он использует библиотеку WiiRemoteJ для Java.

В прошлом я безуспешно пытался использовать реализации Python, потому что они были неполными или не функциональными. Возможно, изучив рабочую версию Шмидта на Java, вы сможете определить, чего не хватает в Python.

Удачи в вашем классе.

pywiimote в Google Code может быть полезен, если найденная вами библиотека не работает на вас... попробуйте, если у вас есть время.

Это кажется довольно новым предложением, и может быть не лучше.

Удачи!

Я обновил pywiiuse для Python 3: https://github.com/arpruss/pywiiuse

В Windows вам нужно поместить libwiiuse.dll в каталог wiiuse pywiiuse. Для удобства здесь 64-битная сборка: https://github.com/arpruss/wiiuse/releases/ .

Измените свою версию Python на 2.5.2 Я верю, что она будет работать сейчас

Другие вопросы по тегам