top of page

Lesson. 11 入力デバイス §11. 加速度センサ

ahedgehogchase

●加速度センサ

次は加速度センサについて説明していく。 こちらの加速度センサは旧式のもので、ここで紹介するだけだ。なぜかと言うと、僕たちはかつてインベントリにリストアップして使用していたのだけれども、僕たちは新型の現行品を使うようになったからだ。 新型の センサ は1ドルのコストで、大きさは半分だ。 これは3軸の加速度を測定することができる。そして、これをX,Y,Z軸を意識せずに振ってみよう。値は軸ごとに別々に測定される。( デモ ) 加えて、このセンサをひっくり返すと、このセンサは高感度であることがお分かりだろう。このセンサは重力を測定することができる。重力というのは、すなわち加速度だ。 だから、デモクリップの最後に次のデモお見せしたい。単純にこのセンサを右側面に回転させ、そして、上下逆にすると、このセンサは裏返っていることを検知して通知することができる。何故ならば、方向に応じて重力の方向が変わるからだ。

このセンサは素晴らしい部品だ。大量購入すりゃ、加速度測定を実行するセンサが1ドルで手に入る。 このセンサを用いるに当たって、いくつかの注意事項がある。 最初の注意事項はパッケージについてだ。 まず、ここで レイアウト図 を示す。これについて少し話ししておこう。そして、今お見せしているのは、 組み立てた時の写真 だ。 一般的に加速度計は携帯電話の部品として大量に用いられるから、今や、加速度計だけをパッケージで入手することができる。 ●リフロー そして、この基板を作るには、リフローしなきゃならない。パッドは底面にある。底面を半田付けすることはできないよね。だから、これはリフロー用に設計されており、半田ペーストを用いるんだ。 半田ペーストを塗布して、基板全体を引き上げる。 僕がお見せしているのは、マニュアルリフローの技だ。これは、ホットエアガンを用いる。ドライヤーじゃないよ。半田付けに用いる特製ホットエアガンだ。このホットエアガンの先端部は素晴らしくて、ジェットを発生させる。この先端部を取り除くと、このようにうまくは機能しない。この先端部が本当に必要なんだ。これが良好なジェットを作り出す。

●ティンニングの魔法

この作業を行うために、僕はパッドにティンニング(tinning; 半田の薄い層を塗布)した後、余分なものを除去する。そして、加速度センサにもティンニングを行う。これはいつでもやらなくちゃならないってものではない。でも、これは確実に機能するようにするための良い実践方法だ。 そういう訳で、僕は基板と加速度センサをティンニングすることによって、半田のメッキみたいにしたんだ。君たちが量産基板を手にした時、それらの基板には半田が塗布されていているだろう。つまり、それらの基板は小さな半田のこぶを設けてあるんだ。 そして、この小さな半田のこぶを用いることで、加熱したときに、全てのチップを基板に密着させることができるようになる。 そして、次にちょっと魔法みたいなプロセスのお出ましだ。君たちは、どこにチップを配置したのか正確に知ることはできない。しかし、このプロセスが機能するのは、表面張力のおかげだ。部品を近づけると、表面張力によって引き込まれるんだ。 そうやって、全ての部品を実装する。半田を加熱して、部品を実装するべき場所に近づけて、力を抜く。そうすりゃ、表面張力によって正しく固定される。

そして、全ての部品を搭載し終えたら、このような見た目になる。部品の周囲を見てみると、半田の一部がはみ出しているのがお分かりだろう。つまり、これは、小さな半田のこぶがトレース上で溶けて、流れ、余分な部分が出てきたものなんだ。 これが、手動リフローのテクニックだ。 リフローを行うには他にも多くのやり方が存在する。半田ペーストを用いることもできる。オーブンでリフローすることもできるし、フライパンを使う人もいる。僕はホットエアガンを用いる方法を好んで用いる。 少しばかりスキルは必要だが、一旦やり方を覚えてしまえば、これらの部品を半田付けすることができるようになるんだ。 そういうわけで、加速度計は、このように小さなパッケージなので、リフローが必要だ。

加速度計について、説明を続けよう。ここでデータシートに戻るとしよう。 ●I²C(アイ スクェアード シー) これは標準プロトコル、SPIというものだ。これは、このようなデバイスに非常によく用いられる。(※以後、I²CとSPIを混同して話しているので注意。ちなみにSPIもI²Cも低コストなシリアルバスの一種) インターフェースを作る前に、僕たちは過去の電子的なスペックを見てみれば、多くのデータシートがプロトコルについて説明していることがわかる。 そして、それは加速度計と通信するプロトコルについても同様だ。 そして、設定して読むことができる全ての物事がある。そして、そうするためには、SPIプロトコルを用いなきゃならない。 だから、今回の例はコードが少しばかり複雑だ。 メインループには、データを読み込み、I²Cに送信するルーチンがある。 そして、AtmelにはI²Cライブラリがある。でも、これは非常にシンプルなプロトコルだ。 ソフトウェア上でSPIプロトコルを実行する一連のルーティンがここに書かれている。ここで何が行われようとしようとしているのか、知る必要というのは本当にない。僕はこのことについて後で説明するつもりだ。 でも、これはSPIプロトコルのソフトウェア実装であり、通信を行うものだ。 加速度計に話を戻そう。ホスト側を見てみるとしよう。ここにPythonコードがある。これは単にシリアル通信を取得するだけのものだ。 そして、マイクロコントローラは、SPIを実行し、加速度計と通信する。そうやって、ホスト側へのコミュニケーションを行うんだ。 君たちはSPIの詳細を無視してもらって構わない。それはこれらのルーティンにおいては完全に隠されたものだ。 さらにCコードにおいてもSPIのソフトウェア実装がなされている。 一旦基盤に半田付けしてSPIを用いりゃあ数多くの正確な部品と通信することができるんだ。 例えば、これは慣性計測ユニットを含む。つまり、ジャイロスコープと加速度計も含む。例えばこれで6軸測定を行い、移動と回転の情報を得ることができる。 何か質問はあるかね? Bass:先生はI²Cのデバイスについて指し示していたと思いますが…SPIっておっしゃってましたけれども… おっと、すまない! Bass:でも、僕は理由がよくわかりませんでした。というのも、僕が知る限りSPIって言うのは、全てのAtmelのマイクロプロセッサがハードウェア内に持っているものだからです。 Bass:つまり、僕が言いたいのは、もしもそれがプログラムするために用いるものであるならば、それはI²Cだろうな、ってことなんです。I²CはTWIのプロプライエタリ版ですけれども、これは全てハードウェアに含まれるものです。これらのチップにBig Bangingを用いるのなは何か特別な理由があるのでしょうか?. あー。すまないね。僕は混乱させるようなことを言ってしまった。 このデバイスはSPIともI²Cとも通信することができる。Bit Banging(シリアルインタフェース規格(I²C、SPIなど)をエミュレートするマイクロコントローラの汎用ポートを使う技術。)を用いるのには利点がある。これは僕がシリアル通信にBit bangingを用いる理由と同じだ。 これらのプロトコルは低速だ。クロックサイクルよりも低速なんだ。 君たちはハードウェアを使ってこれを行うことができるけれども、問題となるのは次のような場面だ。君たちがハードウェアを用いる時にこれを実行する。僕たちはハードウェアに関連付けられたピンを用いる必要がある。 そして、君たちはハードウェアを設定しなくちゃならない。そして、ハードウェアが変わると、つまりプロセッサが変わるとハードウェア上の設定が変わる。 僕がBit Bangingを好む理由は、つまり、これが設定をソフトウェア上で行っているからであり、設定に可搬性があるからだ。 君たちはどのピンを用いることだってできるし、何も変わらないんだ。 Bit Bangungのマイナス面はプロセッサがBit Bangingを実行するのに忙しくなってしまうことだ。他のことができなくかる。でも、このケースにおいては、他にやるべきことはない。 だから、Bit bangingを行うのに問題はない。そして、ハードウェアに用いるのは好ましい。 何か他のことに注意を払い続けなければならない場合や、他の処理を行っているのであれば、ハードウェアをそのまま用いるのが良いだろう。しかし、この例の場合はそれらを必要としない。プロセッサと比較すれば通信は非常に遅く、ソフトウェア上で他にすることはない。 これはまさにプロセッサ間で可搬性のあるコードを作ることができる。僕はどのピンを選んでも構わない。 良いかね? Bass: はい。 ここでもう一度。僕はSPIって言っていたけれども、SPIじゃなくてI²Cが正しい。 加速度計に限って言えば、この場合はどちらも行うことができるけれども、僕が意図していたのはI²Cだ。 プロセッサへのインターフェースとして僕が用いているインターフェースはI²Cだ。 OK。ここまでは加速度計について説明してきた。 受講者:質問です。どのハードウェアやプロセッサがI²Cをサポートしているのか分かりません。 それはどのAtmelのプロセッサを用いるかによる。AVRのいくつかはI²Cをサポートしているし、していないものもある。 Bass:もしもI²Cをサポートしているハードウェアを探したいのであれば、TWIで検索すると良いですよ。なぜなら、I²Cはプロプライエタリな用語だけれども、同じものですからね。 そうだね。

(つづく) 講義の目次は 【和訳版】FabAcademy 2016  からご覧ください。 ※この記事は FabAcademy 2016 におけるニール・ガーシェンフェルド教授(MIT)による講義動画をもとに作成しました。正確な訳ではないので間違っていたら指摘いただけるとありがたいです。      

閲覧数:9回0件のコメント

最新記事

すべて表示

Lesson 13. 出力デバイス §4. LEDマトリックス

●LEDマトリックス 次に紹介するのはLEDマトリックスだ。 動作しているのを見てみると、ディスプレイの一部分が表示されているのが見えるだろ? 僕はディスプレイの一部分を用いてラスタリング(画像を色のついた格子状のドットで表現すること)を行なっているんだ。 ...

Lesson 13. 出力デバイス §3. 調光LED

●調光LED さあ、ここから僕は多くのデバイスを紹介していこう。 最初に紹介するのは、色調を変化させることのできるLEDだ。色を周期的に変えることができるんだ。 これが、その部品だ。 この部品には赤と緑の、青のLEDが1つのパッケージに含まれている。大量購入す...

Lesson 13. 出力デバイス §2. 電源

●電源 今回の課題のゴールはたくさんのバッテリーを使うことじゃない。モバイルにしなくちゃならない場合を除いてバッテリーを使うのはお勧めしない。一般的には各Labは各種電源を取り揃えているはずだ。 今から紹介するベンダーMARLIN P. JONES & ASSOC....

© 2017 by A HEDGEHOG CHASE created with Wix.com

  • Grey Facebook Icon
  • Grey Twitter Icon
  • Grey Google+ Icon
bottom of page