• 家長登入
  • 報名專線
大拇指教室
  • 教育理念
    • 教育理念
    • 學習地圖
    • 文章分享
  • 課程列表
    • 樂高動力機械SPM 6+
    • 樂高創意程式BOOST 7+
    • 樂高科技機器人EV3 9+
    • Scratch遊戲程式設計 8+
    • Python程式設計 11+
    • C++程式設計 12+
    • 最新課表
  • 2023夏令營
    • 班
  • 學生作品
  • 聯絡我們
    • 大拇指粉絲團
X

訂閱課程訊息

  • Email:
聯絡我們

請您向大拇指按讚! 
我們會用大拇指多鼓勵孩子

地址:台北市忠孝東路五段246號5樓
教室連絡資訊

訂閱電子報
 
部落格

使用觸碰感應器 | 樂高機器人EV3使用說明

使用觸碰感應器

觸碰感應器檢測是否按入了感應器正面的按鈕。例如,可以使用觸碰感應器檢測機器人在驅動時與某個物體碰撞的情況。還可以使用手指壓下觸碰感應器以觸發某個動作。
觸碰感應器可以指示它是否被按入。它不能測量按入按鈕的程度或力度。觸碰感應器提供邏輯資料(“是”或“否”)。觸碰感應器按鈕的位置稱爲其“狀態”,按入時爲“是”,未按入(鬆開)時爲“否”。

觸碰感應器還可以跟蹤在過去是否壓下然後鬆開了按鈕。這稱爲“碰撞”,例如可用於檢測手指壓下。有關更多資訊,請參考了解“碰撞”。
觸碰感應器資料
觸碰感應器可以提供以下資料:
資料類型備註
狀態 邏輯如果按入了按鈕,則爲“是”,否則爲“否”。
壓下 邏輯如果壓下,則爲“是”,否則爲“否”(與“狀態”相同)。
鬆開 邏輯如果壓下,則爲“否”,否則爲“是”(與“狀態”相反)。
碰撞 邏輯如果在過去壓下並鬆開了按鈕,則爲“是”。下一次“碰撞”發生因而需要新的壓下和鬆開。
“壓下”使用範例
下面是有關如何使用觸碰感應器的“壓下”資料的一些範例。
範例 1:驅動至壓下了觸碰感應器
此程式使機器人向前直線驅動,直至壓下了觸碰感應器,隨後機器人停止。它使用“觸碰感應器 - 比較 - 觸碰”模式的等待方塊測試“壓下”。
提示和技巧
當需要在等待感應器期間驅動時,請記住使用移動轉向方塊的“開啓”模式。
範例 2:每當按住觸碰感應器時運行馬達(方法 1)
此程式每當壓下並按住觸碰感應器時便使馬達運行。每當鬆開觸碰感應器時,馬達便停止。此程式使用“觸碰感應器 - 比較 - 觸碰”模式的選擇方塊測試“壓下”。測試的結果用於選擇開啓或關閉馬達。會在迴圈中連續重覆進行測試。
範例 3:每當按住觸碰感應器時使主機LED燈閃爍
此程式以橙色開啓主機LED燈,每當按住觸碰感應器時使其閃爍。它使用“測量”模式的觸碰感應器方塊獲取觸碰感應器的狀態。結果使用邏輯資料線連接到主機按鈕方塊的“閃爍”輸入。
“鬆開”使用範例
下面是有關如何使用觸碰感應器的“鬆開”資料的一些範例。
範例 4:每當發生觸碰感應器壓下時發出蜂鳴聲
每當壓下觸碰感應器時,此程式便發出短暫的音調。對於每次壓下,只發出一聲音調。此程式使用“觸碰感應器 - 比較 - 觸碰”模式的等待方塊測試“壓下”,然後另一個等待方塊等待“鬆開”,再使迴圈繼續。
提示和技巧
如果從此程式中刪除針對“鬆開”的等待,則會發現只要按住觸碰感應器,音調便會一直重覆。這是因爲如果已壓下觸碰感應器,則針對“壓下”的等待會立即繼續執行下一個方塊。嘗試!
範例 5:每當按住觸碰感應器時運行馬達(方法 2)
此程式每當壓下並按住觸碰感應器時便使馬達運行。每當鬆開觸碰感應器時,馬達便停止。此程式使用“觸碰感應器 - 比較 - 觸碰”模式的等待方塊等待“壓下”以啓動馬達,然後另一個等待方塊等待“鬆開”,再停止馬達。會在迴圈中重覆進行該過程。
提示和技巧
此程式使用不同方法實現與上面的範例 2 相同的目的。
了解“碰撞”
除了告知當前是壓下還是鬆開了觸碰感應器按鈕,觸碰感應器還跟蹤在過去是否壓下並鬆開了它,這稱爲“碰撞”。這樣可以方便地查明是否壓下了觸碰感應器(如按鈕),而無需不斷檢查是否壓下,然後等待鬆開。

在觸碰感應器指示受到了碰撞之後,它不會再次指示“碰撞”,直至又一次壓下然後鬆開了觸碰感應器。例如,這樣可以方便地確保每次壓下對應於僅發生一次的動作。

下表以一係列步驟的形式顯示了一個範例,其中兩次壓下並鬆開觸碰感應器。下表顯示在每個動作之後測試“壓下”、“鬆開”和“碰撞”的程式的結果。
步驟動作壓下鬆開碰撞
1 按鈕開始時鬆開僞真僞
2 按入按鈕真僞僞
3 鬆開按鈕僞真真
4 按鈕仍然鬆開,程式再次測試觸碰感應器僞真僞
5 第二次壓下按鈕真僞僞
6 按住按鈕,程式再次測試觸碰感應器真僞僞
7 鬆開按鈕僞真真
8 按鈕仍然鬆開,程式再次測試觸碰感應器僞真僞
請注意,當按住按鈕時,觸碰感應器會在每次程式測試它時繼續指示“壓下”。但是,在鬆開按鈕之後,感應器在程式第一次測試“碰撞”時只會指示“碰撞”。感應器不會再次指示“碰撞”,直至又一次壓下並鬆開了它。
“碰撞”使用範例
下面顯示了有關如何使用觸碰感應器的“碰撞”資料的一些範例。
範例 6:在壓下觸碰感應器時更改顯示
此程式會在每次碰撞(壓下然後鬆開)觸碰感應器時更改顯示,使 EV3 主機顯示畫面顯示“Zero”,然後顯示“One”,再然後顯示“Two”。
提示和技巧
如果更改此程式中的等待方塊以測試“壓下”而不是“碰撞”,則會發現顯示會從“Zero”直接變爲“Two”,跳過了“One”。嘗試!這是因爲顯示方塊執行的速度太快,這樣當第二個“等待壓下”測試進行時,您的手指仍處於第一次壓下中按住按鈕的狀態,因此第二個等待會立即結束。當測試出“碰撞”時,對於每個不同的壓下,只有一個測試會成功。
範例 7:以某種模式驅動,直至壓下觸碰感應器
此程式使機器人重覆直線驅動然後轉彎的模式,直至壓下觸碰感應器(充當機器人的“停止”按鈕)。在壓下觸碰感應器之後,機器人會在下一個轉彎之後停止。此程式使用“觸碰感應器”模式的迴圈重覆驅動,直至碰撞(壓下然後鬆開)觸碰感應器。
提示和技巧
如果使用“壓下”而不是“碰撞”嘗試此程式,則會發現壓下觸碰感應器通常不會使機器人停止。嘗試!這是因爲迴圈僅在兩個移動方塊完成之後短暫測試感應器。如果在移動方塊正在運行期間壓下並鬆開感應器,則不會發現“壓下”狀態。使用“碰撞”時,觸碰感應器會記住在過去壓下並鬆開了它。
觸碰感應器方塊和模式
下表顯示可以與觸碰感應器一起使用的所有程式方塊和模式。
方塊模式用途
等待觸碰感應器 - 比較等待觸碰感應器受到壓下、鬆開或碰撞。
等待觸碰感應器 - 更改等待觸碰感應器狀態更改。
迴圈觸碰感應器重覆方塊序列,直至觸碰感應器受到壓下、鬆開或碰撞。
選擇觸碰感應器根據是否壓下、鬆開或碰撞了觸碰感應器,在兩個方塊序列之間進行選擇。
觸碰感應器測量通過邏輯資料線獲取當前觸碰感應器狀態(是否“壓下”)。
觸碰感應器比較測試觸碰感應器是否受到壓下、鬆開或碰撞,並通過邏輯資料線獲取結果。
資料記錄請參考“資料記錄”。
觸碰
快速連結
  • 觸碰感應器資料
  • “壓下”使用範例
  • “鬆開”使用範例
  • 了解“碰撞”
  • “碰撞”使用範例
  • 觸碰感應器方塊和模式
返回EV3軟體文件 »
招募夥伴|部落格|Scratch遊戲天堂|運算思維|FB粉絲團|Google商家|聯絡我們
大拇指教室 (北補7153號) 地址:台北市忠孝東路五段246號5樓(永春捷運站旁) 聯絡我們