![]()  | 
	
| 
		 
			 
			#1  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
			
			 
				
				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!  | 
| 
		 
			 
			#2  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			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 ) Code: 
	if wiimote.isButtonDown(wii.BUTTON_UP): forwardMovementAmount = viz.elapsed() * MOVE_SPEED car.setPosition( [ 0, 0, forwardMovementAmount], viz.REL_LOCAL )  | 
| 
		 
			 
			#3  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 Quote: 
	
 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  | 
| 
		 
			 
			#4  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			Can you post the script you are using?
		 
		
		
		
		
		
		
		
		
	
	 | 
| 
		 
			 
			#5  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			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.  | 
| 
		 
			 
			#6  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			Notice: vizact.onsensordown(........................,updat  eCar'''the letters can be separate''') 
		
		
		
		
		
		
		
		
	
	It's updateCar.  | 
| 
		 
			 
			#7  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			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)  | 
| 
		 
			 
			#8  
			
			
			
			
			
		 
		
	 | 
|||
		
		
  | 
|||
| 
		
	
		
		
		
		 
			
			Thank you Darkmax ! It can run smoothly !! 
		
		
		
		
		
		
		
		
	
	^^y  | 
![]()  | 
	
	
		
  | 
	
		
  | 
			 
			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 |