Newsletters

  • 営業へのお問い合わせ

1 年生のコンピューター プログラミング クラスに楽しみをもたらす MATLAB、Arduino マイクロコントローラーおよび鉄道模型

オハイオ州立大学、Lowell Toms 氏、Dustin West 氏

オハイオ州立大学の初年度の一連の工学コースは、新入生がこの大学で提供されている工学分野の大半を理解できるように設計されています。 課題となるのは、学生に興味を持たせて、主要な科学や数学科目によって初年度が苦行にならないようにすることです。 ではどのようにしてこの課題を解決すればよいでしょうか。 私たちは学生に、鉄道模型で遊ばせながら MATLAB® を使用して基本的なプログラミング スキルを指導することにしました。

1700 名の学生が ENGR 1181 を履修: 工学基礎 I を毎年受講しており、工学の概念と、コンピューター プログラミングの基礎を MATLAB で学ぶだけでなく、MATLAB および Arduino® マイクロコンピューターを使用した N ゲージ鉄道模型のコントローラーを開発する最終プロジェクトを完成させます。 このプロジェクトで、学生は自分たちが学んだことを実証することができます。 また、自らの努力がラボで現実のものとなる結果を目にすることで、工学の喜びを体験する初めての機会が得られます。 学生が自分の制御アルゴリズムが初めて動作するのを見て飛び上がり歓声を上げるのを頻繁に目撃しています。

MATLAB を使用したプログラミングの学習

鉄道模型プロジェクトに取り組む前に、プログラミングの基礎と並行して、測定、グラフィック、データ分析およびその他の主要な工学の概念について学習します。 プログラミングの授業は、ラボの MATLAB での課題によって強化され、配列、文字列、ループ、論理式、条件などその他プログラミングを構成するものについて扱います。

大半の学生はこのコースを受講する前に、プログラミングの経験がほとんど、またはまったくありません。 MATLAB は初めて学習する言語として優れていることがわかりました。 MATLAB は C 言語などの言語よりも対話型であり、コンパイルが必要なく、学生が修得する低レベルの事項がかなり少ないです。 基本的なプログラミングの概念を MATLAB で理解すると、学生はそれらを別の言語にも極めて迅速に適用できるようになります。 また MATLAB はオハイオ州立大学のすべての工学分野にわたって使用されるため、ENGR 1181 には理想的です。

MATLAB および Arduino ハードウェアを使用した電車の制御

学生が鉄道模型プロジェクトを開始するのは、コースの 10 週目からです。 目標は、Arduino マイクロコントローラーと共に動作する MATLAB コントローラーを開発して、円形の線路を走る電車と通信を行うことです。 ブレイクビーム センサーによって、線路は「街」セクションと「田舎」セクションに分かれます (図 1)。 電車が街に入ってくると、MATLAB コードは電車の速度を落として、道路の踏切ランプを点灯し、1 秒遅れて遮断機を下げます。 電車が街を離れて田舎に入ってくると、MATLAB コードは電車の速度を上げて、ランプを消灯し、遮断機を上げます。

図 1. N ゲージ模型のラボでのセットアップ。
図 1. N ゲージ模型のラボでのセットアップ。

学生は 4 名のグループで作業を行い、MATLAB および Arduino ハードウェア向け MATLAB サポート パッケージを使用して、シリアル ポート経由で Arduino Uno と通信を行うプログラムを書きます。 プログラムは、Arduino のデジタル入力からブレイクビーム センサーの状態を確認して、Arduino のデジタル出力を使用して LED を点滅させ、サーボモーターを操作して遮断機の上げ下げを行います。

3 回のラボ セッション中に、学生は自分の MATLAB 制御アルゴリズムを実装します。 これらのアルゴリズムでは通常、センサーの状態およびロジックを確認して、サーボと LED を管理するポーリングループよりなります。

多くの学生にとってプロジェクトの最も難しい局面は、LED を点滅させて、1 秒後に遮断機を下ろすために必要な非ブロッキング遅延の実装です。 アルゴリズムは一時停止の実行中にセンサー入力を逃すことがあるため、学生は MATLAB の pause() 関数を使用できないことがわかります。 代わりに、MATLAB の tic() および toc() 関数を使用して、ポーリング ループを中断せずに遅延の時間を計ることを学びます (図 2)。

図 2. tic() および toc() を使用して非ブロッキング遅延を実装する学生のコード。
図 2. tic() および toc() を使用して非ブロッキング遅延を実装する学生のコード。

デバッグおよび独立した作業のためのシミュレーターの構築

1700 名の学生のラボ時間をスケジュールするのは非常に困難でした。 私たちのラボには 18 台の机が置かれた部屋があり、各机に 1 つの鉄道模型のセットを置くことができます。 チームには 4 名いることから、一度に 72 名の学生を収容できます。 学生はすべてのデバッグをラボにある実際の電車セットで行う必要があるため、ラボ時間の長い待ち時間がさらに長くなりました。 別の懸念として、各チーム内の 1 人のメンバー (以前にプログラミングの経験がある人であることが多い) が、他の 3 名が見ている中で作業の大半を行いがちです。

これらの課題に対処するために、2 名の大学院生が、ラボにある鉄道模型セットをエミュレートする鉄道シミュレーターを MATLAB で開発しました (図 3)。 このシミュレーターは MATLAB Figure ウィンドウを使用して線路、電車、ブレイクビーム センサーおよび遮断機を描画します。 学生はこのシミュレーターを使用して、自分の制御アルゴリズム コードをデバッグしてから、そのコードを実際の鉄道模型で使用できます。 それからチームは、自分たちのアルゴリズムのデバッグではなく最適化を行うためにラボの時間を使うことで、各チームが実際の電車を使用する必要がある時間が大幅に短縮されます。 さらに、学生にシミュレーターを使用して独力で完了する課題を与えることができることで、1 人のプログラマーがすべての作業を行うことがないようにしています。

図 3. MATLAB 鉄道模型 シミュレーター。
図 3. MATLAB 鉄道模型 シミュレーター。

2 学期以降の MATLAB

工学の学生は、ENGR 1182 にてMATLABを継続利用: Fundamentals of Engineering 2 (工学基礎 II) で引き続き MATLAB を使用します。 このコースでは、モノレールの線路を移動するときにできるだけ電力を使用しない、高度なエネルギー車両を設計して作り上げます。 学生は MATLAB で、車両に搭載されている Arduino Nano によって記録された電圧および電流測定を使用して消費電力を分析します (図 4)。

図 4. 消費電力、移動距離、速度および運動エネルギー効率と時間との関係を計画するために使用されるモノレール車両および MATLAB インターフェイス。
図 4. 消費電力、移動距離、速度および運動エネルギー効率と時間との関係を計画するために使用されるモノレール車両および MATLAB インターフェイス。

専門レベルのコースや、最終学年の頂点となるプロジェクトで、1 年目の工学プログラムを経て発展させたスキルを積み上げます。 たとえば、ENGR 2167: Data Acquisition with MATLAB (MATLAB によるデータ収集) では、National Instruments の USB-6009 および myDAQ などのデータ収集 (DAQ) デバイスの使用方法について検討します。 ある課題では、ブレイクビーム センサーが並んでいる垂直管をボールが落ちます (図 5)。Data Acquisition Toolbox™ で DAQ デバイスをセッション モードで使用し、毎秒 20,000 サンプルでセンサー信号を収集します。 MATLAB を使用してボールが落下する速度を計算して、その結果と、ニュートンの法則から計算された真空で落ちるボールの速度を比較します。

図 5. MATLAB および Data Acquisition Toolbox を使用してボールが落ちる速度を測定するための DAQ のセットアップ。
図 5. MATLAB および Data Acquisition Toolbox を使用してボールが落ちる速度を測定するための DAQ のセットアップ。

ハイタッチやその他の肯定的な評価

初年度の終わりまでに、学生はデータ分析と MATLAB を使用したプログラミングを確実に理解していて、ベクトル、インデックス付け、ループおよび条件の動作について理解しています。 電車プロジェクトによって、ラボでハイタッチが行われるだけでなく、学生から非常に好意的な評価が得られています。

MATLAB を使用した初年度の一連の工学コースを採用しているため、工学プログラムの継続を選択する学生の比率が高くなっています。 定着率が高くなっている理由の 1 つには、学生が初年度に本物の工学的な課題に直面して打ち勝つことによる満足感を経験していることにあると、私たちは信じています。

著者について

Lowell Toms 氏はオハイオ州立大学工学部のプログラム サポート スペシャリストです。

Dustin West 氏はオハイオ州立大学工学部の大学院ティーチング アソシエイトです。

年作成 2013 - 92134v00

Receive the latest MATLAB and Simulink technical articles.

Related Resources

Latest Blogs