40823231 cd2021

  • Home
    • Site Map
    • reveal
    • blog
  • About
  • stage1
    • w1製作討論
    • W2~W3製圖及模擬
      • 零件圖繪製
      • CoppeliaSim程式模擬
    • W4報告影片
  • W5
  • stage2
    • W6製作分工討論
    • W7~W8零件圖
    • W8~W9CoppeliaSim程式模擬
  • stage3
    • task1
    • task2
    • task3
      • 第11週
      • 第12週
      • 第13週
      • 第15週
    • 模擬影片
  • W15
    • 影片整理1
    • 影片整理2
  • W16
    • lua程式碼
    • 鍵盤指令程式
    • python remoteApi程式
    • require
    • 吸盤程式
lua程式碼 << Previous Next >> python remoteApi程式

鍵盤指令程式

W16 keyboard coppeliasim 場景檔

鍵盤程式碼指令

方向左鍵:主臂向左 方向右鍵:主臂向右

方向左鍵:小臂向左 方向右鍵:小臂向右

吸盤向下吸取:a

吸盤向上:t

吸盤放下:s

以下為keyborad程式碼:

function sysCall_init()
    joint01=sim.getObjectHandle('joint01')
    joint02=sim.getObjectHandle('joint02')
    joint03=sim.getObjectHandle('joint03')
    jointz=sim.getObjectHandle('jointz')
    sim.setJointTargetPosition(joint01,0)
    sim.setJointTargetPosition(joint02,0)
    sim.setJointTargetPosition(joint03,0)
    sim.setJointTargetPosition(jointz,0)
    deg1=0
    deg2=0
    deg3=0
end

function sysCall_actuation()
    message,auxiliaryData=sim.getSimulatorMessage()
    while message~=-1 do
        if (message==sim.message_keypress) then
            if (auxiliaryData[1]==2009) then
            deg1=deg1+1
            sim.setJointTargetPosition(joint01,deg1*math.pi/180)
            end
            if (auxiliaryData[1]==2010) then
            deg1=deg1-1
            deg3=deg2-deg1
            sim.setJointTargetPosition(joint01,deg1*math.pi/180)
            end
            if (auxiliaryData[1]==2007) then
            deg2=deg2+1
            deg3=deg1-deg2
            sim.setJointTargetPosition(joint02,deg2*math.pi/180)
            end
            if (auxiliaryData[1]==2008) then
            deg2=deg2-1
            deg3=deg1-deg2
            sim.setJointTargetPosition(joint02,deg2*math.pi/180)
            end
            if (auxiliaryData[1]==97) then
                sim.setJointTargetPosition(jointz,-0.037)
                sim.setIntegerSignal("pad_switch",1)
            end
            if(auxiliaryData[1]==116) then
                sim.setJointTargetPosition(jointz,0)
            end
            if(auxiliaryData[1]==115) then
                sim.setIntegerSignal("pad_switch",0)
            end
            sim.setJointTargetPosition(joint03,deg3*math.pi/180)
        end
    message,auxiliaryData=sim.getSimulatorMessage()
    end
end

程式碼筆記:

    message,auxiliaryData=sim.getSimulatorMessage()
    while message~=-1 do
        if (message==sim.message_keypress) then

第一行是指數據或是參數會等於模擬得到模擬器的訊息

第二行是指當訊息不是-1時,得做出以下動作

第三行是指訊息會等於鍵盤代碼的訊號

if (auxiliaryData[1]==2009) then
deg1=deg1+1
sim.setJointTargetPosition(joint01,deg1*math.pi/180)

當鍵盤代號為2009(方向向右)時會執行下面的程式碼


lua程式碼 << Previous Next >> python remoteApi程式

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