2023/03/20 itpass セミナー

マイコンを用いた環境計測の初歩
高橋芳幸 (神戸大学大学院理学研究科惑星学専攻)

はじめに• 身の回りの様々な (ほとんどの?) 電気製品は「コンピュータ」によって制御されて動作している.
• 炊飯器, 冷蔵庫, 洗濯機, …

• こういった機器に用いられている「コンピュータ」は, 汎用ではなく,機器に組み込める「マイコン」である.
• マイコン : マイクロコントローラ• 惑星学 (地球惑星科学) で用いる観測装置・探査機にもマイコンで制御されているものが多数ある.

• itpass/EPNetFaN では, (立派な) OS を搭載するようなコンピュータを主に用いて学習・研究につながる知識・経験を積んでいる. 一方で, よりハードウェアに近いマイコンの話に触れることはあまりない.
今回はマイコンを触ってみた経験を話したい.

はじめに その 2 (経緯)• R5 年度から神戸大の地学実験 (教職科目, 他学科の学生が履修する)を担当することになった.
• 何か考えないといけなくて, マイコンを用いた気圧計測をやってみようと考えた.
• 岩山先生が福岡大着任後に, 乙部さんが作ったマイコンを用いた気圧計を使って実習をしている話を聞いていた.
• 自分でも温度, 気圧, … を測ってみたかった.
• 計算機(?)でセンサーを制御することに興味があった.
• ソフトウェアはそれなりに触ってきたけど, ハードウェアとの繋がりはわからない.

• 4 年前に購入していたマイコンが箱も開けずに部屋にあった.
• 購入した経緯をよく覚えていない. 上に書いた岩山さんの話を聞いて, 興味を持って買ったのかな?

ある構成の気圧計の完成品
液晶ディスプレイセンサー電池

Arduino• 「アルドゥイーノ」?「アルデュイーノ」?「アルディーノ」?
• What is Arduino?
• Arduino is an open-source electronics platform based on easy-touse hardware and software. …
(https://www.arduino.cc/en/Guide/Introduction)• いわゆる「マイコン」

「マイコン」• マイクロコントローラ (マイクロコンピュータ?)• CPU, メモリ, 入出力機器を実装した小さなコンピュータ• 保存されたソフトウェア (プログラム) に従って動作する• 例 : マイコンを使った炊飯器• タイマーに基づいて動作を制御• 温度を確認• 温度に応じてヒータを制御して温度 (火加減) を調節• 結果を液晶ディスプレイに表示雑談• 昨年, 炊飯器を購入しようとして家電量販店に行った.
• 炊飯器のコーナーには, 「マイコン」「IH」などの文字で区別された製品が並んでいる.
• どうやら加熱方式が違う• 「マイコン」 : 炊飯釜のそこに付けたヒータで加熱• 「IH」: 炊飯釜全体が電磁誘導加熱(?)で加熱• 「マイコン」の製品は比較的安く, 「IH」の製品に比べて炊けるご飯の味はあまり良くないという評価.

• でも「IH」と分類されている製品も「マイクロコントローラ」は使っているに違いないので, 言葉遣いが変だと思う.

Arduino• Why Arduino?

…Arduino also simplifies the process of working with microcontrollers, but it
offers some advantage for teachers, students, and interested amateurs overother systems:• Inexpensive…

• Cross-platform…

• Simple, clear programming environment…

• Open source and extensible software…

• Open source and extensible hardware…

Arduino• “open-source” であるため, その仕様に基づく互換品が複数存在する.
• 機能拡張版 / 削減版 / 廉価版が開発者以外から発売されている.

Arduino ハードウェア (の一部) (正規品)

Arduiono Nano
$24.90

Arduiono Uno R3$27.60

注意 : 写真サイズはテキトー
https://www.arduino.cc/en/hardware

ARDUINO UNO WiFi REV2
$53.80Arduino ソフトウェア• C 言語っぽいプログラミング言語を用いる.
• 用語説明 : Arduino で用いるプログラムを「スケッチ」と称する.

• Arduino のページから IDE (Integrated Development
Environment ; 統合開発環境) ソフトウェアをダウンロードしてPC にインストールする.
• “Web Editor” もあるらしい.

• IDE 上でスケッチを作成して, コンパイルし, USB 接続されたArduino 本体に転送して制御する.

Arduino IDE のウィンドウ
書き込み 接続ポート選択

コンパイル(「検証」)

Arduino と PC の接続

実際に触ってみよう• 参考になる情報は, 書籍でもネットワーク上でもたくさんある.
• 例えば, 高橋は以下の動画シリーズをみて同じことをやってみた.
• 【中学生のための】Arduino入門１ ー Arduinoとは【プログラミング入門】• https://www.youtube.com/watch?v=XmTtJV8XFwM&list=PLtTVLRSBbUMDI
8d7GOtWnHbVvG4Df42gI• ゆっくり丁寧に解説されている.
• 今はもう更新されていないようだけど.

はじめの一歩 「L チカ」: 概要と配線• 「L チカ」= LED をチカチカさせる.
• プログラミングで言うところの“HelloWorld” みたいなもの.

• 配線• Arduino のあるピンに LED を接続• 右図を参照• やりたいこと
1.
2.
3.
4.
5.

2 番ピンに電圧をかける = LED が光る.
しばらく待つ2 番ピンの電圧を切る = LED が消える.
しばらく待つ1. に戻って繰り返す

PC の USB ポートへ(電力供給とスケッチの転送)

はじめの一歩 「L チカ」: スケッチ
• スケッチの方針• 初期設定 (setup)• 2 番ピンを出力に使用することを宣言• 繰り返し (loop)• 2 番ピンに電圧を付加 (HIGH)• 1 秒間待つ• 2 番ピンの電圧を切る (LOW)• 1 秒間待つ

void setup() {// put your setup code here, to run once:
pinMode(2,OUTPUT);}
void loop() {// put your main code here, to run repeatedly:
digitalWrite(2,HIGH);
delay(1000);
digitalWrite(2,LOW);
delay(1000);}はじめの一歩 「L チカ」: スケッチ• コンパイルして, USB ケーブルを通して転送すれば LED が点滅する.
• さらに利用する電子部品によっては, ピンにかかる電圧を検出し, それに応じた動作 (LED を点けるとか切るとか) することもできる.

• 補足• 高橋は, これだけでもソフトウェアを通したハードウェアの制御(?)の一歩を体験した気がして嬉しかった.

(一気に飛んで) 気圧・温度・湿度の観測• Arduino にセンサーを繋いで気圧, 温度, 湿度を観測したい.
• 自分の好奇心を満たすためにも地学実験のためにも.

• 目標• 持ち運びできるようにする.
• 乾電池で動作させる.

• 計測結果を液晶ディスプレイに表示.
• 簡単に配線できること.
• 簡単に準備できること (部品の入手, 準備).

(a) Arduino Uno(b) 液晶ディスプレイ

(c) 気圧・温度・湿度センサー(BME280)(d) ジャンパワイヤー(e) 電池スナップ(f) 電池(ざっと 5,000-6,000 円)

気圧・温度・湿度計
完成写真• Arduino と液晶ディスプレイは 4 本のジャンパワイヤで接続• Arduino と気圧・温度・圧力センサは 4 本のジャンパワイヤで接続• Arduino と乾電池 (9 V) は電池スナップで接続• 注意• もともと, 液晶ディスプレイの接続にはパラレル通信が必要 (10 本以上の配線が必要).
• ここでは I2C (アイスクエアドシー) で通信しているため, 4 本の配線で済んでいる.
• さらに, 液晶ディスプレイと I2C 通信モジュールははんだづけされているが, はんだ付け済みの部品を (amazon で) 購入したので, 自分でははんだ付けしていない.
•

気圧・温度・圧力センサも上記のように接続するためには, センサにピンヘッダがはんだ付けされていなければならない. これも, はんだ付け済みの部品を購入した.

結果例 2023/02/07

気圧・温度・湿度測定• 日付 : 2023 年 2 月 7 日• 場所 : 神戸大学
鶴甲 1 キャンパス
六甲台 1, 2 キャンパス

まとめ• 様々な電気製品は「マイコン」によって制御されている. 惑星学 (地球惑星科学) で用いる観測装置でも「マイコン」が多数使われている.
• 今回は, 教育目的で開発されたマイコン Arduino を触ってみた.
• ソフトウェアを通したハードウェアの制御の最初の一歩を体験した.
• 気圧・温度・湿度センサーを組み合わせると比較的簡単にそれらを測ることができる.
• はんだづけ済みの部品を入手すると, 手間も抵抗感もかなり減る.

• これで何とか地学実験ができるかな?