2nd Season(次のステージ)に突入です。初回は、まず、「Arduinoを使った電子工作の部屋」の後日談からスタートします。
しばらくの間、ブレッドボードで組んだ回路(下図)のまま、ログを取得していました。
ただ、ちょっと引っ張ると抜けてしまうジャンパ線のまま、しかも、UNO本体とブレッドボードの2ピース状態、では、さすがに実用上問題があります。そこで、「シールド」と呼ばれるユニバーサル基板っぽいものを購入して、そこに回路を構成しました。
わかりますか?元のArduino UNO基板の上に、親亀子亀のように乗っかっているのがシールド基板です。ユニバーサル基板の様になっているので、そこにプルアップ抵抗をはんだ付けしました。変なジャンパ線が飛んでいますが、将来的に、センサ部分を本体基板から離して配置したくなった時に対応できるよう、センサは、はんだ付けせずにデュポンワイヤのメスなどを使って接続してあるためです。センサの電源は、シールド基板に出ていたVCCとGNDのピンソケットが、ちょうど挿さる位置に出ていたので、そこに差し込んで固定してあります。ついでに電源も供給できてぴったり。
いや〜、はんだごてとはんだ線、ありましたよ、筆者宅に。何年、いや、何十年前に購入したものでしょう?だいぶ黒くなって、酸化が進んでいる様子のはんだ線、使ってみたら、何とかきれいに濡れました。良かった良かった。
測定装置が1ピースにまとまって良かったのですが、何より、ATmega328P-PUがシールドボードに隠れて見えなくなってしまったのが残念。
パイロット代わりに、目障りなほどまぶしく光っていたオンボードLEDも、シールド基板の下に隠れてしまいましたが、こちらはユニバーサル基板の穴から光が漏れて、ちょうどいい感じで点滅していることがわかるので、結果オーライです。
気温・湿度測定用のUNOは、ログ取得用PCが起動中は1時間に1回、気温・湿度を測定しているため、Arduinoで遊べなくなってしまいました。ので、2機目の機体を購入しました。
Arduino Microの互換機です。本家ArduinoのHPからMicroのページで回路図を確認してみると、本家の方は34ピンで、UNOと同様に、5Vと3.3Vのレギュレータが載っているようです。筆者が購入した互換機はというと、見ての通りの24ピンで、少し端子数が少ないです。購入サイト(Amazon)に載っていた回路図を見る限り、5Vのレギュレータは載っておらず、USBの電源線(VBUS)直結(500mAのヒューズは通っている模様)です。3.3Vのレギュレータは搭載しているみたいですが、有効にするとVCCが3.3Vになってしまう構成に見えます。これって、実質使えないのでは?まあ、そこは「互換機」ということで諦めるしかないのでしょう。今すぐ3.3Vの機器を繋ぎたい要求は無いので、当面の問題は無しです。
※補足:下の「動作電圧」の確認によって、筆者が目にした回路図が間違っていて、実際には、5Vのレギュレータが載っていて、USBのVBUSをレギュレートしています。→通常、VBUS=5Vですので、実質、このレギュレータは活きていません。
大した問題ではありませんが、オンボードのLED(UNOのデジタルピン#13)も載っていない模様、光りません。
老眼なので、24か所のピンヘッダのはんだ付けは緊張しました。ちっちゃすぎて見えないし……(1^^;)。
この機体は、UNOと異なり、ATmega32U4(-MU)と言うマイコンが搭載されています。UNOでは、いわゆるマイコン本体としてATmega328が動作していて、USBとの通信は、専用のブリッジマイコンATmega16U2が担当していました。イメージ的には、32U4=328+16U2という感じなのですが、UNOで2個あったマイコン(328と16U2)が、Microでは1個(32U4のみ)になっている、と言うことで、若干、使い勝手が変わってくるみたいです。
それでもこの機体を選択した訳は、この機体、PCにつなげると、キーボードとマウス(HID;Human Interface Device)の様に振舞うことができるため、です。なんかちょっと面白そうではありませんか?追々、遊んでみたいと思います。
とはいえ、QFN(Quad Flat No lead package)では、気分が上がりません(1;_・)。芸術点としては、5段階で2と言ったところ……。個人的には、DIP(ATmega328P-PU)の方が萌えます。ATmega328P-PU(DIP)が載ったUNO機体は文句なしで、芸術点5をあげます。
回路図を見ていて、ふと、思いました、「この機体の動作電圧は何V?」。
矛盾しました。メーカの動作範囲外で動かしているのでない限り、VCC=3.3Vと16MHz動作は共存できません。
まず、疑うべきは回路図ですね。そこで、実ボードに搭載されているレギュレータの型番から調べてみることに。と、パッケージが小さすぎ!マークはたったの4文字、「4BMD」でした。たったこれだけの情報でたどり着けるでしょうか?
Webで調べて、ようやくそれらしきデータシートにたどり着きました。あくまで、「それらしき」です。本当にそうかどうかは不明です。が、たどり着いたのは「TOREX」と言うメーカの「XC6204」というレギュレータで、パッケージ形状(SOT-25)や、「Marking」に記されたコードと「4BMD」も矛盾しないので、たぶん、合っていると思われます。
データシートによると、「4BMD」の意味は以下の様になります。
つまり、搭載されているレギュレータは5V出力だったようです。VCC=5Vで動作周波数16MHzなので、基本的には3.3V電源が無いだけで、ほぼ、UNOと同じだと思って良いのでしょう。
テスタ(電圧計)があれば、実際にボードの電圧を測って終わり、なのですが、筆者はテスタを持っていません。さすがに、電子工作するなら、テスタくらい必要ですかね?まあ、無いものは仕方ないので、電圧くらい、別な方法で測定しておきますか?
幸い、筆者の所にはArduinoが2機ありますので、Arduino UNOの方でアナログ端子の電位を読み取るプログラムを走らせておいて、対象のアナログ端子からジャンパ線でMicroの電源端子に触ってみます。
あ、UNOは毎時1分に気温・湿度測定を担当させていますので、測定直後に取り外して、次の測定時刻(1時間後)までに測定を終了して、元に戻します。
プログラム:UNOで実行する
void setup (void)
{
// serial
Serial.begin (9600);
while (!Serial)
;
}
void loop (void)
{
// analogRead() and send result
int vlt;
vlt=analogRead (0);
Serial.println (vlt*(5./1024.), 2);
// delay
delay (1000);
}
ブレッドボードに挿さっている、ちっこい基板がMicro機体です。UNOのA0端子とMicroのVCC端子を繋いで測定開始。UNOとMicroのGNDを繋ぐこともお忘れなく。
測定結果はUNOのシリアルモニタで観測します。毎秒の測定結果が送られてきます。電圧値に換算してますが、実際には、UNOのVCCからの相対値なので、もし、UNOのVCCが4.95Vだったら、測定結果にもずれが生じます。
測定結果は、4.85V……。ちょっと低めに見えるけど……、こんなものなのかなぁ……。
データシートによると、Microのレギュレータは、本来、Vin≧Vout+1.0Vで使用すべきもの、Vout=5Vにしたければ、Vin≧6Vが必要だと言うことです。USBのVBUSは5Vなので、そもそも、電圧が足りないです。その事情は、UNOのレギュレータも同じハズ、何ですけどね……。まあ、3%(=4.85/5.0[V])の電圧降下なので、こんなもの、なのかも、です。
それはそうと、2機あって、別機種だったのはちょっと面倒でした。Arduino IDEで、一々、ターゲット機種と通信ポートを切り替えないといけないのが難点です。
と、言うことで今回のお買い物は、以下の通りでした。
しばらくは、Microで遊んでみます。