在 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>區塊是一個布林區塊,它傳回 true 或 false 的條件,適合與其他區塊具有六邊形(六邊形)空間的任何區塊內部。

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

求物體的距離.png

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

True 或 false 將被報告並出現在監控控制台中。 

要了解有關 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: