平成19年6月11日更新

平成19年6月17日(日)、山形県立東根工業高等学校を会場に第3回ものづくりコンテスト電子回路組立部門が開催されます。昨年度は事務局校として盛り上がりましたが、今年は今ひとつの状況。大会1週間前になりようやく指導体制が整う始末です。(あまりに遅すぎ?)毎日いろいろあるのでしょうがありません。

<山形大会は>

昨年同様山形県大会は一日のみの開催となります。
東北大会以上は2日間での実施となりますが、山形県独自のルルールでの実施です。
今年度k制御対象物は昨年度も使用した「7セグメントLED&DCモータボード」と当日製作する「加速度センサ&タクトスイッチ」の2種類です。

写真右の7セグメントLED&DCモータの基板を「KIBAN1」と呼び、左の当日製作基板についてはについては「KIBAN3」と呼び、プログラムでは以下のようにマクロ定義しました。

遅れた原因の一つ?

今回課題の加速度センサ(KXM52−1050)についてAD変換データがなかなかつかめませんでした。
今回RS−232C端子を利用しAD変換の値をパソコンでモニタすることにより、やっとつかめてきました。
机に置いた状態(平衡状態)でもなかなか安定したデータが出できませんでしたので、「5回読んでその中央値を採用」のソフトウェアフィルタを採用しています。

今年度のポートアサインは

マクロ定義07

事前指定関数(大会参加者が事前に作り大会時使用する関数)


山形県版 事前公開課題(練習問題)1

/*----------------------------------------------------------------------------*/
/* <初期状態> */
/* @ 7セグメントLEDの表示は「00」とする。 */
/* A DCモータは、停止状態とする。 */
/* B 7セグメントLEDの表示は、10進数2桁を表示するものとする。 */
/* */
/* <プログラム仕様> */
/* タクトスイッチが2回押されるごとに、7セグメントLEDの表示を「1」(10進数) */
/* ずつ増やしていく。表示の範囲は「00」から「12」までとする。(カウント数が */
/* 「13」となったら、カウント数をリセットする。) */
/*----------------------------------------------------------------------------*/

課題1解答サンプル

山形県版 事前公開課題(練習問題)2

/*----------------------------------------------------------------------------*/
/* <初期状態> */
/* @ 7セグメントLEDの1つは全消灯、もう一つはLEDg端子のみ点灯させる。 */
/* A DCモータは、停止状態とする。 */
/* B 加速度センサは水平状態で停止している。すなわち、平衡状態に */
/* あるものとする。 */
/* C 7セグメントLEDの点灯は、1つの端子のみとする。すなわち、2つ以上の */
/* データの点灯はないものとする。 */
/* */
/* <プログラム仕様> */
/* 加速度センサの平衡状態のアナログデータ値を基準として、加速度センサを */
/* 動かした時、 */
/* @ 基準よりも大きい数値になった時、7セグメントLEDの点灯場所を、g端子から */
/* a端子に変更する。 */
/* A 基準よりも小さい数値になった時、7セグメントLEDの点灯場所を、g端子から */
/* d端子に変更する。 */
/* B アナログデータ値が平衡状態のデータに戻った場合には、点灯場所をg端子 */
/* に変更する。 */
/*----------------------------------------------------------------------------*/


課題2 解答サンプル

課題21 加速度センサ5回読みに改良したもの(サンプル)

山形県版 事前公開課題(練習問題)3

/*----------------------------------------------------------------------------*/
/* <初期状態> */
/* @ 7セグメントLEDは2桁とも全消灯とする。 */
/* A DCモータは、停止状態とする。 */
/* B 加速度センサは水平状態で停止している。すなわち、平衡状態に */
/* あるものとする。 */
/* */
/* <プログラム仕様> */
/* 加速度センサの応答(センサからの出力データ値)が */
/* @ 大きい方で最大になった時、7セグメントLEDの表示を「HH」とする。 */
/* 一度この状態になった後は、タクトスイッチが押されるまで、常にこの状態 */
/* を保持したままとする。 */
/* A 小さい方で最大になった時、7セグメントLEDの表示を「LL」とし、同時に */
/* DCモータを回転させる。一度この状態になった後は、タクトスイッチが */
/* 押されるまで、常にこの状態を保持したままとする。 */
/* B タクトスイッチが押されたときには、7セグメントLEDおよびDCモータとも、 */
/* 強制的に初期状態へ戻るものとする。 */
/* (補足:加速度センサの最大・最小のデータについては、おおよその値で構いません */
/* ある値を超えたと時に、最大・最小と認識してください。) */
/*----------------------------------------------------------------------------*/


課題3 解答サンプル

山形県版 事前公開課題(練習問題)4

/*----------------------------------------------------------------------------*/
/* <初期状態> */
/* @ 7セグメントLEDは2桁とも全消灯とする。 */
/* A DCモータは、停止状態とする。 */
/* B 加速度センサは水平状態で停止している。すなわち、平衡状態に */
/* あるものとする。 */
/* */
/* <プログラム仕様> */
/* タクトスイッチが押されてから、DCモータを500ms間回転させる。 */
/* 500ms後、DCモータを停止させる。またDCモータ回転中は、一切他の動作を */
/* 受け付けないものとする。 */
/*----------------------------------------------------------------------------*/

課題4 解答サンプル


オリジナル練習問題1
  0から9までのタイマを作りなさい。
  但し7セグメントLEDの2桁目(10の位)には何も表示しない。

オリジナル練習問題2
 0から99までのタイマを作りなさい。

オリジナル練習問題3
 99からわまでのタイマを作りなさい。

オリジナル練習問題4
 DCモータを5秒間毎に高速回転、停止、低速回転、停止を繰り返しなさい。

オリジナル練習問題5
 DCモータを3秒間毎に高速回転、停止、低速回転、停止を繰り返しなさい。
その際待ち時間を7セグメントLEDに表示しなさい。

Back