(投稿前に、内容をプレビューして確認できます)

無題

  • A
  • 2016/12/01 (Thu) 00:05:03
衝突したらある場所にかめたがいくようにしたいのですが、どうしたらよいですか。衝突についてがさっぱりわかりません

Re: 無題

  • honda
  • 2016/12/01 (Thu) 00:27:57
衝突したら…という処理は、このように記述します。

 かめた:衝突=「 ◯◯ 」。

今回の場合ですと、上に挙げた◯◯の部分に、
自分がどこそこに移動するという処理を記述することになります。
以下にサンプルプログラムを貼りますので、実行してみて下さい。

--------
かめた=タートル!作る。
壁=かめた!100 歩く 図形にする。
壁!90 右回転 200 50 位置。

かめた:衝突=「自分!0 0 位置」。

時計=タイマー!作る。
時計!「かめた!10 歩く」実行。
--------

ドリトルの起動

  • 2016/11/20 (Sun) 12:48:42
高校でドリトルの授業での活用を考えています。
そこで,環境についてお尋ねです。
1.他の先生方はドリトルのフォルダを全員分コピーしてるのでしょうか?私はフォルダのbatファイルのショートカットから各生徒起動させようかと思っています。でも,その後のプログラムを開くのがめんどうです。(フォルダの指定)
2.プログラムファイルからの起動はできないのでしょうか?
3.画像ファイルの場所をそれぞれ指定できるような起動オプションはないのでしょうか?
以上よろしくお願いいたします。

Re: ドリトルの起動

  • kanemune
  • 2016/11/21 (Mon) 11:34:16
利用のご検討をありがとうございます。

1,3は可能と思いますので、年末のバージョンに向けて検討してみます。
2は管理者権限が必要になる可能性がありますのでよい方法がないかを考えてみたいと思います。

衝突について

  • 日熊
  • 2016/10/12 (Wed) 06:32:48
衝突の定義を
ルート:跳ね返る
にすると、何かにぶつかったときに他の処理をする方法がわかりません。この場合、跳ね返る以外のことができるのでしょうか?

Re: 衝突について

  • kanemune
  • 2016/10/17 (Mon) 21:12:55
BitArrow版でこのあたりの機能を開発中です。一段落したらJava版でも検討してみます。

Re: 衝突について

  • 日熊
  • 2016/10/17 (Mon) 20:06:40
ありがとうございました。
衝突以外はできないのですね。すると、やはり言われたとおりに相手にやってもらうわけですね。そうしたときは、相手が誰かというような属性を定義することが必要になりそうですね。

Re: 衝突について

  • kanemune
  • 2016/10/13 (Thu) 12:00:38
跳ね返るを定義するとそれ以外の衝突動作ができませんね。
ぶつかる相手のほうに衝突したときの動作を設定していただけますか。

(今後のバージョンで跳ね返るときの動作設定ができるかどうかは検討してみたいと思います)

Arduino KineX

  • 研究生
  • 2016/06/26 (Sun) 21:46:26
KineXとドリトルの通信はうまくいきました。
ですが、KineXから送信された値からarduinoでモーターを制御する方法がわかりません。
((ret:wristright_y )< (ret:elbowright_y))
という条件文ではできませんでした。

Re: Arduino KineX

  • 研究生
  • 2016/07/14 (Thu) 21:03:24
無事,成功しました。
アドバイスをくれたみなさまありがとうございました。

Re: Arduino KineX

  • きつね
  • 2016/07/06 (Wed) 20:09:06
研究生さん。 2016/07/05 (Tue) 21:23:46のプログラムを見せていただきました。

「sw11に出力されるだけ」になってしまっている理由ですが
SW11に1を出力したまま,SW11を0にするタイミングがないのが理由ではないかと思います。
『そうでなければ』のケースでsw11を0に設定して、条件分岐が正しく動作しているかを確認してみてはどうでしょうか。


もしも、左右の手首の高さで、8番Pinと10番Pinに接続された装置や部品を切り替えたいということであれば、下記のように、一方をonにしたら、もう一方をOffにするプログラムを書いてあげないといけないかもしれません。(使う部品によりますが。。。)


「(ret:wristleft_y)>((ret:wristright_y))」!なら「
  sw11! 1 書く。
  sw13! 0 書く。
」そうでなければ「
  sw11! 0 書く。
  sw13! 1 書く。
」実行。

Re: Arduino KineX

  • 研究生
  • 2016/07/05 (Tue) 21:23:46
テストがあり,お返事が遅れてしまい申し訳ありませんでした。
プログラムを
kinex!(システム:ipaddress)connect。
タイマー!作る 1 回数 「」実行 待つ。
システム!"arduino"使う。
a=arduino!作る。
a!(システム!シリアルポート選択)ひらけごま。
sw11=a!8 デジタル出力。
sw12=a!6 デジタル出力。
sw13=a!10 デジタル出力。
sw14=a!5 デジタル出力。


ret=kinex !get。
「(ret:wristleft_y)>((ret:wristright_y))」!なら「
sw11! 1 書く。
」そうでなければ「
sw13! 0 書く。
」実行。

arduino! 1 待つ。 
」! 1000 繰り返す。

a! とじろごま。
と書き直したのですが条件文が反映されずsw11に出力されるだけになってしまいました。

Re: Arduino KineX

  • のんた
  • 2016/06/27 (Mon) 13:37:12
自分もドリトルとkinectで遊んでいたので、kinect+arduinoを使ったサンプルを作成してみました。
以下のサンプルは、「左手首」が「右手首」より上に来た時、Arduinoの13番ピン(Arduino基板上のLED)が点灯するプログラムです。

なおArduinoの制御をする時は、タイマースレッドを使わないほうが良いみたいです。(ここでは「繰り返す」を使うようにしてみました。)

--------------以下サンプルプログラム---------------

システム! "arduino"使う。

kinex!"xxx.xxx.xxx.xxx" 接続. //KineXサーバーのIPを設定
タイマー!作る 1 回数 「」実行 待つ。

a=arduino! 作る。
a!(システム! シリアルポート選択)ひらけごま。

led=a! 13 デジタル出力。

b = kinex !読む。
「(b:wristleft_sy)>((b:wristright_sy))」!なら「
led! 0 書く。
」そうでなければ「
led! 1 書く。
」実行。

arduino! 1 待つ。 
」! 1000 繰り返す。

a! とじろごま。

Re: Arduino KineX

  • kanemune
  • 2016/06/27 (Mon) 04:30:51
「2016/06/16 (Thu) 19:56:56」のプログラムを改めて拝見しました。
・全体を
「」!実行。
で囲む必要はないと思います。また、繰り返しが書かれていないため、実行ボタンを押した後に「1回だけ」実行されてすぐにプログラムが終了してしまっているように思います。
・条件文の中には条件式だけを書くのが安全だと思います。

こちらでも、本日中くらいに参考になるサンプルを作ってみたいと思います。


kinex!(システム:ipaddress)connect。
システム! "arduino"使う。
a=arduino! 作る。
a!(システム! シリアルポート選択)ひらけごま。
SW11=a!8 デジタル出力。
SW12=a!6 デジタル出力。
SW13=a!10 デジタル出力。
SW14=a!5 デジタル出力。


  「関節=kinex !読む。
  r=関節:右手首y。
  i=関節:右ひじy。
  関節!=(r>k)」! なら
    「 SW12!1 書く。
      a!0.5 待つ。
      SW12!1 書く。
     」実行。
  「関節=kinex !読む。
  k=関節:左手首y。
  u=関節:左ひじy。
  関節!=(i>u)」! なら
    「SW11!1 書く。
     a!0.5 待つ。
     SW11!1 書く。
  」 実行。
」! 実行。

a! とじろごま。

大至急御願いします

  • あいうえお
  • 2016/07/10 (Sun) 15:10:50
現在リープモーション用にシューティングゲームを作っているのですが、ロケットの弾を連射できないように(パーするとかなりの数が連射されてしまう為)したいのですがどうすればよいのでしょうか?


//発射
カメ太:発射=「タイマー!作る 「自分!40 歩く」実行 。」。
発射:動作=「(リープ! パー?)」! なら 「カメ太!作る  70 歩く "rocket.png" 変身する  発射 」実行。

Re: 大至急御願いします

  • kanemune
  • 2016/07/10 (Sun) 16:22:27
ボタンで連射するときのサンプルです。連射を止めている部分の後ろに「//」を付けました。LeapMotionでの同じ考え方でできると思います。

(連射可能なプログラム)
かめた=タートル!作る。
発射ボタン=ボタン!”発射” 作る。
発射ボタン:動作=「かめた!発射」。
かめた:発射=「
  ロケット=自分!作る。
  ロケット:飛行=「
    時計=タイマー!作る 3 時間「自分!10 歩く。
  」実行」。
  ロケット!飛行。
」。

(連射不可にしたプログラム)
かめた=タートル!作る。
かめた:発射可能=はい。//
発射ボタン=ボタン!”発射” 作る。
発射ボタン:動作=「かめた!発射」。
かめた:発射=「
  「発射可能」!なら「//
    ロケット=自分!作る。
    ロケット:飛行=「
      かめた:発射可能=いいえ。//
      時計=タイマー!作る 3 時間「自分!10 歩く。」実行。
      時計!1 回数「かめた:発射可能=はい。」実行。//
    」。
    ロケット!飛行。
  」実行。//
」。

16進数の計算をあえて細分化して・・・

  • kamada
  • 2016/06/22 (Wed) 11:38:46
10進数から16進数の変換のプログラムを
あえて

十六計算割る=floor(計算結果2進法/16)。
十六計算余り=計算結果2進法%16。

計算結果16進法割る!(十六計算割る)書く。
計算結果16進法余り!(十六計算余り)書く」

といった形で細分化して計算させる
つまり手計算でやっていることをプログラムして
変換の理解を深める授業を考えております。


このプログラムでは変換できる値に限界があるのですが
十六計算余り=計算結果2進法%16のところで
11から15までの値がでたときに
A~Eまで変化するように条件分岐をさせたいのですが
上手に変化できません。
すごくシンプルな問題ですが、私の勉強不足もありますので
皆様のお知恵をお借りできないでしょうか?
よろしくお願いします。

Re: 16進数の計算をあえて細分化して・・・

  • kamada
  • 2016/06/24 (Fri) 18:48:38
kanemune先生
ありがとうございます、先生のご助力のおかげで
余りの部分を16進数に変換できるようになりました。

授業の流れとしては
2進法のカードで変換の仕組みを学んだあとに
2進法から10進法への変換をドリトルで表現する
授業まで今回やってみたところです。

今度はこれを10進法から16進法への変換に
取り組ませてみようと思います。
手計算の過程をプログラミングで表現することで
基数変換の仕組みの理解が深まればと思います。

また現状のプログラムだと、このままでは10進法から
16進法に変換する時に正しく変換できない値がでてきます。
そうした場合の対処法まで考えさせてみたいと思います。

先生が先日、東京でのICTEで発表された時に質問させてご確認を取らせていただきましたが。
プログラミングで情報の科学的な理解を深める授業づくり。頑張っていきます。

Re: 16進数の計算をあえて細分化して・・・

  • kanemune
  • 2016/06/22 (Wed) 14:23:04
kamadaさん、十六進法の計算を考えることはおもしろそうですね。

少し考えてみました。やりたいことと違っている場合はご指摘ください。

・数値を16進表示するためには、数値オブジェクトの「進数」命令が使えると思います。
(例)次の文を実行すると、"C"が結果になります。
s=12!16 進数。

・参考までに、もし十六進の表示を自作したい場合は、1桁だけでよければ次のように書けると思います。
十六進表示=「配列!"0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "A" "B" "C" "D" "E" "F" 作る (自分+1) 読む。」。
(例)
s=12!十六進表示。

・16進の文字列を10進数に戻すには、1桁だけでよければ次のように書けると思います。
十進表示=「("0123456789ABCDEF"!(自分)何文字目?)-1」。


以下は、試したプログラムです。
=====
十六進表示=「自分!16 進数。」。
十進表示=「("0123456789ABCDEF"!(自分)何文字目?)-1」。
k=12.
w=floor(k/16).
a=k%16.

ラベル!(w!十六進表示)作る。
ラベル!(a!十六進表示)作る。
ラベル!("C"!十進表示)作る。
=====

できません...

  • 研究生
  • 2016/06/16 (Thu) 19:56:56
KineXでkinectのデータを読み込み,arduinoをドリトルで制御しようとしているのですがうまくいきません。。

kinex!(システム:ipaddress)connect。
システム! "arduino"使う。
   a=arduino! 作る。
   a!(システム! シリアルポート選択)ひらけごま。
   
   SW11=a!8 デジタル出力。
   SW12=a!6 デジタル出力。
SW13=a!10 デジタル出力。
SW14=a!5 デジタル出力。
  

    
          「関節=kinex !読む。
          r=関節:右手首y。
          i=関節:右ひじy。
          関節!=(r>k)」! なら
            「 SW12!1 書く。
             a!0.5 待つ。
             SW12!1 書く。
       」実行。
「関節=kinex !読む。
         k=関節:左手首y。
         u=関節:左ひじy。
         関節!=(i>u)」! なら
             「SW11!1 書く。
             a!0.5 待つ。
             SW11!1 書く。
       」 実行。
     」! 実行。     

   

   a! とじろごま。
どこがおかしいのか教えていただけたらありがたいです・・・

Re: できません...

  • kanemune
  • 2016/06/20 (Mon) 17:15:15
遅くなりましたがKinexの件を調べてみました。

こちらでは動くようになりました。
・「ret:右手首y」の部分は「ret:wristright_y」のように書く必要があるかもしれません。
・connectの後、値を取得できるまでに0.1秒程度の間隔が必要なようです。

(以下の例で、"10.0.1.61"はこちらのPCのアドレスになります。適宜(システム:ipaddress)などに読み替えてください)

次のようにタイマーで繰り返し実行する場合は問題ないかもしれませんが、

kinex!"10.0.1.61" connect。
f=フィールド!作る。
タイマー!作る「
 ret=kinex!get。
 f!(ret:wristright_y)書く。
」実行。

1回だけ実行する場合は、次のようにタイマーによるwaitを入れてみてください。

kinex!"10.0.1.61" connect。
タイマー!作る 1 回数 「」実行 待つ。
f=フィールド!作る。
ret=kinex!get。
f!(ret:wristright_y)書く。
ret=kinex!get。

これで動くようになるとよいのですが。

ドリトルコードのコピー&ペースト

  • naitoh
  • 2016/06/07 (Tue) 16:40:10
こんにちは。大阪工業大学の内藤と申します。

ドリトル言語を使わせていただいてます。

Javaを1.8.0_92に更新したところ、オンライン版ドリトルから他のアプリへのコピーができなくなりました。

ちなみに .java.policy は次のように記述しています。

grant codeBase "http://dolittle.eplang.jp/web/-" {
permission java.awt.AWTPermission "accessClipboard";
};

去年までペーストできていたのですが、何か問題があるのでしょうか? ネットで検索しましたが、解決方法がわかりません。

よろしくお願いします。

Re: ドリトルコードのコピー&ペースト

  • kanemune
  • 2016/06/20 (Mon) 17:04:21
内藤先生、Javaのバージョンの件で調査をありがとうございました。
早急にJavaScript版の開発を進めてみます。
別途、メール等でご連絡させていただくと思いますので、今後ともよろしくお願いします。

Re: ドリトルコードのコピー&ペースト

  • 内藤広志
  • 2016/06/19 (Sun) 19:00:04
兼宗先生

内藤です。調べていただきありがとうございます。

私も調べたのですが、Java 8 よりアプレットの機能がより制限されているようです。単なるバグなのかも知れませんが。次以外にあまり情報がありませんでした。

http://stackoverflow.com/questions/32385061/copy-and-paste-between-applet-and-other-applications

アプレットの実行自体も Java の新しいバージョンでは難しくなってきてます。ドリトル演習のためのPCの環境設定に苦労します。

助言のように演習ではダウンロード版を使うことにします。

返事が遅くなり済みませんでした。

Re: ドリトルコードのコピー&ペースト

  • kanemune
  • 2016/06/12 (Sun) 23:58:32
お返事が遅くなり申し訳ありません。
新しいJavaではかなりセキュリティが厳しくなっていて、policyファイルで設定してもアプレットからのコピーバッファへのアクセスは難しいことがわかりました。

現状では、可能であればJavaを同梱したドリトルを使っていただくか、Javaのインストールが不要なJavaScript版をお使いいただければ幸いです。

Re: ドリトルコードのコピー&ペースト

  • kanemune
  • 2016/06/07 (Tue) 17:46:00
すみません。PCの関係で明日以降になる見込みです。

OSや言語のアップデートは悩ましいですね。
今月中に動作確認をしたバージョンでJava同梱版を作りたいと思います。

Re: ドリトルコードのコピー&ペースト

  • kanemune
  • 2016/06/07 (Tue) 17:31:44
内藤先生、ご連絡ありがとうございました。
最新のJavaでは試していませんでしたので、こちらでも調べてみます。

ドリトルの編集画面の文字サイズについて

  • hotta
  • 2016/04/11 (Mon) 11:59:59
初めての書き込みです。
北海道は札幌で、現在は不登校対策の指導員をしています。
堀田隆史(ほった たかふみ)と申します。

質問です。
ドリトルの編集画面の文字サイズを大きくすることは可能でしょうか?
今年度から、不登校の生徒の一部の生徒にドリトルでプログラミングを学ばせています。
スティックPC+大型TVを使っている関係で、大型TVでは標準の編集画面では、画面は広いのですがフォントが小さくてちょっと見にくいです。
フォントサイズを大きくする方法がありましたらお教えください。
不登校の生徒の多くはプログラミングに興味を持っている生徒が結構います。
少しでも自分に自信をもたせて学校復帰を目指しています。

北海道は札幌 より 4月なのに外は雪がちらついています

Re: ドリトルの編集画面の文字サイズについて

  • hotta
  • 2016/04/11 (Mon) 13:02:54
早速のコメントありがとうございます。

「book.pdf」の「はじめてのプログラミング」の欄外に出てました。
ショートカットキーは便利ですね。
今日は、一人の生徒に「ドリトル」を使わせてプログラミングをさせてみました。なかなか反応の少ない子なのですが、少し興味を持って取り組んでくれました。「繰り返し」まで進めました。

ちょっと進歩です。

北海道は札幌より 外は雪が強くなってきました。

Re: ドリトルの編集画面の文字サイズについて

  • kanemune
  • 2016/04/11 (Mon) 12:48:45
堀田先生、ご連絡ありがとうございました。
Windowsでしたら「Ctrl+↑」(上向き矢印)で編集画面のフォントを大きくできると思います。

最近の画面は細かくなっていますので、標準のフォントサイズについても見なおしてみたいと思います。
またお気づきの点がありましたらご連絡ください。

音楽機能について

  • onkan_maniac
  • 2016/03/24 (Thu) 23:52:03
テンポの設定はどうするのですか。
音にリバーブが掛かっているように聞こえるのですが、
他のプログラムで鳴らしたのとは聞こえ方が違います。

Re: 音楽機能について

  • honda
  • 2016/04/11 (Mon) 12:37:17
ドリトルの音楽演奏は、
MIDI音源を使用して音を鳴らしています。

Re: 音楽機能について

  • onkan_maniac
  • 2016/03/30 (Wed) 20:47:11
楽譜オブジェクトを演奏するのではなく、
バンドオブジェクトに、楽譜オブジェクトを代入して、
数値 テンポ を指定して、演奏ですね。

二分音符を基準にした理由がよくわかりませんけど、仕様ということで。

発音はMIDI APIでMIDI音源に送信?
もしかしてMIDI音源は使ってない?

Re: 音楽機能について

  • honda
  • 2016/03/28 (Mon) 16:10:14
bpmの設定をする場合、バンドというオブジェクトを使用します。
その際には、「マイバンド!60 テンポ」や、
「マイバンド!120 テンポ」のように、bpmの数値を設定します。

↓例------
楽譜=メロディ!作る。
楽譜!”ドドドドドドドド”追加。
マイバンド=バンド!作る (楽譜) 追加。
マイバンド!60 テンポ 演奏。
----------

ドリトルの「マイバンド!60 テンポ」は、
四分音符が1分間に60回ではなく、
二分音符が1分間に60回となっています。
なので、一般的な60bpmで演奏したい場合は、
「マイバンド!30 テンポ」というように、
bpmを2で割った値を設定するようにして下さい。

↓例------
楽譜=メロディ!作る。
楽譜!”ドドドドドドドド”追加。
マイバンド=バンド!作る (楽譜) 追加。
マイバンド!30 テンポ 演奏。
----------

リバーブの件に関しては、
onkan_maniacさんの仰る別のプログラムとドリトルは
使用している音源が異なるため、
そのように聞こえるのではないかと思われます。
詳しいご返答ができず、申し訳ありません。

Re: 音楽機能について

  • onkan_maniac
  • 2016/03/26 (Sat) 18:55:45
使ったのはdolittle238win_musicです。
MIDI出力がモニタできればよいのですが、内蔵サウンドボードやUSB接続の音源ユニットではMIDI信号がとれません。

テンポの設定は音符の種類・音の長さではなく、楽譜では四分音符=数値、DTMだとBPMで表される速度が変えられないかということです。

Re: 音楽機能について

  • honda
  • 2016/03/25 (Fri) 01:37:50
onkan_maniacさん、ご質問ありがとうございます。

テンポの設定についてですが、
ド、レ、ミなどの音階の後ろに16や8を書くと、
16拍子や8拍子で音を鳴らすことができます。

↓例-----
楽譜=メロディ!作る。
楽譜!”ド8ド8ド8ド8ド16ド16ド16ド16”追加。
---------

また音にリバーブがかかって聞こえるとのことですが、
onkai_maniacさんのパソコンはWindowsで、
使用していただいているドリトルはWindows用の音楽演奏対応版ドリトルでしょうか?
音楽演奏対応版ドリトルでない場合、そちらをお試しください。

↓ドリトルのダウンロードページ
http://dolittle.eplang.jp/index.php?%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89