- 公開日:2024年10月18日
- | 更新日:2024年11月01日
QOLぶちあげ?! 多機能自動カーテン作ってみた ~第1話 仕様書作成~
- ライター:Shunki Sato
- マイコン
はじめに
みなさんはじめまして。2024年度新人FAEの佐藤です。
マクニカでは新人FAE研修として「製作実習」なるものがあります。仕様構想、設計、部品選定/買い出し、ハードウェア製作、ソフトウェア製作とモノづくりを一通り体験する研修です。
期間はおよそ2か月、果たして製品を完成させることは出来るのでしょうか。
乞うご期待!!
製作条件
「製作実習」では以下のように6つの製作条件が与えられています。
- RENESASマイコンキット(FPB-RA0E1)を使用する
- RENESASが提供する開発ツール(FSP)を用いてプログラムを作成する
- センサをつける
- 表示系をつける
- 駆動機構をつける
- 割り込みを用いる
これらの条件を満足する製品を作ります。
背景
遡ること1週間前、製作実習の前段階である新卒技術者研修では、micro:bitを用いてチンチロを作る実習が行われていました。
チンチロという共通の課題にもかかわらず、人によって搭載する機能はさまざま。 音が鳴るものや、通信機能を持つものなど…
たちまち私はmicro:bitに魅せられ、実習終了後も次はmicro:bitで何を作ろうか考えていました。
そこで思いついたのが「スマートカーテン」です。
スピーカーと接続して声で操作できるようにしよう!
外出先からでもスマホで操作できるようにしよう!
夜になったら自動で閉まる機能を付けよう!
アイディアは止まりません。
しかし結果は、、失敗、、、
理由は単純。 micro:bitからの出力電流ではモータが回らないという問題を解決できませんでした。
失意に沈む私でしたが、ここで先輩からのアドバイス。
「トランジスタ…」
そういえば研修で聞いたことがありました。トランジスタの作用は「電流増幅」と「スイッチング」であると。
なるほど、ベースにmicro:bitからの出力電流を入力すれば制御できる!
ヒトが最も閃きやすいのは22:04だと言われていますが、私の場合は16:00頃でした。
さていよいよmicro:bitの代わりにRAマイコンを用いて、「自動カーテン」の作成がスタートします。
製品仕様
今回私が製作するのは
「QOLを向上させる、多機能自動カーテン」です。
主な機能は4つ。
- 目覚まし機能で朝寝坊防止
→カーテンが開く際、アラームが鳴る機能
- ロマンチックな雰囲気を作り出し、心に残るひとときを提供
→カーテンが閉まる際、紫色LEDが点灯する機能
- タイマを自由に設定可能
→カーテン開閉までの時間を設定できる機能
- 外の明るさを自動検知
→センサで外の明るさを検知し、明るさに応じてカーテンを開閉する機能
これでQOLは文句なしにぶちあがるはずです!
自動カーテンは商品が実在するだけに、オリジナリティーを出すことに苦労しました。当初micro:bitで作ろうとしていたものと比較すると、かなり機能は失われてしまいました。製作実習は時間との勝負でもあるため、あまり仕様を盛りすぎないよう注意しました。
製品イメージ
まずは製品の外観イメージ図です(Fig.1)。
条件であった表示系や照度センサを取り付けます。電源供給はコンセントからACアダプタ経由で。モータが回転して糸を巻き取ると、接続されたカーテンが引っ張られて開くという簡単な仕組みです。逆にカーテンを閉める際は、モータが逆回転して糸をたるませ、おもりの重さで引っ張られます。PowerPoint上では、カーテン開閉の様子をアニメーション機能で作成しました。アニメーションとはいえ、動いているところを見るとワクワクします!(アニメーション作成に丸1日費やしました……)
Fig.1 自動カーテンイメージ図
次に、表示系のイメージ図です(Fig.2)。
まずタイマと明るさ検知、どちらの機能でカーテンを動かすか選択するためのタクトスイッチ2つを右下に取り付けます。そして、選択した機能に対応して点灯する黄色LED2つを設置するほか、タイマ設定用のタクトスイッチと設定したタイマを決定するスイッチを設置します。左下の7セグメントLEDは、設定したタイマやカウントダウン中の残り時間を表示します。
Fig.2 表示系イメージ図
製作スケジュール
続いて、製作スケジュールをたてます。私の裏目標は「残業なし」ですので、余裕を持ったスケジュールに設定します。(Fig.3)
Fig.3 製作スケジュール
仕様書作成でのまとめ
8月20日、社内で仕様書発表がありました。
おそらく不備だらけでしょうが、なんとか発表を終えることが出来ました。
製品イメージは出来ている一方で、正直どうしたらそれが実現できるかという部分が全くイメージできていません。
ここから1か月半、その都度仕様書を修正・変更しながら自動カーテンを完成させられたらなと思います。
次回は ~第2話 単体試験~ 、ついに部品が揃い単体テストを行います!
仕様書として作成したブロック図や状態遷移図など、参考資料として添付しておきます。ご興味ある方はご覧ください!
参考資料
〇ブロック図
まずはブロック図です(Fig.4)。
マイコンは製作条件通りのRA0E1を使用します。照度センサはI2C通信を用います。7セグメントLEDは1桁あたり7つのLEDが用いられており、表示するのは4桁、さらにコロンも含まれます。このうち、コロンのみスタティック点灯、その他LEDは1桁ずつダイナミック点灯とします。このため、マイコンからのGPIO出力は12ピンとなります。その他、モータやスイッチなど含めると使用ピン数は26ピン、評価ボードの使用可能ピン数である29ピンに収まっています。
Fig.4 ブロック図
〇状態遷移図/表
次に状態遷移図(Fig.5)と状態遷移表(Fig.6)です。
状態遷移図は状態のレベルが分かりやすいよう、工夫して表記しました。自動カーテンはカーテンが開閉するシステムなので開閉しているという状態を一番右に表記。また、開閉のトリガとなるタイマ設定/カウントダウンや照度検知状態を中央に表記しました。個人的には、状態遷移が網羅されている様子が視覚的に分かりやすい点で、状態遷移”表”が好みです。
Fig.5 状態遷移図
Fig.6 状態遷移表
〇メイン関数フローチャート
メイン関数では変数”mode”を監視し、値に応じて各関数を呼び出すように設計しました(Fig.7)。
各関数については省略します。
Fig.7 メイン関数フローチャート
〇電源ツリー
最後に、電源ツリーです(Fig.8)。
データシートの読み方がまだ分かっておらず、表記した電流はあまり正確でないかもしれません。
Fig.8 電源ツリー