体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

遠隔消臭装置をつくって「気の利くナイスガイ」になろう!〜基本実装編〜

モノづくりを始めてみたい人のために

どうもこんにちは。dotstudioでモノづくりをしているたくろーどんです。

最近はモノづくりの敷居が下がり、インターネット上の様々な情報を活用して、子供から大人まで幅広くモノづくりを楽しめるようになってきました。とはいっても、まったくの初心者がモノづくりのハードウェアやソフトウェアをどこから学べばよいのか……。よくわからないことも多いかと思います。

僕もその一人で、工業高等専門学校を出たのにもかかわらず、長い間試行錯誤していました。その後、大学編入後、学内コンテストで子供を見守るIoTデバイスを製作してみて「モノづくりって大変なことが多いけど、意外とできる!楽しい!」と思った次第です。

なので今回は「モノづくりってよくわからないけど、何かつくってみたい!」という方のヒントになるような、実用的で楽しく作れるIoTデバイスのレシピを紹介します。

IoTデバイスづくりに挑戦! 遠隔消臭装置をつくろう!

さて、僕は一人暮らしをしていて、6畳1Kの部屋に住んでいます。しかもユニットバスです。

別に不便はしていないのですが、不満があります。それは、ユニットバスだとトイレの後やお風呂のあと臭いがこもってしまうことです(夏場は特に)。

しかし困ったことに一人暮らしをしていると、いつ友人が来るのかわかりません。

学校帰りに突如、友人に

今日、飲もうよ!家、行っていい!?

と言われたり、

ちょっと気がある女の子を

今日、家に寄ってきなよ

と誘ったり、なんて経験があるかと思います(工学系の僕にとって後者は神話です)。

そんな時、自分の部屋やトイレがくさいとどうでしょう。「身の回りの整理ができない不潔なやつ」というレッテルがはられしまうかもしれません。そうすると、その後の交友関係の破綻なんてことも考えられます。

そんな事態を防ぐために、出かけ先から遠隔で空間を消臭できたら便利ではないでしょうか?

しかも消臭の匂いを何パターンか用意して、訪ねてくる人や自分の気分に応じて消臭できれば、「気の利くナイスガイ」と思われるでしょう!

そんな便利な遠隔消臭装置をつくっていきましょう。前後編に分けて作り方を紹介します。

部品や必要なモノ

必要なのは主に以下の3つです。

Nefry BT

今回はNefry BTというマイコンボードを使います。主な特徴は以下の通りです。

▶ Arduino互換でArduinoと同じように開発できる
▶ Wi-Fi・BLE通信モジュールを標準装備
▶ Groveセンサが利用でき、複雑な回路の用意やはんだ付けをしなくいい

つまり、「ちょっとIoTのデバイスづくりやってみたい!」という人にうってつけのマイコンボードです!

ArduinoをWi-Fiモジュールで拡張すれば、今回の手順とほぼ同内容で作成することもできます。

サーボモータ

サーボモータは、普通のモータとは違い回転角度・速度を細かく調整することができ、ラジコンの翼の制御やロボットのアームの制御などに使われます。今回はスプレーを噴射させる部分にサーボモータを使います。

ただしスプレーを押し込むためにはそれなりの力が必要なので、適切なトルク(どれくらいの力で動かせるか)をもつサーボモータを選ぶ必要があります。

少し実験してみましょう。やり方は簡単です。

まず、キッチンにあるような調味料や材料をはかるキッチンスケール(はかり)とスプレーを用意しましょう。スプレーをキッチンスケールの上に置き、キッチンスケールの目盛を0に校正します。そのあとスプレーを押してみます。そしてスプレーが噴射されたときの目盛の最大値を見ます。

https://gyazo.com/e41e8b0d7246fae772e7abf31656b50c

そうすると約2kgと表示されました。なのでそれ以上の押す力が出るように、今回はトルクが3[kgf・cm]以上のサーボモータを使います。

SG-5010(トルク:5.5kgf・cm(4.8V)、6.5kgf・cm(6V))

今回は香りの違う2つのスプレーを制御したいので、サーボモータは2つ用意します。

消臭装置をつくってみる

サーボモータを制御する方法

サーボモータの制御にはPWM(Pulse Width Modulation)制御という方法を使います。PWM制御とは「電圧のonとoffを一定間隔で繰り返し(パルス)、そのパルスの幅を変化せることで動き方を変化させる」というものです。

詳しい説明は長くなるので、こちらの「PWM制御」の説明を参考にしていただくとより正確です。

回路図

サーボモータには電源・GND・制御ピンの3つのピンがあります。

3つのピンは下記の図にあるようにそれぞれの色で決まっています(例えば、赤:電源、黒:GND、黄:制御ピン)。これはサーボモータによって異なるので、サーボモータを使う前にデータシートをよく確認しましょう。

Nefry BTにはピンが何を示しているのか丁寧に書かれているので、その通りに繋ぎます。
サーボモータ:赤(電源) → Nefry BT:5V
サーボモータ:黒(GND) → Nefry BT:GND
サーボモータ:黄色(制御ピン) → アナログ出力ピン(例えばA2)

といった具合につなぎます。簡単ですよね?

ただし、注意点です!

サーボモータには動作電圧があります。トルクの大きなものになれば、それだけ必要な電圧も大きくなるので、Nefry BTの電源・GNDにつなぐだけではうまく動作しないこともあります。

しかし、その時は慌てずに別の電源を用意しましょう。先ほどと同じように電源・GNDピンを繋ぎ、制御ピンだけNefry BTにつなげば同じように使うことができます。

サーボモータに限らず、電子部品の仕様は必ずチェックしましょう!

プログラム

Nefry BTでサーボモータを動かすプログラムを考えていきます。

まずNefry BTについているスイッチをonにすることでサーボモータが0度から90度に回転するプログラムをつくります。

#include
#include”esp32-hal-ledc.h”
#define PWM_BITWIDTH 16

void setup() {
ledcSetup(1,50,PWM_BITWIDTH);;
ledcAttachPin(A2,1);
Nefry.enableSW();
}

void loop() {
ledcWrite(1,deg2pw(0, PWM_BITWIDTH));
if((Nefry.readSW())){
for(int i=0; i

CodeIQ MAGAZINEの記事一覧をみる
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。