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

個別に送受信したい

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

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

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アドレス」というように改変することで可能になります。

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

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

Re: 個別に送受信したい

  • yamaji
  • 2020/05/23 (Sat) 17:00:38
すいません。
もう一つ質問です。
サーバの動きを観察できるようなログを見るようなことはできますか?
これもお手すきの際でよいのでご教授いただけるとうれしいです。
よろしくお願いいたします。

Re: 個別に送受信したい

  • yamaji
  • 2020/05/23 (Sat) 16:56:30
おせわになっております。
早々のメッセージありがとうございます。
早速動作を確認して、ドリトル、こんなことまでできるなんて、秀逸に作られているんだと感動しました。

実行した後、組まれたプログラムを一生懸命解読していくうちに、コマンドの作り方やループについてなど理解を深めることができました。
台数が手元に2台しかないので、複数台でも実行してみたいと思います。

最大クライアントが40台になるので、DNSサーバを分散させてDNSサーバ同士をつないで、例えばDNS Aサーバの下のクライアントとDNS Bのクライアントがつなげたりするとトラフィック分散のイメージも付きやすいと思うのですが、可能でしょうか?

いろいろできるので、楽しくなってしまい出来たらいいながたくさん生まれてしまいました。。
ご迷惑でなければご解答頂けると助かります。
よろしくお願いいたします。
まだまだ未熟ですが、自分なりにも考えてみたいと思います。

Re: 個別に送受信したい

  • honda
  • 2020/05/22 (Fri) 20:52:34
これらのプログラムは、次の手順でご確認いただけます。
参考にしていただければ幸いです。
=====
1.PC1でドリトルを起動し、サーバを起動
2.PC2でドリトルを起動し、サーバを起動
3.PC1にDNSサーバのプログラムを貼り付け、「// ほんださんのアドレス」の行を適切な名前とPC2のIPアドレスに書き換える
4.PC2にクライアント側のプログラムを貼り付け、「//DNSサーバのアドレス」の行をPC1のIPアドレスに書き換える
5.PC1とPC2のプログラムをそれぞれ実行
6.PC2の実行画面から「宛先」に3.で設定した名前を入力し、送信者名とメッセージに適当な文字列を入れて送信ボタンを押下
7.PC2の実行画面の「受信メッセージ」の欄にメッセージが正しく表示されているかを確認
=====

信号プログラムの件(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の管理者様に確認いただくと良いかと存じます。

大変参考になりました。

  • 山口
  • 2020/04/15 (Wed) 19:02:38
omura様、丁寧な解説文を提示してくださいまして、ありがとうございました。また、YouTube動画までつけてくださり、とてもわかりやすかったです。
これを、授業に生かしていきたいと思います。
本当にありがとうございました。

Re: 大変参考になりました。

  • omura
  • 2020/04/15 (Wed) 19:44:21
授業検討の一助となれたとのことでうれしいです。
授業を行った様子などもご報告いただけたら嬉しいです。

信号機のプログラム

  • 山口
  • 2020/04/14 (Tue) 07:25:28
中学校で技術を教えています。
それくらい自分で考えろよと言われそう
ですが、計測制御の学習で使えそうな
信号機のシュミレーションを見せるため
のプログラムを知っている方はいませんか。

ドリトルで作った信号機のプログラムが
あったら教えてください。

Re: 信号機のプログラム

  • omura
  • 2020/04/14 (Tue) 19:59:26
面白い題材だとおもいましたので、私が授業をするならどうするかをイメージしながらプログラム等を考えてみました。

・青->黄色->赤の順次点灯
・歩行者ボタン要素を追加(おして数秒後に色が変わる)

下記からダウンロードできます。
http://garakuta-lab.sakura.ne.jp/dolittle/sample/dolittle_trlg_smp.zip

私の実力ですと、
すべての表示や制御を生徒にプログラムで書かせるのは難しいかなと思いましたので、信号機のシミュレーション(メイン制御)の部分を生徒さんに作ってもらい、必要な部品は先生が準備する形での構成です。

プログラムの作成画面のみの簡易なものですが解説動画なども作ってみました。
ご参考の一つにしていただければと思います。


■Youtube
https://youtu.be/avtmkz0DAHY

Re: 信号機のプログラム

  • kanemune
  • 2020/04/14 (Tue) 07:52:01
山口様、こんにちは。
信号機は面白そうな題材ですね。
今日中に考えてみたいと思います。

双方向性のあるコンテンツづくり

  • キジマ
  • E-mail
  • 2020/02/13 (Thu) 22:03:35
今年度、中学校-技術の授業で初めてドリトルを使用しました。東京書籍の資料とこのHPの資料が参考になりました。
実践する上での教具と単元の構成はできつつあります。ただ、生徒の様子を見ていると、資料通りプログラムを作っていて、コンテンツを工夫するところまで到達できませんでした。ドリトル言語の使い方も合わせて指導しないと難しいと感じています。
双方向性のコンテンツを作る前段階に、必要な技能や知識を養うための教具があれば教えていただきたいです。

Re: 双方向性のあるコンテンツづくり

  • omura
  • 2020/02/14 (Fri) 18:15:40
ドリトルでの双方向通信授業の実践されている先生方を
見ていますと,2つのパターンが見られます.

1)ソフトウェアを作り込んでいくパターン
実際に子供達に改良型のプログラムを組ませる場合には,
下記を検討する先生が多いようです.
(1) 子供達ができることを増やす
(2) 子供達が思考する際の,整理方法や伝達方法を増やす

「1」については,音を鳴らす,絵を動かす,文字を数字に変えるなど,小さなサンプルプログラムを先生が用意し,
子供達がそれを組み合わせながら自分の目的を実現する形をとる実践を行っている先生がいらっしゃいました.

「2」については,設計図などにより自分のやりたいことを表現する手段を増やし,
先生や友達との意見交換や,改良の糸口の発見を容易にする方法が考えられます.
これは「計測・制御」においては,フローチャートを書き,意見交換をする形で従来から進められています.
ただ,双方向の通信プログラミングではフローチャートだけでは,説明が難しい部分があります.
このため,アクティビティ図やシーケンス図など,作るものに適した設計方法自体を,プログラム前段の教具として捉えていただければと思っています.

こちらについては,大阪電通大 兼宗先生が日本産業技術教育学会のシンポジウムの中で使われたスライド資料が参考になるかと思います.

参考)コンテンツを双方向に交換するプログラミング技術
http://edu-tech.shinshu-u.ac.jp/jste2018/document/20180826_sympo_kanemune.pdf 
(補足3/提案の項目をぜひご参照ください)


2)プログラミングをきっかけに,通信の仕組みやモラル,技術提案等に迫るパターン

プログラミングで通信の仕組みを理解した上で,どのような改良を加たら良いかを検討(設計)する活動でまとめたり,
現代の通信を支える技術的仕組みや情報モラルのあり方などにつなげていく活動でまとめる実戦も多く見受けられます.

平成30年度 佐賀県教育センター様が公開されている資料も参考になるかと思います.
是非ご確認ください.
http://www.saga-ed.jp/kenkyu/kenkyu_chousa/h30/09_tyu_gijyutu/h30_koken_tyu_gijyutu_top.htm

Re: 双方向性のあるコンテンツづくり

  • kanemune
  • 2020/02/14 (Fri) 11:34:14
きじま様、ご利用ありがとうございます。

授業展開については、ドリトルのサイトからリンクのある、教科書会社の資料が参考になるかもしれません。

・【東書教育シリーズ】技術分野:ドリトルによるプログラミング学習
https://ten.tokyo-shoseki.co.jp/detail/101646/

・開隆堂「やってみようプログラミング」
http://www.kairyudo.co.jp/contents/02_chu/gijutsu/h33iko/index.htm