2024年11月12日
002-3.エレキ入門-第6回「NXTインテリジェントブロック」
レゴマインドストームを「電気」という視点で紹介するというコーナー、名付けて「エレキ入門」です。
電気の知恵をロボット作りに生かしてみましょう。今回はレゴマインドストームNXTでロボットを作るうえで無くてはならない重要な部品、「NXTインテリジェントブロック」についてです。(文/松原拓也)
◆ NXTを作っている部品
こちらが皆さんよくご存知の「NXTインテリジェントブロック」です。ロボットの頭脳となって働き、センサーやモーターを動かしてくれる部品です。
(なお、毎回「NXTインテリジェントブロック」だと長すぎるので、以下、「NXT」と書きます。)
こちらがレゴ社のwebサイト(http://mindstorms.lego.com/)で公開されている「LEGO MINDSTORMS NXT Hardware Developer Kit」という技術的な資料です。略して「HDK」と呼びます。
この資料の中にはNXTの回路図もあります。これを解読すれば、NXTのしくみについてわかるわけですが、、、
、、、非常に内容が難しいです。これを順番に紹介していこうかと思ったのですが、どこまで細かく細かく噛み砕いても難しすぎます。
そこでここでは、難しい部分はできるだけ大ざっぱに紹介していきたいと思います。 さらに興味のある人はHDKを読んでみてください。
まずはNXTを構成している部品についてです。
NXTには2つのマイコンが入っています。なぜ2個も使っているのかというと、処理する量が多すぎて1個では足りないからです。
この2つのマイコンは「親分と子分」のように、片方が常に命令する立場になっています。命令する側を「メインプロセッサ」、命令される側を「サブプロセッサ」と呼びます。サブプロセッサ側はモーターの回転量検出、 NXTボタンの検出、バッテリの電圧チェックなどを担当していて、それ以外の処理はメインプロセッサが担当しています。
メイン側には「AT91SAM7S256」という比較的高級な32ビットのマイコンが使われています。もしこのマイコンを1個だけ買った場合の値段は1113円ほどです(DIGI-KEYにて。2009年4月現在)。
それから、NXTに使われているおもなマイコンやICを列挙してみました。かなり専門的な情報なので、読み飛ばしてもかまいません。
・メインプロセッサ:Atmel社製「AT91SAM7S256」
・サブプロセッサ:Atmel社製「ATmega48V」
・モータドライバIC:三洋製「LB1836M」「LB1930M」
・シリアル通信用のIC:「ST485」
・ブルートゥース用チップ:CRS社製「Bluecore」
・サウンド出力用IC:「SPY0030A」
では、そもそも「マイコン」とはどんなことができる部品なのでしょうか?
簡単に説明すると、マイコンは計算をしたり、信号を入力したり、出力したり、情報を記憶したりすることができます。
マイコンの機能については、「データシート」という技術的な資料に書かれています。たとえば、メインプロセッサである「AT91SAM7S256」のデータシートは「アトメル」という会社のwebサイト(http://www.atmel.com/)で公開しています。ただし、これは英語で書かれていることと、情報が詰まりすぎている(なんと700ページ以上)ので読みこなすのは難しいです。
◆ 液晶ディスプレイ
こちらがNXTで使われている液晶ディスプレイ(LCD)です。
NXTの液晶ディスプレイは、横方向に100個、縦方向に64個の点で構成されています。電卓のようなセグメント方式と区別するために「ドットマトリックス方式」と呼んだりします。ドットマトリックス方式の液晶は配線の数を節約しているので、1度に点を表示できず、1行(または1列)ずつ順番に表示させています。
NXTでは「STN」という表示方式の液晶が使われています。STN方式は表示の濃淡がハッキリしているという長所がありますが、色が付いてしまうという欠点があります。画面が全体的に緑色なのはそのためです。
液晶ディスプレイの構造を簡単な図にしてみました。
「液晶」とは「液体のような結晶」のことです。たとえば、水は常温で「液体」で凍らせると「固体」になりますが、液晶はその中間の状態です。
液晶には「電圧を加えると一定方向に動く」という性質があり、その原理を使って表示の濃淡を切り替えています。
◆ 音の鳴るしくみ
写真の部分に入っている部品が「スピーカ」です。音はここから鳴ります。
分解していないので、どのような種類のスピーカかよく分かりませんが、1.5cmくらいの大きさのマグネティックスピーカではないかと思われます。
マグネティックスピーカのしくみを図にしてみました。そのしかけは電磁石そのものです。
コイルに電気を流すと磁力が働いて振動板を動かします。そして、空気を振動させることで音が鳴るのです。振動する周期は1秒間に100~20000回くらいです。早く振動するほど音程が高くなります。
イヤホンに使うような小さいスピーカならば、マイコンの端子をそのままつなぐこともできます。ただし、NXTのような大きいスピーカでは電流が足りません。そこで、マイコン側の信号を増幅する必要があります。NXTではサウンド出力用のICを使って増幅をしています。
◆ NXTボタンのしくみ1
NXTの前面についたボタンを、「NXTボタン(キーパッド)」と言います。この部分は比較的に構造が簡単なので、丁寧に紹介したいと思います。
NXTは「左」「右」「入力(ENTER)」「EXIT」、全部で4つのボタンで構成されています。
入力ボタンだけが回路から独立していますが、これは電源スイッチの役目を兼ねているためです。
まずはスイッチそのものについてから紹介します。
写真は「タクトスイッチ」という種類のスイッチを分解したものです。
タクトスイッチのしくみを図にしてみました。一定間隔に置かれた端子の上にドーム状に曲がった円盤がのっています。端子が触れていない状態が、スイッチが「オフ」の状態です。円盤に一定の力が加わると2つの接点がつながって、電気が流れます。これが、スイッチが「オン」の状態です。円盤には弾力があり、力を入れない状態では元に戻ります。
NXTの場合、ボタンを押してもカチカチしません。なので、端子に当たる材料には金属ではなく導電ゴムが使われていると思われます。
スイッチの状態を読み取るための回路を考えてみましょう。
自己流に考えてみた「回路図」がこちらです。
タクトスイッチと「ブレッドボード」を使って、この回路を再現してみました。
ブレッドボードというのは部品をさし込むことのできる土台のことです。一定方向の穴がつながっていて、そこに電気を流すことができます。
スイッチを押してみると、電圧計に反応がありました。
電圧計は「5.31V(ボルトと読む)」を示しました。
スイッチがオンとなっている状態を図にしてみました。回路がつながって、電池が電圧計につながっています。電圧計の示した値「5.31V」とは「電池の電圧」だということになります。
あと、重要なことなのですが、電圧計は「抵抗」が非常に大きいです。そのため、スイッチをオンにしても、まったくと言っていいほど「電気を流しません」。 電圧計とは違い、豆電球やモーターは抵抗が少ない部品です。抵抗が少ないので、大量に電気を流します。
「抵抗」については次のページで紹介します。
◆ NXTボタンのしくみ2
突然ですが、写真の矢印の部分(スイッチは離れた部分)の電圧はなんV(ボルト)でしょうか?
正解は「不明」。
この部分はどこにもつながっていないので、なんV(ボルト)かわからない不安定な電圧です。このままだと誤動作を起こしかねません。
でも、前の実験では電圧計の表示は「0V」のままで、不安定ではありませんでした。実はこれは電圧計の中で「0Vと表示される工夫」がすでにしてあったからです。
その「工夫」というのがこちら、「プルダウン抵抗」です。
「抵抗」とは電気を流れにくさのことです。回路に抵抗を与えるための部品を「抵抗器」と呼びますが、略して「抵抗」と呼びます。
プルダウン抵抗を付けたらどうなるかというと、電池のマイナス端子が抵抗を通じて電流計につながってしまいます。抵抗には「電流が流れると電圧が発生する」という特徴があります(《オームの法則》のことです。これは高校で習います)。
もし、スイッチがオフの状態だと電流が流れないので電圧は発生しません。なので、電流計には0Vが伝わるのです。
プルダウン抵抗を追加しました。
これでスイッチがオフになっても電圧が不安定にならず、確実に0Vとなります。
◆ NXTボタンのしくみ3
回路を改良して、スイッチを2つに増やしてみました。
ただし、これだと問題があって、2つのスイッチのうちどちらを押しても同じ電圧になってしまいます。
そこで、スイッチ1とスイッチ2で別々の電圧を持たせてみました。電圧の違いを読み取れば、どちらのスイッチが押されたかわかるというわけです。
電圧を落とすためには、直列につないだ抵抗を使います。これを「分圧」と呼びます(高校で習います)。
この回路をブレッドボードで再現してみました。スイッチ1が緑色、スイッチ2が赤色です。スイッチを押すと、その電気が電流計に伝わります。
スイッチ1を押してみました。
電圧計が1.75Vを示しました。
スイッチ2を押してみました。
電圧計が5.31Vを示しました。
なぜそうなったのかについて考えてみましょう。
まず、実験した時の電池の電圧は5.31Vでした。この電圧は使っている電池の残量によって変わります。
スイッチ1を押した場合、電池の電圧が1/3になって電圧計に伝わります。電池は5.31Vなので、計算すると、、、
5.31÷3=1.77
、、、1.77V。測定結果の1.75Vとほぼ同じで、計算どおりということになります。
一方、スイッチ2を押した場合には、抵抗を通らずそのまま電池が電圧計につながるので、5.31Vとなります。
実際にNXTで使われている回路を確認してみましょう。
回路図中の「R1」「R2」「R3」が分圧するための抵抗であることがわかります。 「BUTT_ADC」と書かれた部分がスイッチの状態を伝えるための線です。途中で途切れているように見えますが、実際にはサブプロセッサにつながっています。「BUTT_ADC」の電圧は押してない状態で0Vだということを考えると、全部で4種類あることになります。なお、「R4」の抵抗がプルダウン抵抗です。
◆ NXTの隠されたスイッチ
NXTには前面のスイッチの他に、「秘密のスイッチ」が2つあります。
その1つが「リセットスイッチ(SW1)」です。スイッチは写真の矢印の部分にあります。穴の中にあるので、長めのシャフトを使って押します。このスイッチを一瞬押すとリセットが働きます。
さらにスイッチを数秒間(5秒くらい?)、押し続けるとファームウェアの更新モードに入ります。このモードでは、液晶ディスプレイが消え、スピーカから「プツ、プツ」という音が鳴り続けますので、パソコンとつないでファームウェアを更新してください。
もう一つのスイッチが、充電池を検出するためのスイッチ(SW2)です。このスイッチは電気的なもので、ソフトウェア的には検出してないように思えます。まだ働きがよく分かっていません。
◆ 入出力ポート
最後にNXTのポートについて紹介します。
こちらが入力ポート1~4です。ここにセンサー類をつなぎます。
あと、入力ポート4はRS485という通信仕様に対応した「何か」を接続できるらしいのですが、そういう製品はまだ発売されていません。
逆側が出力ポートA~C、そしてUSBポートです。出力ポートにはモーターやライトをつなぎます。
こちらがNXTで使われているポートのコネクタです(写真はMindsensors.comで製造している非純正品です)。ラッチ(ツメ)部分が横にズレている点さえ除けば、電話用のモジュラージャックと形状は同じです。 6本ある端子の割り振り方についてはHDKを参照してください。
こちらがUSBのコネクタです。「Aプラグ」という形状を受けとめる側で、これを「Aレセプタクル」と呼びます。端子はたったの4本だけです。データを1ビットずつ順番に送っている(シリアル通信と言います)ので、配線の数を減らすことができるのです。なお、NXTはFull-Speed(12Mbps)までの通信速度に対応しています。
ちなみに「エレキ入門」は今回で最終回です。
これらの記事で電気の面白さと奥深さを少しでも知っていただければ幸いです。
次回からは何か別のコーナーが始まる予定です。お楽しみに。
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。