先日理科ハウスに行ったときに、ブレッドボードが置いてあって欲しくなった。
IchigoJam と一緒に購入したよー、と日記に書いたのだけど、その後、金曜日には届いた。
先に書いた通り、週末は近所の祭りが多くて忙しかった。
でも、届いたのだからとりあえず遊んでみたい。暇を見ながら遊ぶ。
まずはブレッドボード。
LED 2つを交互に点滅させる、というサンプル回路を作れる部品付きのキットを買ってみた。
土曜日、祭りに出かける前に少し時間に余裕があったのでやってみる。
一応、キットについている回路説明としては、LED をただ点灯させるだけ、トランジスタをスイッチとして点灯、そして交互点滅、と、回路を理解しながら進めるようになっている。
でも、トランジスタの働き自体は理解しているので、いきなり交互点滅回路を作る。
…少しして出来上がった。
最初は、配線を1つ隣の穴に差し込んでしまっていて、うまく動かなかった。
回路を見直してミスを発見し、修正する。簡単なものでもデバッグって必要だ。
チカチカした。
サンプル通りのLED点灯できた。
— wizforest (@wizforest) 2016年5月14日
回路の意味は理解できるが、自分で設計はできない。 pic.twitter.com/MCxrsUE2I8
せっかくなので、以前から「壊れたけど捨てられずにいる」子供のおもちゃの基板から、LED を外しまくる。
3V で駆動する回路だけど、子供おもちゃの多くはボタン電池3個、4.5V で駆動されていた。
だから、LED を入れ替えてもかなり暗くしか点灯しない。
でも、壊しても惜しくない部品が多ければ子供にいじらせることもできるだろう。
ある程度できたところで、「なにやってんの?」と長男が興味を持って覗きに来た。
なんかチカチカ動いているのを見て、自分でも作ってみたいという。
いきなり回路を作るのは無理だろうけど、LED を入れ替えて遊んだりしていた。
このときは、祭りに行く予定があったので時間切れ。
夜、祭りから帰ってからまた遊んでいた。トランジスタをスイッチとする回路を組んでいたのだけど、トランジスタを理解していないので、ただLEDが点灯するのとどう違うのかわかっていない。
交互点灯回路も含め、何が起きているのかを順を追って解説したら、理解はした。
でも難しくて自分では作れなさそう、という感想。
それでもいいし、僕だって交互点滅回路を自分では組めない。理解はできるけど。
「読めるけど書けない」ってことだな。
翌日、今度は祭りが終わってから、夕食までの間に2時間ほど時間があったので、IchigoJam を組んでみることにした。
はんだ付けは、小学生の頃には何度かやったし、中学では技術の授業で電子工作を作る必要があった。
(今では必修ではないようだけど、僕の中学の頃には必修だった)
大学以降も数年に一度、ちょっとくらいはやっている。
でも、基本的には素人だと思ってもらっていい。
IchigoJam の組み立て説明書は、とてつもなく不親切だ。
組み立て説明書なのに、組み立て方なんて一切書いてない。
でも、完成した基盤の写真があって、部品の絵があって、そこに基板に書かれたのと同じ R1 とか IC1 という説明がある。
これだけで、その部品を、基盤のその文字の位置につけるのだな、とわかる。
取り付け方向がある部品については「左右方向に」とか「足が長い方を内側に」と書いてある。
基板のどっちが左右でどっちが上下かなんて規定してないのに、急に左右と言われても…
まぁ、常識的に考えて、基盤の文字を読めるようにおいて「上下左右」だろうと考えて組み立てる。
全体に、不親切ではあるが、ちょっと考えれば何を求められているかはわかる程度に説明されている。
説明書だと考えると不親切でも、これ自体がパズルだと思えば、ヒントが多すぎて簡単すぎるパズルだ。
ところどころ、部品が微妙に曲がったのを修正するのに苦労したりしながらも、50分ほどで組み上がる。
どうも、素人でも 50分、というのは標準的な時間のようだ。
さて、動かしてみよう。
PS/2 キーボードは家にあるものを使った。USB 電源もある。
サーバー用に使っている小さなディスプレイを持ってきて、ビデオケーブルを接続…と思ったら、ケーブルがない。
家のどこかにあったな、と探し出してくる。
さて、電源 ON 。…画面が出ない。でも、キーボードのランプが一瞬付くから、通電はしている。
あれぇ、どこか配線ミスしたり、熱しすぎて壊したりしたか? と不安になりながらチェック。
熱で壊したのは目で見てもわからないけど、半田ミスはなさそうだ。
テスターを、本当に数年ぶりに出してくる。
…テスターが動かない。電池がないのかな、と入れ替えても動かない。使ってないうちに壊れたか。
うーん、お手上げ…と思ったけど、そもそも使っている小さなディスプレイは、VGA 以外でつないだことが無い。
ビデオケーブルでも繋げることになっているのだけど、これが怪しいのかもしれない。
居間にある大きなテレビにつないだら、普通に動いていた。
なんだ、ちゃんとできてるじゃん。
居間のテレビで動かしたので、子供がすぐに興味を持ってやってくる。
いや、はんだ付けの段階から、臭いで寄ってきてたのだけど、「できたの?」と様子を見に来た。
パソコンだと聞いていたけど、黒い画面に白い字が出ているだけ。
すぐに興味を失って、また別の遊びを始める。
えーと、チェックもかねて簡単なゲームでも作ってみるか。
8ビット BASIC 定番の初心者向けゲーム、「下向きに走るレースゲーム」でも作ってみよう。
XXXX と並んだ X が壁で、壁にぶつからないようにしながら V を操作するゲームにした。
IchigoJam には、BASIC の命令一覧表が付いてくる。
これが、小さな紙にびっしりと細かな文字で印刷されたもので、とても読めない。
一応同じものが公式 WEB ページにもあるので、本気で使うときにはそちらを印刷しておくといいのだろう。
でも、とりあえずこのときは「びっしり」の文字で読んで作り始める。
使い方がわからない命令もあったけど、BASIC なのでダイレクトコマンド入力したりして動作を確かめながら作る。
30分もしないでゲームができた。
「下向きレースゲーム」と書いたのは、BASIC では画面最下段に文字を表示すると、全体に上にスクロールするからだ。
でも、IchigoJam には SCROLL 命令というのがあって、自由方向にスクロールできた。
これを使い、普通に上向きに進むようにした。
また、絵文字の出し方がわかったので、自機を飛行機にして、壁も●にした。
プログラムはこんな感じ。
— wizforest (@wizforest) May 15, 2016
洗練されてないけど、1画面に収まった。 pic.twitter.com/G6QB8Deeg6
ここら辺までできたところで、また子供が様子を見にきて、「あ、なんかゲーム遊んでる」と言い出した。
このパソコンは文字が出るだけだと思ったけどゲームが遊べるのか、というので、今作ったのだと説明。
長男もゲームを作ってみたいと言い出し、まずは僕が作ったゲームの改造から始めてみる。
僕が作ったゲームは、サンプルで作っただけで面白くもなんともない。
ゲームスピードを変えてみたり、キャラクタを変えてみたりして楽しむ。
で、おもむろに「自分で1から作ってみたい」というので、NEW する。
IchigoJam 、セーブできないと思っていたからプログラムの画面写真撮ってから NEW したのだけど、4つまではセーブできるのね。
まぁ、知らなかったことだし、できの悪いゲームなので惜しくないのだけど。
普段 Scratch を使っている長男、キーボードは不慣れながら、何か作り始める。
IF が条件判断だ、というのは僕のプログラムを見て理解したようだ。
キーボードの上下左右で、* が自由に動くというだけのプログラムを作り始める。
最初は * が壁のように伸びてしまい、動いているようには見えない。
スペースを上書きして消すようにした。
ここで長男が思いつき、あえて通った後を消さず、・(本来はピリオドだけど、読みにくいのこの表記で書く)を残すようにした。
適当に動かしながら、・が並んだ画面を見て「パックマン作れるじゃん」と。
ランダムに画面上に・を散りばめ、 * を動かすだけのものを作った。* の後はスペースで消す。
これだけで、・の上を通ると消える。特に「食べた」という判定はしてないのだけど、パックマンのようにも見える。
「食べたかどうか判定できないの?」と聞いてきたから、できるよ、とあっさり答える。
さっき僕が作ったゲームでは、壁にぶつかったか調べてたじゃん。
同じようにすればできるよ、と、その方法を教える。
ついでにキャラクターも変え、絵文字を使って、猫がおにぎりを食べるゲームになった。
おにぎりを食べると1点。全部食べると「CLEAR」と表示される。
ちなみに、画面端の処理をしていないので、画面外に出るとおかしくなる。
ランダムにおにぎりを散らす処理も適当なので、同じ場所に書かれるとクリア不能になる。
Scratch で慣れていると、初めて見た BASIC でも簡単なゲームの1つくらい作れる、ということがわかった。
ただ、長男の感想では、BASIC は Scratch に比べるとゲームが作りにくい環境、のようだ。
まぁ、時代の流れもあるし、IchigoJam はわざと貧弱な環境にしている感じなので、その通りだろう。
でも、BASIC が「ゲームが作りやすい言語」とされた時代もあるし、歴史の流れだけ教えて置いた。
子供に説明したものなので、非常にざっくりしていて細かな部分は正しくないのだけど、こんな感じ。
世界初の言語として FORTRAN が作られ、2番目の言語として Lisp が作られる。全然違う考え方の言語だ。
FORTRAN を元にして、もっと初心者でも使いやすい言語として BASIC が作られる。
この BASIC を見て、Lisp でも似たような環境を作ろうと、LOGO が作られる。
#最初の LOGO は、BASIC のように行番号付きエディットのインタプリタ環境だった。
パソコンの時代になって、BASIC がパソコンに移植される。
このとき、大型コンピューター用の BASIC をパソコンに移植するのは難しかったので、「ゲームに必要な機能」を選び取る形で移植された。
だから、当時は BASIC はゲームが作りやすい言語だと言われた。
LOGO を元にして、教育用のいろいろな言語が作られる。Scratch はその最新版。
いろいろな研究の内容が詰め込まれているので、今一番ゲームが作りやすい言語だというのはその通り。
でも、BASIC もその後いろいろ作られていて、最新の BASIC では IchigoJam とはまた違う使いやすさがある。
IchigoJam は、自分でパソコンを組み立てるところから楽しむものだし、外に回路を繋げて楽しむ部分が多いので、あえて貧弱にしてある。
子供としては「ふーん」って聞いていただけ。
でも、いろいろな環境があるんだな、と知ったうえで、今は Scratch で楽しんでいればそれでいいと思う。
同じテーマの日記(最近の一覧)
関連ページ
ブレッドボードと IchigoJam【日記 16/05/16】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |