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

小学生に作ってほしい!LEGOとArduinoで作る電子工作「信号機」

  • URLをコピーしました!
ひろ

親子でプログラミングを使った電子工作にチャレンジしてみたいです

せでぃあ

プログラミング初心者におすすめのテーマを紹介するよ

私が数年前に子供(当時小6)と作った、アイデア工作「信GO機(信号機)」を紹介します。

LEGOブロックとArduinoによる信号機のプログラミング点灯回路を合わせた、オリジナル作品です。

本記事を読めば、誰でもこの作品を作ることができることを目指して書きました。

プログラムはコピペで対応できる内容となっています。

プログラミング初心者の方も安心してチャレンジしてみてください。

文字入力不要のスクラッチプログラミング「Scrattino3(スクラッチーノ3)」プログラム例も本記事で紹介します。

このような方におすすめ
  • プログラミングを用いた電子工作にチャレンジしたい人
  • 小学生の子供と一緒に夏休みの自由研究に取り組みたい人
  • Arduinoを用いたプログラミングを勉強したい人
筆者:せでぃあ

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

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

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

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

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

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

この工作はArduinoスターターキットを使って作成しています。

目次

信GO機ってどんな装置

私が作成した装置紹介動画をご覧ください。

LEGO信号機の電子工作紹介動画「せでぃあブログちゃんねる」より
信GO機はこんな装置です
  • 身近な制御機器である信号機を題材にした工作です
  • 交差点の信号機で、車用が2つ・歩行者用が1つ設置されています
  • 歩行者用押しボタンを押すと、早く青信号に変わります
せでぃあ

だれでも知っている信号機はテーマに最適だね

Arduinoとは

Arduinoの概要説明写真

Arduino(アルドゥイーノ)とは初心者から扱うことができるマイコンです。

ラズベリーパイ(ラズパイ)と並んで、工作初心者に人気のマイコンです。

できることの例として、プログラムでのLED点灯や、モーターなどの電子部品の動作をさせることができます。

工作の作り方

STEP
工具と材料の準備

ホームセンターやネットショップで揃えることができます。

STEP
組み立て

基本的にはレゴブロックの組み立てになります。

特別な工具は必要ありません。

STEP
電気配線

基本的にジャンパーワイヤの差し込みだけで配線が可能です。

歩行者用押しボタンのみ、はんだ付けを行います。

STEP
プログラミング

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

私が作成したプログラムをコピペして使ってください。

STEP
動作確認

信号機の動作になっているか確認してください。

記載のプログラムは動作確認済ですので、ご安心ください。

STEP
完成!

プログラミングを用いた電子工作の完成です!

せでぃあ

この後の詳細記事を読めば、だれでも信GO機を作ることができるよ

STEP1:工具と材料の準備

必要な工具

必要な工具
  1. 精密ドライバー
    Arduino本体クリアケース組み立てに使用
  2. はんだごて
    歩行者用押しボタンとワイヤの接続に使用
  3. はんだ
あったら便利なもの(なくても製作可能)
  1. インシュロック
    配線をまとめることができます。

必要な材料

必要な材料
  1. LEGOブロック
  2. ELEGOO UNO R3スターター互換キット
  3. アクリルケース
  4. デュポンワイヤー(メス-オス)

LEGOブロック

これまで購入してきたLEGOパーツを組み合わせているため、肝になるパーツのみ紹介します。

LEDの頭を穴に差し込んで、クリアパーツで穴を塞ぎます。

※LEDむき出しでもよければ、クリアパーツ手配はマストではありません。

ブロックセット品を購入する際は、購入前に必要なブロックが含まれるセットかどうかを確認してください。
セットに必要なブロックが含まれていなかった場合、当サイトでは責任が取れませんのでご了承ください。

ELEGOO UNO R3スターター互換キット

これからArduinoを始める方におすすめの初心者キットです。

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

アクリルケース

Arduino本体の裏側は基板がむき出しになっています。
ELEGOO本体の裏側写真

Arduino本体の裏側は基板がむき出しになっており、埃による短絡故障のリスクがあります。

本体を平置き設置するためにも、購入することをおすすめします。

デュポンワイヤー(メス-オス)

信号機とブレッドボードを接続するために必要です。

スターターキットにもデュポンワイヤーが5本同梱されています。

必要数16本に対して不足するため、購入が必要です。

STEP2:組み立て

LEGO組み立て参考写真1
組み立て参考写真1
LEGO組み立て参考写真2
組み立て参考写真2
LEGO組み立て参考写真3
組み立て参考写真3

写真を参考にして、LEGOブロックを組み立てます。

押しボタンやLEDへの配線は後で行うため、ここではブロック設置のみでOKです。

信号機と押しボタンの配置はマストですが、他のオブジェクトの設置は任意です。

STEP3:電気配線

続いて電気配線を行っていきます。

順番に説明しますので、説明に従って作業してください。

本記事内の配線回路図はfritzingを用いて作成しています

抵抗を配置する

ブレッドボード(穴のたくさん開いた白い板)に抵抗を配置していきます。

使用する抵抗
  • 220Ω×8個
  • 1kΩ×1個

キット付属の抵抗は抵抗貼り付けシールに抵抗値の記載があるため、色による抵抗値識別ができなくても問題ありません。

今回使用する抵抗
今回使用する抵抗
ブレッドボードへの抵抗配置図
ブレッドボードへの抵抗配置図

上図のように抵抗をブレッドボードの穴に挿入してください。

抵抗に極性はないため、どちらのピンを差し込んでもOKです。

アルドゥイーノとブレッドボードを接続する

アルドゥイーノとブレッドボードの配線接続説明図
アルドゥイーノとブレッドボードの配線接続説明図

ジャンパーワイヤー(オスーオス)を使って、穴にピンを差し込んで接続します。

LED点灯色に合わせたワイヤー色を選定すると、配線間違えリスクを減らすことができます。

歩行者用押しボタンに配線する

ブレッドボードとの配線

歩行者用押しボタンとブレッドボードの配線図
歩行者用押しボタンとブレッドボードの配線図

歩行者用押しボタンとブレッドボードはジャンパーワイヤー(オスーオス)を2本使用します。

押しボタン部との接続部分については、下記参照の上作業してください。

押しボタン部の配線説明

歩行者用押しボタンの接続部説明
歩行者用押しボタンの接続部説明

押しボタンの端子とワイヤーオス端子をはんだ付けします。

押しボタンの端子は4つありますが、外側に飛び出している面2点と接続してください。

2側面ありますが、どの面の2点と接続しても機能は同じで問題ありません

LEDに配線する

LEDとは

電流を流すと発行する電子部品で「発光ダイオード」のことを言います。

使用するLEDの種類とLEDの極性説明図

LEDには極性(+-の区別)がありますが、上記説明写真のように目視で識別する方法があります。

極性の接続を間違えると、LEDは点灯しませんので注意してください。

各LEDへの配線説明

全体配線図
全体配線図
自動車信号機1への配線詳細説明図
自動車信号機1への配線詳細説明図
歩行者信号機1への配線詳細説明図
歩行者信号機1への配線詳細説明図
自動車信号機2への配線詳細説明図
自動車信号機2への配線詳細説明図

上記説明図を参照し、配線を行ってください。

各LEDとブレッドボードはデュポンワイヤー(メス-オス)を使用します。

デュポンワイヤーはワイヤー同士が接着されていますが、簡単に削けますので必要な本数ずつに分けてください。

LED側がメスで、ブレッドボード側がオスになります。

デュポンワイヤーの必要本数
  • ブレッドボード~自動車信号機1:6本
  • ブレッドボード~歩行者信号機1:6本
  • ブレッドボード~自動車信号機2:4本

STEP4:プログラミング

プログラミングソフトのインストール方法

Arduinoを動作させるためには、専用開発環境「Arduino IDE」が必要です。

このソフトウェアは無償で提供されています。

Arduinoの開発言語は「C言語」に似た形態であり、プログラムのことを「スケッチ」と呼びます。

Windows版のダウンロードを例に、説明します。

STEP
ダウンロードサイトを開く。

Arduino公式サイトに移動します。

STEP
「Windows Win7 and newer」をクリックする。
Arduino IDEダウンロードサイト説明
STEP
寄付するか、しないかを選択してダウンロードする。
Arduino IDEダウンロードサイト(寄付するかしないか)の画面説明
STEP
ダウンロードしたexeファイルをダブルクリックする。
ダウンロードファイルをダブルクリックする
STEP
「I Agree」ボタンをクリックする。
「I Agree」を選択
STEP
「Next」ボタンをクリックする。
「Next」を選択
STEP
「Install」ボタンをクリックし、インストールを行う。
「Install」を選択し、インストールを行う。
STEP
インストールが完了したら「Close」ボタンをクリックする。
STEP
デスクトップ上のArduino.exeのショートカットをダブルクリックする。
STEP
新規ファイルが開いたらインストール正常完了。
せでぃあ

これでセットアップは完了です。
お疲れ様でした。

プログラムを作成

開発ソフトウェア「Arduino IDE」を使って、プログラミングを行います。

以下のプログラムをコピペしてください。

/* 作品名:「信GO機」 */
/* 作成者:せでぃあ https://cediablog.com */
/* プログラムによる信号機制御 */

int walker_btn = 2 ; //歩行者用押しボタンのIO割り当て
int led_G1A = 6 ; //自動車信号機1の緑IO割り当て
int led_Y1A = 7 ; //自動車信号機1の黄IO割り当て
int led_R1A = 8 ; //自動車信号機1の赤IO割り当て
int led_R1B = 9 ; //歩行者信号機1の赤IO割り当て
int led_G1B = 10; //歩行者信号機1の緑IO割り当て
int led_G2A = 11; //自動車信号機2の緑IO割り当て
int led_Y2A = 12; //自動車信号機2の黄IO割り当て
int led_R2A = 13; //自動車信号機2の赤IO割り当て

int i = 0;  //繰り返し変数

void setup() {
  // put your setup code here, to run once: プログラム起動時1回だけ処理される回路
  // 入出力の割り当て
  pinMode(walker_btn, INPUT); //2番ピンは入力として使用
  pinMode(led_G1A, OUTPUT); //6番ピンは出力として使用
  pinMode(led_Y1A, OUTPUT); //7番ピンは出力として使用
  pinMode(led_R1A, OUTPUT); //8番ピンは出力として使用
  pinMode(led_R1B, OUTPUT); //9番ピンは出力として使用
  pinMode(led_G1B, OUTPUT); //10番ピンは出力として使用
  pinMode(led_G2A, OUTPUT); //11番ピンは出力として使用
  pinMode(led_Y2A, OUTPUT); //12番ピンは出力として使用
  pinMode(led_R2A, OUTPUT); //13番ピンは出力として使用

  //出力の初期化処理
  digitalWrite(led_G1A, LOW);
  digitalWrite(led_Y1A, LOW);
  digitalWrite(led_R1A, LOW);
  digitalWrite(led_R1B, LOW);
  digitalWrite(led_G1B, LOW);
  digitalWrite(led_G2A, LOW);
  digitalWrite(led_Y2A, LOW);
  digitalWrite(led_R2A, LOW);

}

void loop() {
  // put your main code here, to run repeatedly: プログラム起動後ループ処理される回路

  //信号点灯モードの切り替わりシーケンス
  /* モード1・・・信号機1が緑点灯 */
  digitalWrite(led_G1A, HIGH); //信号機1:緑点灯
  digitalWrite(led_R1A, LOW);
  digitalWrite(led_R1B, LOW);
  digitalWrite(led_G1B, HIGH); //歩行者:緑点灯
  digitalWrite(led_R2A, HIGH); //信号機2:赤点灯
  delay(10000); //10秒ウェイト

  /* モード2・・・信号機1の歩行者信号が緑点滅 */
  //歩行者信号の緑点滅回路(0.25秒間隔)
  for (i = 0  ; i <= 10 ; i++) {
    digitalWrite(led_G1B, LOW);
    delay(250);
    digitalWrite(led_G1B, HIGH);
    delay(250);
  }
  /* モード3・・・信号機1の歩行者信号が赤点灯 */
  digitalWrite(led_R1B, HIGH); //歩行者:赤点灯
  digitalWrite(led_G1B, LOW);
  delay(1500); //1.5秒ウェイト

  /* モード4・・・信号機1が黄点灯 */
  digitalWrite(led_G1A, LOW);
  digitalWrite(led_Y1A, HIGH); //信号機1:黄点灯
  delay(2500); //2.5秒ウェイト

  /* モード5・・・信号機1が赤点灯 */
  digitalWrite(led_Y1A, LOW);
  digitalWrite(led_R1A, HIGH); //信号機1:赤点灯
  delay(2500); //2.5秒ウェイト

  /* モード6・・・信号機2が緑点灯 */
  digitalWrite(led_G2A, HIGH); //信号機2:緑点灯
  digitalWrite(led_R2A, LOW);
  //割り込み受付ウェイト回路(0.1秒間隔で9秒ウェイト)
  for (i = 0 ; i <= 90 ; i++) {
    if (digitalRead(walker_btn) != HIGH){
       delay(100);
    }  else {break;
    } 
  }
  delay(1000); //1秒ウェイト

  /* モード7・・・信号機2が黄点灯 */
  digitalWrite(led_G2A, LOW);
  digitalWrite(led_Y2A, HIGH); //信号機2:黄点灯
  delay(2500); //2.5秒ウェイト

  /* モード8・・信号機2が赤点灯 */
  digitalWrite(led_Y2A, LOW);
  digitalWrite(led_R2A, HIGH); //信号機2:赤点灯
  delay(2500); //2.5秒ウェイト
}

検証

プログラムのコピペが完了したら、検証作業を行います。

左上の「✓」ボタンを押して、検証を実行してください。

検証が正常に完了すると、以下の画面になります。

検証が正常終了した画面
検証が正常終了した画面

Arduino本体にプログラムを転送

USBポート接続部の説明写真
USBポート接続部の説明写真(回路は本工作とは関係ありません)

上記説明写真の②USBポートとパソコンをケーブルで接続します。

Arduino IDE画面右上の「⇒」(マイコンボードに書き込む)ボタンを押して、プログラムを書き込みます。

書き込みが完了すると、そのままプログラムが実行されます。

USBケーブルはArduinoへの給電にも使用するため、プログラム転送が完了してもケーブル接続したままにしてください。

Scrattino3(スクラッチーノ3)を用いたスクラッチプログラミング

Scrattino3(スクラッチーノ3)を用いた信号機プログラミング
Scrattino3(スクラッチーノ3)を用いた信号機プログラミング

Scrattino3(スクラッチーノ3)を使ってプログラミングしたい方は、上記の通りブロック配置することでArduino IDEプログラムと同一の信号機動作をさせることができます。

STEP5:動作確認

信号機の動作を確認

まずは各信号機のランプ点灯が、信号機の点灯になっているか確認します。

ランプが点灯しないときの確認ポイント
  • LEDへの配線は極性を間違えていないか?
  • 配線が抜けかけていたり、抜けていないか?
  • ブレッドボード電源線「+」「-」への配線間違いはないか?

歩行者用押しボタン動作を確認

歩行者用信号機が赤のときに、押しボタンを押してください。

ボタンを押した直後に、反対側の信号が黄色点灯に変われば動作確認OKです。

うまくいかないときの確認ポイント
  • 押しボタンへの配線は間違えていないか?
  • 押しボタンへのはんだ付け端子に間違いはないか?
  • 配線が抜けかけていたり、抜けていないか?
  • ブレッドボード電源線「+」「-」への配線間違いはないか?
せでぃあ

うまくいかないときは、落ち着いて対応することが大切だよ

STEP6:完成!

完成おめでとうございます!

インシュロックで配線を縛ってまとめたり、車や草木を配置して見栄えを良くしてもいいですね。

まとめ

このように、Arduinoは電子工作初心者におすすめのマイコンです。

電子工作キットには、様々な電子機器が同梱されています。

勉強も兼ねて、新しい機器の動作プログラムについてもチャレンジしてみてください。

スクラッチプログラミングを学習するのにおすすめな勉強本をレビューしています。

小学生向けロボットプログラミング教室については、こちの記事で紹介しています。

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

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

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

コメント

コメントする

CAPTCHA


目次