ORANGE-Python
Pythonマシン誕生

 
スタンドアローン VGAモニター
USBキーボード USBメモリー
  USBハブ    スクリーンエディター
       
   MicroPython    

 
ORANGE-Python(RP2版)
オレンジピコショップから販売中
ORANGE-Python(ESP32版)
オレンジピコショップから販売中


 
ORANGE-Pythonとは?
電源を入れるだけでMicroPythonが起動するPythonマシン(ORANGE-Python)が誕生しました。
MicroPythonはPython 3と高い互換性があります。
本体以外に必要なものは、電源(microUSBケーブル)、VGAモニター、USBキーボードだけです。

※ORANGE-PythonはORANGE-BUS準拠品で、CPUボードの違いによりRP2(Raspberry Pi Pico)版とESP32版があります。


MicroPythonは、オーストラリアのダミアン・ジョージ氏が開発し、最初にpyboardというSTM32F4を搭載したマイコンボードと共にリリースされました。
マイコンで動作するように最適化されたPython 3の処理系であり、様々なマイコンボードに移植されています。
ただし、使用するためにはマイコンボードの他にPCが必要でした。PC上で動作するIDEやターミナルからMicroPython搭載のマイコンボードにプログラムを書き込んで操作します。
ORANGE-Pythonは、Raspberry Pi PicoにMicroPythonの処理系を搭載し、さらにVGAモニターUSBキーボードを使えるようにしました。
電源を入れると、REPLモードでMicroPythonが起動します。
REPL は Read Evaluate Print Loop の略で、昔のBASICマシンのように対話的な操作でプログラミングできます。
起動後にプロンプト >>> が現れたら、1 + 2 * 3 と入力し、Enterキーを押下すれば、計算結果の7が出力され、再びプロンプトが表示されます。
数式だけでなく、Pythonのプログラムも試すことができます。
print("Hello, Pico)
と入力したら、エラーになってしまいました。
」が抜けていたようですので、 print("Hello, Pico")と入力しなおしたら、正しい結果が表示されました。

ちょっと待ってください。一部の修正でも全部入力し直し?昔のBASICマシンにも劣る?
長いプログラムはどうする?作ったプログラムのセーブやロードは?
 
 スクリーンエディター搭載
ORANGE-Pythonは、スクリーンエディターを搭載しています。
REPLモードでF5キーを押下すると、スクリーンエディターが起動します。
↑ ↓ ← →
Del BS PgUp PgDn
Home End
などのキーを使用してプログラムを編集できます。
ファンクションキーも使用できます。
   
 F1 CLEAR  編集テキストをすべてクリアします。 
 F2 REPL  REPLモードに戻ります。 
 F3  LOAD Raspberry Pi Picoの中のフラッシュメモリーに保存してあるテキストをロードします。F3キー押下後にファイル名を入力してください。中止するときはESCキーを押してください。 
 F4  SAVE 編集テキストをRaspberry Pi Picoの中のフラッシュメモリーにセーブします。F4キー押下後にファイル名を入力してください。中止するときはESCキーを押してください。 
 F5  RUN 編集中のテキストをプログラムとして実行します。
 F6 ULOAD 外付けUSBメモリーに保存してあるテキストをロードします。F6キー押下後にファイル名を入力してください。中止するときはESCキーを押してください。 
 F7 USAVE 編集テキストを外付けUSBメモリーにセーブします。F7キー押下後にファイル名を入力してください。中止するときはESCキーを押してください。 
  スクリーンエディターでプログラムを作成したら、F5キー押下でプログラムが実行されます。
実行後は画面に>が一つのプロンプトが表示されます。この状態はREPLモードではありませんので、再度F5キー押下でスクリーンエディターに戻ります。
あるいはF2キー押下で直接REPLモードに戻ることもできます。

スクリーンエディターでPythonのプログラムを書いてF5キー押下で実行し、エラーがあった場合でもすぐに修正して実行できます。

また、ORANGE-PythonはRaspBerry Pi Picoをベースにしていますので、画面表示やファイルの操作だけでなく、I/Oを直接操作できます。
UART、ADC、I2C、SPI、PWM、PIOなどの操作がPythonプログラミングで可能となります。
ORANGE-PythonでPythonプログラミングを楽しんでください。
ORANGE-Python関連資料
回路図 ORANGE-BUSのページを参照してください。
組立て説明書 組立て説明書(Raspberry Pi Pico版)はこちらです。
組立て説明書(ESP32版)はこちらです。
   
 簡単なテストプログラム-その1  
  F5キーでスクリーンエディターを起動し、左のプログラムを入力します。
 3行目と4行目は行頭にインデント(空白4個)を入れてください。
(スクリーンエディターでTabキーを押すと空白が4個入ります。)
プログラムを入力したら、F5キーを押すと実行されます。再度F5キーを押すとエディターにもどります。

よくある間違い
1) 2行目の行末に":"がない。
2) 4行目のprintの対象が"("と")"で囲まれていない。
3) 4行目がインデントされていない。
(インデントなしでも動作しますが、結果が意図と異なります。)
   
簡単なテストプログラム-その2   
   いわゆるLチカです。
3行目の値を調整することでLチカの間隔を変更できます。
このプログラムは無限ループしていますので、F5キーでエディターにもどってもLチカは止まりません。

止める方法は以下のいずれかです。
1) エディター画面でF2キーを押す
2) 実行画面でF2キーを押す
3) 実行画面でCTRL-Cを押す
4) CPUボード上のリセットボタンを押す
   
 コンソールを制御するサンプルプログラム

ダウンロード
画面上の'@'を矢印キー押下で移動させるサンプルです。 
(demo.pyとkbcrt.pyをフラッシュメモリーに格納してdemo.pyを実行)

このプログラムは、コンソールゲームが作れるかどうかを試すために作りました。
非常に危険なプログラム(*)ですので、正しく入力する必要があります。
PCでダウンロードしてUSBモリーに保存し、ORANGE-PythonのF6キーでプログラムをロードし、
F4キーでフラッシュメモリーに保存してから実行することをおすすめします。
ORANGE-PythonでUSBメモリーを使用するには、USBハブを介してUSBキーボードとUSBメモリーの両方を接続します。

*このプログラム実行後はハードリセットしないとシステムが正しく機能しません。
実行中にCTRL-Cを押すか、10秒間放置してタイムアウトするとdemo.pyの55行目が実行され、ハードリセットされます。
想定外の操作を行ない55行目にたどりつけない場合は、CPUボード上のリセットボタンを押してください。その場合でもエディターで編集中のプログラムは消えません。
 demo.py  kbcrt.py
 
☆参考記事
かんぱぱさんのブログ