夏休みの自由研究に!レゴとArduinoで作るアイデア電子工作「扇風機」
こんにちは、せでぃあ(@cediablog)です。
夏休みの自由研究におすすめな電子工作「扇風機」を紹介します。
Arduinoというマイコンを使用して動作をさせますが、文字列を使わないブロックプログラミングを使ってプログラミングするため、本記事を読めば簡単に工作を作ることができます。
ぜひチャレンジしてみてください!
より簡単な電子工作をお探しの方には、「信号機」がおすすめです!
- 扇風機の組み立て方法
- Arduinoとの配線方法
- mBlockを使ったビジュアルプログラミング方法
せでぃあはこんな人物です
✅プライム企業に勤める電気・機械設計エンジニア
✅親子の絆を深めるため、夏休みに子供と一緒に電子工作を製作
✅Arduinoプログラミングを用いて作ったプログラミング電子工作「信GO機」が市の発明くふう展で「優秀賞」を受賞
✅本ブログにてArduinoスクラッチプログラミングLESSON記事投稿中
✅YouTubeチャンネル「せでぃあブログちゃんねる」運営中
電子工作「扇風機」の動作説明
今回作製する電子工作「扇風機」の動作を紹介します。
- 回転速度切り替えボタンを押すと、回転停止⇒高速回転⇒低速回転⇒回転停止を行う。
- 首振り動作切り替えボタンを押すと、首振りON⇒首振りOFF切り替えが可能。
- 首振り動作中に回転停止動作になると、首振りOFFモードに自動で切り替わる。
- 電子工作「扇風機」で使用する電子機器
- 電子工作「扇風機」の動作内容
- mBlockを使ったプログラミングの解説
まずは動画を見て、今回作製する扇風機の動作内容を確認してください。
扇風機は身近な家電製品のため、工作テーマとしておすすめです。
また、mBlockを使ったスクラッチプログラミングや動作確認方法についても解説しています。
扇風機は身近な家電製品のため、工作テーマとしておすすめです
夏休みの自由研究工作テーマの選び方を紹介しています。
電子工作「扇風機」の作り方
電子工作「扇風機」を作るための手順を説明します。
必要なものを準備
工作を作るために必要なものは以下の通りです。
・工作を作るための材料
・プログラミングするためのパソコン
組み立て
レゴと電子パーツを使って、扇風機を組み立てます。
電気配線
電子パーツとジャンパーワイヤの差し込みによる配線作業を行います。
mBlockのセットアップ
パソコンにスクラッチベースのビジュアルプログラミングツール「mBlock」のインストールを行います。
プログラミング
スクラッチベースのビジュアルプログラミングツールmBlockを使ってプログラムを作成します
プログラム内容については、後述するプログラミング例を参考にしてください。
動作確認
プログラムが完成したらArduinoにプログラムを転送し、動作確認と調整を行います。
- 回転速度切り替えボタンを押すと、回転停止⇒高速回転⇒低速回転⇒回転停止を行うか?
- 首振り動作動作切り替えボタンを押すと、首振りON⇒首振りOFF切り替え可能か?
- 首振り動作中に回転停止動作になると、首振りOFFモードに自動で切り替わるか?
各STEPの詳細については、このあと詳しく説明していきます!
STEP1:必要なものを準備
- パソコン
- LEGOブロック
- ELEGOO ArduinoUNO R3スターターキット
- Arduino用アクリルケース
これら4つの材料をそろえれば、電子工作「扇風機」をつくることができます。
パソコン
ブロックプログラミングツール「mBlock」をインストールして、プログラムを作成するために使用します。
OSはWindows、Macどちらでもソフトウェアのインストールは可能です。
レゴブロック
私はこれまで購入してきたレゴブロックパーツを組み合わせて作りました。
ご自身の手持ちのブロックを使って作ってみて、不足があれば購入するくらいで良いと思います。
今回のレゴブロック組み立て状態とまったく一緒にする必要はありません。
見た目をかっこよくアレンジしてみてください
ELEGOO ArduinoUNO R3スターターキット
ELEGOO社のスーパースターターキットを使うことで、工作に必要な電子パーツが一通り揃います。
これからArduinoを始める方におすすめなキットです。
Arduino用アクリルケース
Arduino本体の裏側は基板がむき出しになっており、埃による短絡故障のリスクがあります。
本体を平置き設置するためにも、購入することをおすすめします。
STEP2:組み立て
レゴブロックを組み立てて、扇風機を作ります。
扇風機は大きく分けて、首振り回転する「上部」と、土台側の「下部」の2ユニットで構成されています。
上部(首振り部)組み立て
上部は扇風機のプロペラ回転部になります。
DCモーターをレゴブロックで上下方向で挟み込んで固定していきます。
後ろ側に黄色い大ブロックをぶら下げている理由は、モーターの重さとバランスを取るためのカウンター(おもり)になります。
このカウンターがないと、プロペラ側に重心が偏ってしまい首振り動作時にひっかかりが起きてしまいます。
モーターのはんだ付け部を断線させないように、配線を引っ張りすぎないようにしてください。
断線した場合は、モーター端子部の再はんだ付けを行ってください
首振り動作を行うために、上部の裏側にはサーボモーターの回転羽根を挿入するためのスキマを空けておきます。
羽根の上に乗せるだけでも首振り動作は可能ですが、バランスが悪いと上部ユニットが首振り動作中に落下してしまうため挿入する仕組みにしておくことで安定感が増します。
ブロックの組み合わせはモーターが固定できて、前後の重量バランスがとれていれば写真と違っていても問題ありません。
動作確認するときに、首振り動作時にひっかかりがなく首振り動作が出来ればOKです。
動作確認時に組み立て状態を微調整していけば良いです
下部(土台部)組み立て
土台部は、上部の首振りプロペラ回転部が倒れないように支えられること、サーボモーター回転により首振り動作させられることが求められます。
サーボモーターが回転するときにモーター自体が回転してしまわないように、レゴブロックで挟み込みます。
サーボモーターは3本のリード線がつながっています。
側面側から配線を逃がすようにします。
サーボモーターの回転軸は歯車形状になっており、回転羽根を任意の角度で挿入できる機構になっています。
今回はプログラムにて40度~160度の角度範囲の往復首振り動作をさせます。
プログラムを作成して、動作確認する際に首振り回転の中心が中央になるように羽根の挿入角度を調整してください。
サーボモーターは内部で0度位置をもっているため、一度羽根の挿入位置を決めておけば電源を入れ直しても同じ首振り範囲で動作してくれます。
サーボモーターは位置(角度)決め機能を持っています
サーボモーターの機能については、こちらの記事にて詳しく説明しています。
上部と下部をドッキング
下部ユニットのサーボモーター回転羽根を上部のスキマに挿入して、ドッキングさせてください。
このとき上部のユニットの重心バランスが大きく偏っていないか目視で確認して、必要に応じておもりの調整をしてください。
上部と下部をドッキングする前に、上部と下部を切り離して首振り動作範囲を調整してください。
STEP3-1:電気配線前に必要なもの
電気配線するにあたって、必要な機器を準備していきます。
- レゴブロック
- パソコン
- Arduino本体
- USBケーブル
- ブレッドボード
- 電源モジュール
- LED(赤・緑・黄)
- 抵抗(220Ω)×3本
- 押しボタンスイッチ×2個
- 抵抗(1kΩ)×2本
- 9V電池
- スナップケーブル
- L293DモータードライバーIC
- DCモーター(+プロペラ)
- サーボモーター
- ジャンパー線(オスーオス)×20本
レゴブロック
扇風機を作るために使用します。
お手持ちのレゴブロックがあれば、組み合わせて使ってみてください。
それでもブロックが不足する場合は、多彩なラインナップからお気に入りのセットを探してみてください。
パソコン
プログラムを作成するために必要です。
プログラム制御の演算はArduino側で行うため、パソコンのSPECは一般的なモデルで十分対応可能です。
パソコンのOSはWindows、Macどちらでも対応可能です。
Arduino本体【キット】
基本的なエディション「Arduino Uno」の互換機である、ELEGOO社のUNO R3を使用しています。
Arduino本体裏面のショート対策に、別売りのクリアケースの購入をおすすめしています。
各ソケットの役割など、Arduino本体の機能について以下の記事にて詳しく説明しています。
USBケーブル【キット】
パソコンとArduinoを接続してプログラムデータのやり取りをするために必要です。
ブレッドボード【キット】
たくさんの穴が開いていて、部品の端子を穴に差し込むだけで電気的に接続が可能な板です。
説明図は30列のショート版ですが、スーパースターターキットに含まれる63列タイプでも機能面は同じです
電源モジュール【キット】
ArduinoUnoのデジタル入出力ピンから供給できる電流は40mAとなっており、それほど大きくはありません。
今回使用するDCモーターは負荷回転時に最大250mA流れるため、電流値不足となってしまいます。
この対策として、今回のような外部電源モジュールを接続して駆動させる必要があります。
電源モジュールについては、こちらの記事にて詳しく説明しています。
LED(赤・黄・緑)【キット】
赤色・黄色・緑色のLED(発行ダイオード)を1本ずつ使用します。
LED素子にはプラスマイナスの極性があるため配線時には注意が必要です。
極性を間違えて配線すると、LEDは点灯しません
抵抗(220Ω)【キット】
220Ωの抵抗を使用し、各LEDに1本ずつ接続します。
LEDは流せる電流値に制約があるため、抵抗を直列つなぎすることでLEDに流れる電流を調節します。
抵抗は極性がないので、配線時に方向を気にする必要はありません。
LEDを点灯させるために接続する抵抗の選び方については、こちらの記事で詳しく説明しています。
押しボタン【キット】
今回の工作では、押しボタンスイッチを2個使用します。
押しボタンは押されている間のみ、上記写真での2点が内部でつながります。
このようなボタンをモーメンタリボタンといいます。
今回は扱いませんが、ボタンから手を離してもONしたままになるボタンをオルタネイトボタンといいます。
モーメンタリ・オルタネイトボタンについては以下記事にて詳しく説明しています。
抵抗(1kΩ)【キット】
1kΩの抵抗を2本使用し、押しボタンスイッチに接続します。
抵抗を接続するのは、押しボタンがOFFのときにArduino本体がノイズによる誤検出することを避けるためです。
この記事では詳しく説明しませんが、ボタンを押していないのに押されたと誤認識されることを避ける目的であるということだけ覚えておいてください。
DC9V電池、スナップケーブル【キット】
9V電池とDCジャックがついたスナップケーブルです。
電源モジュールに接続します。
L293DモータードライバーIC【キット】
Arduinoのデジタル出力ソケットからの信号入力により、DCモーターの回転速度や正転・逆転制御をすることができます。
L293DモータードライバーICについて、こちらの記事にて詳しく説明しています。
DCモーター(プロペラ付き)【キット】
DCモーターは直流電圧をかけるだけで回転させることができます。
パルス変調(PWM:Pulse Width Modulation)という出力方式を利用して、モーターの回転速度を制御することができます。
流す電源電圧の+-極性切り替えにより、回転方向(時計回り・反時計回り)制御させることは可能ですが、サーボモーターのような、指定角度への移動制御(位置決め制御)はできません。
DCモーターについて詳しく知りたい方は、こちらの記事がおすすめです。
サーボモーター「SG-90」【キット】
サーボモーター「SG-90」を使用します。
サーボモーターは指定した回転角度を指示して、回転させることができる機器です。
サーボモーターについて詳しく知りたい方は、こちらの記事がおすすめです。
ジャンパー線(オスーオス)【キット】
ジャンパー線を20本使用します。
Arduino本体とブレッドボードの接続や、ブレッドボードの共通電源ライン(GNDまたは5V)からブレッドボード内の配線系統穴に差し込んで接続するのに使います。
スターターキットに含まれる機器に関しては、以下の記事にて詳しく紹介しています。
【なくても可】Arduino給電用電池
Arduino本体への給電は、通常プログラムデータ送信用のUSBケーブルを通じて、PCから電源供給できます。
PCから離れた場所で、動作させる場合はUSBケーブルでノートPC等から電源供給する方法もありますが、Arduino本体のDC電源ジャックにDC9V角電池接続する方法もおすすめです。
STEP3-2:電気配線
上図が配線説明図となりますので、これと同じ配線をすれば完成します。
- LEDをブレッドボードに差し込む
- 押しボタンをブレッドボードに差し込む
- 220Ω抵抗をブレッドボードに差し込む(LED用)
- 1kΩ抵抗をブレッドボードに差し込む(押しボタン用)
- L293DモータードライバーICを差し込む
- ジャンパー線をブレッドボードとArduinoソケットに差し込む
- ジャンパー線をブレッドボード内で配線する(押しボタンスイッチと+5V)
- ジャンパー線を使って、サーボモーターからのリードコネクタに差し込む
- DCモーターからのリード線(赤・黒)をブレッドボードに差し込む
配線数が多いので、1本ずつ落ち着いて配線してください
LEDや抵抗、ジャンパー線はArduinoのソケットやブレッドボード穴に差し込むだけでOKです。
機器が故障するおそれがあるので、接続するプラスマイナス極性には十分注意して配線してください。
電源モジュールの電圧設定ジャンパーは2か所とも「5V」設定にしてください。
LEDはプラス・マイナスの極性があります。
LED極性の見分け方については、こちらをご確認ください。
押しボタンは端子が飛び出ている側がブレッドボード長手側になるように差し込みます。
抵抗は極性がありませんのでどちら側のピンを挿入してもOKです。
機器故障させないためにも、USBケーブルを抜いた「通電OFF」状態にて配線を行ってください
L293DモータードライバーICの機能については、こちらの記事にて詳しく説明しています。
Arduino給電方法について
今回は、プログラムデータ送信用のUSBケーブルを通じて、PCからArduino本体へ電源供給しています。
USBケーブル経由での電源供給ができない場所で動作させたい場合は、DC9V電池からの電源供給を行うことで動作対応が可能となります。
STEP4:mBlockのセットアップ
お手持ちのパソコンに、Arduinoブロックプログラミングソフトェア「mBlock」をインストールします。
mBlockのインストール方法については、こちらの記事にて詳しく説明しています。
STEP5:プログラミング
ここからは、mBlockを使ったプログラムの作り方を解説します。
- デバイスにArduino Uno R3を追加する
- 接続モードを「アップロードモードON」にする
- mBlockプログラムを作成する
- プログラムをArduino本体に転送する
これらの基本操作方法については、こちらの記事を参照してください。
動画を参考にプログラミングしてみてください
変数の作り方
今回演算処理した値を代入するための変数が必要になります。
mBlockでの変数作成方法について紹介します。
①カテゴリエリアの「変数」をクリックします。
②ブロックエリアの「変数を作る」をクリックします。
③変数名をキーボード入力します。
④「このスプライトのみ」を選択します。
⑤「はい」をクリックしてウインドウを閉じます。
作った変数がブロックとして表示されたら、作成完了です。
今回作成する変数
・回転モード
0:回転停止
1:高速回転
2:低速回転
・首振りモード
0:首振りOFF
1:首振りON
・首振り角度(40~160度)
・首振り動作(首振り回転方向)
0:40⇒160度方向
1:160⇒40度方向
・首振り動作間隔(首振り速度)
高速回転:0.2秒(早い)
低速回転:0.3秒(遅い)
mBlockを使ったプログラム内容
今回は「アップロードモード オン」でのプログラム作成例を紹介しています。
プログラム開始条件が「Arduino Unoが起動したとき」になっている点に注意してください。
以下のプログラムが動作プログラムになります。
mBlockのArduino専用ブロックについては、こちらの記事にて詳しく説明しています。
STEP6:動作確認
- 回転速度切り替えボタンを押すと、回転停止⇒高速回転⇒低速回転⇒回転停止を行うか?
- 首振り動作切り替えボタンを押すと、首振りON⇒首振りOFF切り替え可能か?
- 首振り動作中に回転停止動作になると、首振りOFFモードに自動で切り替わるか?
上記項目について確認していきましょう。
回転速度切り替えボタンを押すと、回転停止⇒高速回転⇒低速回転⇒回転停止を行うか?
回転モード0~2の動作になります。
プログラム転送後にモーター停止状態であることを確認してください。
次に回転速度切り替えボタンを押して、指が離れたときにモーターが高速回転することを確認してください。
もう一度押しボタンを押したときにモーター回転速度が低速になり、さらにボタンを押すと停止することが確認できれば動作OKです。
停止動作後さらに押しボタンを押すと、再び高速回転動作からの繰り返し動作になります
首振り動作切り替えボタンを押すと、首振りON⇒首振りOFF切り替え可能か?
首振りモード0と1の動作になります。
プロペラ回転状態のときに、首振り動作が停止していることを確認してください。
首振り停止状態で、切り替えボタンを押すと首振り動作開始することを確認してください。
首振り動作中に首振り動作切り替えボタンを押して、首振り動作が停止したら動作OKです。
首振り動作中に回転停止動作になると、首振りOFFモードに自動で切り替わるか?
プロペラ回転+首振り動作中に、回転速度切り替えボタンを押してプロペラ回転停止状態にしてください。
再度回転速度切り替えボタンを押して、プロペラ高速回転動作開始とともに首振り動作しなければ動作OKです。
電子工作「扇風機」のまとめ
- 扇風機は身近な家電製品なので、電子工作テーマとしておすすめ!
- 電子工作「扇風機」はレゴとスーパースターターキットで作成可能
- ブロックプログラミングツールmBlockを使えばプログラミングが簡単にできる
小学生のお子様には断然、ビジュアルプログラミングがおすすめです!
慣れてきたら首振り動作や、レゴブロックの組み立て構成についてアレンジしてみてください。
モーターを使った工作は、見ていても楽しいですよね!
最後まで読んでいただき、ありがとうございました。
mBlockで作る!小学生のブロックプログラミング学習におすすめなロボットが「mBot」です。
子供の成長を育む!小学生のお子様にぴったりなプログラミング教室が見つかるように厳選しました!
Arduinoスクラッチプログラミングのおすすめ参考書について詳しく説明しています。
Arduinoプログラミング(スクラッチも)を使った電子工作を紹介しています。
プログラミングを使わない電子工作「じゃんけん装置」を紹介しています。
コメント