• Pythonと聖杯

Pythonは、最近ではExcelやGIMPからも利用できるようになっていて、アプリケーション内スクリプトの言語としても定着してきた感がある。今のところ、筆者は、Pythonをマイコンボードのプログラミングにちょっと使う程度。まだまだ自分のものにしきれていない。

そこで、空き時間にちょっとしたPythonプログラムを書いて、Pythonに慣れることにした。Androidスマホ用のアプリを入れてもいいのだが、どうも気に入らない。電車でプログラムしているのに、これでは、スマホでゲームしているのと見た目が同じである。

そこで、Pythonが動くプログラミング関数電卓を購入してみた。購入したのは、米国の半導体メーカーでもあるTexas Instruments社(以下TIと表記)のTI-84 Plus CE Python(写真01)という機種。Pythonを動かすため、前世代機であるTI-84 Plus CEにARMプロセッサを追加した機種だ。なお、この機種を選んだのは単に筆者の好みである。カシオのグラフ電卓 fx-CG100でもPythonが動き、こっちのほうが国内では入手性は高い。

  • 写真01: TI-84 Plus CE Pythonは、グラフィックス画面を持ち「グラフ電卓」と分類されるプログラミング関数電卓である

    写真01: TI-84 Plus CE Pythonは、グラフィックス画面を持ち「グラフ電卓」と分類されるプログラミング関数電卓である

TI社の電卓というと、日本ではなじみがないが、米国では高いシェアを持っている。その理由の1つは学校教育用に使われたのが、TI-84 Plusシリーズだからだという。多くの先生がこの機種に慣れてしまっているので、他社の入る余地がないという。ちなみに米国のグラフ電卓シェア2位はカシオである。

そもそも、TI社は、1970年台から電卓用チップを製造しており、TIブランドでの電卓の販売も行った。また、TI自身は製品化しなかったが、1967年に持ち運び可能な電卓「Cal Tech」を試作した。これは、のちに設計をキヤノンにライセンス販売し、同社は、これを元にバッテリ駆動で持ち運び可能な世界初の電卓の1つであるポケトロニック(Pocketronic。1970年)を製造した。

米国メーカーの電卓といえば、このTI社か旧HP社である。過去には、コモドール社なども電卓ビジネスを行っていたが、現在、製品が残るのはこの2社だけである。学校教育の件もあり、米国内ではTI社の一人勝ち状態である。

さて、TI-84 Plus CE Pythonだが、動作するPythonは、CircuitPythonベースのもので、これを動かすために、コプロセッサとしてATMEL(現Microchip) ATSAMD21E18が追加搭載された。ATSAMD21E18のCPUコアは、32 bit CPUであるARM Cortex-M0+である。

CircuitPythonは、MicroPythonからフォークしたプロジェクトで文法的には、どちらもPython3に準拠している。一番の違いは、ライブラリでのハードウェア(マイクロコントローラー)の抽象度である。CircuitPythonは、抽象度が高く、多くのハードウェアで共通のAPIが用意される。これに対して、MicroPythonのライブラリは、ハードウェア固有の機能を細かく制御できるように抽象度の低いAPIを使う。

とりあえず、文法に慣れるという点では、TI-84 Plus CE PythonでPythonを使ってもなんとか、なりそうだ。

さて、実際に使ってみると、組み込みのエディタでは、文法を理解してたとえば、最後にコロンを付けたif文の入力で自動的にインデントが行われるなど、文法支援的な機能はあり、プログラミング自体は難しくない。しかし、横方向5キーに割り当てられたABC順の文字での入力が一番のネックだった。これは、配列を覚えないと、毎回キーを探してしまい、非常に効率が悪い。一応、制御構文(写真02)や比較演算子、数値形式などの入力用テンプレートはあり、これらを使うことで、多少、入力は楽になるが、たとえば変数名やプログラムの保存ファイル名などは、キー入力する必要がある。なお、2ndキー+alphaキーでキーがすべて文字キーシフト状態になる機能があるため、毎回alphaキーを押す必要はない。

  • 写真02: TI Connect CEというWindows用プログラムを使うと、電卓内部ストレージへのアクセスや画面キャプチャが可能になる。これは、Python用エディタの中にある制御行の行テンプレート。このほか、比較演算子やリストの表記などにも行テンプレートが用意されている

    写真02: TI Connect CEというWindows用プログラムを使うと、電卓内部ストレージへのアクセスや画面キャプチャが可能になる。これは、Python用エディタの中にある制御行の行テンプレート。このほか、比較演算子やリストの表記などにも行テンプレートが用意されている

大きさとしてはスマホ程度なので、外出時に持ち歩いて、電車での移動中などに簡単なプログラムを書いているところ。

言語の習得は、開発環境の稼働、標準ライブラリの理解と制御文の書き方がポイント。これを乗り切れば、プログラミングは容易になる。ご存じの通り、Pythonでは、ブロックを波括弧の組ではなく、インデントで表現する。これがちょっと慣れない。ついつい波括弧を打ってしまう。

インデントを使うことをカラダに覚え込ませ、制御文の書き方を理解したら、とりあえず、第一段階突破である。仕事で、Apple IIのUCSD-P systemを動かして、Pascalでプログラミングできる環境を整えた1970年台末頃に比べると、3万円で、プログラミング関数電卓と言語(Python)の開発環境が手に入るというのは、人類にしてはかなりの進歩である。

今回のタイトルネタは、1975年の映画「モンティ・パイソン・アンド・ホーリー・グレイル」(原題Monty Python and the Holy Grail)である。ウサギが攻撃してくるネタは、この作品から始まった。