組込みシステム向けセキュリティボットプロジェクト

Other

概要

このリポジトリは、Tiva™ TM4C123GH6PM マイクロコントローラを用いて、Roombaを改造したISU発行のCybotに各種センサーを接続し、自律的にフィールドを走行して物体を検出、スキャンして最も大きな物体を判別する組込みCの最終プロジェクトです。プロジェクトは主に final_project.c をエントリとして実行され、Code Composer Studio用のプロジェクト設定ファイルや提案書PDFを含みます。ハードウェア制約下でのセンサーデータ取得、モータ駆動、走行アルゴリズムと物体判定ロジックの実装が主眼です。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 4
  • ファイル数: 33
  • メインの言語: C

主な特徴

  • Tiva TM4C123GH6PM マイコンを用いた組込みC実装(Code Composer Studioプロジェクトを含む)
  • RoombaベースのCybotをプラットフォームに、複数センサーでフィールドを走行・スキャン
  • 実行用エントリ final_project.c と設計提案(Security Bot Proposal.pdf)を同梱
  • 実機テストを想定したリアルタイム制御とセンサーデータ処理を実装

技術的なポイント

本プロジェクトは、リソース制約の厳しい組込み環境でのリアルタイムセンシングと駆動制御を扱う点が技術的ハイライトです。Tiva TM4C123GH6PMのGPIO、タイマ、PWM、ADCなどの周辺機能を用いてセンサー読み取りとモータ制御を行い、割り込みやタイミング管理で安定した走行を実現します。センサーデータはノイズ耐性を考慮して簡易フィルタや平均化で前処理し、複数方向にスキャンして得た距離/反射情報を元に物体の位置とサイズを推定するアルゴリズム(スキャン角度の管理、連続検出点のクラスタリングなど)を実装している想定です。最も大きな物体を判定するための比較ロジックは、リアルタイムでのメモリ使用と計算量を抑える設計が求められます。プロジェクトファイル(.ccsproject/.cproject/.project)が含まれていることから、Code Composer Studio環境でのビルド設定やデバッグ設定が整備されており、UARTやシリアルログを経由したデバッグ出力で動作確認を行う構成が想像されます。加えて、Cybotプラットフォーム固有の車体制御(車輪のPWM制御、エンコーダ読み取り/オドメトリ)や障害物回避のステートマシン設計など、組込みソフトウェア設計の基本を実践的に学べる内容です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .ccsproject: Code Composer Studio用プロジェクト設定(ビルド構成・デバッグ設定)
  • .cproject: Eclipse/IDE統合用のCプロジェクト設定ファイル
  • .project: プロジェクトのメタ情報(IDE用)
  • README.md: プロジェクト概要、実行方法や必要環境の説明(抜粋あり)
  • Security Bot Proposal.pdf: 提案書/設計資料(Cybotの写真や設計方針を含む)
  • final_project.c: 実行エントリ。システム初期化、メインループ、センサー読み取りと判定ロジックを含む主要ソース …他 28 ファイル

各ファイルの想定役割(補足)

  • final_project.c: 初期化(クロック設定、周辺機器有効化)、メイン制御ループ、状態機械(走行・スキャン・判定)、および停止/報告処理を担う中心的ファイル。
  • .ccsproject/.cproject/.project: 開発環境にそのままインポートしてビルド・デバッグできるように設定されているため、Tiva用SDKパスやリンカ設定などが含まれている可能性が高いです。
  • Security Bot Proposal.pdf: ハードウェア接続図、センサー配置、テストシナリオ、期待されるパフォーマンス基準など、実機実装に関する設計意図を示す資料が収められています。
  • その他のファイル: センサー制御やモータドライバ、ユーティリティ関数、ヘッダファイル、ビルド用スクリプト等が含まれている想定です(合計33ファイル)。

まとめ

Tivaベースで実機を動かす組込み制御の学習と実践に最適な、実用的な最終プロジェクトです。

リポジトリ情報:

READMEの抜粋:

Embedded-Systems-Security-Bot-Project

This is an embedded C project that uses a Tiva™ TM4C123GH6PM Microcontroller to interface with various sensors to navigate a field of objects and determine the largest object within it.

The project is run from final_project.c

The project is run on an ISU issues Cybot, which is a Roomba equipped with various sensors and features. An image of the Cybot is included in - Security Bot Proposal.pdf file.

This project makes use of a variety of embedded C p…