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

Кажется, каждый раз, когда я запускаю его, он выводит EVENT 2-5 раз, пока не будет трассирована. Я понятия не имею, что делать в этот момент, я пытался в течение последних двух дней заставить его работать.

Спасибо!


person Community    schedule 27.01.2009    source источник
comment
Я думаю, когда вы говорите, что я ничего НЕ могу получить... вы на самом деле можете иметь в виду, что я НЕ могу ничего получить... ?   -  person Skeolan    schedule 27.01.2009
comment
э, да, я только что заметил.   -  person    schedule 27.01.2009
comment
Какой учитель проверяет учеников на том, что он не может заставить работать сам? К тому же, Ник, ты действительно не тот анон   -  person    schedule 27.01.2009


Ответы (8)


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

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

Вы также должны просто уметь делать

easy_install wiiuse

Так как я также разместил его на pypi.

person Tim Swast    schedule 23.10.2010

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

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

pywiiuse (вверху): хорошо в теории,

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

Подводя итог, сейчас (24 марта 2009 г.) ничего готового нет. Продолжу обследование...

--Брайан

person Community    schedule 24.03.2009

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

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

person Kugel    schedule 27.11.2010

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

Вот мой отчет: http://smus.com/prototyping-wii-remote-python/< /а>

person borismus    schedule 29.05.2010

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

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

Удачи!

person Skeolan    schedule 27.01.2009
comment
Тоже не сработало. Не подключается к wiimote, и библиотека слишком похожа на WIP, не поддерживающую акселерометр (это то, что мне действительно нужно). В любом случае спасибо за ссылку. - person ; 27.01.2009

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

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

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

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

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

person Community    schedule 27.01.2009

Измените версию Python на 2.5.2, я думаю, теперь она будет работать.

person Community    schedule 23.06.2009