WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 05-13-2010, 10:46 AM
superantTTY superantTTY is offline
Member
 
Join Date: May 2010
Posts: 7
How to create mini car driving by wiimote

Hello, all !!
Like the example "joystick_driving.py", I can control the mini car driving by joystick.
However, now I want to control the mini car driving by wiimote.
I think that key points may be one import,import vizjoy, and two definition,def joyMove(e) & def updateCar().
And there is a Initialize global variable,joyPOS, do I need to initial something like that for wiimote to create the car driving??

How can I do ??

Thank you very much!!

Best Regards!
Reply With Quote
  #2  
Old 05-13-2010, 04:08 PM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,461
You could modify the updateCar function to use the wiimote buttons to control the car. For example, you could replace:
Code:
#Use y position of joystick to compute forward car movement
forwardMovementAmount = viz.elapsed() * MOVE_SPEED * -joyPOS[1]
car.setPosition( [ 0, 0, forwardMovementAmount], viz.REL_LOCAL )
with:
Code:
if wiimote.isButtonDown(wii.BUTTON_UP):
	forwardMovementAmount = viz.elapsed() * MOVE_SPEED
	car.setPosition( [ 0, 0, forwardMovementAmount], viz.REL_LOCAL )
Reply With Quote
  #3  
Old 05-14-2010, 07:12 AM
superantTTY superantTTY is offline
Member
 
Join Date: May 2010
Posts: 7
Quote:
Originally Posted by Jeff View Post
You could modify the updateCar function to use the wiimote buttons to control the car. For example, you could replace:
Code:
#Use y position of joystick to compute forward car movement
forwardMovementAmount = viz.elapsed() * MOVE_SPEED * -joyPOS[1]
car.setPosition( [ 0, 0, forwardMovementAmount], viz.REL_LOCAL )
with:
Code:
if wiimote.isButtonDown(wii.BUTTON_UP):
	forwardMovementAmount = viz.elapsed() * MOVE_SPEED
	car.setPosition( [ 0, 0, forwardMovementAmount], viz.REL_LOCAL )
I already try the code that you provide, the car can move, but something is strange...
According to "joystick_driving.py", the car can move smoothly instead of moving step by step. For example, when I press the joystick's up button or left button, it can always move forward or turn left until I release the button.
However, now I try the code you provide, it can move, but its movement is step by step. For example, when I press the wiimote's up button or left button, it can just move a small step and then stop. If I keep pressing the button, it becomes not to move!
I would like to use wiimote to make the same preference.
How can I modify it ??

Thanks for your help
Kevin
Reply With Quote
  #4  
Old 05-14-2010, 11:12 AM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,461
Can you post the script you are using?
Reply With Quote
  #5  
Old 05-15-2010, 10:07 PM
superantTTY superantTTY is offline
Member
 
Join Date: May 2010
Posts: 7
Of course! This is my script.

################################################## #########
MOVE_SPEED = 10
TURN_SPEED = 90

import viz

viz.go()

import vizinfo
vizinfo.add('This is a car driving test by wiimote')

viz.phys.enable()

ground = viz.add('tut_ground.wrl')
ground.collidePlane()

car = viz.add('mini.osgx')
car.setPosition(0,0,-10)
car.setScale(1,1,1)
car.setEuler(0,0,0)
car.collideBox()

wii = viz.add('wiimote.dle')
wiimote = wii.addWiimote()

wiimote.led = wii.LED_1

def updateCar():

if wiimote.isButtonDown(wii.BUTTON_UP):
forwardMovementAmount = viz.elapsed() * MOVE_SPEED
car.setPosition( [ 0, 0, forwardMovementAmount], viz.REL_LOCAL )
if wiimote.isButtonDown(wii.BUTTON_DOWN):
forwardMovementAmount = viz.elapsed() * MOVE_SPEED
car.setPosition( [ 0, 0, -forwardMovementAmount], viz.REL_LOCAL )
if wiimote.isButtonDown(wii.BUTTON_LEFT):
rotationAmount = viz.elapsed() * TURN_SPEED
car.setEuler( [ -rotationAmount, 0 , 0 ] , viz.REL_LOCAL )
if wiimote.isButtonDown(wii.BUTTON_RIGHT):
rotationAmount = viz.elapsed() * TURN_SPEED
car.setEuler( [ rotationAmount, 0 , 0 ] , viz.REL_LOCAL )

vizact.onsensordown(wiimote,wii.BUTTON_UP,updateCa r)

vizact.onsensordown(wiimote,wii.BUTTON_DOWN,update Car)

vizact.onsensordown(wiimote,wii.BUTTON_LEFT,update Car)

vizact.onsensordown(wiimote,wii.BUTTON_RIGHT,updat eCar)


viz.MainView.move(0,0,-15)

################################################## #########

And I also have a question.
Why my car can jump in the beginning? I'd like it to be static in the beginning.

How can I do ?

Thanks for your help, Jeff !!

Kevin

Last edited by superantTTY; 05-15-2010 at 10:16 PM.
Reply With Quote
  #6  
Old 05-15-2010, 10:28 PM
superantTTY superantTTY is offline
Member
 
Join Date: May 2010
Posts: 7
Notice: vizact.onsensordown(........................,updat eCar'''the letters can be separate''')

It's updateCar.
Reply With Quote
  #7  
Old 05-17-2010, 08:17 AM
Darkmax Darkmax is offline
Member
 
Join Date: Feb 2010
Posts: 108
use code tags please try this update car:
Code:
#Update position of car every frame
def updateCar():
	if wiimote.isButtonDown(wii.BUTTON_UP):
		forwardMovementAmount = viz.elapsed() * MOVE_SPEED
		car.setPosition( [ 0, 0, forwardMovementAmount], viz.REL_LOCAL )
	
	if wiimote.isButtonDown(wii.BUTTON_DOWN):
		backwardMovementAmount = viz.elapsed() * MOVE_SPEED
		car.setPosition( [ 0, 0, -backwardMovementAmount], viz.REL_LOCAL )
	
	if wiimote.isButtonDown(wii.BUTTON_RIGHT):
		rotationAmount = viz.elapsed() * TURN_SPEED
		car.setEuler( [ rotationAmount, 0 , 0 ] , viz.REL_LOCAL )
	
	if wiimote.isButtonDown(wii.BUTTON_LEFT):
		rotationAmount = viz.elapsed() * TURN_SPEED
		car.setEuler( [ -rotationAmount, 0 , 0 ] , viz.REL_LOCAL )

vizact.ontimer(0,updateCar)
And i think your car jump at first because the physics, maybe because they are colliding
Reply With Quote
  #8  
Old 05-18-2010, 06:18 AM
superantTTY superantTTY is offline
Member
 
Join Date: May 2010
Posts: 7
Thank you Darkmax ! It can run smoothly !!
^^y
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Create Button or Text Chrissy2009 Vizard 1 07-15-2009 06:34 PM
Wiimote in 4 sided Cave Sjaak Vizard 2 05-20-2009 02:05 PM
Mac Mini Sound Server ? djdesmangles Vizard 3 05-14-2009 01:44 PM
wiimote and sensor bar masaki Vizard 1 03-06-2008 04:07 PM
driving simulator paulpars Vizard 1 05-12-2006 12:46 PM


All times are GMT -7. The time now is 07:29 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, vBulletin Solutions, Inc.
Copyright 2002-2018 WorldViz LLC