ORANGE-ESPerとは? |
|
|
ORANGE-ESPerは、上海のEspresif Systems社が開発したESP32をベースにしたIoTパソコンです。
イタリアのFabrizio Di Vittorioさんが作成したFabGLライブラリーのおかげでVGAディスプレイやPS/2キーボードが簡単に接続できるようになりました。
ORANGE-ESPerのハードウェアは、FabGLプロジェクトの推奨回路と同じです。FabGLライブラリーのサンプルはすべて動作します。
また、当社が開発したORANGE-inside (ESP32)をファームウェアとして書き込めば、ORANGE- OSが起動します。ORANGE- OS上では、ORANGE-lightというBASIC系の言語で開発したアプリケーションが動作します。 |
|
左の写真は、ORANGE- OSが動作している様子です。
起動後にタイトルを表示した後、フラッシュメモリーに保存されたSSIDとパスワードでWi-Fiに接続します。
プロンプトのF:はESP32内のフラッシュメモリーです。ここにFATファイルシステムを構築しています。また、S:はmicroSDカードです。FAT32をサポートしていますので、Windows PCで作成したデータもそのまま扱えます。
一見すると、MS-DOSを搭載した昔の16ビットパソコンのようですが、これ一台でWi-FiにアクセスしたりI/Oを直接制御することもできます。IoTパソコンです。
|
ORANGE-ESPer関連資料
|
|
セットアップ Arduino-FabGL編
【別途必要なもの】
- VGAケーブル、モニター
- PS/2キーボード(コネクタ形状がUSBのもの)
- PS/2マウス
- micro USB ケーブル
- Arduino開発環境
以下に動画もありますので、ご参照ください。
|
【セットアップ手順】
- Arduino IDEをインストールします。
- Arduino IDEを起動して、ファイル→環境設定を選びます。環境設定ダイアログの「追加のボードマネージャのURL」にhttps://dl.espressif.com/dl/package_esp32_index.jsonと入力しOKボタンをクリックします。
- ツール→ボード→「ボードマネージャ」を選びます。ボードマネージャのの検索欄でesp32と入力し、見つかったパッケージインストールボタンをクリックします。
- ツール→「ライブラリを管理」を選びます。ライブラリマネージャの検索欄でFabGLと入力し、見つかったパッケージのインストールボタンをクリックします。
- ツール→ボード→「ESP32 Dev Module」を選びます。
- PCとORANGE-ESPerを接続します。WindowsパソコンでしたらデバイスマネージャーでCOMポートの番号を確認しておきます。
- ツール→シリアルポート→COM??を選びます。??は6.で確認しておいた番号です。
【動作確認】
- ファイル→スケッチ例→FabGL(下の方にあります。)→VGA→「SpaceInvaders」を選びます。
- スケッチ→「マイコンボードに書き込む」を選びます。
- インベーダーゲームが開始されます。その他、スケッチ例のVGA配下にあるサンプルも同様の手順で実行することができます。
|
セットアップ ORANGE-OS編
【別途必要なもの】
- VGAケーブル、モニター
- PS/2キーボード(コネクタ形状がUSBのもの)
- micro USB ケーブル
- Arduino開発環境
|
提供ファイル(上記ORANGE-ESPer関連資料の「ファーム」をクリックしてダウンロードしてください。)
※モニター期間中は、すべてのファイルが含まれていません。順次更新していきます。 |
<ORANGE-inside> |
esptool.exe |
書込みツール |
|
ORANGE-inside.ino.esp32.bin |
ORANGE-insideファームウエア |
|
upload.bat |
書込み用BATファイル |
<ORANGE-inside-src> |
ORANGE-inside全ソースコード(正式リリース時に提供予定) |
<ORANGE-studio> |
ORANGE-pro.jar |
ORANGE-studioの実行ファイル |
|
Font8x16.bdf |
東雲フォント(8x16) |
|
Font16x16.bdf |
東雲フォント(16x16) |
<ORANGE-OS> |
<bas> |
ORANGE-lightで記述したORANGE-OS(アプリを含む)のソースファイル |
|
<exe> |
ORANGE-OSの実行ファイル |
|
<int> |
ORANGE-OSの中間コードファイル |
|
<lst> |
ORANGE-OSのコンパイルリストファイル |
|
0. Arduinoでの動作確認 |
セットアップ編 Arduino-FabGL編を参照して、Arduino IDEでファームの書込みができることを確認しておいてください。
|
1. ORANGE-insideの書込み |
提供フォルダーの<ORANGE-inside>を適当な場所にコピーし、<ORANGE-inside>内にあるupload.batの中身を書き換えます。場所は1行目のPORT=の次です。シリアルポート番号を環境に合わせて書き換えてください。
PCとORANGE-ESPerを接続し、upload.batを実行すれば書込みが始まります。
|
2. ORANGE-insideモニターの起動
ORANGE-insideモニターで使用できるコマンドは以下の通りです。
コマンドとパラメーターは、スペースで区切ります。
コマンド |
書式 |
説明 |
例 |
d |
d |
ダウンロードを開始し、プログラムをメモリーにロードします。 |
d |
e |
e ファイル名 |
指定したファイルをフラッシュメモリーから消去します。 |
e test.exe |
f |
f |
ファイル一覧を表示します。 |
f |
l |
l ファイル名 |
指定したファイルをフラッシュメモリーからロードします。 |
l test.exe |
o |
o |
ORANGE-OSが書き込まれていれば、ORANGE-OSを起動します。(リセットボタンを押したときと同じ動作をします。) |
o |
r |
r |
ロードされているプログラムを実行します。(ORANGE-OSがなくてもプログラムを直接実行することはできます。) |
r |
s |
s [ファイル名] |
ロードされているプログラムを指定したファイル名でフラッシュメモリーに保存します。ファイル名を指定しないときはプログラム内に保持されているファイル名で保存します。 |
s |
dコマンドまたはlコマンドを実行してプログラムがロードされている状態では、以下のデバッグコマンドが使用できます。 |
bs |
bs アドレス |
16進数で指定したアドレスにブレークポイントを設定します。ブレークポインは最大10個まで設定できます。 |
bs 2f |
bd |
bd ブレークポイント番号 |
指定した番号のブレークポイントを削除します。ブレークポイント番号はbdコマンドで確認できます。 |
bd 2 |
bl |
bl |
設定されているブレークポイントの番号とアドレスを表示します。 |
bl |
g |
g |
デバッグを開始します。また、ブレークポイントで中断したプログラムを再開します。 |
g |
t |
t |
1ステップだけトレースします。 |
t |
x |
x |
現在の状態を表示します。 |
x |
vc |
vc [アドレス] |
プログラムエリアのデータを16進数で指定したアドレスから表示します。アドレスを省略すると0番地から表示します。 |
vc ff |
vs |
vs |
スタックの内容を表示します。 |
vs |
vd |
vd [アドレス] |
プログラムエリアのデータを16進数で指定したアドレスから表示します。アドレスを省略すると0番地から表示します。 |
vd 1f |
vv |
vv [アドレス] |
コンスタントプールのデータを16進数で指定したアドレスから表示します。アドレスを省略すると0番地から表示します。 |
vv 1f |
vm |
vm [アドレス] |
メモリー配列のデータを16進数で指定したアドレスから表示します。アドレスを省略すると0番地から表示します。 |
vm 1f0 |
vl |
vl [アドレス] |
16進数で指定したアドレスから逆アセンブルリストを表示します。アドレスを省略すると0番地から表示します。 |
vl 100 |
|
ORANGE-insideの書込みが完了したら、PC側でシリアルコンソールを起動します。(115200bps、データ長8ビット、パリティなし、ストップビット長1ビット、フロー制御なし、送信遅延なし、送信改行コードCR、受信改行コードCR、ローカルエコーなし)
初回起動時は、ORANGE-ESPer内のフラッシュメモリーが初期化されます。VGAモニターとPS/2キーボードを接続し、microSDカードがあればFAT32にフォーマットしたものを装着しておきます。リセットボタン(ESP32-DevKitC上のENボタン)を押して再起動してください。写真のようにORANGE-insideモニターが起動します。
|
3. ORANGE-OSの書込み
ファイルを一括してアップロードする方法←ORANGE-OS上でFTPサーバーが動作するようになりましたので、この方法も不要です。 |
Arduino ESP32 filesystem uploader プラグインを利用すると、ファイルを一括してフラッシュメモリーにアップロードできます。この場合は、intファイルではなく、
/ORANGE-OS/exeフォルダー内のexeファイルをアップロードしてください。
【導入手順】
GitHubからESP32FS-1.0.zipをダウンロードします。https://github.com/me-no-dev/arduino-esp32fs-plugin/releases/tag/1.0
Arduino IDEをインストールしたフォルダー/toolsに解凍したESP32FSフォルダーを丸ごとコピーします。Arduino IDEを再起動します。
【使い方】
ツール使用前にシリアルコンソールは終了しておきます。
スケッチファルダーにdataフォルダーを作成します。dataフォルダーにフラッシュメモリーに転送するファイルを入れます。Arduinoからツール→ESP32
Sketch Data Uploadをクリックすれば一括転送が始まります。
また、データフィルダー内を空にしておけば、フラッシュメモリーを一括削除することもできます。
|
ORANGE-insideモニターを強制起動する方法 |
OSの起動に問題があったときなどに、ORANGE-insideモニターを強制起動したい場合は、GPIO12に10kΩ程度の抵抗を介してGNDに接続したまま、リセットボタンを押します。
基板のmicroSDカードのすぐ下に9個のホールがあり、そこにGNDとGPIO12が出ています。一番右のホールがGPIO12です。 |
|
ORANGE-studio/ORANGE-OS/intフォルダー内にあるすべてのファイルをORANGE-insideモニターのdコマンドで一つずつダウンロードします。
Tera Termでは、マウスで選んだファイルをウインドウ内にドラッグ&ドロップで送信開始します。Tera Term以外のソフトでも同様のテキストファイルのアップロード機能がありますので、それをご利用ください。(intファイルの中身はテキストです。)
正常にダウンロードできると、[END]を表示しコマンドプロンプトに戻ります。
ダウンロードした後は、必ず、sコマンド(ファイル名は指定しない)で、フラッシュメモリーに書き込んでおきます。
ファイルが書き込めたかどうかはfコマンドで確認できます。(dコマンドでドラッグ&ドロップしたファイルはintファイルですが、作成されるのはexeファイルです。)
これらを繰り返し、/ORANGE-OS/intフォルダー内のファイルをすべて書き込みます。
ORANGE-OS上でFTPサーバーが動作するようになりましたので、最初に書き込むコマンドは次の7個だけでかまいません。
boot.int
setup.int
config.int
ftps.int
dl.int
dir.int
type.int
reset.int
最後に、リセットボタンを押すかモニターのoコマンドで再起動します。
VGAモニターでORANGE-OSの起動が確認できます。
|
4. ORANGE-OSのセットアップ
ORANGE-OSの内部コマンド
コマンド |
書式 |
説明 |
例 |
f: |
f: |
カレントドライブをf:(フラッシュメモリー)に変更します。 |
f: |
s: |
s: |
カレントドライブをs:(micor SDカード)に変更します。 |
s: |
mon |
mon |
ORANGE-insideモニターを起動します。 |
mon |
ORANGE-OSの外部コマンド(順次追加予定)
コマンド |
書式 |
説明 |
例 |
cd |
cd <ディレクトリー名> |
カレントディレクトリーを変更します。 |
cd test |
cls |
cls |
画面を消去します。 |
cls |
config |
config <キー> <値> |
環境設定を行います。
指定したキーと値によって、次のように設定します。
項目 |
キー |
値 |
WiFi接続時のSSID |
SSID |
設定値 |
WiFi接続時のパスワード |
PASSWORD |
設定値 |
キーボードの種類 |
KBSET |
0 |
JP |
1 |
US |
|
config KBSET 1 |
date |
date |
現在の日付時刻を表示します。 |
date |
del |
del <名前> |
ファイルまたはディレクトリーを削除します。 |
del test.exe |
dl |
dl <ファイル名> |
intファイルをダウンロードして、指定した名前でexeファイルに変換して保存します。 |
dl test.exe |
dir |
dir |
カレントディレクトリー内にファイル一覧を表示します。 |
dir |
md |
md <ディレクトリー名> |
新規ディレクトリーを作成します。 |
md test |
type |
type <ファイル名> |
指定したテキストファイルの中身を表示します。 |
type test.txt |
ren |
ren <旧名> <新名> |
ファイルまたはディレクトリーを指定された名前に変更します。 |
ren old.txt new.txt |
reset |
reset |
ORANGE-OSを再起動します。 |
reset |
setup |
setup |
configコマンドで設定した内容を反映します。 |
setup |
|
configコマンドでWiFiとキーボードの設定を行います。
WiFiの設定は、次のようにconfigコマンドを2回実行して設定します。
(ORANGE-OSでは大文字/小文字を区別しますので、注意して入力してください。)
F:/>config SSID xxx
F:/>config PASSWORD yyy
configコマンドを実行すると、config.sysが作成されます。
次のようにtypeコマンドで設定内容を確認できます。
F:/>type config.sys
キーボードの種類はデフォルトで日本語キーボードになっています。
USキーボードに変更するときは、次のコマンドを追加します。
F:/>config KBSET 1
設定が終わったら、resetコマンドで再起動します。設定した内容は再起動時に反映されます。
F:/>reset
再起動後にWiFiの接続に成功すれば、IPアドレスが表示されます。
ORANGE-OS起動後にPC上のファイルを取得するには、次の4種類の方法があります。
- ORANGE-insideモニターを起動して、dコマンドでダウンロード後にsコマンドに保存する。(前述の通り)
- ORANGE-OS上でdlコマンドを起動する。(1.の方法とほぼ同じ)
- micro SDカードにexeファイルをコピーする。
- ORANGE-OS上でFTPサーバーを起動する。
ここではFTPサーバーの使用方法を説明します。
まず、FTPサーバーやWebサーバーを実行する十分なメモリーがありませんので、SDカードは抜いておいてください。
起動方法は次の通りです。(終了するときはESCキーを押下します。)
F:/>ftps
"FTP Server waiting for connection"と表示されれば起動成功です。
ユーザー名はpico、パスワードもpicoです。暗号化もなく、ポートもデフォルトの21番を使用します。
FTPのクライアントとしては、FFFTPやWinSCPの動作を確認しています。また、Windows10エクスプローラーでもアクセスできます。
エクスプローラーのアドレスバーに
ftp://pico:pico@192.168.0.7
(192.168.0.7の部分は起動時に表示されるもの)
と入力すれば、ORANGE-ESPer内のフラッシュメモリー上のファイルが見えるようになります。 |
5. ORANGE-OSでのプログラム開発
(参考)ORANGE-OSでの拡張子の意味は次のようになっています。
拡張子 |
説明 |
bas |
ORANGE-lightで記述したソースプログラム |
int |
コンパイルした中間コードファイル
テキスト形式のファイルです。シリアルコンソールからの転送に使用します。 |
exe |
コンパイルした中間コードファイル
内容はintファイルと同じですが、バイナリー形式になっています。ORANGE-OS上では実行ファイルとして扱います。 |
lst |
コンパイルリスト
ORANGE-insideモニターのデバッガー使用時に参照してください。 |
|
ORANGE-OSでのプログラム開発にはORANGE-studio(Ver2.00~)が必要です。
(1)Java8のインストール
ORANGE-studioの実行にはJava8が必要です。
OSの種類やバージョンによっては、Java8が初めからインストールされている場合があります。Java8がインストールされていない場合は、https://java.com/ja/download/などからダウンロードしてインストールしておいてください。
(2)ORANGE-studioのインストール
提供フォルダーの<ORANGE-studio>を適当な場所にコピーするだけで完了です。
(3)ORANGE-studioの起動
ORANGE-pro.jarをダブルクリックすると起動します。(OSによっては起動方法が異なります。Windowsでダブルクリックしても起動しない場合は、「拡張子と実行プログラムの関連付け」を行ってください。)
(4)環境設定
最初に環境設定を行ってください。ツールバー一番右の設定アイコンをクリックします。設定ダイアログが表示されますので、各種ファイルの出力先フォルダーを入力します。コンパイルオプションは「変数未定義をエラーにする」の方にチェックを付けておくことをオススメします。「変数未定義をエラーにしない」はVer1互換のためのものです。
(5)ソースコードの作成
ソースコードは、ORANGE-inside内のエディターで作成、編集ができますが、あまり機能はありません。外部エディターで編集して、ドラッグ&ドロップでORANGE-studio内のエディターに取り込むこともできます。
(6)コンパイル
ツールバーのコンパイルをクリックすると、環境設定で指定したフォルダーにファイルが出力されます。同時に右側のコンソールウインドウにも16進数が表示されます。この内容はintファイルと同じものです。
(7)実行
コンパイルした結果をORANGE-OS上のexeファイルして(方法は前述)から実行してください。
ORANGE-light Ver2の仕様はこちらをご覧ください。
|
~ORANGE-OSを作ろう~
ORANGE-OSはORANGE-lightで書かれています。
ORANGE-lightはORANGE-OSの標準言語です。
ORANGE-OSの一部やORANGE-OS上で動作するアプリケーションをご提供ください。
ご提供いただけるものがありましたら、facebookやtwitterなどでご連絡ください。
正式採用させていただいた方(表に名前のある方)には、謝礼いたします。(当社次期商品などを予定)
ORANGE-OSまたは標準アプリ
プログラム |
機能 |
作者 |
改訂者 |
備考 |
公開場所 |
boot |
起動管理 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
cd |
ディレクトリー変更 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
cls |
画面消去 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
config |
環境設定 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
date |
日付表示 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
del |
ファイル削除 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
dl |
ダウンロード |
ピコソフト株式会社 |
|
|
ファームに同梱 |
dir |
ディレクトリー表示 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
ftps |
FTPサーバー |
ピコソフト株式会社 |
|
メモリーが足りないため、SDカードは抜いておく必要があります。 |
ファームに同梱 |
md |
ディレクトリー作成 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
nvsinit |
NVS初期化 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
term |
VT100エミュレーター |
ピコソフト株式会社 |
|
|
ファームに同梱 |
type |
テキストファイル表示 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
ren |
ファイル名変更 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
reset |
リセット |
ピコソフト株式会社 |
|
|
ファームに同梱 |
setup |
環境設定の反映 |
ピコソフト株式会社 |
|
|
ファームに同梱 |
サンプルプログラム
プログラム |
機能 |
備考 |
公開場所 |
bio |
バイオリズム |
バイオリズム計算 |
ファームに同梱 |
beep |
音階 |
|
ファームに同梱 |
chr |
キャラクター一覧 |
|
ファームに同梱 |
fl |
ファイラー |
スケルトンのみの参考プログラム |
ファームに同梱 |
float1 |
実数演算 |
単精度浮動小数点数のサンプル(四則演算、比較) |
ファームに同梱 |
float2 |
実数演算 |
単精度浮動小数点数のサンプル(数学関数) |
ファームに同梱 |
life |
ライフゲーム |
2次元配列のサンプル |
ファームに同梱 |
pwm |
PWM |
|
ファームに同梱 |
qsort |
クイックソート |
|
ファームに同梱 |
rgb |
色見本 |
rgb指定による色のサンプル |
ファームに同梱 |
rgb2 |
色見本 |
ランダムで色のサンプル表示 |
ファームに同梱 |
svcde |
Webサーバー |
メモリーが足りないため、SDカードは抜いておく必要があります。 |
ファームに同梱 |
tickms |
ベンチマーク |
|
ファームに同梱 |
|
|
|
|
|