1. はじめに
本ドキュメントはmirs2201ソフトウェア開発報告書である。
2. 作成したプログラムと評価
2.1 本の読み取り
概要
バーコードリーダーを用いて書籍に付いている、バーコードを読み取る。データベースを参考にして、本のジャンル識別をする。
評価
バーコードリーダーが改行コードまで入力される使用だったのでscanfで受け取り配列に格納した、fscanfで読みとったデータベースとの照合もできた。7冊以上であっても対応できるようにしたので拡張性を持たせられたと思う。
対象プログラム
raspi_mode
以下に動作を示す。
2.2 本のソート
概要
データベースから参照した本のジャンル情報をもとに、としょかえるに本を乗せる順番を表示するためにソートをする。また、LEDをソートされた順番に表示する。
評価
コード量はそこまで多くないがアルゴリズムが少し複雑になった。7冊以上でも対応できるように拡張性を持たせられたと思う。ランダムに入ってきた重複する可能性のある数をソートできるので他でも使用できるかもしれない。
対象プログラム
raspi_mode
以下に動作を示す。
2.3 ライントレース
概要
フォトリフレクタを4つ並べ、白線と黒線を0or1で読み取り、その情報をもとに走行した。白の停止線を用意して、フォトリフレクタの値が全て白になったときに停止するようにした。
評価
最初は真ん中に黒ライン外に白ラインでトレースしようとしたが左白右黒のライントレースの方が合理的だったのでそちらに変更した。衝突検知なども実装できおおむね満足だがPWMの調整をバッテリーの残量から変更するコードを実装すればもう少し完成度が高まったと思う。
対象プログラム
raspi_mode
以下に動作を示す。
2.4 本の射出
概要
停止位置にきたら射出用のモータを回転し本を押し出す。押し出した本の数をカウントするために、落下する位置にタッチセンサを置いた。
評価タッチセンサのチャタリングを実際の落下時のデータから計算し対策できた。モータのエンコーダーがついていなかった関係で後半になると押しが強すぎるようになってしまったのでデータベースに重量まで入れるか本の残数からPWMを調整すべきだったと感じた。
対象プログラム
raspi_mode
以下に動作を示す。
2.5 本のデータベース作成
概要
本の読み取りを行う際に照合するためのデータベースを作成するプログラム。txtファイルにジャンルごとに読み取りしたバーコードの値を入力し、別ジャンルの本の読み取りを始める場合は改行をいれる。
評価
何冊でもどれだけのグループでも対応できるように作成した、データベースを作るプログラムとしては必要最低限の機能を持たせられたと思う。
対象プログラム
mktable
3. 総括
モータ制御においてもう少し詰めることができたのではと感じた。実際の機体が組みあがることが遅かったこと、一度コードが書き直しになったことでそういった細かい部分まで完成度を高めることが時間的に厳しかったと感じた。
想定した一連の流れは実装できたのでその部分は評価できたと思う。