2018年01月21日

SmileBASIC で「コリドール」(ボードゲーム)

 パソコンミニの SmileBASIC で「コリドール」というボードゲームを実装してみた。二人プレイのみ。コンピュータとの対戦は(まだ)できません。

20180121-1.jpg

 「コリドール」は、正しくは "Quoridor" と書く。Gigamic 社が開発・販売しているゲームです。 ルールの説明と SmileBASIC のソースコードはこちらにあります。

 一人二役の対戦しかしてないのだけれども、二人でプレイしたら雰囲気悪くなりそう。お互いの進路を邪魔し合うゲームだからね。将棋で待ち伏せされたら「ひきょうだ」とか怒り出すタイプの人とはやらない方が無難。

 コンピュータにプレイさせるとしたら、どういう思考プラグラムを作ればいいだろうか。コマを動かす手は最大5種類だから選択肢が少ないが、壁を置く手はルール上可能な手が非常に多いので、案外面倒かもしれない。特に評価が難しそうなのが、「壁を置くことによって、相手に壁を置かれることを防ぐ」という戦略だな。誰か作ってみませんか。BASIC では難しそうだけど。

posted by toshinagata at 21:23| 日記

2018年01月20日

ジャズピアニストとクラシックピアニスト

 「同じ『ピアニスト』でもジャズとクラシックでは脳の使い方が違うことが判明」(Gigazine)。ああ、そりゃそうだろうなあ。クラシックピアノのトレーニングを受けていても、ジャズピアノって弾けるようにはならないんですよね。

 逆はどうなんだろう。ジャズの人で、ある程度その道を極めた後に、クラシックの勉強を始める人がいるじゃないですか。「脳の使い方」はともかくとして、音楽の捉え方が変わって、ジャズの演奏にもいい影響を及ぼしたりするんだろうか。中途半端な音楽になってしまったりしないんだろうか。

 ジャズの人が学ぼうとする音楽は、たいていバッハかモーツアルト。近現代の音楽に興味を持つ人もいるようです。いわゆるロマン派の音楽(たぶんベートーヴェンも含む)はあまり関心を持たれないようです。これも何か意味があるんだろうか。

タグ:音楽
posted by toshinagata at 10:41| 日記

2018年01月16日

PQI Air Card II でラズパイのベアメタル開発

 PQI Air Card II を購入。32 GB の microSD カードとセットで、2,400 円。

20180116-1.jpg

 一見 microSD カードのアダプタなのだが、実は無線 LAN の機能を持っている。SD カードの形をした無線 LAN 機器として FlashAir が有名だけど、この品物は、挿入された microSD を外部記憶装置として認識できる。無線 LAN 部分と記憶装置部分が分離されているため、使い道はさらに広い。

 今回は、ベアメタルラズパイの microSD カードに無線でアクセスできるようにする目的で購入した。こんな風に使っています。サンコーのmicroSD-SD エクステンションケーブル を使って、ラズパイの microSD スロットにフルサイズの SD が接続できるようにする。もともとラズパイに入れていた microSD を PQI Air Card II に入れて、それを SD スロットに挿入する。このままラズパイの電源を入れると、普通に立ち上がります。つまり、microSD-SD アダプタとしてもちゃんと機能している。

20180116-4.jpg

 無線 LAN の設定。立ち上げると、"PQI Air Card" という無線 LAN アクセスポイントが見える。そこに接続して(初期設定ではパスワードはない)、192.168.1.1 にウェブブラウザでアクセスすると、次の画面になる。

20180116-2.jpg

 PQI Air Card に PC からアクセスするとき、初期設定通りに PQI Air Card がアクセスポイントとなっていると、アクセスするたびに通常のインターネット接続と PQI Air Card を切り替えないといけないので、相当に煩わしい。そこで、PQI Air Card が自分ちの無線 LAN アクセスポイントにクライアントとして接続するように設定を変更する。Wifi Setup の画面で、Hotspots の項に自分ちの無線 LAN アクセスポイントの設定を書き込んでおく(下図の@)。

20180116-3.jpg

 ちなみにAは、PQI Air Card をアクセスポイントとして使う時のパスワード。普段は使わないけど、念のために設定しておく。

 立ち上げ時にクライアントモードで起動させるためには、microSD のルートディレクトリに autorun.sh というファイルを作成して、次の内容を書いておけばよい。(この情報は、ひとりぶろぐさん「デジカメ内部でRubyを動かす狂気!無線LAN内蔵SDカードアダプタPQI Air Cardの間違った使い方」による。)

#!/bin/sh
sleep 5
/usr/bin/w2

 再起動して、ターミナルから ftp でアクセス。IP アドレスが何かは推測するしかない。固定 IP で接続する方法ってあるのかな。

$ ftp 192.168.1.17
ftp: Can't connect to `192.168.1.17': Connection refused   #  違った!
ftp: Can't connect to `192.168.1.17'
ftp> quit
$ ftp 192.168.1.18
Connected to 192.168.1.18.     #  通りました
220 Operation successful
Name (192.168.1.18:xxxxxx):    #  ユーザー名もパスワードもなし
230 Operation successful
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 EPSV ok (|||37389|)
150 Directory listing
drwxr-xr-x    4 root     root             0 Dec 31 17:00 mtd
drwxr-xr-x   10 root     root          4096 Dec 31 17:00 sd
226 Operation successful
ftp> ls sd
229 EPSV ok (|||36661|)
150 Directory listing
-rwxr-xr-x    1 root     root         18693 Aug 21  2015 COPYING.linux
drwxr-xr-x    3 root     root          4096 Dec 31  1979 DCIM
-rwxr-xr-x    1 root     root          1494 Nov 18  2015 LICENCE.broadcom
...(snip)...
-rwxr-xr-x    1 root     root       3939492 Jul  3  2017 start_x.elf
226 Operation successful
ftp>

 SmileBASIC のファイルは /sd/PCM/SB, MZ-80C エミュレータのファイルは /sd/PCM/MZ80 に入っている。大文字・小文字は区別される。ディレクトリ名を打ち間違えてもエラーを返してくれないので、要注意。


ftp> cd sd/PCM/SB
250 Operation successful
ftp> put something
local: something remote: something
229 EPSV ok (|||52093|)
150 Ok to send data
100% |***********************************|  3852       27.41 MiB/s    00:00 ETA
226 Operation successful
3852 bytes sent in 00:00 (200.65 KiB/s)
ftp> 

 ところが、SmileBASIC 側で Files しても、ファイルは認識されていない。こっそりファイルを書き換える操作はサポートしていないのかも。結局 reboot が必要だった。さらに、リブートしたあと USB キーボードが認識されない。一度コネクタを抜き差ししないといけない。なんだか、いろいろ不便だな。電源を切って microSD を差し替えて、というよりはよほど楽だけどね。

タグ:Raspberry Pi
posted by toshinagata at 22:19| 日記

2018年01月14日

京都大学にムーミン出現

 Yahoo! トップページの「話題のツイート」で「京都大学」が一位に上がっていたから、何かと思ったら。

 あははは、京大生の仕業やな。左の写真のはあまりムーミンっぽくないけど、右2つの写真のはよくできてますね。昨日の「センター試験でムーミン出題」という話題に乗じて、一晩で作ったんだろう。

 この写真を見ると、京都もかなり雪が降ったようですね。センター試験の日って、天気が荒れることが多いような印象がある。受験生のみなさん、健闘を祈ります。

タグ:社会
posted by toshinagata at 12:20| 日記

2018年01月13日

SmileBASIC で「マージャンソリティア」

 引き続き「パソコンミニ」の SmileBASIC で、「マージャンソリティア」を実装してみた。ソースコードはこちらにあります。

20180113-1.jpg

 SmileBASIC の特徴、つづき。

  • グラフィックは4面。スプライトの画像データ置き場も兼ねている。つまり、スプライトは「あるグラフィック画面の指定した長方形部分の画像」として定義される。画像ファイルをいくつも並べて定義するよりずっと扱いやすい。
  • スプライトには「Z 座標」を指定できる。これは重ね合わせの順序を指定するだけで、自動的に遠近処理をしてくれるわけではない。
  • なぜか画面上部の 32 ドット分が表示されない。config.txt をいじって、ディスプレイ設定を 1280x800 にしているせいかも。「ちょっと違う設定」にすると正常に動かなくなるのはつらいですね。
  • テキスト画面は、8x8 ドットのフォントで表示される。漢字と英数字が同じサイズで表示されるのは、正直言って美しくない。
  • ただ、SmileBASIC の仕様として、「文字列の内部表現は UTF-16」となっていて、漢字も英数字も UTF-16 の1ワードで表現されている。「1文字=画面上の1文字」と対応づけることで、テキスト画面の扱いを単純化しているのだろう。
  • ファイル操作は少し弱い印象。たとえば、300 行弱のプログラムを save コマンドで保存する時、はっきり分かる程度の待ち時間がある。ベアメタルラズパイだと、SD カードを高速に読み書きするのが難しいので、その影響があるかも。
  • 外部記憶装置はサポートされていない。パソコンで作成したプログラムをパソコンミニに転送するには、一度シャットダウンして、micro SD カードを取り外して、パソコンにマウントしてコピーするほかない。
  • 本体でプログラムを編集したあと、うっかり未セーブでシャットダウンすると、そのままプログラムは消えてしまう。こんなところまでレトロパソコンを模倣しなくてもいいんじゃないの?
posted by toshinagata at 13:40| 日記

2018年01月11日

SmileBASIC で「さめがめ」

 「さめがめ」をパソコンミニSmileBASIC で実装してみた。ソースコードはこちらにあります。

20180111-1.jpg

写真が下手すぎだな。スクリーンショットの機能が欲しい…

 SmileBASIC は初めて使った。特徴はこんな感じかな。

  • 行番号に頼らないのは◎。今どき当たり前だけど、昔の BASIC に慣れた人は「やっぱり行番号への GOTO がわかりやすい」とか言うんだよな。(その価値観を子供向けの「プログラミング教育」に持ち込むのはやめてほしい、と切実に思う。)
  • 関数・手続きが定義できるのもよい。また、関数・手続きの中で VAR, DIM で変数を宣言すると、ローカル変数とみなされる。これも、今どきの言語では当然実装されているべき。
  • 手続きの定義は DEF name arg1, arg2,... で、関数の定義は DEF name(arg1, arg2,...)。つまり、カッコのあるなしで区別される。この仕様はちょっと違和感があるけど、「命令(カッコなしで使う)」と「関数(カッコありで使う)」の定義だと思えばいい。
  • 2つ以上の値を返す「命令」は、DEF name arg1, arg2,... OUT var1, var2,... と定義する。あまり見たことがない仕様だが、「アドレス渡し」の引数を実装するよりは、わかりやすいかもしれない。
  • 配列参照は a(i) ではなくて a[i]。関数と見た目を区別する意味では、この変更は良いと思う。
  • 「等しい」演算子は = ではなくて ==。また、「等しくない」演算子は <> ではなくて !=。配列参照も含めて、このあたりは現在よく使われている言語に合わせてある。
  • ビット演算子 (NOT, AND, OR, XOR) と論理演算子 (!, &&, ||) は分けてある。&&, || は C などと同様にショートカット機能を持つ。
posted by toshinagata at 19:47| 日記

2018年01月08日

WIMAXIT ラズパイ8インチ HDMI モニタ 1280x800

 ラズパイ用の8インチモニタで、1280x800 が表示できるものを Amazon で買った。8,999円。


中国からの発送でした。1/4に発注して、1/8に到着。思ったより早かった。中国からの発送は FedEx で、国内配送は日本郵便。


簡素な梱包だが、特に問題はなかった。


本体はこんな感じ。一応組み立ててあるが、保護シートをはがすのに一旦ネジを外してばらす必要がある。


裏面。真ん中にあるのがコントロール基板、その横はボタン類だが、電源ボタン以外は使わないかな。


付属品。アクリルの脚、短いHDMIケーブル、液晶拭きの布、micro USB ケーブル。


コントロール基板を覆っているアクリルの保護板を外す。


スペーサの位置をラズパイ基板の取り付け穴に合わせてあるのだが、残念ながら M3。ラズパイ基板に無理やり M3 ネジをねじ込んで固定した。スペーサを M3/M2.6 の異径にしておいてくれたら満点だったのだが。


ケーブルを装着。コントロール基板には micro USB 端子が2つあるが、HDMI 端子に近い方が電源。


電源は「Anker 24W 2ポート USB急速充電器」を使う。このディスプレイの良いところは、電源が 5 V (2 A) である点。12 V だと AC アダプタが2個になってかさばる。この充電器は 2.4 A 2ポートで、ラズパイ3にはギリギリかも。


電源ボタンは裏面ボードにある。


起動画面。


ラズパイ3を立ち上げてみました。config.txt に次の記述を書き込んでおく。

hdmi_group=2
hdmi_group=87
hdmi_cvt=1280 800 60 6 0 0 0

GUI が立ち上がった。表示は細かいが、老眼でもギリギリ読めるレベル。つい画面に手を伸ばしたくなるが、タッチパネル機能はないので、念のため。


ずっと塩漬けになっていた「パソコンミニ」がようやく日の目を見ました。パソコンミニ本体からラズパイ A+ を取り出してこのディスプレイに接続し、立ち上げ。


MZ-80C エミュレータの動作も確認できた。


 やっと動くようになったので、Smile BASIC で何か作ってみたい。

タグ:Raspberry Pi
posted by toshinagata at 17:45| 日記

2018年01月07日

CCさくら、クリアカード編スタート!

 来ましたよ!

 早起きして正座して見た(うそ、正座はしてない)。絵も声も違和感ないですねえ。18年ぶりというのに、声優さんたちほんとプロだな。

 アニメイトでは、さくら役の丹下さんとケロちゃん役の久川さんのロングインタビュー。現場の仲良さが伝わってきますね。

 注目していたのは、坂本真綾さん作詞・水野良樹さん作曲のOP「CLEAR」。これまでの CCさくらの歌は、ウェットな感じがどこかにあったんだけど、今回のは「透明感、疾走感」が前面に出ている。坂本さんは「プラチナ」も歌っていたし、劇場版第2作では重要な役で出演していたから、「さくら」の雰囲気をよく知っているんでしょう。水野さんもいい仕事してますね。Bメロから始まって、Aメロに入る前の間奏でちょうどタイトル画面が出てくる。菅野よう子さんの「プラチナ」は複雑に転調していたけど、「CLEAR」は下属調と平行調に行くぐらいで(水野さんの十八番)、割合シンプルな音使いだった。

20180107-1.png

(著作権保護のコンテンツなので、YouTube 本体での視聴になります)

タグ:アニメ
posted by toshinagata at 09:50| 日記

2018年01月04日

宇都宮ライトレール構想

 「宇都宮LRTの目玉は何か、不安は何か 」(土肥義則、ITmedia ビジネスオンライン、2018/01/03)。LRT(ライトレールトランジット)とは、次世代の軌道系交通システムのこと。要は路面電車だが、低床化車両を導入してバリアフリーに対応したものを特にこう呼ぶようだ。日本で最も有名なのは富山ライトレール。また、広島電鉄も、車両の低床化を進めていることで、LRT の導入事例として紹介されている(出典:日本交通計画協会:LRT)。

 宇都宮の事例で特徴的なのは、従来路面電車がなかった道路に LRT を敷設しようとしている点。住んでいる人は「電車が身近にある」イメージを持っていないだろうから、心理的なハードルは相当高いだろうな。宇都宮市が公開している LRT の紹介ページを見ても、市への公開質問状が何度も提出されている。

 以前にも書いたことがあるけど、「路面電車のある街」というのは、市民が「自家用車を使わない不便」を受け入れた上で成り立つものだと思うんですよ。現状の交通量、街の構造、市民の気質、そういったものが全部整わないと実現は難しい。また、国土交通省のページを見ても、上記宇都宮市のページを見ても、LRT の導入は「コンパクトシティ構想」とセットになっているようだけど、コンパクトシティ構想そのものが無理筋だったという考え方もある(「コンパクトシティはなぜ失敗するのか 富山・青森から見る居住の自由」庄司里紗、Yahoo! ニュース 2016/11/08 配信)。また、自動運転が普及すれば、路面電車を含む公共交通機関の整備は意義を失うという見方もある(「路面電車を残した地方都市の共通点」中井彰人、ITmedia ビジネスオンライン 2017/09/20)。宇都宮の事例がどうなっていくのか、興味を持って見守っていきたい。

タグ:社会
posted by toshinagata at 20:11| 日記

2018年01月03日

「Diary of a Wimpy Kid」(Jeff Kinney, Amulet Books)

 英語教材としては、断じてお勧めできない。文章は下品だし、描写されているいたずらの内容は度を越している。学校の教師や教育委員が読めば、間違いなく「問題図書」に分類することだろう。

(クリックすると Amazon の商品ページに飛びます)

 …つまり、メチャクチャ面白い。最初に繰り出されるグチは、この年代の子供(※アメリカの middle school は小5〜中2に相当する)でこういう「日記」(「自伝」か?)を書きそうなヤツがいかにも考えていそうな内容だし、その次にいきなり語られるお兄ちゃんの Rodrick によるイタズラも笑える。女子がときどき登場するが、相当な悪意を持って描かれている。この年代の男子から見たら、そりゃあ同学年の女子はこう見えますよ。何考えてるかよくわからないし、妙に結託していて上から目線だし。

 英文は案外難しい。原文はネイティブの子供向きだとしても、構文的には(日本の)中学英文法の範囲を越えているところがある。それ以上に、口語的な表現がとても厄介。もっとも、読み進めていくと、何となく勢いで読めるようにはなってくるけど。

 最後の方、あまり笑えない展開になってきて、どうなるんだろうと思いながら読んでいったが、何とか無難(?)に着地できてよかった。

タグ:読書
posted by toshinagata at 01:23| 日記