#256 Arduino 学習ボードを組み立ててみた

まず、追記から。

実際は(変なところなどを)見つけ次第、こっそり加筆修正重ねてますけど


久々に、書いたものを褒められました。

反応頂いたのは、 eJ の中の人ではなかった…該当部分も修正。

正直、褒められるレベルのものを書けた手応えはない状態で公開していたので(実際今見直してもまずい点が目白押しです)、嬉しい反面、今後の記事でリベンジしないとなぁ、と思う。
まだ、もうちょっと、書きます。(…たぶん。)


ここから本編です。

昨年末。CQ出版・エレキジャック(eJ)のプレゼント企画に何気なく応募した。

こういうものは応募しても当たらないもの、と相場が決まっているのだが、応募しなければ確率はゼロ。応募すればゼロより若干は上がる。通常は応募に「コスト」がかかり、それを踏まえつつ応募に踏み切ったり、やめておいたり、するわけだが、web での応募はあらゆるコストが低い。つまり、敷居が低い。さくっと応募ボタンを押した…ような気もするし、そうでもなかった気もする。

でもって、応募したことすら忘れていたある日、帰宅すると、予期していなかった宅配便が届いたとの通知が。見ると「CQ出版」から。(箱は Amaz○n の流用だったけどね!)

秋月電子の、液晶とか RTC(時計チップモジュール) とか、そのまま入ってる。Arduino 遣い 御用達のアイテムばかりだ。
…っと。肝心の基板が写ってなかった。これが主役らしい。

みっしり。
ついでに部品袋はこんな感じ。


なんかすごい! プレゼントっても豪勢な感じ…などと言いながら、正直に告白すると、私はこの時点では「一体なにが届いたのか」全くわかっていなかった。基板に印字されている 「WSN256 Rev.A」の文字を頼りに調べてみると、なるほど、Arduino 用の「学習ボード」。そういえば、「Arduino を使って何がしたいですか?」といったような質問に、結構熱く回答したような気がする。あれか。
「学習ボード」と名の付くものが、私に当たった。これはつまり、私にもっと「しっかり学習しなさい」という、ある種の天啓と捉えてよろしいか。


(… 何か受信したらしい …)


わかりました、やりましょう!
なんか Arduino 絡み、というか、工作絡みではタスクが溜まる一方のような気もするのだが…ひとまず、この「当選」の喜びをどうにかしたい、と思い、Twitter でつぶやいたところ

@OkibiLabo どのように活用したか,ぜひお知らせください! 今後ともCQ connectをよろしくお願いします! *Tw*

http://twitter.com/CQ_connect/status/7026597732

と、すかさず eJ の「中の人」 → ではなく、CQ出版 web版の中の人でした… から反応を頂いてしまった。これは、正味な話、引っ込みが付かない。そうだよ、折角頂いたのだから、自分だけで消費してはいけない。なにか形にして公開せねば。その為の「プレゼント」だ。
で、「その為」にはとにかくまずその「場所」を用意しなければならない。電子工作の記事だけ分離したスペースを作ったほうがいいかな…と思っていた矢先でもある。というわけで、2009年も押し詰まった頃合いで立ち上げたのが、このブログというわけ。


そうこうしているうちに年も明け、うっかりしていると何もせずに時ばかり過ぎてしまう。一念発起して(他のタスクをすっ飛ばし)、半田ごてに火を入れた。
改めて確認する。頂いたのは、「#256 学習ボード」の基板と、パーツ一式だ。

CLCD(液晶パネル)や RTC(リアルタイムクロックモジュール)、EEPROM 、そのほかの I2C 入出力、タクトスイッチと LED 、リレー、サーボ用出力、などを小さな基板に凝縮したキットである。主に、入出力制御の用途に供されるボードとのこと。Arduino の上に連結して動作する、Arduino 用語で謂うところの「シールド」(Arduino 界隈以外の用語で言えば「ドーターボード」)の一種である。ぱっと見の印象ではかなり「濃い」。

組立前に、ディスクリート部品をざっくり並べてみた。このほかに CLCD 、 RTC 、 温度センサモジュール LM60 が同梱されていた。
基板の裏面はこんな。面実装部品である 74VHC595(SOP) と、チップキャバシタ(1μF)が(何故か 2個のうち、1個だけ)実装済み。(ってこれ、手半田ですよね。)


で、実際の製作だが。…たいへんでした。
小一時間で終わるつもりでいたのがとんだ目論見違い。18:00 過ぎに開始して、気が付けば 22:00 を 優に回っておりましたよ。


ここでちょっと「上から目線」の何様っぷり全開覚悟で書かせて頂くと、
作り始めてからあれこれ頭をひねらなくてはいけない組立キットは、キットとしては、駄目です。不合格。
自作回路を、作製した本人が自分で組むのでない限り、基板への実装は「プラモデル感覚」でできないと駄目です。極論すれば、自作回路を自分で組む場合だって、ほんとうは、自分で作った図面見ながら 1対1対応でせっせと部品実装に専念する、というかたちでなくてはいけないはず。要するに、自分の中で「開発者」と「作業者」が分離してないと、ということ。
ましてや、一般ユーザは開発者の心意気など、その 1割も理解できない状態で「作業者」に徹するわけです。よく言いますよね、「作業手順書の無い作業は、着手してはいけない」。(もっとも、世の中おしなべて「作業手順書」(で、ちゃんと使えるもの)のきっちり用意されている事例のほうがレアだったりするのですけども!)

(なんて言ってますが、ぶっちゃけ何がいけないかといえば、私が碌に準備も下調べもせずにいきなり組み立てるからいけないんですけどね! それはわかってます。 あと、これが、普通の所謂「キット」ではないということも、よくわかっています。
でも私は、この基板+部品を「一式揃ったキット」として、プレゼントでもらったわけです。その意味するところは、言わずもがな、です。)


ともかく、不注意による作業ミス以外で基板作成中に「のわー」とか「んんんん?」とか「なんだこれ!」というような声が上がるようなキットは、少なくとも、「学習用途」、とりわけ「独習」には不向きです。


たとえば

Rev.AでR13、R14、R12が追加になっています。R2、R13、R14はシャントレギュレータの電圧に応じて変更してください。旧バージョンと同じにするには、R13は非実装、R14は実装しないでショートさせてください。

の数行下に

R13をショート、R14をオープンにすると、旧基板と同じになります。LM60を使用する場合は、このようにしてください。R12は回路図では5kΩとなっていますが、保護用なので、4.7kΩなどでかまいません。

http://www.wsnak.com/kit/256/

えええええ? 結局要するに、これから「新基板」を新たに作る人間は、どこに何をどうすればいいの?
いきなり LM60 の話が出てきてるけど、「LM60 じゃない場合」って、何を指してるの? LM35D ? LM61 ? それとも、単に LM60 を使わない場合? ていうか、「使わない場合」は、どうすればいいんですか!?
…組立をする人間は、目の前にしている基板が「新基板」か「旧基板」かなんて知らないし、知ったことではないのです。だから、そういう説明は、説明としては「無し」です。


そのほかにも、
部品の差し替えで様々な機能バリエーションに対応している場合には、どの部品をどう使用した場合にどの機能が提供されるのか、最低限、説明が必要です。部品をつけない場合、何もしないでおくのか、半田でショートすべきなのか、それとも他にどうにかすべきなのか。そうでないと、全ての部品を付け終わったかどうかのチェックができません。基板の内容を完全に掌握している人が作るのならいいのですが、ほとんどの人はそうではありません。というより、作成中は回路を意識せず、部品を半田でつける、この作業にただ一点集中できるようでないと、作業精度が極端に落ちます。いずれにせよ「学習」の為にはなりません。
C7 が未実装な謎はいまだに解けていません。あと、裏面の C10 は面実装キャパシタ実装済みで、C11 が未実装なのも意味がわかりません。勿論、C8 と C9 の 1μFが無いのもどう解釈すべきなのかわかりません。(結局、この 3箇所は 1μF の積層セラミック(ラジアルリード)を実装しましたが、これが正しいのか否かは私にはわかりません。)

(最後のほうの作業なのでコテに焼きが回って半田が言うことを聞いていない)
【追記】 後日チップタイプ 1μF 16V に換装しました。
秋月のキットが如何に親切か、ということを、逆説的にしみじみ理解しました。
組立は完成したはずなのに、「完成!」の手応えがいまいち無い。


…というわけで、文句とか愚痴は以上でおしまいおしまい! 失礼いたしました! m(_ _)m …まあとにかくたいへんだったわけ。


【追記など 其乃壱】:部品表は、こんなところにリンクがありました。

やっぱり、送られてきた一式、かなり部品が足りない(つまり、フルセットではない)…というのは、決して気の所為ではなかったようです。限定版用キット、と解釈すればいいのかもしれません。
【追記など 其乃弐】:回路図は、説明ページにリンクがありました。

組立説明書が無い以上、これ無しではまず組み立てられません。参照必須です。なんだったらプリントアウトです。


あとは自分にかかる失敗とかお馬鹿とか。
抵抗アレイは、何も考えずに(向きだけはしっかり確認したけど)付けたあとに 2本が違う抵抗値であると知る。(よく見ろよ>自分) 祈るような気持ちで確認すると…ハイ、残念、逆でした! さて、どうやれば外せるか…。リワーク手段といえば、手許には半田吸収線ぐらいしかない。片面プリント基板ならまだしも、スルーホール基板の場合はほとんど役に立たない。だからといって諦めるわけにもゆかず、最後の手段、半田ブリッジ法、敢行。
説明しよう。「半田ブリッジ法」とは、部品全部のリード端子をたぷたぷの半田で敢えてブリッジして、全部融けた状態を維持する、その隙にひっこぬくという離れ業である。言うのは簡単だが、融けた半田は温度が高くなるにつれて表面張力で丸くなる、丸くなると端の端子まで届かない。だからといってあまりにも多い量のハンダを投入すると、隣のパーツまで巻き込んで過熱してしまう。それにネ、とっても危険♥
ともかく、(5ピンのブリッジはまさに限界ギリギリであったが)曲がりなりにも外しには成功したから、いまこうして記事を書いているわけだが、外す為に使った半田はこんな具合に飛び散るわけである。

よい子はできるだけ真似しないように。悪い子は絶対に真似しないこと。
で、こんなごたごたのうちに 抵抗を 1本(4.7KΩ)どこかにすっ飛ばしてしまった。教訓、何かあったら、まず深呼吸して、落ち着け。で、一旦片付けてから対処作業にかかれ。…ってことです。手持ちに 5.1KΩがあったので、なんとか事なきを得る。


でこの電解コンデンサどっちがプラス?ねえどっちどっち?! ヒー!(><)(だから慌てないでパターンを追えって)


(あと、1KΩも 1本足りなかったようだ。これは本来 未実装にすべきところに実装したので足りなくなったということのようなのだが、どれがどうなのかはよくわからない。これも不足分を手持ちから補充。うー。)


あ、半田付け作業自体はそこそこしやすかったと思います。無理が無い基板設計の賜物なんでしょうか。
そんなこんなで、苦難のその先、「学習ボード」は一応の完成(たぶん…)をみたわけだが(コネクタ(XHコネクタ)は付属してなかったので実装していない。流石にそこまでは持ってませんでした → 後日実装しました)、キットとしてついてきたパーツを手持ちストックで若干置き換えたりして、自分なりにいくつかカスタマイズしてみた。

  • タクトスイッチは色の違うもの 4色とした。(そのほうが楽しい)
  • LED は ICソケットピンを実装とし、差し替え式にした。(制限抵抗が(アレイだから)差し替えられないのでどんな色でも、というわけにはいかないが、若干違う色や明るさのものを選んだりできる。リード線を延ばして別付けも可能。)
  • RTC は 上にはみ出したピンをカットしてやれば ICソケット差しにしても CLCD と干渉しない。(取り外せる意味はほとんど無いけど)
  • 温度計ソケットの CN5 、 CN6 は素子の直差しもできるよう、ピンソケットを実装した。


タクトスイッチは秋月電子で 1個 ¥10 。(100個セットならなんと 1個あたり ¥7 。店員さんに言って出してもらおう。)


たぶん、完成! 疲れた!疲れた!




LED を差し(折角なので 5mmφ を。キットに附属していた ピンクLED も個人的はとても好きなんですけどね。)、CLCD を取り付け(あとでネジは換装します)、Arduino に取り付けてみる。 ずしりと、重い。というよりも、この合体のしかたは斬新。この発想は無かった。


というわけで、疲労困憊のうえ 夜も更け時間もないので、目視確認と電源ラインのテスタチェックも大まかに済ませ、超簡便に動作テスト。エレキジャックのサイトの「Arduino 入門(3)」から CLCD のところのスケッチをコピーしてきて、Arduino IDE 上でさっくりとコンパイルArduino に流し込む。USB から電源が投入されると CLCD がライトオン、LED が点灯(前のスケッチが残っていて動作しているらしい)。重大なミスは無さそう。Upload ボタンをクリック。……ん、全然反応しない。「ひとりどうしてどうして大会」絶賛開幕、 5分が経過、原因は実に馬鹿馬鹿しいことだった。別のシリアルポートにデータを流し込んでいたというお粗末。
気を取り直して、正しいポートを選択、Upload 開始。こんどは Arduino 上の TX/RX ランプが明滅し、ロード成功、しかし LCD はバックライトが煌々と光るばかりで表示が出ない。またしても「どうしてどうして大会」絶賛再開。10分ほどたってから気付く、ああ、なんだ、LCD の濃度調整か!
ボリウムをいじってみる。で、こうなった。基本に忠実に、こんにちは世界。

LED が点灯している理由はよくわからないのでひとまず放置。
次に、「Arduino 入門(5)」に示されているサンプルスケッチをそのままコピペ。サーボモータは持っていないし、当座いじる予定もないので*1サーボの部分は気にしないことにする(というか、このまま直にサーボ出力を取り出すとノイズとか拾っちゃってかなり誤動作するんではなかろうか? …気の所為ですかそうですかそうですね。)。 ボタンと LED が機能するか、どうか。

おお! 
ちゃんと各ボタン 反応する。LCD の表示も応じて変わる。オッケー。順調。
(※ ネジは雰囲気に合わせてごついアプセットボルト(US)に換装。いまどき 6価など。)


という感じでもって、やっとボードが完成をみた。(たぶん←しつこい
問題はむしろこの先、これをどういじって、どう活用するか、なわけだが、昨年後半あたりから Arduino をいじりつつ web を読み漁ったりして「あ、これはやっておきたい」とか「これはいじってみたいなぁ」と思ったたくさんの事柄のうちのいくつかが、このボードには、仕込まれている。HC595(シフトレジスタ)のコントロールであるとか、EEPROM の読み書きとか、電気二重層キャパシタコンデンサ)のあれこれとか、そういう諸々が、セットアップされた状態で今まさに目の前にあるというわけだ。(自由度は低いという言い方もあるが。←ぉぃ)そういうのを、実際にちくちくと動かしながら試すには、このボードは結構いいのかもしれない。
なにかをイチから作り上げるととても勉強になるものだが、リスクも大きい。結局失敗に終わるだけかもしれない。成功したにしても、それはとにかく大変な労力と根性を必要とする。まずはとりあえず、出来上がっているもので動かしてみる、動いたら、その仕組みを考えて、納得する、そんな低コストな「学習」の仕方もある。このボードを使用すれば、その、後者の学習がたぶん、できるんだろうな。


あと、ポート 1個(13番ピン)をスイッチング信号に割り当てて、デジタルピンを複数の装置でシェアするという使い方は正直すごいな、と思った。限られたピンをどう有効活用するか、というのにはいくつか方法があるわけだが、この方法を使いこなせるようになれば武器が 1個増える感じだ。マイコンの真骨頂。ぜひとも習得したい。


C言語のマスターも、少し進むかもしれない。Arduino の公式リファレンスを見る限りでは、どうみても文字列操作が弱すぎるわけで、それもそのはず、当然の話であった。そういうときは C の標準ライブラリを利用すればいいというわけであって、そりゃ、敢えて説明しないわけだ。
ただし、これも私にとっては 1からの勉強になる。コピペばかりではなく、コアの部分を自力で書けるぐらいにならなければ本当におもしろくはないだろう。言うても、CLCD 表示や、多灯 LED ドライブ、シリアル制御、などをばんばんやるためには、必須項目な気がする。


課題は多いが、この「学習ボード」をひとつの「きっかけ」として、ひとつひとつ習得していけばいいのかな、なんてことを思いつつ、またしても夜が更けてしまった。いかん。今日も「あわよくば別の基板の完成を…」などと思っていたのだが、1ミリも取り掛かれなかった。


やることは多い。
それがいっそう明らかになったことが、ひとまずの「学習」成果、 …お、なんかいいオチがついたっぽいので、本日はこのへんで。また何かやったら、続きを書きます。(書く…と思います。←また「たぶん」か

更にちょっとだけ追記【2010/01/07】

コネクタつけました。XHコネクタ、千石にて入手。

こうして動作中の Arduino を見て思うのは、電源投入でロード済みのスケッチが自動で走るのは壮絶に便利だなあ、ということと、外から見ただけではなんのスケッチがいつロードされた状態か全くわからないなあ、ということ。両方とも、ポケコンで慣れていた私にはなんというか、ものすごい新機軸。

*1:ウソでーす。たぶんそのうち弄りまーす。