ORANGE Picoを作ってみました
IchigoJamというBASICが走る安価なワンボードマイコンに触発されてか,この手のマイコンボードがいくつか市場に出ています。
その1つがORANGE Picoです。
高性能化したワンチップマイコンでBASICインタプリタとスクリーンエディタが走り,ビデオ出力もソフトで作るというコンセプトは同じなのですが,そこはさすがに後発だけあって,浮動小数点が扱える,カラーグラフィックが扱える,といった特徴を持っています。
このあたりまで来ると1980年代前半のパソコン程度の能力は持っているといってよく,あのころのBASICなら目を瞑っていても書ける,というおっさんどもには心強い味方になってくれそうです。
IchigoJamを手に入れてみたものの,案外なにも出来ない事に気が付いてから,この手のコミュニティから距離を取っていた私ですが,カラーと浮動小数点にピクッとき,その上320x240のLCDまで搭載出来ると聞いて,これはもしかしたらポケコンの後継機になるんじゃないかと思って,結局買ってしまいました。
買ったのはtypeDという最上位機種です。CPUを2つ搭載し,1つは主にUSBの処理を任せたものになっていますが,これっていわゆる「I/Oプロセッサ」ですよね。古くはメインウレーム,新しいところではソニーのNEWSなんかがこういう構成を取ります。
USBキーボードが繋がり,LCDが搭載され,5V単電源で動いてくれれば,もうどこでも動作出来るフルスペックの8ビットパソコンです。
私が買ったのはtypeDのキットと専用として売られていた2.8インチのLCDです。素早く送られて来たのはよいのですが,説明書がほとんどなくて,慣れていない人は途方に暮れるんじゃないかと心配になりました。
部品表を見ながら組み立てるのはそんなに難しくはないのですが,問題はそこからで,どこにどんな電源を繋いで,どういう操作をすれば組み立て完了なのかとか,そういうことが全然わかりません。これホントに初心者向けなのかと思ったのですが,まあそれはそれ。
MicroUSBに5Vを,ビデオ出力にモニタを繋いで電源を入れます。問題なく起動しました。キーボードはHappyHackingKeyboardLiteのUS版を繋ぎました。
気になる配列の違いを設定しようと,kbset 1としたのですがキーのマッピングは変化無しです。すべてのキーボードがちゃんと動くわけではないので,まあこれも仕方がありません。
電源を一度切って,LCDを取り付けます。電源を入れてもなにも表示されませんが,そこはspitft 1としてLCDをイネーブルにすれば,無事に表示されるようになります。
あとはさくっとプログラムをいくつか入れてみて動作確認です。
しかし,LCDを使った場合に厳しい制限がありました。スプライトが使えないのです。これは参りました。スプライトがなければ,この手のBASICではゲームを作るのが大変です。
そしてスプライトが使えないと言うことは,turtle関連の命令が全滅だという事です。私は別にturtle graphicを使いたかったわけではないのですが,デモとしてはこれほど興味をそそるものもなく,使えないのはもったいないと思いました。
結局の所,Bluetoothの小型キーボードも動作せず,US配列への変更も出来ず,スプライトも動作せずということで,どこでもBASICというポケコンの代わりにはなりそうもありません。
もっとも,これをポケコン代わりにしようと思えば,ケースにいれて電池を組み込み,小型のキーボードを探さないといけませんから,なかなかハードルが高いです。
かといって開発者が自らいう,教育用のコンピュータとしては,いまさらBASICもないよなーと思うこともあって,あまり価値を見いだせません。
そもそもビデオ出力などもう必要なくて,その代わりにLCDをわざわざ取り付けているのですから,ソフトでNTSCの信号を合成することはもうそろそろやめにして。システムとして綺麗にまとめる事が出来るかどうかを,考えたものがあってもいいんじゃないかと思います。
もしかしたら娘が興味を示すかも知れません。それまでは置いておこうと思いますが,私自身は積極的に使うことは残念ながらないだろうなと思います。
と,そんなことを考えていたのですが,1つ大事な事を思い出しました。ORANGE Picoは教育用と書いてありましたが,実は組み込み用も想定してあるのです。I2CもGPIOもBASICから叩けるようになっていて,しかもIchigoJamほど制約が強くありません。
なんといってもBASICインタプリタですから,どんどん修正もできます。そして完成すればそのまま組み込んでしまえばいいわけで,ちょっとした用途には便利に使えそうです。電源を入れたら自動的にプログラムを実行する機能も持っていますので,ディスプレイもキーボードも繋がなくて大丈夫です。
大事な事は,作ったシステムを他の人が修正することが出来るわかりやすさを持っていることで,ソースコードがないと手も足も出ないとか,開発環境をインストールするだけで半日かかるとか,そういう面倒な事がないことはとても有意義だと思います。
クロス開発が当たり前の組み込みで,ターゲットで直接開発ができ,しかもそれが安価で簡単だとくれば,これはもしかしたら組み込み初心者向けの学習用にぴったりなんじゃないかと思います。
うーん,なにかこれでオモチャでも作ってみますかね。