Arduinoでアクティブブザーとチルトスイッチ(傾斜センサー)を使う【ビジュアルプログラミングLesson8】
Arduino(アルドゥイーノ)プログラミングLESSON8は「チルトスイッチ(傾きセンサー)を使ってLEDとアクティブブザーを制御する」です。
本LESSON記事は、プログラミングの学習とチルトスイッチおよびアクティブブザーの知識を習得するプログラムになっています。
小学生やプログラミング初心者の方も安心してプログラミングができるように、ブロックを使ったスクラッチでのプログラミング方法についても動画付きで紹介しています。
今回は新しく登場した2つの機器の機能を覚えよう
- チルトスイッチ(傾きセンサー)の仕組み
- アクティブブザーの機能
- Arduino IDE、スクラッチ(Scrattino3)を使ったプログラミング方法
せでぃあはこんな人物です
✅プライム企業に勤める電気・機械設計エンジニア
✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作
✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞
✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中
✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中
子供の成長を育む!小学生のお子様にぴったりなプログラミング教室が見つかるように厳選しました!
チルトスイッチ(傾きセンサー)とは
チルトスイッチ(傾きセンサー)の概要
チルトスイッチとは、傾きに応じて接点のON(導通)⇔OFF(非導通)が切り替わるメカニカルスイッチです。
上記写真の如く、垂直状態のときは「接点ON(導通)」となり、端子のない頭の部分を水平よりも下方へ傾けると「接点OFF(非導通)」となります。
チルトスイッチには2本の端子があり、極性はありません。
チルトスイッチ(傾きセンサー)の構造説明
チルトスイッチの構造について、説明します。
内部に導体の玉が入っていて、垂直時は接点ABが玉を通じて電気的につながっている状態(ON)になります。
チルトスイッチを傾けると、球が転がって端子B(赤いライン)と非接触状態になることで接点ABが非導通(OFF)となります。
チルトスイッチは単純な構造をしているんだね
アクティブブザーとは
アクティブブザーは、DC電源を接続すると音が出る電子ブザーです。
内蔵発振器を持っているため、振動源を持たないパッシブブザーと比較して取り扱いが簡単です。
アクティブブザーには極性があり、足が長い端子のほうが+になります。
チルトスイッチを使ったLED、ブザー制御の説明
今回のLESSONで取り扱うチルトスイッチを使った制御動作について、説明します。
- チルトスイッチが垂直のときは、LED消灯+ブザー停止
- チルトスイッチを傾けると、LED点灯+ブザー鳴動
- 再びチルトスイッチ傾きを垂直方向に戻すと、LED消灯+ブザー停止
- チルトスイッチを使ったLED点灯、ブザー鳴動制御動作
- スクラッチを使ったプログラミング手順
まずは動画を見て、チルトスイッチを傾けることで起きる動作を確認してください。
また、スクラッチを使ったプログラミングをするためには準備作業が必要です。
動画にて準備作業に必要な手順をくわしく説明しています。
チルトスイッチ(傾斜スイッチ)を使った制御回路の作り方
プログラミングするために、パソコンが必要です。
電子部品等の必要な機器については、このあと説明します。
パソコンに統合開発ソフトウェア「ArduinoIDE」のインストールを行います。
Arduinoのセットアップ方法については、以下の記事にて詳しく説明しています。
Arduino IDEでの言語プログラミングも勉強したい方は、プログラミングの流れを理解しておいてください。
以下の記事にて、プログラミングから動作確認までの流れを詳しく説明しています。
パソコンにスクラッチでプログラミングするためのソフトウェア「Scrattino3(スクラッチーノ3)」のインストールを行います。
以下の記事にて詳しく説明しています。
電子部品とジャンパーワイヤの差し込みだけで配線が可能です。
専用開発ソフトウェア「Arduino IDE」を使います。
文字列プログラミングを行う場合は、私が作成したプログラムをコピペして使ってください。
スクラッチプログラミングについては、動画または後述するプログラミング例を参考にしてください。
プログラムが完成したら動作確認を行います。
- チルトスイッチが垂直のときは、LED消灯+ブザー停止するか?
- チルトスイッチを傾けると、LED点灯+ブザー鳴動するか?
- 再びチルトスイッチ傾きを垂直方向に戻すと、LED消灯+ブザー停止するか?
記載のプログラムは動作確認済です。
動作確認方法については、以下の記事にて詳しく説明しています。
チルトスイッチを使ったLED、ブザー制御回路で使うもの
- パソコン
- Arduino本体
- USBケーブル
- ブレッドボード
- LED(青)
- チルトスイッチ
- 抵抗(220Ω)
- 抵抗(10kΩ)
- アクティブブザー
- ジャンパー線(オスーオス)×7本
今回はELEGOO社のスターターキットに入っている部品のみで作ることができますが、Arduino裏面のショート対策としてクリアケースも併せて準備することをおすすめします。
パソコン
プログラムを作成するために必要です。
プログラム制御の演算はArduino側で行うため、パソコンのSPECは一般的なモデルで十分対応可能です。
パソコンのOSはWindows、Macどちらでも対応可能です。
Arduino本体【キット】
基本的なエディション「Arduino Uno」の互換機である、ELEGOO社のUNO R3を使用しています。
Arduino本体裏面のショート対策に、別売りのクリアケースの購入をおすすめしています。
各ソケットの役割など、Arduino本体の機能について以下の記事にて詳しく説明しています。
USBケーブル【キット】
パソコンとArduinoを接続してプログラムデータのやり取りをするために必要です。
ブレッドボード【キット】
たくさんの穴が開いていて、部品の端子を穴に差し込むだけで電気的に接続が可能な板です。
LED(青)【キット】
青色LED(発行ダイオード)を1本使用します。
LED素子にはプラスマイナスの極性があるため配線時には注意が必要です。
極性を間違えて配線すると、LEDは点灯しません
チルトスイッチ(傾きセンサー)【キット】
チルトスイッチを1本使用します。
チルトスイッチの構造については上述を参照してください。
チルトスイッチには極性がないので、配線時に方向を気にする必要はありません。
抵抗(220Ω)【キット】
220Ωの抵抗を1本使用します。
LEDは流せる電流値に制約があるため、抵抗を直列つなぎすることでLEDに流れる電流を調節します。
抵抗は極性がないので、配線時に方向を気にする必要はありません。
LEDを点灯させるために接続する抵抗の選び方については、こちらの記事で詳しく説明しています。
抵抗(10kΩ)【キット】
10kΩの抵抗を1本使用し、チルトスイッチに直列接続します。
抵抗を接続するのは、チルトスイッチ端子が「傾き検出=導通OFF」のときにArduino本体がノイズによる誤検出することを避けるためです。
Arduinoの信号入力方法としてプルアップとプルダウンがあり、こちらの記事にて詳しく説明しています。
アクティブブザー【キット】
アクティブブザーを1個使用します。
アクティブブザーには極性があり、端子の足が長い方が+側になります。
今回は、ブレッドボードに直接差し込んで使用します。
ジャンパー線(オスーオス)【キット】
ジャンパー線を7本使用します。
今回のLESSONでは、Arduino本体とブレッドボードの接続に使います。
今回のLESSONで使用可能な、スターターキットです。
(おすすめ!)モーターやLEDディスプレイ等の機器を備えたコスパの高いキットです。
【おすすめ!】Arduino本体裏面のショート対策におすすめです。
スターターキットに含まれる機器に関しては、以下の記事にて詳しく紹介しています。
配線のやり方
上図が配線説明図となりますので、これと同じ配線をすれば完成します。
- チルトスイッチ、LED、ブザーをブレッドボードに差し込む
- 220Ω、10kΩ抵抗をブレッドボードに差し込む
- ジャンパー線をブレッドボードとArduinoソケットに差し込む
LEDや抵抗及びジャンパー線は、Arduinoのソケットやブレッドボード穴に差し込むだけでOKです。
LEDとアクティブブザーはプラス・マイナスの極性があります。
抵抗とチルトスイッチは極性がありません。
機器故障させないためにも、USBケーブルを抜いた「通電OFF」状態にて配線を行ってください
プログラミングのやり方
Arduino IDEとスクラッチの両方について、プログラミング方法とプログラムを説明します。
2つのプログラミングの特徴は以下の通り。
ArduinoIDE:文字列による命令語形式
スクラッチ:ブロックによるビジュアル形式
文字列を使わないスクラッチの方が、直感的で分かりやすく小学生におすすめのプログラミング方法になります。
スクラッチを使ってプログラミングをする方は、スクラッチの説明まで読み飛ばしてください。
Arduino IDE
Arduino IDEとは統合開発ソフトウェアで、C言語のような文字列を用いたプログラミング方法です。
プログラミングするにあたり、ある程度の命令語を知っておく必要があります。
Arduino IDEのインストール方法については、以下の記事で詳しく説明しています。
プログラミング方法
Arduino IDEを使って、文字列プログラミングを行います。
Arduino IDEを使ったプログラミング~動作確認方法については、以下の記事で詳細説明しています。
Arduino IDEプログラム
/* 作品名:LESSON8 */
/* 作成者:せでぃあ https://cediablog.com */
/* チルトスイッチによるLED点灯+アクティブブザー鳴動制御 */
int TILT_SOCKET = 2; //チルトスイッチ入力ソケット番号
int LED_SOCKET = 8; //LEDの出力ソケット番号
int BUZZER_SOCKET = 9; //アクティブブザーの出力ソケット番号
void setup() {
// put your setup code here, to run once: プログラム起動時1回だけ処理される回路
//入出力の割り当て
pinMode(TILT_SOCKET, INPUT); //2番ピンは入力として使用
pinMode(LED_SOCKET, OUTPUT); //8番ピンは出力として使用
pinMode(BUZZER_SOCKET, OUTPUT); //9番ピンは出力として使用
}
void loop() {
// put your main code here, to run repeatedly: プログラム起動後ループ処理される回路
if(digitalRead(TILT_SOCKET) == LOW){ //チルトスイッチが傾き検出しているとき
digitalWrite(LED_SOCKET,HIGH); //LEDを点灯させる
digitalWrite(BUZZER_SOCKET,HIGH); //ブザーを鳴動させる
}
else{ //チルトスイッチが傾き検出していないとき
digitalWrite(LED_SOCKET,LOW); //LEDを消灯させる
digitalWrite(BUZZER_SOCKET,LOW); //ブザーを鳴らさない
}
delay(100); //0.1秒ウェイト
}
上記がチルトスイッチを使ったLED、ブザー制御回路のプログラムになります。
Arduino IDEのプログラム画面にコピーアンドペーストすることで、動作確認まで進めることができます。
各プログラム列の右側にプログラム内容をコメント記入してありますので参考にしてください。
チルトスイッチが垂直=傾いていないときがHIGHなので要注意です!
命令語の解説
今回のプログラムで使用した命令文について、解説します。
変数のデータ型指定
変数のデータ型を指定するものです。
今回はピンソケット番号を代入するので整数を扱う「int型」を指定します。
データ型 | 説明 | 扱える範囲 |
---|---|---|
int | 2バイトの整数を代入可能。 | -32768~32767 |
long | 4バイトの整数を代入可能 | -2,147,483,648~2,147,483,647 |
float | 4バイトの小数を代入可能。 | 3.4028235×1038~-3.4028235×1038 |
char | 1バイトの値を代入可能。文字列の代入に利用されます。 | -128~127 |
boolean | 0または1のみ代入可能。フラグのON-OFFなどに利用されます。 | 0,1 |
pinMode(入出力ソケット番号,INPUTまたはOUTPUT)
指定したデジタル入出力ソケット番号の機能を指示します。
入力として使用する場合は「INPUT」、出力の場合は「OUTPUT」を指定します。
if else文
条件式が成立しているか否かで、どちらの命令文を実行するか振り分けます。
if( 条件 ){
条件成立時に実行する文 ;
} else {
条件不成立時に実行する文 ;
}
digitalRead(入出力番号)
指定したデジタル入出力ソケット番号の状態がON、またはOFFであるか確認します。
ONのときは「HIGH」、OFFのときは「LOW」の値が返ってきます。
digitalWrite(入出力ソケット番号,HIGHまたはLOW)
指定したデジタル入出力ソケット番号の電圧をON、またはOFFします。
ONさせたいときは「HIGH」、OFFさせたいときは「LOW」を指定します。
delay(時間)
()内で指定した時間(単位はmsec)だけ、プログラム実行を待たせます。
今回のプログラムではチルトスイッチのON-OFF状態について、100msec=0.1sec周期で確認するプログラムにしています。
マイクロ秒単位で指定したい場合は、delayMcroseconds(時間)を使います。
スクラッチ
Scrattino3(スクラッチーノ3)というソフトウェアを使って、プログラミングする方法です。
Scrattino3のインストール方法やプログラミング、動作確認方法については、以下の記事にて詳しく説明しています。
動画を参考にプログラミングしてみよう
スクラッチプログラム(Scrattino3|スクラッチーノ3)
上記がスクラッチのプログラミングとその解説になります。
Scrattino3(スクラッチーノ3)でのスクラッチプログラミングの作り方について、本記事冒頭の動画にて詳しく説明していますのでぜひご覧ください。
プルアップとプルダウン入力については、こちらの記事にて詳しく説明しています。
Arduino専用ブロックについては、こちらの記事にて詳しく説明しています。
動作確認方法
- チルトスイッチが垂直のときは、LED消灯+ブザー停止するか?
- チルトスイッチを傾けると、LED点灯+ブザー鳴動するか?
- 再びチルトスイッチ傾きを垂直方向に戻すと、LED消灯+ブザー停止するか?
上記項目について確認していきましょう。
チルトスイッチが垂直のときは、LED消灯+ブザー停止するか?
まずブレッドボードを机の上に平置き状態にして動作を確認してください。
- LEDは消灯したまま
- ブザーは鳴動しない
机の振動でLED点灯がチラつく場合はwait時間を増やしてみよう
チルトスイッチを傾けると、LED点灯+ブザー鳴動するか?
チルトスイッチ内のボールが転がるまで、ブレッドボードを傾けてください。
ボールが転がってチルトスイッチ頭部にコツって当たる音がします
- LEDが点灯する
- ブザーが鳴動する
再びチルトスイッチ傾きを垂直方向に戻すと、LED消灯+ブザー停止するか?
再度ブレッドボードを机の上に平置き状態にして動作を確認します。
- LEDは消灯したまま
- ブザーは鳴動しない
連続的にチルトスイッチの傾きを変化させて、動作確認を行ってください。
次回LESSON9以降を楽しむためにはレベルアップキットの購入がおすすめ
今回のLESSON8までの内容をもって、Basic Starter Kitの全パーツに関するLESSON紹介が完了となります。
LESSON9からは、Super Starter Kitに含まれるパーツを使用して紹介していきます。
ぜひ、Super Starter Kitの購入または、単品での追加パーツ購入をご検討ください。
チルトスイッチを使ったブザー鳴動制御(LESSON8)のまとめ
- チルトスイッチはメカニカル構造のON-OFFスイッチ
- アクティブブザーはDC電源を接続するだけで鳴動可能
- LESSON9以降にチャレンジするにはSuper Starter Kitがおすすめ
小学生のお子様には断然、スクラッチでのプログラミングがおすすめです!
次は電子機器の学習プログラムである、LESSON9(モーターの回転角度を制御する)にチャレンジしてください。
次はサーボモーターについて学習しましょう!
トランジスタを使ってブザー音量を大きくできます!
小学生のお子様には、プログラミング教室での基礎学習をおすすめしています!
Arduinoスクラッチプログラミングのおすすめ参考書について詳しく説明しています。
Arduinoプログラミング(スクラッチも)を使った電子工作を紹介しています。
LESSON1:LED点灯プログラミングの学習についてはこちら!
LESSON7:シフトレジスタによるLED点灯制御プログラミングの学習についてはこちら!
コメント