アミューズメントロボットの企画開発販売 株式会社エスケイパン

ゴジックベーシック

お手軽高機能コントロールボード

Gogic Basicは最大8個のサーボモーターと最大5個のセンサーを接続することが出来ます。

サーボモーター8個ってちょっと少ないですか?(少ないですね)

しかし、サーボモーター8個あれば、人型、虫型、犬型、、、
アイデア次第で色々なタイプのロボットを作る事ができます。

センサー5個ってどうですか?(いい感じですよね)
Gogic Basicはセンサーを活用した条件分岐動作をさせるプログラムを簡単に作る事ができます。

テレビリモコン対応ってどうですか?(お手軽ですね)
Gogic Basicを搭載したロボットは汎用テレビリモコンで無線操縦できます。
携帯電話のテレビリモコン機能でも操縦できます。

Gogic Basicで知的なロボットを作ってみませんか?

Gogic Basic仕様
端子配置図
姿勢編集画面
動作プログラム
設定出来る分岐条件
リモコンの登録
オンラインコントロール

2種類の動作モード

ノーマルモード

オンラインコントロールモード

プログラムをマイコンに書き込んで使用
汎用テレビリモコンで無線操縦が可能
センサーを利用した自律動作も可能

ロボット競技やバトルに最適
常にパソコンと有線で接続した状態のオンラインコントロールモードでは変数に実数を使用したり、パソコンの音声データの再生をコントロールしたり、ダイアログ入力が使えるなど 高機能な環境でプログラムすることが可能

学習用や受付ロボットなどにオススメ!

Gogic Basic仕様
基板サイズ 48ミリ×48ミリ基板厚1.6ミリ
マイコン用電源 直流9V(DC7V以上15V以下)
サーボモータ用電源 直流4.8Vから直流6Vまで
パソコン接続用仕様 19200bpsN81
最大接続サーボモータ数 8個
サーボモータ制御方式 PWM制御
センサー入力仕様 DC 0〜5V入力8bit分解能AD
登録可能モーション数 最大64モーション(ノーマルモード)
登録可能ポーズ数 合計260ポーズ/全モーション(ノーマルモード)
赤外線リモコン変調方式 パルス位相変調 +38kH
赤外線リモコンコード 家電製品協会 フォーマット準拠
拡張インターフェース 拡張用シリアルコネクタ×1

Gogic Basic端子配置図
ゴジックベーシック

姿勢編集画面
サーボパレット
サーボパレット
ポジションエディタでは各サーボモータに連動したサーボパレットを使用してサーボモータの軸位置を調整して任意のロボットのポジション(姿勢)を作ります。
作られたロボットのポジション(姿勢)を「モーション」に登録し、ぱらぱら漫画の要領で動作を作成します。
ポジションとポジションの間が大きく離れていてもマイコン側のプログラムにより軸動作が補完されます。
これにより、少ないポジションデータでも滑らかな動作を行わせることが可能です。
ポジションエディタ
トラッキング
トラッキング

トラッキングによる連動指定を使うと複数のサーボモータを一括で動かすことができます。
これにより、歩行などのモーションを容易に作成することができます。
トラッキングの組み合わせは最大10個までシステムに登録し、任意の名前をつけることができます。
ポジションリスト
ポジションリスト
GogicBasicソフトウェアに登録されているポーズデータの一覧です。
ポジションエディタ画面から呼び出すことができます。
一覧から任意の1件を選択し、読み出しボタンをクリックすることによりポジションエディタにポーズデータを転送することができます。
登録されている複数のポーズから一つ「ホームポジション」を必ず設定します。
ホームポジションに選択されているポーズにはチェックマークが表示されます。


動作プログラム
モーション一覧
動作プログラムボタンを押すと、モーション管理画面が表示されます。
モーション管理はGogicBasicアプリケーションに登録されている「モーション」を管理します。
モーションはぱらぱら漫画的な姿勢の一連であり、連続して切り替えることによりロボットが動作を行います。
モーション内に登録されているポーズ(姿勢)毎に条件設定を行い、分岐、繰り返しなどを定義できます。
追加、削除、コメントの登録などを自由に行えます。
任意に選択した「モーション」を編集用一覧画面に呼び出すことができます。
登録されているモーションを昇順降順の任意方向に並べ替えることができます。
モーションリスト

モーション編集

モーション編集画面ではポジションエディタで作成したポーズを一覧に追記していくことができます。
モーション編集画面ではポジションエディタから得た任意数のポーズ(姿勢)データに切り替え時間を設定することができます。
これにより、任意の速度でポーズを切り替えて様々な動作をロボットに行わせることが可能です。
必要なポーズ数だけ「ポジションエディタ操作」「モーション編集一覧へ追記」を繰り返します。
各ポーズごとに様々な条件設定を行うことができ、任意数の繰り返しやセンサー入力による分岐、赤外線リモコンによる分岐などを登録することができます。

GogicBasicソフトウェアで1モーションに登録できるポーズ数は最大60,000レコードですがGogicBasicマイコンボードに登録できるポーズ数はすべてのモーションのポーズを合計して260ポーズまでなので注意が必要です。
なお、ケーブル接続のままの動作でよい場合はほぼ上限の無いプログラムを組むことが可能になります。

ポーズの再生は上から下に順に行われます。
例外として条件設定が行われているとその条件が成立したとき、指定されたラベル(ポーズ名)の行に分岐します。
同じポーズ名が複数、登録されている場合は行番号が最も小さい行に分岐します。
ポーズを切り替える秒数は300分の1秒の精度で0.0333秒から109秒まで指定できます。
0.0333秒以下を指定しても内部で0.0333秒に再設定されます。
109秒は超えないように設定する必要があります。

条件分岐には無条件分岐、カウンター判定分岐、赤外線リモコン受信内容分岐などがあります。

モーション編集


設定出来る分岐条件

NOJUMP
分岐せずに次の行に処理が進行します。
JUMP
分岐先へ無条件に分岐します。

赤外RC=
赤外線リモコンから指定データと同じコードを受信していれば分岐します。
赤外RC≠
赤外線リモコンから指定データと違うコードを受信していれば分岐します。

AD0>
AD0のセンサー入力値が比較値よりも大きいとき分岐します。
AD0<
AD0のセンサー入力値が比較値よりも小さいとき分岐します。
AD0=
AD0のセンサー入力値が比較値と同じとき分岐します。

CTclr
内蔵カウンタをゼロクリアします。
CTup
内蔵カウンタを+1します。
CT>
内蔵カウンタが比較値より大きいとき分岐します。
CT<
内蔵カウンタが比較値より小さいとき分岐をします。
CT=
内蔵カウンタが比較値と等しいとき、分岐します。

AD1>
AD1のセンサー入力値が比較値よりも大きいとき分岐します。
AD1<
AD1のセンサー入力値が比較値よりも小さいとき分岐します。
AD1=
AD1のセンサー入力値が比較値と同じとき分岐します。

AD2>
AD2のセンサー入力値が比較値よりも大きいとき分岐します。
AD2<
AD2のセンサー入力値が比較値よりも小さいとき分岐します。
AD2=
AD2のセンサー入力値が比較値と同じとき分岐します。

AD3>
AD3のセンサー入力値が比較値よりも大きいとき分岐します。
AD3<
AD3のセンサー入力値が比較値よりも小さいとき分岐します。
AD3=
AD3のセンサー入力値が比較値と同じとき分岐します。

AD4>
AD4のセンサー入力値が比較値よりも大きいとき分岐します。
AD4<
AD4のセンサー入力値が比較値よりも小さいとき分岐します。
AD4=
AD4のセンサー入力値が比較値と同じとき分岐します。


条件分岐

リモコンの登録
GogicBasicソフトウェアではあらかじめ複数のリモコン設定をデータベースに登録することができます。

登録できるリモコン種別は最大10種となります。
まず、ロボット本体電源がONであることを確認します。(サーボモータの電源はOFFでよいです。)
ロボットと通信にチェックを入れ、
「リモコンキー一覧」から設定したい1行を選択した後、リモコンを割り当てボタンをクリックします。
続いて赤外線リモコンの任意のキーをリモコンを赤外線受光部に向けながら押します。
正常に赤外線コードを受信すると選択していた一覧の行のIRCODE欄に赤外線リモコンコードが表示されます。
リモコンの割り当て

オンラインコントロール
オンラインコントロールについて

オンラインコントロールはパソコンとロボットを接続した状態でのみ使用できる、高機能プログラム環境です。
変数に実数などが使えるほか、パソコンからの音声再生、ダイアログ入力など多数の機能を持っています。

オンラインコントロール
プログラムによる動作の作成

PROGRAMメニューで表示される画面でプログラムを作成する為にはプログラムの文法について学ぶ必要があります。
スクリプトプログラムで使用する文法はBASICの様な簡易言語です。
サーボモーター操作やセンサー読み取りのための専用命令があらかじめ搭載されています。



右のリストはスクリプトの一例です。
プログラムはラベル行とコマンド行によって構成されます。
各行はリターンコードで区切られます。
基本的に上から下へ順番に実行されます。
最下行まで達し、実行する行が存在しないとき、プログラムが終了します。
左記実例での動作はSUB1と書かれているサブルーチンを10回実行して終了するものです。
1回実行するたびに画面上に実行回数のメッセージを表示しています。
分岐先ラベルはコロン2個につづいて記述します。
演算は代入式で記述され右辺の計算結果を左辺の変数に代入します。
代入演算子は:=です。
四則演算子に優先度はないので括弧などを使用して明示しなければなりません。


W01:=0
::LOOP
JS SUB1
MESSAGE("W01="+string(W01)+char(13))

W01:=W01+1
IF(W01<10)LOOP
JP EXIT

;;MOTION 3
::SUB1
MOVE(0;0;0;0;0;0;0;34;0;0;0;0;0;0;-69;-76;28;1;"N")
MOVE(0;0;0;0;0;0;0;3;0;0;0;0;-41;38;35;14;28;1;"N")
MOVE(0;0;0;0;0;0;0;44;0;0;0;0;64;-3;-28;-19;28;1;"N")
MOVE(0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;28;1;"N")
RT


::EXIT

Copyright 2007 SK-PANG All rights reserved.