Grove - 傾きスイッチ
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Grove-傾きスイッチはボタンに相当し、デジタル入力として使用されます。傾きスイッチの内部には一対のボールがあり、ケースが直立しているときにピンと接触します。ケースを傾けるとボールが接触せず、接続が成立しません。このGroveではSIGラインに接続されており、NCは使用されていません。
特徴
- Groveインターフェース
- 簡単に使用可能
- シンプルなGroveモジュール
Groveモジュールの詳細については、[Grove System](https://wiki.seeedstudio.com/ja/Grove_System/)を参照してください。
仕様
項目 | 最小値 | 標準値 | 最大値 | 単位 |
---|---|---|---|---|
電圧 | 3 | 5.0 | 5.25 | V |
接続角度 | 10° ~170° | - | ||
切断角度 | 190° ~350° | - | ||
電気的寿命 | 100,000 | サイクル |
対応プラットフォーム
Arduino | Raspberry Pi |
---|---|
上記で対応可能とされているプラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム向けのソフトウェアライブラリやコード例のみを提供しています。すべての可能なMCUプラットフォーム向けにソフトウェアライブラリやデモコードを提供することは不可能です。そのため、ユーザー自身でソフトウェアライブラリを作成する必要があります。
はじめに
Arduinoで遊ぶ
Grove - Tilt SwitchのSIGピンは通常LOWを出力します。Tilt Switchが直立すると、内部のボールがピンに接触し、SIGピンがHIGHを出力します。
以下のスケッチは、Tilt SwitchとGrove - Buttonを使用してLEDを制御する簡単なアプリケーションを示しています。
- 次の図が示すように、Tilt SwitchはGrove - Base Shieldのデジタルポート5に接続され、Grove-Buttonはデジタルポート7に接続されています。LEDはデジタルポート1に接続されています。ハードウェアの接続は以下の通りです:
- 以下のコードを新しいArduinoスケッチにコピー&ペーストしてください。
void setup()
{
pinMode(1, OUTPUT);
pinMode(5, INPUT);
pinMode(7, INPUT);
}
void loop()
{
if (digitalRead(5)==HIGH)
{
digitalWrite(1, HIGH);
delay(100);
digitalWrite(1, LOW);
}
if (digitalRead(7)==HIGH)
{
digitalWrite(1, HIGH);
delay(200);
digitalWrite(1, LOW);
}
}
- コードをアップロードしてください。
- その後、ボタンを押すかTilt Switchを動作させるとLEDが点灯します。試してみてください!
Codecraftで遊ぶ
ハードウェア
ステップ1. Grove - Tilt SwitchをポートD5に接続し、Grove - ButtonとGrove - Red LEDをBase ShieldのポートD7とD2に接続します。
ステップ2. Base ShieldをSeeeduino/Arduinoに接続します。
ステップ3. USBケーブルを使用してSeeeduino/ArduinoをPCに接続します。
ソフトウェア
ステップ1. Codecraftを開き、Arduinoサポートを追加し、メインプロシージャを作業エリアにドラッグします。
初めてCodecraftを使用する場合は、[Codecraftを使用したArduinoのガイド](https://wiki.seeedstudio.com/ja/Guide_for_Codecraft_using_Arduino/)も参照してください。
ステップ2. 以下の図のようにブロックをドラッグするか、このページの最後でダウンロード可能なcdcファイルを開いてください。
プログラムをArduino/Seeeduinoにアップロードしてください。
コードのアップロードが完了すると、Tilt Switchを傾けたりボタンを押したりするとLEDが点灯します。
Raspberry Piで遊ぶ (Raspberry Pi用Grove Base Hatを使用)
ハードウェア
- ステップ1. このプロジェクトで使用するもの:
Raspberry pi | Grove Base Hat for RasPi | Grove - Tilt Switch |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- ステップ2. Grove Base HatをRaspberry Piに接続します。
- ステップ3. Tilt SwitchをBase Hatのポート12に接続します。
- ステップ4. USBケーブルを使用してRaspberry PiをPCに接続します。
ステップ3では、Tilt Switchを**任意のGPIOポート**に接続できますが、対応するポート番号でコマンドを変更することを忘れないでください。
ソフトウェア
**Raspberry Pi OS >= Bullseye**を使用している場合は、**Python3のみ**で以下のコマンドラインを使用してください。
- ステップ1. ソフトウェア設定に従って開発環境を構成してください。
- ステップ2. grove.pyライブラリをクローンしてソースファイルをダウンロードします。
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- ステップ3. 以下のコマンドを実行してコードを実行します。
cd grove.py/grove
python3 grove_tilt_switch.py 12
以下はgrove_tilt_switch.pyのコードです。
import time
from grove.gpio import GPIO
class GroveTiltSwitch(GPIO):
def __init__(self, pin):
super(GroveTiltSwitch, self).__init__(pin, GPIO.IN)
self._on_trigger = None
self._on_release = None
@property
def on_trigger(self):
return self._on_trigger
@on_trigger.setter
def on_trigger(self, callback):
if not callable(callback):
return
if self.on_event is None:
self.on_event = self._handle_event
self._on_trigger = callback
@property
def on_release(self):
return self._on_release
@on_release.setter
def on_release(self, callback):
if not callable(callback):
return
if self.on_event is None:
self.on_event = self._handle_event
self._on_release = callback
def _handle_event(self, pin, value):
if value:
if callable(self._on_trigger):
self._on_trigger()
else:
if callable(self._on_release):
self._on_release()
Grove = GroveTiltSwitch
def main():
import sys
if len(sys.argv) < 2:
print('Usage: {} pin'.format(sys.argv[0]))
sys.exit(1)
swicth = GroveTiltSwitch(int(sys.argv[1]))
def on_trigger():
print('Triggered')
def on_release():
print("Released.")
swicth.on_trigger = on_trigger
swicth.on_release = on_release
while True:
time.sleep(1)
if __name__ == '__main__':
main()
すべてが正常に動作すれば、Tilt Switchに触れると以下の結果が表示されます。
pi@raspberrypi:~/grove.py/grove $ python3 grove_tilt_switch.py 12
Triggered
Released.
Triggered
^CTraceback (most recent call last):
File "grove_tilt_switch.py", line 106, in <module>
main()
File "grove_tilt_switch.py", line 102, in main
time.sleep(1)
KeyboardInterrupt
このプログラムを終了するには、++ctrl+c++ を押すだけです。
Raspberry Pi で遊ぶ (GrovePi_Plus を使用)
Raspberry Pi を使用する場合
**Raspberry Pi OS >= Bullseye** を使用している場合は、**Python3** のみでこのコマンドラインを使用する必要があります。
Raspberry Pi と Grovepi または Grovepi+ を用意してください。
開発環境の設定を完了している必要があります。設定がまだの場合は こちら を参照してください。
接続
- Grove ケーブルを使用して Tilt_Switch を Grovepi のソケット D3 に接続します。
- デモのディレクトリに移動します:
cd yourpath/GrovePi/Software/Python/
- コードを確認するには
nano grovepi_tilt_switch.py # "Ctrl+x" で終了 #
import time
import grovepi
# Grove Tilt Switch をデジタルポート D3 に接続
# SIG,NC,VCC,GND
tilt_switch = 3
grovepi.pinMode(tilt_switch,"INPUT")
while True:
try:
print grovepi.digitalRead(tilt_switch)
time.sleep(.5)
except IOError:
print "Error"
- デモを実行します。
sudo python grove_tilt_switch.py
- 結果: センサーを片側で直立させると、SIG ピンが HIGH を出力します。
参考
Grove-Tilt Switch の動作角度は以下の通りです:
注意
Grove 上のマーク J1 は基準端子です。Grove - Tilt Switch v1.0 Eagle ファイル
Grove - Tilt Switch v1.1 Eagle ファイル
リソース
- Grove - Tilt Switch v1.0 Eagle ファイル
- Grove - Tilt Switch v1.1 PDF ファイル
- Grove - Tilt Switch v1.1 Eagle ファイル
- SW200D データシート
- Codecraft CDC ファイル
技術サポートと製品ディスカッション
弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートを提供しております。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルをご用意しています。