Raspberry Pi Pico のタッチ入力としてバナナを使用する方法
バナナをタッチして LED を制御します。
静電容量式タッチは、誘電率を測定することでユーザー入力を検出する簡単な手段です。 ベースライン測定値と異なる場合は、入力として使用できます。 以前は、MPR121 タッチ センサーを使用して、Raspberry Pi Pico を使用してイベントをトリガーしました。 MPR121 は、ワニ口クリップと標準ワイヤー ゲージ用のさまざまなフォーム ファクターを備えた信頼性の高い Stemma QT センサーです。 私たちはこれをとても気に入っているので、ベスト Stemma QT および Grove アドオン ページのリストに入れています。 しかし、センサーボードを使用せずにそれを行う方法はありますか?
一本のワイヤーとバナナに入った 1 メガ オームの抵抗器を使用するだけで、独自のタッチ インターフェイスを作成し、健康的なスナックを食べることができます。 このハウツーでは、バナナを使用して LED のオンとオフを切り替えます。
なぜそんなに単純なことなのでしょうか? LED のオン/オフを学ぶことは、プロジェクトの各部分がどのように機能するかを理解する最良の方法です。 確かに、バナナをスペースバーに変えて Flappy Birds をしたり、それを使ってブラウザ ウィンドウを開いて友達を「リックロール」したり、ロボットを起動してドアに向けて猛ダッシュすることもできます。 しかし、その前に、物事がどのように、そしてなぜ機能するのかを理解する必要があります。素朴な LED は、これを行うための安価で簡単な方法です。
回路には入力と出力の 2 つの部分があります。 入力はバナナ (オプション) で、長いジャンパー ワイヤを使用して Raspberry Pi Pico の GPIO 16 に接続されます。 GPIO 16 には、GND に接続するための 1 メガオームの抵抗も付いています。 これはプルダウン抵抗であり、GPIO ピンが一定の 0V 基準になるようにします。 これがないと入力が不安定になります。 このプロセスは複数の入力に対して繰り返すことができます。唯一の制限は GPIO ピン、1 メガオームの抵抗器、およびバナナです。
出力は、長い脚 (アノード) が GPIO 15 に接続され、短い脚 (カソード) が 100 オームの抵抗を介して GND に接続された単純な LED です。
バナナは導電性のあるものであれば何でも代用できます。 アルミホイル、プレイドー、その他の果物/野菜を入力として使用できます。 裸のワイヤーを使用して料理の入力を省略することもできます。 場合によっては、この方がうまく機能します。
次に進む前に、回路を構築し、接続を再確認してください。
このプロジェクトに CircuitPython を選択したのは、2 つの主な理由からです。 1 つは、非常に使いやすく、理解しやすいことです。 私たちのコードは読みやすく、デバッグしやすく、Chromebook を含むあらゆるデバイスで作成できます。 2 つ目は、CircuitPython には、GPIO を使用してタッチ入力を簡単に作成できる Touchio モジュールがあります。 ただし、プロジェクトを開始する前に、最新バージョンの CircuitPython を Raspberry Pi Pico に書き込む必要があります。
1.Raspberry Pi Pico の公式 CircuitPython ページに移動します。そして最新リリースの UF2 ファームウェア イメージをダウンロードします。これを書いている時点では、これは CircuitPython 8.10 でした。 Wi-Fi が必要ないため Raspberry Pi Pico を選択しましたが、このプロジェクトは Web イベントをトリガーするために使用できます。そのためには Raspberry Pi Pico W が必要です。
2.BOOTSEL ボタンを押したまま、Raspberry Pi Pico をコンピュータに接続します。新しいドライブ RPI-RP2 が表示されます。
3.ダウンロードしたCircuitPython UF2ファイルをRPI-RP2にコピーします。これにより、CircuitPython が Pico の内部フラッシュ ストレージに書き込まれます。 新しいドライブCIRCUITPYが表示されます。
コードを書くために、Windows 10 で Thonny を使用しました。テキスト エディターは自由に選択できますが、Thonny には CircuitPython (および MicroPython) が統合されているため、使いやすくなっています。 何よりも無料で、Windows、macOS、Linux デバイスに簡単にインストールできます。
1.Thonnyをダウンロードしてインストールしますまだお持ちでない場合。Thonny は、Python 3、MicroPython、CircuitPython をカバーする Python エディターです。
2.Thonny を開き、[ツール] >> [オプション] に移動します。
3.[インタープリター] を選択し、インタープリターを CircuitPython に設定し、ポートを自動に設定して、[OK] をクリックします。Thonny は、CircuitPython を実行している Pico に接続します。
4. [ファイル] >> [開く] をクリックし、CircuitPython デバイスを選択します。 次に code.py を選択します。 Code.py は、CircuitPython によってプロジェクトのメイン ファイルとして使用されます。 Pico の電源が入ったときに自動実行されるように設定されています。
5.code.py 内のコードをすべて削除します。コードが必要な場合は、必ずコンピュータにバックアップしてください。
6.プロジェクトが動作するために必要な 4 つのコード モジュールをインポートします。 Touchio は、GPIO ピンを使用して容量性タッチ入力を作成するために使用されます。 時間は、アクション間でコードが一時停止する時間を制御します。 ボードは GPIO と連携するために使用されます。* を使用してインポートすることは、モジュール名を含める必要がないことを意味します。 Digitalio はピンのステータスを制御するために使用されます。 入力または出力にすることができます。
7。オブジェクト、led を作成し、GPIO ピンを GP15 に設定し、それを出力に設定します。これにより、LED がトリガーされると、電流がピン GPIO 15 から LED のアノードに流れるようになります。 カソードは 100 オームの抵抗を介して GND に接続されているため、回路全体によって LED が点灯します。
8.オブジェクト led_state を作成し、その中に整数値 0 を格納します。このオブジェクトは、LED の現在の状態を記録するために使用されます。 オフ (0) またはオン (1) のいずれかになります。
9.オブジェクト touch_pin を作成するコードと物理 GPIO ピンの間の接続を確立します。
10.コードを継続的に実行するループを作成します。
11.ループ内で、タッチ入力ピンの現在の状態を報告する print 関数を作成します。%s を使用して、touch_pin.value に格納されている値を使用し、それをテキストに連結するための文字列に変換します。
12.入力が触れられたかどうか、および LED がオフになっているかどうかを確認する条件付きテストを作成します。条件付きテストに合格するには、両方のテストに合格する必要があります。
13.LED をオンに設定し、led_state オブジェクトを 1 に更新します。コードが LED がオンであることを認識できるようにする 。 0.5秒だけ寝てください偶発的なデバウンスを防止します (2 回押します)。 このコードは、条件付きテストに合格した場合にのみ実行されます。
14.条件付きテストを作成して、入力が触れられたかどうか、および LED が現在オンになっているかどうかを確認します。このコードは LED をオフにします。
15.LED をオフに切り替え、led_state オブジェクトを更新しますLED がオフであることをコードが認識できるようにするため、0.5秒間停止します。
16.条件付きテストの外側で、まだループ内にあるコードを 0.1 秒間一時停止します。ループが反復されるたびに 0.1 秒間一時停止します。これは、プロジェクト コードのペース調整に役立ちます。
17.コードを CircuitPython デバイスの code.py に保存します。(ラズベリーパイピコ)。
18. 自動実行されない場合でも、コードは自動実行されます。「停止」をクリックしてから「実行」をクリックします。
19.バナナをタッチして LED のオン/オフを切り替えます。
25 年以上にわたり、熱心な PC 技術ニュースの内部情報として Tom's Hardware を読んでいる専門家に加わりましょう。 CPU、GPU、AI、メーカーのハードウェアなどに関する最新ニュースと詳細なレビューをあなたの受信箱に直接お届けします。
Les Pounder は、Tom's Hardware の副編集者です。 彼はクリエイティブ テクノロジストであり、7 年間にわたり、老若男女の心を教育し、インスピレーションを与えるプロジェクトを立ち上げてきました。 彼は Raspberry Pi Foundation と協力して、教師向けトレーニング プログラム「Picademy」を作成し、提供してきました。
ベスト Raspberry Pi Pico アクセサリとアドオン 2023
2023 年のベスト RP2040 ボード
Raspberry Pi で再現写真を本物に保つ
アーロン・クロッツ著2023年6月1日
By Les Pounder 2023 年 6 月 1 日
Brandon Hill 2023 年 6 月 1 日
By Mark Tyson2023年6月1日
スチュワート・ベンドル著2023年6月1日
アントン・シロフ著2023年6月1日
Matt Safford 2023 年 6 月 1 日
アッシュ・ヒル著 2023年6月1日
By Mark Tyson2023年6月1日
Zhiye Liu 2023 年 6 月 1 日
Zhiye Liu 2023 年 6 月 1 日
Raspberry Pi Pico の公式 CircuitPython ページに移動し、最新リリースの UF2 ファームウェア イメージをダウンロードします。 BOOTSEL ボタンを押したまま、Raspberry Pi Pico をコンピュータに接続します。 ダウンロードしたCircuitPython UF2ファイルをRPI-RP2にコピーします。 Thonny をダウンロードしてインストールします。 Thonny を開き、[ツール] >> [オプション] に移動します。 [インタープリター] を選択し、インタープリターを CircuitPython に設定し、ポートを自動に設定して、[OK] をクリックします。 [ファイル] >> [開く] をクリックし、CircuitPython デバイスを選択します。 次に code.py を選択します。 code.py 内のコードをすべて削除します。 プロジェクトが動作するために必要な 4 つのコード モジュールをインポートします。 オブジェクト、led を作成し、GPIO ピンを GP15 に設定し、それを出力に設定します。 オブジェクト led_state を作成し、その中に整数値 0 を格納します。 オブジェクト touch_pin を作成します。 コードを継続的に実行するループを作成します。 ループ内で、タッチ入力ピンの現在の状態を報告する print 関数を作成します。 入力が触れられたかどうか、および LED がオフになっているかどうかを確認する条件付きテストを作成します。 LED がオンになるように設定し、led_state オブジェクトを 1, に更新します。 0.5 秒間スリープする 条件付きテストを作成して、入力が触れられたかどうか、および LED が現在オンになっているかどうかを確認します。 LED をオフに切り替え、led_state オブジェクトを更新し、0.5 秒間一時停止します。 条件付きテストの外側で、まだループ内にあるコードを 0.1 秒間一時停止します。 コードを CircuitPython デバイスの code.py に保存し、「停止」をクリックしてから「実行」をクリックします。 バナナをタッチして LED のオン/オフを切り替えます。