ポケコンで無線通信!

すがはら まさゆき

菅原 政行

1998 広島県生まれ

2009 PC-9801N-BASIC をはじめる

2011 Windows 95 で Visual Basic 4 をはじめる

2012 PC-G850VS を入手

2017 広島大学工学部入学

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

世代としてどのあたりか

同級生は、

  • フロッピーディスクは 3.5 in なら分かる人がいる
  • 「ラップトップ」は通じない。「ノート」
  • 音楽用カセットテープを知らない人がまれにいる
  • 1 KB = 1024 B が主流
  • マイコン = マイ コンピュータ
ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

本日の概要

  1. ポケコンについておさらい
  2. 愛を語る
  3. 最近のマイコンと接続する
  4. HTTP で通信する
  5. IoYT におけるポケコンの可能性
ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

     ポケコン

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

PC-G850VS

  • SHARP製、2009年発表
  • CPU Z80互換 CMOS @ 8MHz
    • 世界最後の 8bit マイコンという噂も
  • RAM 32KB SIMM
  • 144 × 48 グラフィックLCD
ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

PC-G850VS

  • 定格消費電力 0.2W
  • 重量 270g (電池込)
  • 単4電池 4本、公称使用時間 70時間
  • QWERTY配列キーボード + テンキー
  • ハードカバー標準装備

このページだけ見れば、スマホよりも強力!?

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

生産終了したので

Amazon で探してみた

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

残り2点 ご注文はお早めに

取説がないとマトモに使えません。

100%

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

使える言語

  • 構造化 BASIC
  • C 言語
    • #include が不要など、くせがある
  • PICアセンブラ
    • ライタがあれば PIC に書き込める
  • Z80アセンブラ
  • CASL Ⅰ
ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

愛を語る

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

しれっと学校に持ち込める

先生: 「これなんですか?」

わたし: 「電卓です

若い情報の先生もバレませんでした
(あれ?)

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

打ちやすいキーボード

FAQ: 「そんなに小さいキーで打てるの?

ファミコンのコントローラーと同じ構造。
慣れれば普通に打てます

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

爆速起動

電源をいれると、すぐインタプリタが!

この手軽さは、どんなワンボードマイコンにも真似できません

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

電池が長持ち

公称は 70H ですが、
70H も連続使用しないので

使わなければ 年単位で電池が持ちます

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

残念な変数名

  • BASIC の変数名は2文字まで
  • 1文字変数では文字列と数値の使い分けができない
ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

残念なエディタ

  • C言語でも行番号が必須
  • もちろんアセンブルでも行番号が必須
ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

ポケコンは青春とともに

手書きでプログラムをバックアップしたノート どこにあるかなあ……

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

最近のマイコンと接続する

あやしげな設定メニューが。

image.png

※ 以降、スクリーンショットはエミュレータのものです

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

11ピンIO

プリンタやシリアル変換器が接続できるが、

純正品は入手困難。

height:300px

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

もしやArduinoと通信可能では?

両方とも5V動作だし。

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

ルール

  • 裏蓋を開ける改造はしない

    • 買い替えは無理です……
  • 機械語は使用しない

    • 取説にリファレンスがついていないので

      ニモニックが何もわかりません

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

できそう

ピン配置が取説に載っていない

ですが、いくつか資料はあります

← 画面側               キーボード側 →

1 2 3 4 5 6 7 8 9 10 11
NC 5V GND RS DR RX TX CD CS ER CI

先人に感謝。

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

できました

PC-G850 Arduino
3 GND GND
6 RX TX
7 TX RX

Arduino 側のピンはスケッチで指定します。

0番、1番ピンそのままでは使えません、というのも

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

シリアルで通信する

ポケコンの信号は RS-232C 準拠です

image.png

出典: wrabetz.de/resources/Sharp_PC-G850VS_Interface.pdf

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

SoftwareSerial を使う

IC がいらないのがありがたい

#include <SoftwareSerial.h>

SoftwareSerial g850(RXPIN, TXPIN, true);

void setup(){
    g850.begin(9600);
}
ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

ポケコン側

10 OPEN "COM1:"
20 INPUT OU$:PRINT #1,OU$:GOTO 20

OPEN "COM:" とすると半二重通信になり、
ArduinoでEOFを送信するまでポケコン側から送信できなくなります(たぶん)

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

文法について

PC-G850VS では行末のダブルクオーテーションを省略できるのですが、
シンタックスハイライトがきかなくなるので泣く泣く書きました

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

フロー制御

自前で実装してやる必要があります。

void flowControl() {
  if (g850.read() == 19) { // XOff
    while (g850.read() != 17) // XOn
      delay(20);
  }
  delay(10);
}
ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

ポケコンとナウいマイコンを

つなげると何ができるか?

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

なんでもできます

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

HTTP 通信もできます

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

期末テストリセットでプログラムを消してしまったので

エミュレータによる動作デモをご覧ください

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

100%

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

シリアルでマイコンにプログラムを転送すれば、授業中のファイル共有が可能になる

(ポケコンの標準機能だけで!)

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

image.png

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

image.png

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

Twitter for PC-G850VS

ポケコン + ESP32 で、

  • 特定ユーザのツイート取得
  • 検索
  • ツイート

できます。動作画像は #ポケコンでモテる大学生 で検索!

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

image.png

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

IoYT におけるポケコンの可能性

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

ハードウェアとしての完成度が高い

UART ができるマイコンがあれば、簡単に

フルキーボードと画面表示を追加できます

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

スクラップ & ビルドがしやすい

母艦なしにプログラムを書き換えられ

即時に実行・テストできます

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

SaaS:仕様としての画面

メニュー画面を作るだけで、やりたいことが定まります

画面一枚は 144 文字出力するだけです

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

たとえばこんな感じ

Git ができそうな気がしてきませんか

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

計算能力とRAMをクラウドで補えば

ポケコンは IoYT プロジェクトで

絶大な威力を発揮します

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

ポケコン×クラウドはニッチなので

何をやっても世界初(たぶん)

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

ディスプレイとして使ってるだけ?

そのとおりです。

メインフレームのアプローチそのものです。

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

押し入れに眠っているポケコンを、

あなたの IoYT プロジェクトに

組み込んでみませんか?

ポケコンで無線通信!/ 細かすぎて伝わらない昭和のエンジニア昔語り講演会! #ALGYAN / ぺんた @plageoj

ありがとうございました

@plageoj