40823219 cd2021

  • Home
    • Site Map
    • reveal
    • blog
  • About
  • stage1
    • W1討論小組專題
    • W2小組繪圖
    • W3程式模擬
    • W4影片及報告
  • stage2
    • W5 討論主題及分工
    • W6~W7繪製圖檔
    • W7~W8程式模擬
    • W9小組報告
  • stage3
    • W10
      • task1
      • task2
    • W11
    • W12
    • W13
    • 零件
      • 彈珠檯
      • 迷宮
    • 模擬
      • 彈珠檯模擬
      • 火車模擬
  • W5
  • W15
  • W16
  • W18
模擬 << Previous Next >> 火車模擬

彈珠檯模擬

stage3模擬,但模擬過程中,一開始的擊球機構沒控制好的話會把球彈到後面去,這邊還需要修改一下,這次是用lua的程式碼下去,可以用鍵盤控制,分別是q、p、a、;、z、.。

import sim as vrep
import math
import random
import time
import keyboard
  
print ('Start')
  
# Close eventual old connections
vrep.simxFinish(-1)
# Connect to V-REP remote server
clientID = vrep.simxStart('127.0.0.1', 19997, True, True, 5000, 5)
   
if clientID !=-1:
    print ('Connected to remote API server')
    
    res = vrep.simxAddStatusbarMessage(
        clientID, "40823222",
        vrep.simx_opmode_oneshot)
           
    if res not in (vrep.simx_return_ok, vrep.simx_return_novalue_flag):
        print("Could not add a message to the status bar.")
           
    opmode = vrep.simx_opmode_oneshot_wait
      
    vrep.simxStartSimulation(clientID, opmode)
    ret,shaft1=vrep.simxGetObjectHandle(clientID,"joint1",opmode)
    ret,shaft2=vrep.simxGetObjectHandle(clientID,"joint2",opmode)
    ret,shaft3=vrep.simxGetObjectHandle(clientID,"joint3",opmode)
 
    while True:
        if keyboard.is_pressed("q"):
            vrep.simxSetJointTargetPosition(clientID,shaft1,-200,opmode)
            print("q")
             
        if keyboard.is_pressed("p"):
            vrep.simxSetJointTargetPosition(clientID,shaft1,200,opmode)
            print("p")
             
        if keyboard.is_pressed("a"):
            vrep.simxSetJointTargetPosition(clientID,shaft2,90,opmode)
            print("a")
 
        if keyboard.is_pressed(";"):
            vrep.simxSetJointTargetPosition(clientID,shaft2,0,opmode)
            print(";")
             
        if keyboard.is_pressed("z"):
            vrep.simxSetJointTargetPosition(clientID,shaft3,90,opmode)
            print("z")
 
        if keyboard.is_pressed("."):
            vrep.simxSetJointTargetPosition(clientID,shaft3,0,opmode)
            print(".")            
else:
    print ('Failed connecting to  remote API server')
    print ('End')

if keyboard.is_pressed("q"):
vrep.simxSetJointTargetPosition(clientID,shaft1,-200,opmode)

假設說按鍵按q的話,shaft1的旋轉軸會移動角度到-200度。


模擬 << Previous Next >> 火車模擬

Copyright © All rights reserved | This template is made with by Colorlib