私の著書が全国学校図書館協議会選定図書になりました!

夏休みの自由研究に!レゴとArduinoでかんたん電子工作「トレジャーボックス」を作ってみよう

  • URLをコピーしました!

この記事内には、プロモーションが含まれます。

\ 限定の返礼品あり! /

こんにちは、せでぃあ(@cediablog)です。

夏休みの自由研究におすすめな電子工作「トレジャーボックス」を紹介します。

電子工作「トレジャーボックス」を上から見た写真
電子工作「トレジャーボックス」を上から見た写真
電子工作「トレジャーボックス」をななめから見た写真
電子工作「トレジャーボックス」をななめから見た写真

Arduinoという電子工作初心者向けのマイコンを使用して動作をさせる電子工作です。

電子工作と聞くとプログラミング言語から勉強しないと始められない、初心者にはハードルが高いというイメージを持っている方もいらっしゃると思います。

ご安心ください!

今回の「トレジャーボックス」は文字列を使わないビジュアルプログラミングを使ったプログラムを使って動作させており、文字コードプログラミングが苦手の方や未経験者も簡単にプログラム作成が可能です。

せでぃあ

工作に必要な機器や配線手順も分かりやすく解説します。

だれでも簡単に電子工作を始められる!初心者向け超入門本を出版させていただきました。

この記事を読んでわかること
  • トレジャーボックスの作り方
  • Arduinoとの配線方法
  • mBlockを使ったビジュアルプログラミング方法
この記事を書いた人
せでぃあ

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

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

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

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

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

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

目次

電子工作「トレジャーボックス」の動作説明

電子工作「トレジャーボックス」の動作解説
パスワード入力を受け付けている状態

製作する電子工作「トレジャーボックス」の動作を紹介します。

電子工作「トレジャーボックス」の動作説明
  • メンブレンスイッチ(キーパッド)でパスワードを1文字ずつ入力する。
  • 入力した文字はLCDディスプレイの下段に表示される。
  • 「*」を押すと入力値がクリアされ、入力のやり直しが可能。
  • 「#」を押すとパスワード判定され、入力値が「135A」であればBOXが開く。
動作説明とmBlockプログラミングの解説動画
動画での解説内容
  • 電子工作「トレジャーボックス」で使うもの
  • 電子工作「トレジャーボックス」の動作内容
  • mBlockプログラミングの解説

まずは動画を見て、今回作製するトレジャーボックスの動作内容を確認してください。

LCDディスプレイへの文字入力や、サーボモータによるBOXが開く動作を見て楽しめる電子工作となっています。

また、mBlockを使ったビジュアルプログラミング内容や動作確認方法についても解説しています。

せでぃあ

体験型の電子工作は、作ったあとの動作確認遊びも楽しいですよ!

夏休みの自由研究工作テーマの選び方を紹介しています。

トレジャーボックスの作り方

トレジャーボックスを作るための手順を説明します。

STEP

必要なものを準備

工作を作るために必要なものは以下の通りです。

・工作を作るための材料
・プログラミングするためのパソコン

STEP

組み立て

レゴと電子パーツを使って、トレジャーボックスを組み立てます。

STEP

電気配線

電子パーツとジャンパーワイヤの差し込みによる配線作業を行います。

STEP

mBlockのセットアップ

パソコンにビジュアルプログラミングツール「mBlock」のインストールを行います。

STEP

プログラミング

mBlockを使ってプログラムを作成します。

プログラム内容については、後述するプログラミング例を参考にしてください。

STEP

動作確認

プログラムが完成したらArduinoにプログラムを転送し、動作確認と調整を行います。

動作確認チェックリスト
  • メンブレンスイッチ入力した値がLCDディスプレイに表示されるか?
  • 「*」キーを押したら、ディスプレイに表示された入力値はクリアされるか?
  • 「#」キーを押したとき入力値が「135A」のときだけボックスが開くか?
せでぃあ

まずは工作完成までの流れを理解してください。

STEP1:必要なものを準備

必要な材料
  1. パソコン
  2. LEGOブロック
  3. GeekServo 9G Servo-Gray
  4. ELEGOO ArduinoUNO R3最終版スターターキット
  5. Arduino用アクリルケース
  6. I2Cモジュール

トレジャーボックスの電子工作を作るために必要な材料になります。

パソコン

ビジュアルプログラミングツール「mBlock」をインストールして、プログラムを作成・転送するために使用します。

OSはWindows、Macどちらでもソフトウェアのインストールは可能です。

レゴブロック

トレジャーボックスはレゴブロックを使って作ります。

トレジャーボックスはレゴブロックと、後述するレゴブロック互換のサーボモータを使って作ります。

使用するブロックシリーズ
  • クラシックブロック:ふた開閉機構部以外で使用
  • テクニックブロック:ふた開閉機構部(ギア駆動まわり)

クラシックブロック

私はこれまで購入してきたレゴブロックパーツを適当に組み合わせて作りました。

使用するブロックの色はもちろん自由です。

ご自身の手持ちのブロックを使って作ってみて、不足があれば購入するくらいで良いと思います。

ボックスの底板と天板(ふた)には8×8プレート(型式:41539-194)を使用しており、必要あらばプレートだけ単品購入して準備してください。

▼LEGOブロックのバラ購入が可能な専門店「ブリッカーズ楽天市場店」

今回のレゴブロック組み立て写真とまったく一緒にする必要はありません。

透明パーツを含めたパーツセットを購入しておくと、別記事で紹介している信号機工作にも使えてお得です!

テクニックブロック

使用するレゴテクニックパーツの説明
今回必要となるテクニックパーツ

今回使用したテクニックパーツと型式

  • ダブルベベルギア12歯:32270
  • ベベルギア12歯:6589
  • ブッシュ1/2:4265C
  • 6M十字軸47mm:3706
  • 1×2-穴1:3700
  • 1×2軸穴:32064

1×2-穴1は2つ、その他は各1つのパーツを使います。
ブッシュは十字軸折れ対策として取り付けています。

上記パーツがお手元にない場合は、テクニックブロックの単品購入が可能な下記サイトで購入するのが便利です。

▼LEGOブロックのバラ購入が可能な専門店「ブリッカーズ楽天市場店」

せでぃあ

商品検索欄にパーツ型式を入力すれば欲しいブロックがすぐ見つかりますよ!

GeekServo 9G Servo-Gray

GeekServo 9G Servo-Gray
GeekServo 9G Servo-Grayの解説

レゴブロックと互換性のあるサーボモータ(商品コード:KBOT-SERVO-GRAY)です。

回転角270°のサーボモーターで、指定した角度に回転して維持することができます。

今回トレジャーボックスの開閉動作を行うために使用しており、スイッチサイエンスにて購入が可能です。

ELEGOO ArduinoUNO R3最終版スターターキット

ELEGOO社の最終版スーパースターターキットを使うことで、工作に必要な電子パーツが一通り揃います。

1つずつ単品購入することも可能ですが、キットで購入した方が断然コスパが高いです。

今回使用するキット同梱パーツ
  1. Arduino本体(互換品)
  2. USBケーブル
  3. ブレッドボード
  4. 電源モジュール
  5. メンブレンスイッチ(キーパッド)
  6. LCD1602モジュール
  7. ジャンパー線(オスーオス)×13本
  8. ジャンパー線(オスーメス)×4本
  9. DC9V電池、スナップケーブル【必要に応じて】

キットに含まれる「9V電池+スナップケーブル」を使うことで、パソコンとUSBケーブルで接続していなくてもArduinoに給電することができます。

最終キットに含まれるパーツを紹介していますので、購入時の参考にしてください。

Arduino用アクリルケース

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

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

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

クリアケースは、スターターキットに含まれていません

I2Cモジュール

I2Cシリアルインタフェースボードモジュール
I2Cシリアルインターフェースボード

I2C通信を使ってLCDを制御するために必要なモジュールです。

電源線2本と通信線2本の合計4本の配線だけで、LCDを制御することが可能になります。

I2C(アイスクエアドシー)通信は、省配線を実現するためのシリアル通信方式です。

せでぃあ

I2Cモジュールはキットに含まれないため、別途購入が必要です。

STEP2:トレジャーボックスの組み立て

レゴブロックを組み立てて、トレジャーボックスを作ります。

トレジャーボックスは箱部分の「固定部」とふた部分の「可動部」で構成されています。

固定部

固定部は大きく分けて、底面と外壁で成り立っています。

底面には「8×8プレート(型式:41539-194)」を使いました。

※可動ふたも同じプレートを使用しています。

ふたを開閉させるサーボモータ周り以外はどんなブロックの組み合わせでも良いので、底面プレートの外周列を積み上げていきます。

可動部

ふたを開閉動作させる部分を組み立てます。

使用するレゴテクニックパーツの説明
ふたの開閉軸側の辺にスキマを作るのがコツ

まずはじめに、サーボモータを回転軸が上向きになるようにして底板に差し込みます。

GeekServoサーボモータはLEGOブロックと互換性があるので、底面ブロックと結合できます。

サーボモータの配線取り出し部がボックスの外側になるようにしてください。

サーボモータが組み付けできたら、上記写真を参考にして他のレゴテクニックパーツを組み立てていきます。

せでぃあ

テクニックパーツブロック以外の部分は、自由にブロックを組み合わせて組み立ててください。

サーボモータの軸が回転することにより、ベベルギヤを介して「1×2軸穴ブロック」が回転します。

このブロックの上に「かさ上げブロック(どんなブロックでもOK)」を間に挟んで「8×8プレート(型式:41539-194)」を取り付けます。

開閉動作確認するときに、ふたが他のブロックに引っかからずに開閉できればOKです。

ふたの開閉軸側の辺に干渉を回避するためのスキマを作るのがコツです。

トレジャーボックスのふたが閉まっている状態

ふたの開閉軸側以外の3辺はふたが閉まったときに、固定側とぴったりくっつく外壁の高さにします。

開閉軸側の辺のみ、ふたと外壁の間に0.5ブロックほどのスキマがある状態になります。

STEP3-1:電気配線~動作確認に必要なもの

電気配線~動作確認までに必要となる機器を準備していきます。

最終版スターターキットに含まれるパーツには【キット】と表示してありますので、キットのケースから取り出して準備しておいてください。

電子工作「トレジャーボックス」で使うもの
配線が完了しプログラム転送できる状態写真
準備するもの
  1. トレジャーボックス
  2. パソコン
  3. Arduino本体(互換機)【キット】
  4. USBケーブル【キット】
  5. ブレッドボード【キット】
  6. メンブレンスイッチ【キット】
  7. LCD1602モジュール【キット】
  8. I2Cモジュール
  9. ジャンパー線(オスーメス)×4本【キット】
  10. ジャンパー線(オスーオス)×13本【キット】
  11. DC9V電池、スナップケーブル【キット】(USBケーブル経由で電源供給する場合は不要)

トレジャーボックス

STEP1で組み立てたトレジャーボックスです。

サーボモーターからコネクタ付リード線が出ているので、ジャンパー線のオス側を挿入して配線します。

▼手持ちにないLEGOブロックをバラで購入するならブリッカーズが便利です!

パソコン

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

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

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

Arduino本体【キット】

Arduino互換機のELEGOO UNO R3
Arduino本体

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

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

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

USBケーブル【キット】

パソコン通信用USBケーブル
USBケーブル

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

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

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

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

説明図は30列のショート版ですが、最終版スターターキットに含まれる63列タイプでも機能は同じです。

メンブレンスイッチ(キーパッド)【キット】

メンブレンスイッチ(キーパッド)
メンブレンスイッチ(キーパッド)

キーパッドは、8本の電線が行と列ごとに配線されている電子機器です。

Arduinoの入出力ソケットに接続することで、押されたキーを認識することができます。

LCD1602モジュール【キット】

LCD1602モジュール
LCD1602モジュール

液晶ディスプレイ「LCD(Liquid Crystal Display)」モジュールになります。

数字や文字などを表示させることが可能です。

I2Cモジュール

I2Cシリアルインタフェースボードモジュール
I2Cシリアルインターフェースボード

I2Cを使ってLCDを制御するために必要なモジュールです。

電源線2本と通信線2本の合計4本の配線だけで、LCDを制御することが可能になります。

せでぃあ

キットに含まれないパーツですので、ご注意ください。

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

ジャンパー線(オス-メス)
ジャンパー線(オス-メス)

オス-メスジャンパー線を4本使用します。

I2CシリアルインターフェースボードとArduino本体を接続させるために使用します。

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

ジャンパー線(オス-オス)
ジャンパー線

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

Arduino本体からメンブレンスイッチやサーボモータなどに接続するために使用します。

DC9V電池、スナップケーブル【キット】

9Vバッテリーとスナップケーブル
DC9V電池とスナップケーブル

9V電池とDCジャックがついたスナップケーブルです。

USBケーブルを使わずに、電池からArduinoに電源を供給することができます。

ArduinoへUSBケーブル経由で電源供給する場合は不要のパーツとなります。

STEP3-2:電気配線

トレジャーボックス電子工作の配線完了写真
配線完了時の状態写真
電子工作「トレジャーボックス」の電気配線図
電子工作「トレジャーボックス」の配線説明図(fritzingを用いて作成)

メンブレンスイッチは配線説明図の通り「2~9番ソケット」へ右から順に接続します。

サーボモーターコネクタへの配線説明
サーボモーターコネクタへの配線説明

今回橙色へは、Arduino11番ピンと接続させます。

必要な配線作業
  • LCD1602モジュールをブレッドボードに差し込む
  • I2Cモジュールをブレッドボードに差し込む
  • オスーオスジャンパー線をブレッドボードとArduinoソケットに差し込む
  • オスーオスジャンパー線をArduinoとメンブレンスイッチソケットに差し込む
  • オスーオスジャンパー線をサーボモーターからのリードコネクタに差し込む
  • オスーメスジャンパー線を使ってI2Cモジュールのピンに接続する

機器が故障するおそれがあるので、接続するプラスマイナス極性には十分注意して配線してください。

配線するのに特別な工具は必要ありません。

ジャンパー線を使ってArduinoのソケットやブレッドボード穴やコネクタピン・ソケットに差し込むだけでOKです。

機器故障させないためにも、USBケーブルを抜いた「通電OFF」状態にて配線を行ってください。

せでぃあ

配線説明図を見ながら落ち着いて配線作業を行ってください。

Arduino給電方法について

今回は、プログラムデータ送信用のUSBケーブルを通じて、PCからArduino本体へ電源供給しています。

USBケーブル経由での電源供給ができない場所で動作させたい場合は、スナップケーブルを使ってArduinoのDCジャックに差し込むことで、DC9V電池からの電源供給を行うことが可能となります。

STEP4:mBlockのセットアップ

お手持ちのパソコンに、Arduinoブロックプログラミングソフトェア「mBlock」をインストールします。

mBlockのインストール方法については、こちらの記事にて詳しく説明しています。

STEP5:プログラミング

mBlockを使ったトレジャーボックスプログラミング画面
mBlockを使ったプログラミング画面

ここからは、mBlockを使ったプログラムの作り方を解説します。

mBlockを使ったプログラムの作り方
  1. デバイスにArduino Uno R3を追加する
  2. 接続モードを「アップロードモードON」にする
  3. mBlockプログラムを作成する
  4. プログラムをArduino本体に転送する

プログラム作成手順①~④の基本操作方法については、こちらの記事を参照してください。

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

せでぃあ

動画を参考にプログラミングしてみてください

拡張ブロックを追加する

mBlockにはArduinoを制御するためにあらかじめ準備されているブロック以外にも、ダウンロードして使用することが可能な拡張ブロックが存在します。

今回は3種類の拡張ブロックの使用が必要になりますので、手順とブロック機能の解説を行います。

今回使用する拡張ブロック

  • string変数ブロック
  • I2Cを使ったLCD制御ブロック
  • keypadブロック

string変数ブロック

mBlockの標準機能で変数を作成すると強制的に「float型変数=浮動小数点型変数」になります。

今回メンブレンスイッチ(キーパッド)からの入力は文字列として入力させたいので、文字列型変数が必要です。

拡張ブロックを使用することで、文字列型変数を作成することが出来るようになります。

追加が必要なstring変数ブロックと機能説明
追加が必要なstring変数ブロックと機能説明
STEP
拡張ボタンをクリック
string変数ブロックのダウンロード手順①

mBlockを開いて、拡張ボタンをクリックします。

STEP
検索窓に「strings」と入力して検索し追加ボタンをクリック
string変数ブロックのダウンロード手順②

検索窓に「strings」と入力します。

「Strings」と書かれた拡張ブロックを「+追加」ボタンをクリックします。

STEP
string変数ブロックが追加される
string変数ブロックのダウンロード手順③

string変数ブロックが追加されます。

I2Cを使ったLCD制御ブロックの追加方法

LCDを制御(LCD画面クリア、カーソル位置を指定、LCDへの文字列表示など)するために必要な、専用ブロックを追加する必要があります。

追加が必要なI2Cを使ったLCD制御用ブロックと機能説明
追加が必要なI2Cを使ったLCD制御用ブロックと機能説明
STEP
拡張ボタンをクリック
mBlockを開いて、拡張ボタンをクリックします。

mBlockを開いて、拡張ボタンをクリックします。

STEP
検索窓に「i2c」と入力して検索
検索窓に「i2c」と入力します。

検索窓に「i2c」と入力します。

STEP
LCDと書かれた拡張ブロックを追加
I2Cを使ったLCD制御用の拡張ブロックを追加します。

I2Cを使ったLCD制御用の拡張ブロックを追加します。

STEP
LCDブロックが追加される
I2Cを使ったLCD制御ブロックが追加されます。

I2Cを使ったLCD制御ブロックが追加されます。

keypadブロックの追加方法

メンブレンスイッチの押されたキーを文字・記号としてプログラム内で変換するために、専用ブロックを追加します。

追加が必要なkeypadブロックと機能説明
追加が必要なkeypadブロックと機能説明
STEP
拡張ボタンをクリック
mBlockを開いて、拡張ボタンをクリックします。

mBlockを開いて、拡張ボタンをクリックします。

STEP
検索窓に「keypad」と入力して検索し、専用ブロックを追加
検索窓に「keypad」と入力します。

検索窓に「keypad」と入力します。

表示された追加ブロックリストの中から「Keypad Eklentisi」という専用ブロックを追加します。

STEP
keypadブロックが追加される
メンブレンスイッチのキーを文字・記号に変換できるブロックが追加されます。

メンブレンスイッチのキーを文字・記号に変換できる専用keypadブロックが追加されます。

mBlockを使ったプログラム内容

今回は「アップロードモード オン」でのプログラム作成例を紹介しています。

プログラム開始条件には「Arduino Unoが起動したとき」を使用します。

以下がmBlockによる動作プログラムになります。

mBlockを使った電子工作「トレジャーボックス」動作プログラム
mBlockを使った電子工作「トレジャーボックス」動作プログラム

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

STEP6:動作確認

電子工作「トレジャーボックス」の動作解説
動作確認チェックリスト
  • メンブレンスイッチ入力した値がLCDディスプレイに表示されるか?
  • 「*」キーを押したら、ディスプレイに表示された入力値はクリアされるか?
  • 「#」キーを押したとき入力値が「135A」のときだけボックスが開くか?

上記項目について確認していきましょう。

メンブレンスイッチ入力した値がLCDディスプレイに表示されるか?

メンブレンスイッチ(キーパッド)のボタン(0~9、A~D)を押して、LCDディスプレイの下段に左から押した順に表示されるか確認してください。

「1⇒2⇒3⇒4」と順番に押した場合は、「1234」と表示されるはずです。

押してもLCDディスプレイに表示されないボタンがある場合は、メンブレンスイッチとArduinoを接続する8本の線のどれかがArduinoソケットから抜けている可能性があります。

そういった場合は配線をチェックしてください。

停止動作後さらに押しボタンを押すと、再び高速回転動作からの繰り返し動作になります

「*」キーを押したら、ディスプレイに表示された入力値はクリアされるか?

LCDディスプレイ上段にも表示していますが、「*」キーは入力値のクリアキーとして機能させています。

「*」キーを押したら、LCDディスプレイ下段に入力した文字列がクリアされて「未表示状態」になることを確認してください。

もし下段の文字列がクリアされない場合は、プログラムに間違いがないかチェックしてください。

「#」キーを押したとき入力値が「135A」のときだけボックスが開くか?

「#」キーは入力値の確定キーとして機能させています。

「#」キーが押されると入力された文字列が、正解パスワード「135A」であるかどうかプログラム側で照合します。

照合結果が「同じ=正解」の場合は、LCDディスプレイ下段に「SUCCESS!」と表示され、トレジャーボックスのふたが自動的に開きます。

「違う=不正解」の場合は、LCDディスプレイ下段に「FAILED!」と表示され、トレジャーボックスのふたは開きません。

これらの動作がうまくいかない場合は、プログラム側に間違いがないかチェックしてください。

電子工作「トレジャーボックス」のまとめ

この記事の内容をまとめると
  • サーボモータの位置決め機能により、ふたの開閉角度制御が可能
  • 使用する多くのパーツがELEGOO最終版スターターキットで手配可能
  • ビジュアルプログラミングツールmBlockを使えばプログラミングが簡単にできる

文字コードが不要のビジュアルプログラミングを使うことで、命令語を理解していなくても機能ブロックを組み合わせるだけでプログラムを作成することができます。

ビジュアルプログラミングは文字コードプログラミングにありがちな「英文字スペル間違い」の心配もありませんし、小学生にも安心して使っていただけるプログラミングツールです。

「BOXのふたが開いてから10秒後に自動でふたが閉まるようにする」など、あなた自信で動作をアレンジしてみると一層楽しめる電子工作にパワーアップできると思います。

せでぃあ

慣れてきたらオリジナル動作を加えて、世界に一つしかない電子工作を作ってみてくださいね!

親子で楽しく作れる電子工作の本を出版させていただきました!

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

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

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

コメント

コメントする

CAPTCHA


目次