自作メダルゲーム交流広場
-トピック投稿フォームはページ最下部にあります -
制御システム - カテゴリNo.14391217 - 投稿者:管理者
2013/07/16 (Tue) 00:21:27
本格的なメダルゲームを作るために、電子回路の制御について話し合うトピックです。

モーターを自動的に動かしたり止めたりすることなどを、コンピュータのプログラム言語を使って、様々な制御に挑戦してみましょう。
このカテゴリのURLは:「http://drakuji.bbs.fc2.com/?act=reply&tid=14391217#(トピックNo.)」です。
アルゴリズムの訂正 - トピックNo.17611036 - 投稿者:管理者D
2013/09/09 (Mon) 03:07:21
アルゴリズムの欠陥③についての訂正です。

入力が終わったあと、強制にホッパーを動作させる処理が入っています。
この流れで実行すると、もし入力枚数が0以下の数字であった場合も
1枚払い出してから入力数字の判定が入っています。
これは大きな欠陥です。

解決方法は以下の2つが挙げられます。
・入力した数字が0以下である場合の処理が条件として記入し、
 入力エラーを表示させる対策をする。
・ホッパーを払い出す動作を判定の後に持っていく。

両方とも入れるほうがヒューマンエラーとシーケンス操作のどちらも対策することができます。

このトピックのURLは:「http://drakuji.bbs.fc2.com/?act=reply&tid=14391217#17611036」です。
アルゴリズム - トピックNo.17527207 - 投稿者:管理者D
2013/08/31 (Sat) 04:31:40
まずはアルゴリズムについて説明します。
アルゴリズムは、コンピュータに何か作業をしてほしいときに、その作業手順に従って作業してくれます。その作業手順をアルゴリズムといいます。
アルゴリズムは基本的にフローチャート(流れ図)を用いて、1つずつ手順を進めていくことで最終的に作業の結果が出てきます。

今回は単純なメダル払い出しのアルゴリズムを考えてみましょう。
メダルを払い出すには、ホッパーと言う機械があります。ホッパーと言う機械には、基本的にメダルを払い出すために動かしたり止めたりする情報(モーター)と、メダルを検知する情報(センサー)で構成されています。これをOn/OFF
させることでホッパーを制御することができますが、ちょっとだけ工夫してみることにしましょう。

例えば、動画「Medal Tank」のメダル払い出しがあります。
http://www.youtube.com/watch?v=QGdjT7gnIMU
動画では、メダルを100枚払い出す処理をしています。
これを、フローチャートに沿って処理を考えてみましょう。

・プロセスの開始
①まず、払い出したい枚数を「2」と入力し、Aという変数に代入します。
※変数とは、数字や文字などの情報を保存する役割があります。代入されると、代入された変数は上書きされます。
②入力が終わるとホッパーのモーターが動き、メダルが払い出されます。
③メダルが1枚払い出されると同時にカウントセンサーが検知します。
④カウントセンサーが検知したので、Aから1枚引いてAに代入します。
⑤Aが0以下であれば下へ、0以上であれば右を辿ります。
(このとき、Aは1なので、右を辿ります。)
⑥ホッパーのモーターが動き、メダルが払い出されます。(すでに動いています。)
⑦メダルが1枚払い出されると同時にカウントセンサーが検知します。
⑧カウントセンサーが検知したので、Aから1枚引いてAに代入します。
⑨Aが0以下であれば下へ、0以上であれば右を辿ります。
(このとき、Aは0になるので、下を辿ります。)
⑩ホッパーを停止させます。
・プロセスの終了

どうでしょうか、イメージが分かりますか?
こんな感じで処理の流れを記述します。これがアルゴリズムです。

さて、気付く方は気付くかもしれませんが、このアルゴリズムは欠陥がいくつかあります。こういう部分は実際にプログラミングしてホッパーとつないで実験することで知識として習得することができますが、文章だけではなかなか伝わらない部分です。実践して検証すれば、ホッパーの構造的に気付く問題や処理の順番の誤りがあります。

とりあえず答えを述べておくと・・・
①メダルが空になって払い出されなくなると処理が進まない。
②メダルが詰まって払い出されなくと処理が進まない。
③何度も払い出し枚数を0と入力し続けたらどうなるか・・・

①と②は、このアルゴリズムでは処理できない状況です。これのことを(機能が)「実装されていない」等と言います。
このアルゴリズムではホッパーにメダルが十分ある状態でホッパーに異常がない前提であれば可能なアルゴリズムかもしれませんが、ハードウェアにおいて異常はつきもので、どんな異常があるのか研究検証して考えながら書く必要があります。
③の問題は、ホッパーを運転させる処理の場所にあります。払い出し枚数を入力すると、無条件で動き出し、1枚カウントして払い出ししてからAの計算が行われて条件分岐で下に行き、ホッパーが止まるという現象が起こります。
これらの問題を解決するためにいきなり全ての問題を克服するのは難しいので、1つずつ解決することもあります。一気に考えられるようになるにはある程度慣れが必要です。

それでは、③の問題のみを解決するアルゴリズムはどんな方法があるでしょうか?
文章でもフローチャート(書ける方は書いてみましょう)でもいいので、
考えてみてください。
このトピックのURLは:「http://drakuji.bbs.fc2.com/?act=reply&tid=14391217#17527207」です。
制御システム開発にあたって - トピックNo.17526485 - 投稿者:管理者D
2013/08/31 (Sat) 02:09:59
制御システムでは、コンピュータ(パソコン)と、ハードウェア(モーターやセンサー)を連携させるために、前提としてアルゴリズムと開発環境の構築が必要です。パソコン上での開発環境はゲームシステム側で紹介していきます。
このカテゴリではアルゴリズムを中心にハードウェアの処理の流れを考えていきます。ゲームシステムと類似する部分がありますが、ハードウェアでは動作に失敗すると思わぬ怪我や破損、火災の原因になるので、慎重に作業を行ってください。
このトピックのURLは:「http://drakuji.bbs.fc2.com/?act=reply&tid=14391217#17526485」です。
◆トピック投稿フォーム◆
お名前:
メールアドレス:
ホームページ:
トピック題名:
トピック内容:
画像の添付:
アイコン:
文字色:
編集/削除パスワード:
プレビューする:(投稿前に、内容をプレビューして確認できます)
投稿・取消: