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

iPad

  • arai
  • 2020/07/28 (Tue) 09:35:14
いつも大変お世話になっております。

iPad 7における動作確認をしたいのですが
ブラウザ版にてsafariでも問題なく動作しますでしょうか?

Re: iPad

  • akiyama
  • 2020/08/13 (Thu) 10:09:15
こんにちは。
iPadOS 13.6.1のSafari上で「かめた」を動かすだけのテストをしてみましたが、大丈夫そうでした。

Pythonとソケット通信

  • akiyama
  • 2020/07/19 (Sun) 08:06:00
はじめまして!
以下のようなドリトルのチャットプログラムにPythonから文字列を送信したいと考えておりますが、うまくいきません。
Pythonからの接続はできているみたいですが、送信ができていません。
どなたかご教示いただけませんでしょうか。よろしくお願いします。


_/_/_/ドリトル_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

サーバー! "localhost" 接続。
サーバー! "データ" "" 書く。

ラベル! "名前"作る 0 300 位置。
名前=フィールド!作る  0 270 位置 200 45 大きさ 。


ラベル!"送信欄"作る 0 230 位置。
送信内容=フィールド! 作る 0 200 位置 400 200 大きさ 。

ラベル!"ディスプレイ"作る -450 230 位置。
ディスプレイ=リスト! 作る  -450 200 位置 400 200 大きさ 。

送信ボタン=ボタン!"送信"作る 0 0 位置 。
送信ボタン:動作=「 サーバー! "データ" (名前!読む "> " (送信内容! 読む)連結)書く。
  送信内容! クリア。 」。

最新メッセージ=""。
タイマー! 作る 1秒 間隔 600回 回数 「受信内容=サーバー! "データ" 読む。
「受信内容!=最新メッセージ」!  なら 「ディスプレイ!(受信内容)書く」実行。最新メッセージ=受信内容。 」実行。


_/_/_/PYthon_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.connect(('localhost', 2020))

data = input("?>")
sock.send(bytes( data,'UTF-8'))

Re: Pythonとソケット通信

  • akiyama
  • 2020/07/20 (Mon) 12:28:02
兼宗 先生 
 さっそくのご返信ありがとうございました。Pythonとの通信は難しいとのことで承知いたしました。
 しかし、いろいろな外部アプリとのデータの送受信ができるようになれば、子どもたちの発想も広がりやすくなるのではないかと考えております。最近、Pythonで自作したアプリとScratchとの通信は成功しているので、ドリトルとも繫げられたらさらにおもしろそうだと思いついて質問させていただいた次第です。
 将来のバージョンとして是非、ご検討いただければ幸いです。ありがとうございました。

Re: Pythonとソケット通信

  • kanemune
  • 2020/07/19 (Sun) 08:53:56
akiyamaさん、ご連絡をありがとうございます。

ドリトルのサーバーオブジェクトの通信は、「ドリトルのオブジェクト全体を送る」ようになっていますので、Pythonとの通信は難しいと思います。(文字列オブジェクトだけでなく、タートルなどの各種オブジェクトを、画像や位置の情報、定義されたプロパティデータなどを含めて送る仕様です)

Webの通信では、Webクライアントオブジェクトが、httpの通信を素直に行っているのですが、今回の用途とは違いますね。

自宅や教室などのLAN環境での他の言語との通信は興味がありますので、将来のバージョンの検討とさせてください。

チャット画面の前にパスワード認証をしたい

  • nsuzuki
  • 2020/06/25 (Thu) 08:09:49
はじめまして

中学校技術家庭科でチャットプログラムを実践しようと検討しています。

ドリトルでチャットの前にパスワード認証を組み込みたいのですが、サンプルプログラム等あれば紹介をお願いします。
よろしくお願いします。

個別に送受信したい

  • yamaji
  • 2020/05/20 (Wed) 11:18:16
はじめまして。
ドリトルによるプログラミング学習を参考にしながら、チャットのプログラムまでなんとか作成して確認しました。
serverが起動できて、双方向通信が確認できて素晴らしい教材だと思います。

中学校技術科におけるドリトルを利用した通信プログラムの実践
の図11のように個別に送受信するようなプログラムを作りたいのですが、いろいろプログラムを変更して試みたのですがうまく動作させることができません。
ご教授いただけるとありがたいです。
よろしくお願いいたします。

Re: 個別に送受信したい

  • yamaji
  • 2020/06/08 (Mon) 13:00:24
いつもお世話になっております。
返信ありがとうございます。
自分でも色々いじってみて、クライアント側は何とか動作できたのですが、サーバ側で詰まってしまって立ち往生していました。
本当にありがとうございます。
活用できるよう、授業パッケージを作成したいと思います。

Re: 個別に送受信したい

  • honda
  • 2020/06/02 (Tue) 02:17:03
yamajiさん、開発チームの本多です。

バージョン2.39でも工夫次第で実現可能です。
内容部分と申しますと、クライアントプログラムの
『内容=宛先+"/"+送信者名+":"+メッセージ。』
の行でしょうか?
2.39ですと、以下のように修正いただくと動作するかと思います。
『内容=(宛先!読む)+"/"+(送信者名!読む)+":"+(メッセージ!読む)。』

辞書についてですが、以下のプログラムをdolittle.jarと同じフォルダに「辞書.ini」として保存した上で、
各プログラムの先頭で『システム!"辞書"使う。』のように宣言していただくと、2.39でも辞書オブジェクトの一部が使えるようになります。
(お渡ししているサンプルの範囲であれば動きます。)

======辞書.ini=====
辞書=""。
辞書:探す=「|キー;i|
  i=-1。
  自分:データ!「|要素 j|
    「(要素!1 読む)==キー」!なら「i=j」実行。
  」それぞれ実行。
  i。
」。
辞書:書く=「|キー 値;位置|
  「自分:データ==未定義」!なら「自分:データ=配列!作る」実行。
  位置=自分!(キー)探す。
  「位置==-1」!なら「
    自分:データ!(配列!(キー)(値)作る)書く。
  」そうでなければ「
    自分:データ!(位置)読む 2(値)上書き。
  」実行。
  自分。
」。
辞書:読む=「|キー|
  「自分:データ==未定義」!なら「自分:データ=配列!作る」実行。
  位置=自分!(キー)探す。
  「位置==-1」!なら「
    ""
  」そうでなければ「
    自分:データ!(位置)読む 2 読む。
  」実行。
」。

Re: 個別に送受信したい

  • yamaji
  • 2020/05/26 (Tue) 14:19:49
いつもお世話になっております。
早々にお返事を折り返して、いただきありがとうございます。
本日学校の環境下で動作を確認できる機会があり頑張っている所です。
ですが、学校でのバージョンが2.39になっており、辞書とテキストエリアと内容部分のaddができず、辞書は配列に置き換え、テキストエリアはフィールドに置き換えてみました。
内容部分のaddも配列に置き換えれば良いのかもとは思うのですが、まだ上手く動いておりません。
ずっと自宅の環境下で確認しておりバージョン確認を怠ってしまった為、お手を煩わせたのに申し訳ない結果になっております。
バージョンアップも含め検討事項ですが、低いバージョンでも作り込み方を変えれば動作が可能でしょうか?
上位のDNSの部分もまだ動作確認が出来ず、せっかく考えて頂いたのに、大変心苦しく思いますが、ご回答頂けると助かります。

よろしくお願いいたします。

Re: 個別に送受信したい

  • honda
  • 2020/05/25 (Mon) 16:14:11
開発チームの本多と申します。

上位のDNSサーバのサンプルプログラムを作ってみました。
先にお渡ししたDNSサーバのプログラム、
クライアントのプログラムと共にお使いください。
クライアントのプログラムの接続先IPアドレスをこちらの上位のDNSサーバのプログラムが動いているPCのIPアドレスに変更いただく必要があります。

また、留意する点がございます。
40人が同時にこのチャットシステムを使う場合、
同時にサーバの値を変更してしまう「コンフリクト」が多発する可能性が高いです。
そのため、送ったのに届かない、という自体が頻発する可能性があります。
基本的には、多くても10人程度のグループが良いかと考えています。

ご参考にしていただければ幸いです。

=====
サーバリスト=辞書!作る。
サーバリスト!"サーバ1" "192.168.10.1" 書く。 // DNSサーバ1のアドレス
サーバリスト!"サーバ2" "192.168.10.2" 書く。 // DNSサーバ2のアドレス
サーバリスト!"サーバ3" "192.168.10.3" 書く。 // DNSサーバ3のアドレス
サーバ1=配列!"ほんだ" "おおむら" 作る。
サーバ2=配列!"かねむね" "かめた" 作る。
サーバ3=配列!"かめこ" "かめきち" 作る。
ラベル!"ログ:"作る。
ログエリア=テキストエリア!作る 500 100 大きさ 自動改行。
ログ出力=「|ログ|ログエリア!(ログ)書く」。
サーバ!"localhost" 接続。
サーバ!"msg" "" 書く。
送信=「|サーバ名 メッセージ|
  アドレス=サーバリスト!(サーバ名)読む。
  ログ出力!(アドレス+" | "+メッセージ)実行。
  サーバ!(アドレス)接続。
  サーバ!"msg"(メッセージ)書く。
  サーバ!"localhost"接続。
」。
探す=「|アドレスリスト 宛先|
  ヒット?=(アドレスリスト!「|名前| 名前==宛先」選ぶ 要素数?)>0。
  ヒット?。
」。
サーバ検出=「|宛先|
  検出されたサーバ=""。
  「(探す!(サーバ1)(宛先)実行)==はい」!なら「
    検出されたサーバ="サーバ1"。
  」そうでなければ「(探す!(サーバ2)(宛先)実行)==はい」なら「
    検出されたサーバ="サーバ2"。
  」そうでなければ「(探す!(サーバ3)(宛先)実行)==はい」なら「
    検出されたサーバ="サーバ3"。
  」実行。
  検出されたサーバ。
」。
タイマー!作る 60 時間「
  msg=サーバ!"msg" 読む。
  「 msg!="" 」!なら「
    内容=msg!"/" 分割。
    宛先=内容!1 読む。
    サーバ名=サーバ検出!(宛先)実行。
    「 サーバ名!="" 」!なら「
      送信!(サーバ名)(msg)実行。
    」そうでなければ「
      ログ出力!("宛先不正 → " + 宛先)実行。
    」実行。
    サーバ!"msg" "" 書く。
  」実行。
」実行。
=====

Re: 個別に送受信したい

  • honda
  • 2020/05/23 (Sat) 18:57:44
yamajiさん、開発チームの本多と申します。

ご興味を持っていただけて、大変嬉しく思います。
DNSサーバの分散、サーバのログ共に可能です。

DNSサーバの分散の件につきましては、
上位のDNSサーバのプログラムを新たに作る必要があります。
が、サンプルとしてお渡ししたDNSサーバのプログラムを改変することで実装出来るかと思います。
アドレス帳の情報を、
「DNSサーバが持つクライアントのリストと、DNSサーバのIPアドレス」というように改変することで可能になります。

サーバのログの件につきましては、
ログ情報の出力用にテキストエリアオブジェクトを作っておき、
メッセージを受信するたびにそのテキストエリアオブジェクトに情報を書き込んでいくと実現出来るかと思います。

サンプルも作ってみますので、少々お待ちください。

信号プログラムの件(2)a

  • 山口
  • 2020/05/05 (Tue) 10:26:30
honda様
さっそく対応していただきまして、大変感謝しております。
学校のパソコンにインストールされているドリトルは、
V3.2のバージョンです。何か参考になればありがたいです。

また、プログラムの書き換えの件試してみます。
いろいろとありがとうございます。

信号プログラムについて(2)

  • 山口
  • 2020/05/04 (Mon) 16:42:59
再度お願いします。どなたかわかる方がいましたら教えてください。
omura様が作成してくださった「信号機のプログラム」なのですが、学校のパソコンのドリトルで動作させると、エラーが出てしまいます。
エラーは「”シリアルポート”オブジェクトが作られていません(”待つ”)」です。
私の勉強不足は承知の上で、恥をしのんでお願いします。
原因のわかる方、ぜひ教えてください。

以下はomura様が作ってくださったプログラムです。
http://garakuta-lab.sakura.ne.jp/dolittle/sample/dolittle_trlg_smp.zip

Re: 信号プログラムについて(2)

  • honda
  • 2020/05/04 (Mon) 17:01:12
山口様、連投で失礼いたします。
ご利用いただいているドリトルのバージョンは分かりますでしょうか?
プログラム編集画面の上部にV3.30などバージョン番号が表示されているかと思うのですが、そちらをお教えいただけると幸いです。

Re: 信号プログラムについて(2)

  • honda
  • 2020/05/04 (Mon) 16:57:39
山口様、開発チームの本多と申します。

エラーの件については、こちらの方でも確認を進めて参ります。
進展があり次第、ご報告いたします。

取り急ぎの対応策で恐縮ですが、
基本形の44行目、応用系の50行目、テンプレートの26行目の
『シリアルポート!(x)待つ』の部分を、下記に置き換えてみていただけますでしょうか?
『タイマー!作る (x) 間隔 1 回数 「」実行 待つ』

信号機のプログラムについて

  • 山口
  • 2020/05/01 (Fri) 19:41:48
omura様
先日は、信号機のプログラムを教えてくださいまして
ありがとうございました。

今回は、その信号機のプログラムについて、再度教えて
いただきたくメッセージを書きました。

教えていただいた信号機のプログラムは自宅のパソコン
のドリトル331ではうまく動作するのですが、学校の
パソコンのドリトルV3.2だとエラーが出てしまいます。

エラーは「”シリアルポート”オブジェクトが作られていま
せん(”待つ”)」です。
原因を教えてください。お願いします。

Web版とWindows版での動作差異について

  • iida
  • 2020/04/27 (Mon) 17:41:35
例題などを入力しながら学ばせて頂いています。
Windows版とWeb版の動作環境が異なる事例が
有りましたのでお知らせします。

=(1)===========================================
グラフック関係のオブジェクトの

画面!(緑)方眼紙。

をWeb版で実行すると

エラーメッセージ
this.\u753B\u9762.\u65B9\u773C\u7D19
is not a function
が表示されます。
Windows版では方眼紙が正しく表示されます。

=(2)===========================================
かめた=タートル!作る。
かめた!(青)線の色 100歩 歩く 90 右回り。
かめた!(黄)線の色 100歩 歩く 90 右回り。
かめた!(赤)線の色 100歩 歩く 90 右回り。
かめた!(緑)線の色 100歩 歩く 90 右回り。

をWindows版で実行すると、最後の緑色のみになります。
Web版では4色の線になります。

=(3)===========================================
ラベル!"Tokyo 2020"作る -85 -30 位置
 30 文字サイズ (黒)文字の色。
を実行すると、
Windows版の表示がWeb版のより小さく表示されます。

以上3件をお知らせします。





Re: Web版とWindows版での動作差異について

  • honda
  • 2020/04/27 (Mon) 18:59:36
iida様、ご連絡ありがとうございます。
マニュアルの記載が分かりにくく申し訳ございません。
オンライン版では「方眼紙」の命令に対応していません。
ご指摘を受け、オンライン版ドリトルのマニュアルを改訂しましたので、
オンライン版での対応可能命令については、こちらでご確認いただければと存じます。
https://dolittle.eplang.jp/ref_graphics_js

ご指摘の部分を含め、JAVA版とオンライン版の互換性向上については、随時取り組んでまいります。
今後とも、よろしくお願いいたします。

ゆっくり動くの実行エラーが出ます

  • iida
  • 2020/04/25 (Sat) 17:50:53
初めまして、参考プログラムをインストール版と
オンライン版で実行しました。

Windowsインストール版のドリトルV3.31(29 Jan 2020)上で、
以下のプログラムを実行しようとすると、

 かめた=タートル!作る (青)緑の色 ゆっくり動く。
 かめた!100 歩く。

エラーウインドウ内に、

 エラーがあります
 ”ゆっくり動く”という命令が見つかりません

と表示され先に進みません。

オンライン版では正常に動作します。
対応をおねがい致します。

Re: ゆっくり動くの実行エラーが出ます

  • honda
  • 2020/04/25 (Sat) 19:21:51
iida様、はじめまして。
開発チームの本多と申します。
ドリトルに触れていただきありがとうございます。

「ゆっくり動く」については、現状オンライン版専用の命令となっております。
インストール版についても、これを機に検討させていただきます。

なお、インストール版V3.31の段階で扱える命令一覧につきましては、下記のマニュアルをご覧いただければと存じます。
https://dolittle.eplang.jp/manualv331

是非、今後ともよろしくお願いいたします。

ミューロボ転送プログラム

  • 山路晴秀
  • 2020/03/17 (Tue) 10:24:23
 私は、中学校の技術家庭科の非常勤講師をしています。今回パソコン教室のPCがWindows10になり、ドリトルも最新バージョン(v3.31)に入れ替えました。
 そうすると、「ミューロボ転送プログラム」を実行しても何も現れません。
 プログラミングの教材としてドリトルを活用させていただいています。その仕上げとして、ミューロボを何台かパソコン教室に準備し、ポールを立てて色々経路を作りトライさせています。
 「ミューロボ転送プログラム」をドリトルv3.3で動かすにはどうすればいいでしょうか? ご教授をお願いいたします。

Re: ミューロボ転送プログラム

  • 山路晴秀
  • 2020/04/20 (Mon) 13:25:50
ありがとうございました。追加パッケージの導入で、上手く転送プログラムを動かすことができました。学校のPCだと制限がかかって
追加パッケージをダウンロード出来ませんでしたが、個人のPCだ出来ました。コロナウイルスの影響で家庭で作業する時間が増え、よかったです。

Re: ミューロボ転送プログラム

  • omura
  • 2020/03/17 (Tue) 13:07:37
ドリトルでの授業での利用ありがとうございます。

ドリトルでMYUロボを動かすためには、ドリトル本体と共に追加パッケージの導入が必要です。

ドリトルver3.31+windows10の環境で
MYUロボ(MYUUSB-1A基板)を利用できるようにするための
MYUロボ用追加パッケージを公式ページにて公開しましたので、
以下の手順で環境を構築してください。

なお、環境構築にあたっては、「MYUロボ制御ライブラリ」の中のreadme.txtも合わせてご参照ください。

---------------------------
1. ドリリトルのWebページの「ダウンロード」から以下の二つをダウンロードする
・本体パッケージ(v3.31):Windows用(約66MB)
 ・追加パッケージ:MYUロボ制御ライブラリ(V1.1 Windows)

2. 本体パッケージ(dolittle331win.zip)を展開する
3. MYUロボ制御ライブラリ(myu_ver110.zip)を展開する
4. 「3.」で展開したときにできた「MYU」フォルダの中身を、
  「2.」で展開したドリトルのフォルダ
  (dolittle.jarやdolittle.batが置いてあるフォルダ)にコピーする


以上
----------------------------

上記環境で、ロボットにプログラムを転送できることを確認いたしました。
ご確認ください。
なお、上記動作はMYUUSB-1A基板で確認しております。


また、学校様によっては、USB機器の接続を意図的に認識しないようにPCの設定をしている場合もあるようです。
こちらについては、PCの管理者様に確認いただくと良いかと存じます。