PICO-EVA-5500とWio terminalでモバイルFuzixマシン

## はじめに
8ビットCPUやマイクロコントローラで動作するUNIX風OSにFuzixがあります。

https://github.com/EtchedPixels/FUZIX

　イベント展示でFuzixの動作するRaspberry pi picoにUSB-TTLシリアル変換アダプターモジュール経由でノートパソコンに接続した場合、ノートパソコンが目立ち、肝心のFuzixの動作するマシンに目がいきません。Raspberry pi picoにも目に行くように、同程度の大きさのシリアル端末を用意しました。
　本稿の内容は、2024年1月27日に開催された「OSC2024大阪」の展示内容を含んでいます。

https://event.ospn.jp/osc2024-osaka/

　以下の様な展示を、共同展示の「受光犬&浜ふぁぐ」ブースで行いました。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693019/ef430295-3ca3-ee12-bbea-c338e2819132.png)

## 小さなVT100シリアル端末
　LCDとマイクロコントローラでVT100を実現するプロジェクトを調べてみると以下のものが、ありました。

・VT100 Terminal for HC2018
ESP8266とILI9488のLCDとから作製。

https://tech.scargill.net/vt100-terminal-for-hc2018/

・VT100 Terminal Emulator for Arduino STM32
　Arduino STM32 用の VT100 エミュレータ。ILI9341のLCDに表示。

https://github.com/ht-deko/vt100_stm32

・VT100 Emulator
ATMegaのMCUと ili9340のLCDとから作製。

https://github.com/mikee47/VT100/blob/2334dfa/README.md


https://sming.readthedocs.io/en/stable/_inc/Sming/Libraries/VT100/index.html

・Cheap Serial Terminal
ESP8266とILI9340のLCDとから作製。

https://tech.scargill.net/an-arduino-terminal/

・FabGL/examples/ILI9341_TFT/240x320/
ESP32とILI9341とから作製

https://github.com/fdivitto/FabGL/tree/master/examples/ILI9341_TFT/240x320

・Simple terminal out
ArduinoとILI9341のLCDとから作製

https://crawlingrobotfortress.blogspot.com/2021/10/semigraphics-ansi-unicode-and-arduino.html

・mkschreder/avr-vt100
ATMegaAVRとili9340のLCDから作製

https://github.com/mkschreder/avr-vt100

・VT100 Terminal Emulator for Wio Terminal
Wio Terminalから作製

https://github.com/ht-deko/vt100_wt

　手元にWioterminalがあったことと、LCDとマイクロコントローラが一体形になるので、「VT100 Terminal Emulator for Wio Terminal」を利用することとしました。

## 環境構築
　Fuzixの環境として、Ethernet接続可能な「W5500-EVB-Pico」を使用しました。このボードには、Raspberry pi picoのMCUのRP2040とTCP/IPコントローラのW5500が搭載されています。
　Ethernetへの接続に対応したRaspberry pi pico上のFuzixは、小江戸らぐさんのLinuxUser2023冬号「FuzixでEthernet」にまとめましたので、詳細は参考にしてください。
　LinuxUserは、各地で開催されるオープンソースカンファレンスやコミケの「小江戸らぐ」ブースで入手可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693019/beaf2a28-a7fc-874a-7e83-ff0a94797c2a.png)

https://www.ospn.jp/

https://koedolug.connpass.com/

　
　Raspberry pi pico用のFuzixでは、以下のFuzixのリポジトリをgitcloneします。

https://github.com/wiznetmaker/FUZIX/tree/rpipico-eth-w5500

コマンドプロンプトで「make TARGET=rpipico」とすると、開発環境のダウンロードからビルドまで進みます。生成した「fuzix.uf2」と「filesystem.uf2」をRaspberry pi picoに書き込むと、Fuzixが起動します。
　Wio terminalの方の準備は、以下の様に行います。

https://github.com/ht-deko/vt100_wt

のリポジトリをgitcloneあるいはダウンロードします。
　「vt100_wt」をArduino IDEが参照するホルダーにコピーしてから、Arduino IDEでコンパイルと書き込みを行います。
　最後に、配線です。
「W5500-EVB-Pico」と「Wio terminal」で使用するピンを表に示します。
| W5500-EVB-Pico | Wio Terminal |
|----------------|--------------|
|GP0(UART0 TX) |RXD0 |
|GP1(UART0 RX) |TXD0 |
|GND |GND |

　「W5500-EVB-Pico」の「GP0」と「Wio terminal」の「RXD0」、「W5500-EVB-Pico」の「GP1」と「Wio terminal」の「TXD0」、GND同士を接続します。
　USBキーボードをUSB-OTGケーブルを介してWio TerminalのUSB-C端子に接続すると完成です。
　以下に、完成後の写真を示します。Wio terminalのGrove端子からの配線が、PICOの電源、GND、RX、DXに接続されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693019/0b757a91-ee4b-d2bc-d2e7-efb6e462de9c.png)
 
## おわりに
　省スペースのFuzixの動態展示が可能となりました。問題点は、老眼の方にはフォントが小さすぎることです。
　Wio terminalのLCD スクリーンは2.4インチなので、5インチや7インチのLCDとMCUが一体になったボードで、シリアルターミナルを用意できればと考えています。