スタジオ ミュウ

USBドリトル(開発版ドリトルV2.31)

LED計測制御 | LED双方向通信 | LEDグループ学習 | メロディのプログラム | RCサーボの制御 | モーターのPWM制御
MYUロボ-II | MYU-USB転送ソフト | MYU USB BASIC | USBドリトル | C アセンブラMYUUSB-1基板 | MYUUSB命令一覧

●書籍、「ドリトルで学ぶプログラミング」「ドリトル、eBASICによる計測・制御とプログラミング」が出版されました。イーテキスト研究所
Amazon(通販)とジュンク堂(通販/店舗)で購入できます。

ドリトルは学校教育(小中高)の入門用プログラミング言語です。 最新のオブジェクト指向の考え方でプログラムを学ぶことができます。ドリトルには標準でMYUオブジェクトが用意されていて簡単に制御プログラムを書くことができます。
※ドリトルは兼宗 進さんが開発されたフリーソフトです。

●ドリトル プログラム | 制御命令一覧 | 入出力プログラム | LEDの制御
USBドリトルは、アンカー・ジャンプ命令(GOTO文)を使わないMYUロボ用構造化ロボット言語です。
If文やLoop文などを日本語を使って簡潔に書くことができます。


開発版ドリトルV2.31はここからダウンロードできます。

【注意】MYUを制御するプログラムは、文法が全面的に変更になりました。詳しくはマニュアルの14章から17章を参照してください。

●起動方法
dolittle231.zip を展開しdolittle.batを実行するとドリトルが起動します。
※Windows7、Vista では動作しますが XP では、Microsoft .NET Framework 4.0 をインストールする必要があります。
.NET Framework 4.0は、ここからダウンロードしてください。

●プログラム
ドリトルを立ち上げ編集画面タグをクリックしてください。ここにプログラムを書きます。
実行ボタンを押しエラーがなければ下の画面になります。基板とUSB転送ケーブルでつなぎUSB転送ボタンを押すと転送できます。


●はじめての構造化ドリトルプログラミング
ミュウロボ基本セットを素材に簡単なプログラムを作ってみます。

//ドリトルプログラム<制御プログラムのテンプレート>
システム! "myurobo" 使う。
ロボ太=ミュウロボ! 作る。
実行命令=「ロボ太! はじめロボット。

 //ここに制御プログラムを書く

ロボ太! おわりロボット」。

上のプログラムがドリトルの基本テンプレートです。これを利用して制御プログラムを作っていきます。
ドリトルを立ち上げ編集画面をクリック、上のテンプレートをコピーして編集画面に貼り付けます。
次に制御プログラムを書く部分を以下のようにします。

システム! "myurobo" 使う。
ロボ太=ミュウロボ! 作る。
実行命令=「ロボ太! はじめロボット。
 ロボ太!10 前進 5 右回り。
ロボ太! おわりロボット」。

ドリトルのプログラムは、'10 後退 5 右回り'のように日本語の語順に従い、最初に引数、スペース、命令の順で書いていきます。命令には引数のないもの、引数が1つのもの、引数が2つのものがあります。
このプログラムの動作は前進を1秒行い右回り0.5秒です。次に実行ボタンを押します。
PCと基板とを転送ケーブルで接続し、実行画面のUSB転送ボタンを押すと転送が始まります。しばらくして'ピピ'と鳴れば転送終了です。転送ケーブルを抜きタクトスイッチを押すとプログラムが実行されます。
転送されたプログラムは電源を切っても覚えています。ロボットの電源を入れタクトスイッチを押すと何回でも実行できます。
※//以降次の行までコメントを書けます。コメントを残しておくと後からプログラムの内容が理解しやすくなります。

上のようなコースを作ってプログラムの練習をしてください。
※モーターなどのバラつきによりロボットはなかなか直進しません。前進命令の間に右前 左前 などの命令を入れ直進するようプログラムを修正します。

次に上のプログラムの前後に次の命令を追加してください

システム! "myurobo" 使う。
ロボ太=ミュウロボ! 作る。
実行命令=「ロボ太! はじめロボット。
 「ロボ太! 10 前進 5 右回り」! 繰り返す。
ロボ太! おわりロボット」。

「...」!繰り返す は制御文といって「...」内を無限に繰り返します。上のプログラムを実行するとロボットは多角形を描くような動きを繰返すはずです。このように制御文を使うとおもしろい動きが実現できます。またプログラムは保存ボタンを押してファイル名を指定し保存するようにしてください。
※「...」!繰り返す は無限ループとなりプログラムは永遠に終了しません。ループから抜けるには「...」内で 繰り返し脱出 などの命令を使うほか、「!n 入力あり」の間「!...」実行 「!n 入力なし」の間「!...」実行 などの条件ループを使います。
※「!...」!3 繰り返す とすると「...」内を3回繰り返した後、ループから抜けます。

MYU-USB基板は入力ポートを4個(In1-In4)持っています。基板の触覚は、入力ポートのIn2(右)とIn3(左)に接続されています。下の例は入力ポートの状態を調べ、触覚が障害物を感知したら後退して向きを変えるプログラムです。どのプログラムも同じ動きをします。
触覚は左右にあり、どちらかが壁を感知したら「後退して向きを変える」というプログラムとなっています。

システム! "myurobo" 使う。
ロボ太=ミュウロボ! 作る。
実行命令=「ロボ太! はじめロボット。
 「ロボ太! 前進。
  「ロボ太! 2 入力あり」! なら「ロボ太! 10 後退 10 右回り」実行。
  「ロボ太! 3 入力あり」! なら「ロボ太! 10 後退 10 右回り」実行。
 」! 繰り返す。

ロボ太! おわりロボット」。


下は、In2とIn3のどちらかが'入力あり'の場合「...」を実行というOR(論理和)条件の例です。

システム! "myurobo" 使う。
ロボ太=ミュウロボ! 作る。
実行命令=「ロボ太! はじめロボット。
 「ロボ太! 前進。
  「ロボ太!2 入力あり」!か「ロボ太!3 入力あり」なら「ロボ太!10 後退 10 右回り」実行。  //OR条件
 」! 繰り返す。

ロボ太! おわりロボット」。

構造化ドリトルではMYUロボ命令の引数を省略すると引数が 0 にセットされます。
※上の例の前進のように引数を省略すると前進の信号を出した後、待ち時間なしで次の命令を実行できます。

構造化ドリトルはユーザーが命令を定義することができます。ユーザー定義命令を使うとプログラムが見やすくなります。
下は前のプログラムにメロディのユーザー定義命令を追加したものです。最初と障害物を感知した時、動作します。
また 'Uターン' のように解りやすい名前を定義することで理解しやすいプログラムを書くことができます。
★このプログラムの動画(368K)はこちら

※いろいろなロボットの工作例はこちら
※メロディなど音階の設定はこちら
※ゆっくり前進したいなどモーターのスピードをコントロールするにはこちら
※RCサーボの制御はこちら

◆パワーオンスタートについて
パワーオンスタート命令がプログラムの先頭に入っていると基板のスイッチONとともにプログラムがスタートします。この状態で新しいプログラムを転送するには、一旦スイッチを切り、タクトスイッチを押しながら基盤のスイッチを入れれば新しいプログラムを転送できます。

◆ドリトルのエラーについて
ドリトルでは実行ボタンを押した時、エラーチェックを行います。
文法エラーがあった場合、ダイヤログが現れエラー部分が表示されます。