おすすめArduinoキットとLESSON記事はこちらから!click here

スクラッチプログラミング チルトスイッチ(傾きセンサー)とアクティブブザー【Arduino:Lesson8】

  • URLをコピーしました!

Arduino(アルドゥイーノ)プログラミングLESSON8は「チルトスイッチ(傾きセンサー)を使ってLEDとアクティブブザーを制御する」です。

本LESSON記事は、プログラミングの学習とチルトスイッチおよびアクティブブザーの知識を習得するプログラムになっています。

小学生やプログラミング初心者の方も安心してプログラミングができるように、ブロックを使ったスクラッチでのプログラミング方法についても動画付きで紹介しています。

せでぃあ

今回は新しく登場した2つの機器の機能を覚えよう

この記事を読んでわかること
  • チルトスイッチ(傾きセンサー)の仕組み
  • アクティブブザーの機能
  • Arduino IDE、スクラッチ(Scrattino3)を使ったプログラミング方法
筆者:せでぃあ

せでぃあはこんな人物です

✅プライム企業に勤める電気・機械設計エンジニア

✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作

✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞

✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中

✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中

LEDの点灯回路については、LESSON1記事をご参照ください。

Arduinoをこれから学習したい方にはぜひおすすめしたい一冊です。

目次

チルトスイッチ(傾きセンサー)とは

チルトスイッチ(傾きセンサー)の概要

チルトスイッチ(傾きセンサー)
チルトスイッチ(傾きセンサー)

チルトスイッチとは、傾きに応じて接点のON(導通)⇔OFF(非導通)が切り替わるメカニカルスイッチです。

上記写真の如く、垂直状態のときは「接点ON(導通)」となり、端子のない頭の部分を水平よりも下方へ傾けると「接点OFF(非導通)」となります。

チルトスイッチには2本の端子があり、極性はありません。

チルトスイッチ(傾きセンサー)の構造説明

チルトスイッチ(傾きセンサー)の仕組み
チルトスイッチの構造説明

チルトスイッチの構造について、説明します。

内部に導体の玉が入っていて、垂直時は接点ABが玉を通じて電気的につながっている状態(ON)になります。

チルトスイッチを傾けると、球が転がって端子B(赤いライン)と非接触状態になることで接点ABが非導通(OFF)となります。

せでぃあ

チルトスイッチは単純な構造をしているんだね

アクティブブザーとは

アクティブブザー
アクティブブザー

アクティブブザーは、DC電源を接続すると音が出る電子ブザーです。

内蔵発振器を持っているため、振動源を持たないパッシブブザーと比較して取り扱いが簡単です。

アクティブブザーには極性があり、足が長い端子のほうが+になります。

チルトスイッチを使ったLED、ブザー制御の説明

今回のLESSONで取り扱うチルトスイッチを使った制御動作について、説明します。

チルトスイッチを使った制御動作の説明
  • チルトスイッチが垂直のときは、LED消灯+ブザー停止
  • チルトスイッチを傾けると、LED点灯+ブザー鳴動
  • 再びチルトスイッチ傾きを垂直方向に戻すと、LED消灯+ブザー停止
動作説明とスクラッチプログラミング手順の解説動画
動画での解説内容
  • チルトスイッチを使ったLED点灯、ブザー鳴動制御動作
  • スクラッチを使ったプログラミング手順

まずは動画を見て、チルトスイッチを傾けることで起きる動作を確認してください。

また、スクラッチを使ったプログラミングをするためには準備作業が必要です。

動画にて準備作業に必要な手順をくわしく説明しています。

フルカラーLEDを用いた、段階的な点灯色切り替え制御回路の作り方

STEP
必要なものを準備

プログラミングするために、パソコンが必要です。

電子部品等の必要な機器については、このあと説明します。

STEP
Arduinoを使うためのセットアップ

パソコンに統合開発ソフトウェア「ArduinoIDE」のインストールを行います。

Arduinoのセットアップ方法については、以下の記事にて詳しく説明しています。

Arduino IDEでの言語プログラミングも勉強したい方は、プログラミングの流れを理解しておいてください。

以下の記事にて、プログラミングから動作確認までの流れを詳しく説明しています。

STEP
スクラッチでプログラミングするためのセットアップ

パソコンにスクラッチでプログラミングするためのソフトウェア「Scrattino3(スクラッチーノ3)」のインストールを行います。

以下の記事にて詳しく説明しています。

STEP
電気配線

電子部品とジャンパーワイヤの差し込みだけで配線が可能です。

STEP
プログラミング

専用開発ソフトウェア「Arduino IDE」を使います。

文字列プログラミングを行う場合は、私が作成したプログラムをコピペして使ってください。

スクラッチプログラミングについては、動画または後述するプログラミング例を参考にしてください。

STEP
動作確認

プログラムが完成したら動作確認を行います。

動作確認チェックリスト
  • チルトスイッチが垂直のときは、LED消灯+ブザー停止するか?
  • チルトスイッチを傾けると、LED点灯+ブザー鳴動するか?
  • 再びチルトスイッチ傾きを垂直方向に戻すと、LED消灯+ブザー停止するか?

記載のプログラムは動作確認済です。

動作確認方法については、以下の記事にて詳しく説明しています。

チルトスイッチを使ったLED、ブザー制御回路で使うもの

段階的な点灯色切り替え制御回路で使う機器の説明
配線が完了しプログラム転送できる状態
準備するもの
  1. パソコン
  2. Arduino本体
  3. USBケーブル
  4. ブレッドボード
  5. LED(青)
  6. チルトスイッチ
  7. 抵抗(220Ω)
  8. 抵抗(10kΩ)
  9. アクティブブザー
  10. ジャンパー線(オスーオス)×7本

今回はELEGOO社のスターターキットに入っている部品のみで作ることができますが、Arduino裏面のショート対策としてクリアケースも併せて準備することをおすすめします。

パソコン

プログラムを作成するために必要です。

プログラム制御の演算はArduino側で行うため、パソコンのSPECは一般的なモデルで十分対応可能です。

パソコンのOSはWindows、Macどちらでも対応可能です。

Arduino本体【キット】

Arduino本体
Arduino本体

基本的なエディション「Arduino Uno」の互換機である、ELEGOO社のUNO R3を使用しています。

Arduino本体裏面のショート対策に、別売りのクリアケースの購入をおすすめしています。

各ソケットの役割など、Arduino本体の機能について以下の記事にて詳しく説明しています。

USBケーブル【キット】

必要なUSBケーブルの説明写真
USBケーブル

パソコンとArduinoを接続してプログラムデータのやり取りをするために必要です。

ブレッドボード【キット】

ブレッドボードの機能説明図
ブレッドボードの機能説明図

たくさんの穴が開いていて、部品の端子を穴に差し込むだけで電気的に接続が可能な板です。

LED(青)【キット】

今回使用するLEDと極性の見分け方説明
LEDのプラス・マイナスの見分け方

青色LED(発行ダイオード)を1本使用します。

LED素子にはプラスマイナスの極性があるため配線時には注意が必要です。

極性を間違えて配線すると、LEDは点灯しません

チルトスイッチ(傾きセンサー)【キット】

チルトスイッチ(傾きセンサー)
チルトスイッチ(傾きセンサー)

チルトスイッチを1本使用します。

チルトスイッチの構造については上述を参照してください。

チルトスイッチには極性がないので、配線時に方向を気にする必要はありません。

抵抗(220Ω)【キット】

220Ω抵抗とカラーコードによる見分け方
220Ω抵抗と色による見分け方

220Ωの抵抗を1本使用します。

LEDは流せる電流値に制約があるため、抵抗を直列つなぎすることでLEDに流れる電流を調節します。

抵抗は極性がないので、配線時に方向を気にする必要はありません。

LEDを点灯させるために接続する抵抗の選び方については、こちらの記事で詳しく説明しています。

抵抗(10kΩ)【キット】

10kΩ抵抗と色による見分け方
10kΩ抵抗と色による見分け方

10kΩの抵抗を1本使用し、チルトスイッチに直列接続します。

抵抗を接続するのは、チルトスイッチ端子が「傾き検出=導通OFF」のときにArduino本体がノイズによる誤検出することを避けるためです。

Arduinoの信号入力方法としてプルアップとプルダウンがあり、こちらの記事にて詳しく説明しています。

アクティブブザー【キット】

アクティブブザーと極性の見分け方
アクティブブザーと極性の見分け方

アクティブブザーを1個使用します。

アクティブブザーには極性があり、端子の足が長い方が+側になります。

今回は、ブレッドボードに直接差し込んで使用します。

ジャンパー線(オスーオス)【キット】

キットに同梱されているジャンパー線(オスーオス)の説明
ジャンパー線

ジャンパー線を7本使用します。

今回のLESSONでは、Arduino本体とブレッドボードの接続に使います。

今回のLESSONで使用可能な、スターターキットです。

(おすすめ!)モーターやLEDディスプレイ等の機器を備えたコスパの高いキットです。

【おすすめ!】Arduino本体裏面のショート対策におすすめです。

スターターキットに含まれる機器に関しては、以下の記事にて詳しく紹介しています。

配線のやり方

Arduinoとの配線完了時の状態写真
配線完了時の状態写真
チルトスイッチを使ったLED、ブザー制御回路の配線説明図
チルトスイッチを使った制御回路の配線説明図(fritzingを用いて作成)

上図が配線説明図となりますので、これと同じ配線をすれば完成します。

必要な配線作業
  • チルトスイッチ、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でのプログラミング画面(LESSON8)
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型」を指定します。

スクロールできます
データ型説明扱える範囲
int2バイトの整数を代入可能。-32768~32767
long4バイトの整数を代入可能-2,147,483,648~2,147,483,647
float4バイトの小数を代入可能。3.4028235×1038~-3.4028235×1038
char1バイトの値を代入可能。文字列の代入に利用されます。-128~127
boolean0または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)によるlessonスクラッチプログラミングの説明(LESSON8)
スクラッチを使ったプログラミング

Scrattino3(スクラッチーノ3)というソフトウェアを使って、プログラミングする方法です。

Scrattino3のインストール方法やプログラミング、動作確認方法については、以下の記事にて詳しく説明しています。

プログラミング、動作確認方法については、本記事の説明動画でも紹介しています

せでぃあ

動画を参考にプログラミングしてみよう

スクラッチプログラム(Scrattino3|スクラッチーノ3)

Scrattino3(スクラッチーノ3)によるスクラッチプログラミングLESSON8の詳細解説
スクラッチプログラミングと解説

上記がスクラッチのプログラミングとその解説になります。

Scrattino3(スクラッチーノ3)でのスクラッチプログラミングの作り方について、本記事冒頭の動画にて詳しく説明していますのでぜひご覧ください。

Arduinoをプログラミング制御するときは、USBケーブルの常時接続が必要です

プルアップとプルダウン入力については、こちらの記事にて詳しく説明しています。

Arduino専用ブロックについては、こちらの記事にて詳しく説明しています。

動作確認方法

配線状態説明図(LESSON5)
配線状態説明図
動作確認チェックリスト
  • チルトスイッチが垂直のときは、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点灯制御プログラミングの学習についてはこちら!

応援ありがとうございます(^^)/

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次