カメ太の日記

2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12

最近 7 日分 / 今月の一覧

2011-08-31 Wed

Arduinoで音楽演奏 [dolittle]

大学1年生向けの授業で、Arduinoに傾きを検知する3軸加速度センサ(Wii
リモコンと同じ原理)を載せて、ドリトルの音楽演奏と組み合わせてみま
した。X軸が音階、Y軸が打楽器です。

演奏している様子をYouTubeに置きました。

Arduinoと3軸加速度センサの配線は、「ドリトルで学ぶプログラミングの
仕組み[第2版]
」の110ページの回路です。

kasokudo

これはプログラムです。2つの配列に打楽器と2オクターブの音階を入れて、
入力値に応じた楽器と音階を演奏しています。メロディの楽器には17番の
ドローバーオルガンを使いました。

打楽器=配列!(ドラム!"ド" 作る)(ドラム!"タ" 作る)(ドラム!"ツ" 作る)作る。
打楽器数=打楽器!要素数?。

音階=配列!作る。
音階名=配列!”ド" "レ" "ミ" "ファ" "ソ" "ラ" "シ” 作る。
音階名!「|x| 音階!(メロディ!("_"+x)作る)入れる」それぞれ実行。
音階名!「|x| 音階!(メロディ!(x)作る)入れる」それぞれ実行。
音階数=音階!要素数?。

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

xin=a!0 アナログ入力。yin=a!1 アナログ入力。zin=a!2 アナログ入力。
x値=フィールド!作る。y値=フィールド!作る。z値=フィールド!作る。


  x=xin!読む。y=yin!読む。z=zin!読む。
  x値!(x)書く。y値!(y)書く。y値!(y)書く。

  x楽器=楽器!17 作る。
  x=(x-70)*音階数/100。
  x楽器!(音階!(x)読む)設定。

  y=(y-70)*打楽器数/100。
  y楽器=打楽器!(y)読む。

  バンド!作る 400 テンポ(x楽器)(y楽器)追加 演奏 待つ。
」!1000 繰り返す。

a!とじろごま。


これは授業で使ったプログラムです。配列を使わなくて済むように、入力
値を条件分岐(if)で判断して音階などを決定する例で示しました。

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

xin=a!0 アナログ入力。yin=a!1 アナログ入力。zin=a!2 アナログ入力。
x値=フィールド!作る。y値=フィールド!作る。z値=フィールド!作る。

x楽器=楽器!17 作る。

  x=xin!読む。y=yin!読む。z=zin!読む。
  x値!(x)書く。y値!(y)書く。y値!(y)書く。

  「x<100」!なら「音階="ド"」実行。
  「x>=100」!なら「音階="ミ"」実行。
  x楽器!(メロディ!(音階)作る)設定。

  「y<100」!なら「たいこ="ド"」実行。
  「y>=100」!なら「たいこ="タ"」実行。
  y楽器=ドラム!(たいこ)作る。

  バンド!作る 300 テンポ(x楽器)(y楽器)追加 演奏 待つ。
」!1000 繰り返す。

a!とじろごま。

2011-08-13 Sat

1時間で学ぶソフトウェアの仕組みの簡易版 [dolittle]

子供向けの場合など、「1時間で学ぶソフトウェアの仕組み(ドリトル本
5章の宝拾いゲーム)
」でもキー入力が多いときのために、プログラムを
どこまで簡単にできるかを考えてみました。

これは元の宝拾いゲーム。

カメ太=タートル!作る。
右ボタン=ボタン!”右” 作る。
右ボタン:動作=「カメ太!90 右回り」。
左ボタン=ボタン!”左” 作る。
左ボタン:動作=「カメ太!90 左回り」。
時計=タイマー!作る。
時計!「カメ太!3 歩く」実行。
宝物1=タートル!作る ペンなし”tulip.png” 変身する100 100 位置。
宝物2=タートル!作る ペンなし”tulip.png” 変身する50 -100 位置。
宝物3=タートル!作る ペンなし”tulip.png” 変身する-100 200 位置。
カメ太:衝突=「|相手|相手!消える」。



工夫次第でいくらでも簡単にできますが、残しておきたいのは、「かめの
オブジェクトを作る」「ボタンに表示する文字と押したときの動作を指定
する」「繰り返し実行する動作を指定する」「花のオブジェクトをつくる」
くらいでしょうか。そうなると最低限はこれくらいの記述になりそうです。

短くなったので、秋の大学祭の小学生向けのイベントでも使ってみます。
高校生は「花!作る」を「花!200 100 作る」のように座標を指定させる
とよいと思います。座標を省略するとランダムに置かれます。

これは簡単になったプログラム。

かめた=かめ!作る。
操作ボタン!"左" 「かめた!30 左回り」作る。
操作ボタン!"右" 「かめた!30 右回り」作る。
「かめた!10 歩く」!くりかえし実行。
花!作る。
花!作る。
花!作る。



簡単にしたプログラムはそのまま動くわけではなく、裏で仕掛けが必要です。
次の内容を「treasure_sample.ini」といったファイルに書いておき、
初期化ファイル(startup.ini)に「システム!"treasure_sample" 使う。」
を書いて、読み込んで使うのがよいと思います。

これは「treasure_sample.ini」の中身。

かめ=タートル!作る 消える。
かめ:衝突=「|相手| 相手!消える」。
ブロック:くりかえし実行=「自分:時計=タイマー!作る。時計!(自分)実行」。
操作ボタン=ボタン!作る 消える。
操作ボタン:作る=「|文字 処理|
「文字=="左"」!なら「キー="LEFT"」そうでなければ「キー="RIGHT"」実行。
b=ボタン!(文字)(キー)作る。b:動作=処理」。
花=0。
花:作る=「|x y| t=タートル!作る "tulip.png" 変身する ペンなし。
「全部!(x!=undef)(y!=undef)本当」!なら「t!(x)(y)位置」そうでなければ
「t!(random(600)-300) (random(300)-150) 位置」実行。t!現れる」。


自分自身を拡張できる言語は便利ですね。

2011-08-06 Sat

第4回全国高等学校情報教育研究大会 [infoedu]

高校の先生方の研究大会でお話をしてきました。

平成23年8月5日(金)13:00 ~ 8月6日(土)13:00 大阪経済大学
講演 大阪電気通信大学 兼宗 進 先生 「情報の科学的な理解を深める学習法」


準備では参加者の層が読めずに迷いました。普段はアンプラグドを実演し
て「これを使えば楽に意味のある授業ができる」と伝えることが多いです。
しかし、今回の対象は、わざわざ全国から集まった感度の高い先生方。ハ
ウツーを伝えるだけでなく、考え方のヒントを散りばめてみました。これ
は成功だったと思います。半分以上がアンプラグドを知っているって、ど
れだけ熱心な先生方ですか(^^。

主なポイント

1.情報の科学と技術の話
・身近な「仕組み」を扱うのが効果的。科学と技術の両方。
・情報機器や情報システムの仕組みは「社会と情報」で重要。
・「こういう仕組みだったんだ〜」という満足感は実用的だし、生徒も先生も幸せ。

2.情報の科学を教えるヒント
・CSアンプラグドは興味を引き出す効果が高い。2進数を実演。
・専門用語をたくさん教えるより、本質を少数教えることが大切。
・コンピュータは数しか扱えない(超重要)。これがわかれば、生徒は符号化や文字コードの必要性を自然と理解できる。
・情報の題材は数学や物理と似ているが違う。区別して教えたい。
-2進数は数学ではn進同士の計算だが、情報ではデータの表現手段。
-三原色(色の合成)は物理。情報ではRGBを数値で扱っていることを学ぶ。ディスプレイを拡大して示すとわかりやすい。

3.情報の技術を教えるヒント
・コンピュータは特殊な機械。その特徴を理解できれば、コンピュータやそれを利用した情報機器を理解できる。
-数学は静的で時間がない。コンピュータは時間で動く。一瞬も同じ状態がなく変化する。これが本質。
-コンピュータを内蔵した機器の状態は見かけで判断できない。従来の機械との大きな違い。
-動きを図示する方法は3つある。フローチャート、状態遷移図、シーケンス図(またはアクティビティ図)。どれもケータイや自販機など身近な例で扱える。
・いちばんよい方法はプログラミングを体験させること。ドリトルの「1時間で学ぶソフトウェアの仕組み」はおすすめ(配布資料)。Scratchなどもよい。
・バーコードリーダーやICカードリーダーが安くなった。情報システムの教材に利用できるかも。
・身近なコンピュータの多くはゲーム機やケータイ、エアコンのように機器に組み込まれている。ロボットカーの制御やセンサーなどの入出力体験も有効。

4.視野を広げるヒント
・情報教育は各国で工夫が行われている。欧州では小中高向けの情報科学コンテストを行っている。海外の先生方の知恵も参考にしたい。ぜひご参加を(昨年の参加募集
・先生方の専門性を高めることは重要。大学院という道もある。授業では学べないことを研究で学ぶ。今はITで遠隔でも学べる。私のところでは(中部や関東の)現職教員が修士や博士で学んでいる。


スライド(PDF 6MB)と配布資料(PDF 200KB)を置いておきます。

2011-07-25 Mon

Mac用USBシリアル変換ケーブル [dolittle]

MacでドリトルからMYUロボを制御するケーブルとして、次の製品を推奨し
ます。ドライバをチップメーカーのサイトからダウンロードすることで、
Macでも動作しました。(参考: 「Macにシリアル(RS-232C)ポート」)

バッファローコクヨサプライ Arvel USBシリアルケーブル 1M グラファイト カラー SRC06USB


今回、Macで3種類の製品を試したところ、一部の製品では正しく動作しな
いことがわかりました。◯は安定して動作します。△は、1回目の転送は正
しく行われるものの、2回目はいちどケーブルを抜き差ししないと正しく転
送できません。Windowsでの利用は、秋月のケーブルが安価でお勧めです。

WinMacメーカー製品名価格
ArvelSRC06-USB2,400円程度
秋月電子USB・シリアル変換ケーブル950円
サンワサプライUSB-CVRS92,500円程度

2011-07-08 Fri

バーコードチェックプログラム [dolittle]

注文していたバーコードリーダーが届きました。高機能のものが3千円台で
入手できるんですね。USB接続で、キーボードからのように入力されます。
WindowsとMacで動作を確認しました。
便利だったのは、設定でチェックディジットをはずせること。意図的に
間違ったバーコードを読ませる実習に使えそうです。
エフケイシステム CCDバーコードリーダー USBインターフェイス TSK-U

バーコードの作成は、印刷できるサイトを使いました。便利です。

・「バーコードの作成と印刷」。使いやすいです。意図的にチェック
デジットが間違ったバーコードを作ることはできないようでした。
http://www5d.biglobe.ne.jp/~bar/page3/barmain.html

・「無料バーコード作成ツール」。こちらは間違ったものもOKでした。
http://rs-lab.net/jancode/

ドリトルでバーコードを読んで表示するプログラムを書いてみました。
チェックディジットの計算をして、エラーがあれば表示します。文房具や
本の商品情報を登録しておくと、バーコードを読んだときに、商品名が表
示されます。

このような小さなツールを用意することで、情報システムの授業で活用す
ることができそうです。

dbarcode

ラベル!"        バーコードチェックプログラム"作る(青)文字の色。
バーコード=フィールド!"" 作る 次の行。
結果=リスト!作る 400 400 大きさ。
バーコード:動作=「
  barcode=バーコード!読む。
  codes=barcode!"" 分割。
  codes!1 位置で消す。
  codesize=codes!要素数?。

  s=0。
  「|n|
   c=codes!(n)読む。
   s=s+c。「(n%2)==0」!なら「s=s+c*2」実行。
  」!(codesize)繰り返す。
  cd=s%10。
  cd12=0。「codesize==13」!なら「cd12=(s-(codes!13 読む))%10」実行。

  「cd==0」!なら「
    結果!(""!(barcode)"("(!(barcode)lookup)")"連結)書く。
  」そうでなければ「
    結果!("エラー:"!(barcode)"の正しいチェックディジットは"(10-cd12)"です。"連結)書く。
  」実行。
  バーコード!クリア。
」。
バーコード:lookup=「|code|
  ret=""。
  「|n| 「(商品!(n)読む)==code」!なら「ret=商品!(n+1)読む」実行」!(商品!要素数?)繰り返す。
  ret。
」。
商品=配列!
"9784904013083" "ドリトルで学ぶプログラミング"
"4901620303167" "バターサブレ"
"4902471030080" "キレートレモン"
"4901991650167" "スティックのり"
作る。

2011-06-04 Sat

名古屋でもプログラミング・情報教育研究会 [infoedu]

東京と大阪で行われている自主的な勉強会「プ会」が名古屋でも行われる
ことになったそうです。7/16は参加したいと思います。

(5/25)
東京のプ会、大阪のプ会に続き、名古屋でも冥府会=名プ会を開催いたします。
名古屋はドイツ語の数詞で数えていきます。

eins(1回目)は愛知サマーセミナーの会場をお借りしてインターネットの理念を提示したとも言えるイヴァン・イリイチの作品を読みます。また、参加者全体でライトニングトークも行います。夜の会も別途企画いたします。ぜひご参加くださいますようお願いします。

日時 2011/07/16 14:50-16:10(予定)
場所 東海中高、名経大市邨中高もしくはその周辺 地下鉄桜通線車道下車
テーマ 「イリイチを読む」+ライトニングトーク
講師 鈴木常彦(中京大学情報理工学部)
下働 脇田俊幸(中京大学附属中京高等学校)
参加連絡 mei-pukai@andragogie.org まで

(5/30)
「コンヴィヴィアリティのための道具」 を読もうかと思います。

(5/31)
さすがに絶版の「コンヴィヴィアリティのための道具」をゲットするのは難しいんではないかという話になりまして、

宿題として、
・イリイチの著作を読む
・考えさせられた一節を書き出して持ち寄る
の2点をお願いしたく思います。
それを元に読書会を構築していきます。

2011-05-28 Sat

アンプラグド動画のダウンロード [unplugged]

アンプラグド関係の各種動画がダウンロードの形で公開されたそうです。
サイズが大きいので注意してください。

http://vimeo.com/user6351443/videos

通常は、YouTubeでストリーミングの形で視聴するのがよいと思います。
「csunplugged」で検索してください。

2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2011-08-31 20:35


最近のコメント

RSS