講義と実験

ここでは情報工学科での講義と、情報工学実験Ⅰ,Ⅱ,Ⅲ,Ⅳについて紹介します。





情報工学科の授業科目の関連図

カリキュラムシーケンス(2021年度入学生用

curriculum_seq_2021


カリキュラムシーケンス(PDF版)をダウンロード

カリキュラムシーケンス(2016年度入学生用

c28b7521c72e864b9359e0f5103e9d31


カリキュラムシーケンス(PDF版)をダウンロード

カリキュラムシーケンス(2014-2015年度入学生用)

16c57dfc3ab1efabdf87bd497e94772d


カリキュラムシーケンス(PDF版)をダウンロード




情報工学実験Ⅰ,Ⅱ,Ⅲ,Ⅳ(3年生科目)

  • 平成24年度から実験内容が変更になりました.
  • この実験ではコンピュータとネットワークの基盤技術を実際的な実験を通して学習します.主な特徴は以下になります.
    •  実験ⅠからⅣにかけて,初歩的な内容から段階的に高度な技術を学習・利用し,利用者(ユーザ)になるためではなく,モノづくりに必要な技術や理論を体系的に学んでいきます
    • 各実験の最後には,それぞれの実験で設定された課題をクリアするコンテストを実施します
    • 実験ⅠとⅡでは,個人でコンテスト競技を実施し,実験ⅢとⅣでは,グループでコンテスト競技を実施します.これらを通じて,プロジェクト管理や他者との協調作業などシステム開発等に必要な技術を学びます

実験内容


  • 最近の電気製品に代表される組込機器には必ずといって良いほど,コンピュータが内蔵されています.このコンピュータはパソコンに使われるCPUとは違うCPUで,日本は世界で大きなシェアを持っています.
  • 本実験ではマイコンボード(実験Ⅰ,Ⅱでは,arduinoを利用し,実験Ⅲ,Ⅳでは高機能・高性能なマイコンであるRaspberry Piを利用)と、ロボットカーを使って,組込機器開発の学習を行います.具体的には以下のような技術の習得や,体験を行います.
    • C言語でプログラムを作成して書き込み動作させる
    • I/Oポートを通じた、デバイスの制御、通信、センサからの値の取得などを行う
    • Java言語での、Androidタブレット端末でのアプリ開発
    • ロボットカーとAndroid端末のIP通信によるテレメトリングやリモコン操作
    • WebサーバをPC上に構築し,さらにロボットカーから集めた情報をWebサーバ上で処理するシステムを構築
    • Python言語を利用したカメラ制御や画像処理による自動走行
    • 最終課題では、走行コースで各人のタイムや技術を競ったり,競技場でロボットカーを利用した対戦ゲームで競う

実験機材の構成図(一人あたり)

  • 全員に一人ずつ下図のような機材を用意します.これらを使って思いっきり楽しんでください.
  • 主な機材は Windows/Linux PC,arduino,Raspberry Pi,3pi,Andoroid端末,無線LAN基地局などです.このような機材は実際の組込機器や組込みシステムの開発でも使われている機材になります.
  • この実験を通じてこれらの機器の基本的な使い方を学び,社会に出ても通用する力を身に付けてもらいます.

楽しく実験を!

  • 上の写真はarduinoを搭載したM5stackを使ってライントレースをしている様子です.
  • ロボットカーが取得した距離や照度などのセンサー情報を無線LAN経由でAndroid端末に送信し,Android端末上に開発したグラフ表示アプリケーションで表示しています.このように,単純にトレースするだけでなく,タイムを競ったり途中で様々な動作をしたりと,様々な工夫を凝らした課題を用意しています.
  • このように,友達と競い合うもよし,ただひたすらプログラミングに没頭するもよし.楽しく実験に取り組んでもらいます.
  • 上の写真はRaspberry Piを搭載したロボットカーを自動で隊列走行をしている様子です.ここでは,カメラ画像を処理して,道路の状況を把握しつつ,他のロボットカーと通信しながら衝突しないように,自動で走行させています.これは,今話題の自動運転やコネクティッドカーと呼ばれる技術を再現していることになります.

スケジュール(前期)

  1. 情報工学実験Ⅰ
    1. ガイダンス、実験のゴール説明、arduino開発環境や実験機材の使い方
    2. M5stack上の表示と入力操作のプログラミング
    3. e3piロボットカーの基本的なプログラミング
    4. センサからのデータ取得
    5. センサからのデータ取得とロボットカーの動作への適用
    6. 課題:設計、実装
    7. 課題:実装、テスト
    8. 課題:コンテスト(個人戦)
  2. 情報工学実験Ⅱ
    1. M5stack上の表示のプログラミング、距離センサの補正
    2. ロボットカーの情報取得、TCP/UDP/IP通信
    3. ロボットカーからAndroid端末への通信
    4. ロボットカーとAndroid 端末の統合プログラミング
    5. 課題:実装、単体テスト
    6. 課題:統合テスト
    7. 課題:コンテスト(個人戦)
    8. まとめ
  3. 情報工学実験Ⅲ
    1. ガイダンス、ロボットの説明、r3piや周辺機器との接続,開発環境の説明
    2. Raspberry Piによるロボットカー制御
    3. Raspberry PiとAndroid端末の双方向通信:Raspberry Pi
    4. Raspberry PiとAndroid端末の双方向通信:Android端末
    5. Webサーバの構築とロボットカーからWebサーバへの情報送信
    6. 課題:システム設計、要求仕様分析、実装
    7. 課題:単体テスト、統合テスト、デバッグ
    8. 課題:コンテスト(団体戦)
  4. 情報工学実験Ⅳ
    1. Raspberry Piによるカメラの利用と画像処理
    2. Raspberry Piによる画像認識と機械学習の利用
    3. ロボットカーの自律走行
    4. 課題:システム設計、要求仕様分析
    5. 課題:実装、単体テスト
    6. 課題:統合テスト、デバッグ
    7. 課題:コンテスト(団体戦)、プレゼン
    8. まとめ

実験後の学生の声(感想)

  • Aさん
    • 最初のほうの課題では、温度センサや照度センサや距離センサの実装などを行い、ロボットカーでまわりの温度や明るさ、距離などを測定して値として表示するだけな ので作業感が強かったのですが、最終課題に近づくにつれ、自分が作ったプログラムでロボットカーが実際に操作できたりして、プログラムを組むこと自体は正直あまりおもしろくなかったけど、自分が作ったプログラム通りにロボットカーが操作できたときはいままでの苦労が報われた感じがして作ってよかったと感じました。コンテストの結果は、途中でライントレースがうまくいかなくなったり、本番の緊張があって 操作ミスをしてしまったりして思うようにうまく動作させることができなかったのが 残念でした。私は小さいころラジコンが好きでよく友達とかと集まって遊んでいてそ のときには、自分が操作するだけで、ライントレースのような指示するだけで自動で 線の上を走ってくれるなどといった機能はなかったのでまだまだ勉強していけばロボットにさまざまな動きをさせることができたり、さまざまな動作を自動化できたりすると思うので、プログラミング系は苦手だけど勉強を頑張ってみようかなと思いました。
  • Bさん
    • 最終課題を通して、これまでに習った内容を再確認する事が出来た。LED の点灯は最初に習った内容であり、とても簡単な内容であった。そのため、最終課題に取り込むのもそんなに苦ではなかった。所々悩んだり、迷ったりする事があったが、最終的に形となったので良かった。コンテスト中は、他の人のロボットカーを見ていたが、自分よりも出来ていたり、自分には考えられない事を取り込んでいたりと様々なロボットカーがあると思った。また、そのロボットカーを作るのに、どのようなプログラムをしたら、そんな動作をするのかとも感じた。課題を通して、今どこまで自分が出来るのかを確認することも出来たと思う。これまでは、C 言語、Java、Python のプログラムを学んできたが、実際にものを動かすプログラムはあまりやってこなかったので、実験を通して、理解が出来たと感じた。
  • Cさん
    • グループでの開催が決まったことを聞いた時,私自身がグループを組むことによって,班の不利益にならないか,しっかり役に立てるかなど不安はあったが,なんとかコンテス トを終えることができて良かった.最初の計画からズレが起こったり,設定した目標が達 成できなかったり,逆に最初想定していたものより良いものが作れたり,多少のアクシデ ントがありながらも四人で話し合って協力して作れたのはシンプルに楽しかったし,達成 感や,最後までやりきれた感覚が,個人競技に比べて大きいと感じている.特に,一人だと,息詰まったらひたすらコードを読み直し,講義資料やネットでの検索,先生やTAさんに相談するなど,与えられた課題に対して答え合わせをする,教えてもらうという感覚 であったが,同じカリキュラムをこなしてきた仲間と,一から目標設定をし,設計途中でつまずいたらお互いに相談したり,話し合あたりして解決していく流れは,本当に自分た ちの力で設計できたんだと強く感じられて,とても刺激的であった.現在就職活動を始めていて,この前開催してもらった先輩方との交流会で,エンジニアという仕事についての説明があったが,計画から設計,実装,テストという流れに関して,今まで様々な授業で習ってきた設計の流れや,実際に設計を行う技術などのつながりが見えたように感じて,必修の授業であるからという理由ではなく,私の将来に関してとても良い経験になったなと感じた.実験の授業を履修できて良かったと思った.また,コンテストでは,他の班のわたし達とはまた違う独創的なアイディアや技術を目の当たりにして,本当にすごいなと思ったし,自分ももっと頑張りたいなと思った.
  • Dさん
    • 今回のコンテストを通して、複数人での開発の同時進行の難しさを実感しました。普段の講義では、共同で制作を行うことはなく、今回のようなコンテストの形式は初めてでしたので、複数人での制作の仕方は手探り状態でした。他にも、一つの進行が遅れている場合、全体の進行も遅れるため、それぞれの作業の重要度も上がり、全体の進行のためにもできるだ け早く、正確に完成させるよう心がけていました。しかし、それでも不具合は生じてしまい、内容のブラッシュアップよりも、バグ取りや調整にばかり時間がかかってしまいました。これらのような事は今回のコンテストのように複数人で制作を行わないと気づきづらく、今後必要になるであろう視点を得れたのは、とても貴重な経験でした。