在 VEXcode VR 中使用距離感測器

VR 機器人上的距離感測器會報告 VR 機器人與最近物體之間的距離。 感測器利用雷射從物體反射並返回感測器所需的時間來計算距離。


VR機器人上的距離感測器

前眼朝下

距離感測器是報告 VR 機器人與最近固體物體之間距離的感測器。

VR 由上而下

距離感測器使用與聲納設備相同的原理來測量聲音。 它透過感測器一側的發射器發出微小的雷射脈衝,然後計算光反射回感測器另一側的接收器所需的時間。 感測器根據脈衝往返所需的時間來計算距離。 然後,距離感測器向 VR 機器人報告最近物體的距離。

Screen_Shot_2021-12-10_at_2.45.39_PM.png

當距離 VR 機器人前方的距離越來越遠時,距離感測器的視野寬度會改變:

  • 當尋找小於 1000 毫米(約 39 英吋)遠的物體時,感測器可以偵測 10 度視野內的物體。
  • 當尋找 1000 毫米(約 39 英吋)和 2000 毫米(約 78 英吋)之間的物體時,感測器可以偵測 5 度視野內的物體。
  • 當尋找大於 2000 毫米(約 78 英吋)遠的物體時,感測器可以偵測 2 度視野內的物體。

距離感測器的常見用途

VR 由上而下

距離感測器可以偵測VR機器人前方是否有物體。 這可以用來避開障礙物。

VEXcode VR 區塊 牆迷宮遊樂場
前距範例.png 遊樂場距離1.jpeg
VEXcode VR Python
def main():
while not front_distance.get_distance(MM) < 50:
(FORWARD)
(20, MSEC)
()

距離感測器可以測量距離感測器正面與物體正面之間的距離。 這有助於完成迷宮而不會不斷撞到牆壁或躲避物體。

VEXcode VR 區塊 動態城堡破壞者遊樂場
永遠的距離 example.png

遊樂場距離 2.jpeg

VEXcode VR Python
def main():
while True

if front_distance.found_object(): 2drivetrain.drive(FORWARD)
else:
(RIGHT)
(20,MSEC)

在此範例中,如果距離感測器發現物體,VR 機器人將向前行駛。 如果沒有偵測到物體,VR機器人將右轉並繼續檢查是否有物體。

注意: 此範例將找到第一棟建築物,但需要改進以避免從桌子上掉下來。


將距離感測器與 VEXcode VR 區塊結合使用

距離感測器.png

與距離感測器一起使用的區塊可以在“感測”類別中找到。

<發現物體的距離> 塊

距離發現物體塊.png

距離感測器使用 <距離發現物件>塊偵測其前面是否有物件。 距離感測器可以偵測距離感測器 3000 毫米(約 118 英吋)範圍內的物體或表面。

等到距離找到object.png

<Distance found object>區塊是一個布林區塊,它傳回 truefalse 的條件,適合與其他區塊具有六邊形(六邊形)空間的任何區塊內部。

有關布爾塊的更多信息, 查看這篇文章

求物體的距離.png

<Distance found object> 塊的值是一個布林塊,當距離感測器靠近物體時報告 true,當距離感測器距離物體不夠近時報告 false。

Truefalse 將被報告並出現在監控控制台中。 

要了解有關 Monitor Console 的更多信息, 請查看本文

街區(距離)

距離下拉式選單.png

使用(距離)方塊,距離感測器可以報告最近物體的距離,以毫米 (mm) 或英吋為單位。

距離大於.png

(距離)區塊報告數值並適合任何具有橢圓形空間的區塊。

有關記者區塊的更多信息, 查看這篇文章。 

前部距離(毫米或英吋).png

以毫米 (mm) 或英吋為單位的(距離)區塊的值可以顯示在 VEXcode VR 的監視器控制台上。 

要了解有關 Monitor Console 的更多信息, 請查看本文


在 VEXcode VR Python 中使用距離感測器

Screen_Shot_2021-11-11_at_9.49.14_AM.png

要開始使用 Python 對距離感測器進行編程,您需要先打開一個文字專案 VEXcode VR。 欲了解更多信息,請參閱 這篇文章。

Screen_Shot_2021-12-10_at_2.26.12_PM.png

接下來,在工具箱中找到 Sensing 類別,找到 get_distance 指令。 這些函數報告有關感測器的布林值或數值。

Screen_Shot_2021-12-10_at_2.38.31_PM.png

若要將命令新增至專案中,您可以從工具箱中拖曳到命令,或使用自動完成功能在工作區中鍵入命令。

要了解有關使用 Python 在 VEXcode VR 中自動完成的更多信息, 請參閱本文。

def main(): 
while not front_distance.get_distance(MM) < 50:
(FORWARD)
(20, MSEC)
()

當您希望機器人執行諸如行駛之類的操作直到距離感測器距離牆壁 50 毫米或更小,然後停止或轉彎時,可以將 while 循環與機器人上的感測器一起使用。

在本專案中,當距離感測器報告的值大於50mm時,機器人將向前行駛,當距離感測器距離牆壁小於50mm時,機器人將停止行駛。

def main():
monitor_sensor("front_distance.get_distance", "front_distance.found_object")

get_distance 指令的值可以顯示在 VEXcode VR 的監視器控制台上。 要了解有關在 VEXcode VR Python 中使用監視器控制台的更多信息, 請參閱本文。

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: