4.3 電極キーボード

プロジェクトに多数のタッチスイッチを追加したい場合、MPR121は良い選択です。このモジュールには導体で拡張できる電極があります。 例えば、電極をバナナに接続すると、そのバナナをタッチスイッチに変えることができます。

必要な部品

このプロジェクトには、以下の部品が必要です。

全てを一つのキットで購入するのも便利です、リンクはこちら:

名前

このキットに含まれるアイテム

リンク

ケプラーキット

450以上

Kepler Kit

もちろん、以下のリンクから個々の部品を購入することもできます。

項番

部品

数量

リンク

1

Raspberry Pi Pico W

1

BUY

2

マイクロUSBケーブル

1

3

ブレッドボード

1

BUY

4

ジャンパーワイヤー

数本

BUY

5

MPR121モジュール

1

回路図

sch_mpr121

配線

wiring_mpr121

コード

注釈

  • kepler-kit-main/micropython パス下の 4.3_electrode_keyboard.py ファイルを開くか、このコードをThonnyにコピーして、「Run Current Script」をクリックするか、単にF5キーを押して実行してください。

  • 画面の右下隅にある "MicroPython (Raspberry Pi Pico)" インタープリタをクリックするのを忘れないでください。

  • 詳細なチュートリアルは、 コードを直接開いて実行する を参照してください。

  • このプロジェクトでは mpr121.py というライブラリが必要です。Pico Wにアップロードされているか確認してください。詳細なチュートリアルは 1.4 Picoにライブラリをアップロード を参照してください。

from mpr121 import MPR121
from machine import Pin, I2C
import time

i2c = I2C(1, sda=Pin(6), scl=Pin(7))
mpr = MPR121(i2c)

# すべてのキーを確認
while True:
    value = mpr.get_all_states()
    if len(value) != 0:
        print(value)
    time.sleep_ms(100)

プログラムが動作すると、MPR121の12個の電極に手を触れると、触れた電極が表示されます。

電極を他の導体、例えばフルーツやワイヤー、箔などに拡張して接続することで、これらの電極をトリガーするさまざまな方法が増えます。

仕組みは?

mpr121ライブラリには、 MPR121 クラスに機能が統合されています。

from mpr121 import MPR121

MPR121はI2Cモジュールであり、 MPR121 オブジェクトを初期化するためにI2Cピンのセットを定義する必要があります。この時点で、モジュールの電極の状態が初期値として記録されます。電極が拡張されている場合、初期値をリセットするために例を再実行する必要があります。

from machine import Pin, I2C
i2c = I2C(1, sda=Pin(6), scl=Pin(7))
mpr = MPR121(i2c)

その後、 mpr.get_all_states() を使用して電極がトリガーされたかどうかを読み取ります。もし電極2と3がトリガーされた場合、値 [2, 3] が生成されます。

while True:
    value = mpr.get_all_states()
    if len(value) != 0:
        print(value)
    time.sleep_ms(100)

特定の電極を検出するために mpr.is_touched(electrode) も使用できます。トリガーされた場合、 True を返し、そうでない場合は False を返します。

while True:
    value = mpr.is_touched(0)
    print(value)
    time.sleep_ms(100)