- - PR -
前回予告したとおり、今回はETロボコン事務局から配布されている二輪倒立振子のサンプルプログラムを実行してみたいと思います。サンプルプログラムは、ジャイロセンサと光センサを使用して、バランスを取りながら黒線上をライントレースするというものです(スタートスイッチにはタッチセンサを使用します)。
まずは下準備として、センサやモータと本体をつなぐ各ポートの配線を行います。 NXTには3つの入力ポート(A〜C)と4つの出力ポート(1〜4)が用意されていますので(画像1を参照してください)、今回はジャイロセンサと光センサ、タッチセンサを入力ポートに、左右のモータを出力ポートに配線しました。
![]() | ![]() |
| 画像1 NXTに用意されているI/Oポート
|
|
![]() |
| 画像2 配線後のNXT
|
配線が完了し、これで準備OKです(ETロボコンキットで用意されいてるコードを使用したのですが、長さの調整を行わなかったために少々不格好な状態になってしまいました)。
前回と同じ手順で、サンプルプログラムをビルドし、NXTに転送します。
ETロボコン事務局から提供されているコメントによると、プログラム実行後にタッチセンサを押すと、ライントレースを開始するようです。早速実行してみます。
![]() |
![]() |
![]() |
| 画像3 実行手順 NXTを起動 → プログラムからsample.cを選択 → 実行(Run)
|
||
……。
すると、おかしなことにNXTがまったく動きません……。LEDが点灯しているようなのでプログラムはうまく実行されているようなのですが、何か問題があるようです。
そこでサンプルプログラムのソースコードをもう一度よく見直すと、どうやらジャイロセンサと光センサの値を環境に合わせて変える必要がありそうです。ここでいう環境とは、加速度0のときのジャイロセンサのオフセット値、黒いライン上を走行しているときに光センサの値、ラインを外れたときの光センサの値の3点です。
![]() |
| サンプルプログラムで設定されているパラメータ値 現在はジャイロセンサの値が610、黒いライン上のときのセンサ値が700、ラインを外れたときのセンサ値が500に設定されています |
現在の環境に合わせた各センサ値を知るには、また別のプログラムを作るか、サンプルプログラムに、追加する必要がありそうです……と、そんなことを考えていると、ちょうど同じ疑問を持っていた参加者の方からETロボコンのメーリングリスト(参加者のみ閲覧可能なメーリングリスト)に、その解決策が含まれた情報が提供されていました。
そのメールによると、どうやら前回実行したhelloworldプログラムが、さきほどのセンサ値を表示するプログラムのようです。前回は配線をしていなかったので、数値は表示されていませんでしたが、配線後にあらためて実行すると、ジャイロセンサの値・光センサの値と、まさに欲しかった情報(各センサの値)を確認することができます。
実行してみました。
![]() |
![]() |
| 画像4 配線後にhelloworldプログラムを実行した様子 画像左が黒いライン上のとき、右がラインを外れたときのセンサ値 |
|
表示されたセンサ値によると、ジャイロセンサの値が約600、黒いライン上のときのセンサ値が約730、ラインを外れたときのセンサ値が約540でした。この値を参考に、サンプルプログラムを書き換え、再度実行してみます。
すると……!
サンプルプログラム実行の様子
今後こそNXTが動きました。ライントレースも順調に行っています。
関連記事 業界動向/イベントレポート
組み込み開発フォーラム 新着記事
- フルスクラッチの“Hello World”を動かしてみよう(2011/3/31)
- FlexRayプロトコルの概要(その2)(2011/3/29)
- JASA、東北地域に拠点を置く会員企業を支援(2011/3/25)
- NEC、震災の影響を受けた4拠点の生産再開を発表(2011/3/23)
- 内部ブロック図の基礎と共通要素(2011/3/22)
- インテル、被災地におけるITインフラの復旧を支援(2011/3/22)
- Facts on AUTOSAR/AUTOSAR導入の現実(2011/3/18)
- 計測器・震災被害ホットラインを開設、テクトロニクス(2011/3/18)
- ZMP、地震の揺れを多角的に計測するアプリ無償配布(2011/3/16)
- メンター、3Dテレビ・マルチメディア検証プラットフォーム(2011/3/16)
- 【番外編】タチの良い計測値、悪い計測値とは?(2011/3/15)
- tarファイルシステムをAndroidに組み込む!!(2011/3/10)






















