Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

タッチセンシング

micro:bit V2 には、基本的なタッチセンシングのサポートが組み込まれています。これにより、ボード前面の特定のピンや金色のロゴに誰かが触れたことを検出できます。機械式ボタンとは異なり、この機能は、指がピンに近づいたときの電荷のわずかな変化を検出して動作します。これにより、タッチスクリーンをタップするのと同じように、単純なタッチでアクションをトリガーできるインタラクティブなプロジェクトを作成できます。

micro:bit でタッチセンシングが可能なのは、身体がピンに接触したときの電圧変化を検出する特別な回路とソフトウェアがあるためです。

タッチセンシングの仕組み

micro:bit V2 は、特定の GPIO ピン(P0、P1、P2)とロゴ(micro:bit v2 ピンマップ に示されているように、P1_04 GPIO ピンに接続されています)で静電容量式タッチセンシングを使用します。これは、通常は機械式スイッチを押すことを伴う一般的なデジタル入力とは異なります。

静電容量式センシングは、静電容量の変化の検出に基づいています。身体は導体であり、触れたり近づいたりすると micro:bit のピンとの間にコンデンサを形成します。ボードは、ピンが電気的に充電または放電するのにかかる時間を監視し、指があると、身体による追加の静電容量のためにこの時間が変化します。

弱いプルアップ抵抗

タッチセンシングモードでは、通常 10 MΩ の内部の弱いプルアップ抵抗が使用され、GPIO ピンに接続されます。この抵抗はピンを電源電圧(約 3.0V)まで引き上げ、触れていないときは入力を論理 HIGH 状態に保ちます。

タッチセンシング

ピン(またはロゴ)に触れると、指が導体として働き、(身体と周囲の環境を介して)グラウンドへの経路を作るため、ピンがわずかに放電します。その結果、検出可能な電圧降下が生じ、論理 LOW として読み取られます。

ピンの設定

タッチセンシングを使用する場合、ピンはフローティング入力として設定する必要があります。このモードでは、他にピンを駆動するものがないため、ピン上の電圧が微小な電流(人が触れたときに生じるようなもの)の影響を受けるようになります。

#![allow(unused)]
fn main() {
let mut touch_input = board.pins.p1_04.into_floating_input();
}

これにより、デフォルトのプルダウン抵抗が無効になり、外部の静電容量がピン電圧に影響を与えられるようになります。

コードでタッチを検出する

ピンを設定したら、is_low() を使用して現在の電圧レベルを確認できます:

#![allow(unused)]
fn main() {
if touch_input.is_low().unwrap() {
    // ピンに触れている
}
}