KOYAMA Yoshiaki のブログ

プログラミングについての試行錯誤をつらつら書き溜めていきます。

シリアル通信ソフト CoolTerm の使用方法と遅延処理を追加した拙作 PCG-LinkMac バージョン 1.1(1) 公開

追記: 2014/05/21(Wed)

OS X Mavericks では、USB・RS232C シリアルポート変換ケーブル対応のドライバをインストールする必要がありません。Apple 純正のドライバがインストールされています。

~ $ cd /System/library/Extensions/IOUSBFamily.kext/Contents/Plugins/
/System/library/Extensions/IOUSBFamily.kext/Contents/PlugIns $ ls
AppleUSBCDC.kext		AppleUSBMergeNub.kext
AppleUSBCDCACMControl.kext	AppleUSBOHCI.kext
AppleUSBCDCACMData.kext		AppleUSBOpticalMouse.kext
AppleUSBCDCDMM.kext		AppleUSBUHCI.kext
AppleUSBCDCECMControl.kext	AppleUSBVideoSupport.kext
AppleUSBCDCECMData.kext		AppleUSBXHCI.kext
AppleUSBCDCEEM.kext		IOUSBCompositeDriver.kext
AppleUSBCDCWCM.kext		IOUSBHIDDriver.kext
AppleUSBEHCI.kext		IOUSBHIDDriverSafeBoot.kext
AppleUSBFTDI.kext		IOUSBLib.bundle
AppleUSBHub.kext		IOUSBUserClient.kext
/System/library/Extensions/IOUSBFamily.kext/Contents/PlugIns $ 

上記のように Apple 純正 FTDI ドライバ AppleUSBFTDI.kext は、/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns フォルダにあります。

自作アプリの OS X 10.9 Mavericks 対応。Sprite Kit を使ったアプリケーション Neko version 1.0 公開。 - KOYAMA Yoshiaki のブログ
http://kyoshiaki.hatenablog.com/entry/2013/12/14/185334

上記 URL の PCG-LinkMac の記事も参考にしてください。


PC-G850VS と Mac ( OS X Mountain Lion 10.8 ) の間でのシリアル通信 - KOYAMA Yoshiaki のブログ
http://kyoshiaki.hatenablog.com/entry/20120831/1346414073

以前、上記 URL で PC-G850VS と Mac の間でのシリアル通信に、拙作 PCG-LinkMac

PCG-LinkMac バージョン 1.1(1)
http://kyoshiaki.sakura.ne.jp/osx/pcg850v.html#pcglink

を紹介しました。


今回は、シリアル通信ソフト CoolTerm を紹介します。(また、PCG-LinkMac も遅延処理を追加したバージョン 1.1(1) を上記 URL で公開しています。詳しい解説は同封の ReadMe を参照してください。)


Roger Meier's Freeware
CoolTerm
http://freeware.the-meiers.org/

シリアル通信ソフト CoolTerm には、Mac、Win、Linux 版があります。


使い方は簡単です。CoolTerm を起動したら、まず最初に端末の設定をおこないます。

ツールバーの Options をクリックし、Serial Port タブを選び


Port: usbserial-FTG6R5XK
Baudrate: 9600
Data Bits: 8
Parity: none
Stop Bits: 1
Flow Control: いづれもチェックしない

上図のように設定します。OK ボタンをクリックすれば設定完了です。(自分の環境に合わせて設定してください。)
後は、ツールボタンの Connect をクリックしてシリアルポートを開いてください。成功すれば、ウインドウの下部エリアに状態が表示されます。


ファイルを転送するには、メニュー/Connection/Send Textfile... からファイルを選択すれば、転送されます。

MINE [Minesweeper ver 0.2] 
http://kyoshiaki.sakura.ne.jp/osx/pcg850v.html#mine

(PCG-LinkMac1_1.zip を展開して作られる PCG-LinkMac/Example フォルダ
にすべての拙作プログラムが含まれています。)


上記メニューを使って、拙作 MINE [Minesweeper ver 0.2] のテキストファイル mine02.txt を Mac 側から遅延せずに転送し、Mac 側で転送が終了してから、10秒ほど待つと PC-G850VS 側で受信が終了し、転送に成功します。(Mac の環境によって違いが出ると思います。)


たたし、サイズの多きなファイルだとエラーが生じることがあります。その時は、1文字送るごとに遅延するように設定します。


一度、ツールバーの Disconnect でシリアルポートを閉じて、再設定します。

ツールバーの Options をクリックし、Transmit タブを選びます。


Options/Tranmit
✓Use trasmit character delay
Delay (ms): 5

Use trasmit character delay にチェックを入れ、遅延時間を 5 ms に設定します。ツールバーの Save をクリックして名前を付けてファイルに保存すれば、そのファイルを Finder 上でダブルクリックするだけで端末が設定されます。

それから再度ツールバーの Connect ボタンをクリックして、シリアルポートを開いてください。


SDCC 版 Minesweeper ver 1.0
http://kyoshiaki.sakura.ne.jp/osx/pcg850v.html#sdccmine

(PCG-LinkMac1_1.zip を展開して作られる PCG-LinkMac/Example フォルダ
にすべての拙作プログラムが含まれています。)

拙作 SDCC 版 Minesweeper ver 1.0 の minesweeper_hex.txt ファイルで説明したいと思います。

PC-G850VS のモニタで機械語エリアを確保し

MON
*USER 23AE
*

先程、遅延時間を 5 ms に設定しましたが、ここでは説明のため 3ms に設定したとします。
minesweeper_hex.txt を PC-G850VS に転送すると

*R
INFO:0100-2154
*

終了番地が 2154 となり、データの取りこぼしが起きています。
それで、5ms の遅延に設定すると

*R
INFO:0100-23AE
*

終了番地が 23AE となり正しく受信しています。私の Mac

iMac 27-inch, Mid 2010
プロセッサ  2.93 GHz Intel Core i7
メモリ  8 GB 1333 MHz DDR3
グラフィックス  ATI Radeon HD 5750 1024 MB
ソフトウェア  OS X 10.8.3(12D78)

です。最新の Mac だと遅延時間を 5ms 以上にしないといけないかもしれません。


エラーが出た時は、Mac 側の入出力条件設定と P-G850VS側 の入出力条件設定 Format が等しいか確認してください。
特に

I/O DEVICE ERROR

がすぐ起きた時は、遅延するように設定してください。最初は、エラーが起きない大きめの間隔から設定し、段々減らしていくと良いかもしれません。
改行コード: end of file、行番号: line number も注意してください。


下図のように、PCG-LinkMac でも遅延できるように機能を追加しました。


PCG-LinkMac バージョン 1.1(1)
http://kyoshiaki.sakura.ne.jp/osx/pcg850v.html#pcglink

良かったら、ダウンロードしてください。

PC-G850VS と Mac ( OS X Mountain Lion 10.8 ) の間でのシリアル通信

追記: 2014/05/21(Wed)

OS X Mavericks では、USB・RS232C シリアルポート変換ケーブル対応のドライバをインストールする必要がありません。Apple 純正のドライバがインストールされています。

~ $ cd /System/library/Extensions/IOUSBFamily.kext/Contents/Plugins/
/System/library/Extensions/IOUSBFamily.kext/Contents/PlugIns $ ls
AppleUSBCDC.kext		AppleUSBMergeNub.kext
AppleUSBCDCACMControl.kext	AppleUSBOHCI.kext
AppleUSBCDCACMData.kext		AppleUSBOpticalMouse.kext
AppleUSBCDCDMM.kext		AppleUSBUHCI.kext
AppleUSBCDCECMControl.kext	AppleUSBVideoSupport.kext
AppleUSBCDCECMData.kext		AppleUSBXHCI.kext
AppleUSBCDCEEM.kext		IOUSBCompositeDriver.kext
AppleUSBCDCWCM.kext		IOUSBHIDDriver.kext
AppleUSBEHCI.kext		IOUSBHIDDriverSafeBoot.kext
AppleUSBFTDI.kext		IOUSBLib.bundle
AppleUSBHub.kext		IOUSBUserClient.kext
/System/library/Extensions/IOUSBFamily.kext/Contents/PlugIns $ 

上記のように Apple 純正 FTDI ドライバ AppleUSBFTDI.kext は、/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns フォルダにあります。

自作アプリの OS X 10.9 Mavericks 対応。Sprite Kit を使ったアプリケーション Neko version 1.0 公開。 - KOYAMA Yoshiaki のブログ
http://kyoshiaki.hatenablog.com/entry/2013/12/14/185334

上記 URL の PCG-LinkMac の記事も参考にしてください。


'PC-G850VS' キーワードで検索して来る人も多いし、[id:KYoshiaki:20100523] 'PC-G850VS購入、PCG-LinkMac 公開' の情報も古くなったので、 PC-G850VS と Mac ( OS X Mountain Lion 10.8 ) の間でのシリアル通信について、あらためて説明したいと思います。


Mac と PC-G850VS を接続するには、USB・RS232C シリアルポート変換ケーブルと RS232C シリアルケーブルが必要です。RS232C シリアルケーブルは、高松製作所で販売しています。

高松製作所
http://tss.ram.ne.jp/

販売/ポケコン関連/周辺機器

RS232C シリアルケーブル

A01-00014
PC-E200/PC-G800シリーズ用 パソコン接続ケーブル(D-Sub9P)
\3,200

A01-00023
PC-E200/PC-G800シリーズ用 パソコン接続ケーブル(D-Sub9P HF)
\3,500
ハードウェアフロー制御対応


どちらか、1つ選んでください。ハードウェアフロー制御対応がお勧めです。USB・RS232C シリアルポート変換ケーブルについては、後で説明します。また、USB・RS232C シリアルポート変換ケーブルと RS232C シリアルケーブルが一対になったケーブルも販売しています。

A01-00126
PC-E200/PC-G800シリーズ用 パソコン接続ケーブル(USB)
5,800


私は、購入していませんが、これが一番良い選択かもしれません。試していませんが OS X Mountain Lion 10.8 対応の最新ドライバも

FTDI Drivers
http://www.ftdichip.com/FTDrivers.htm

Virtual COM Port Drivers
http://www.ftdichip.com/Drivers/VCP.htm

VCP Drivers の Mac OS X / x64 (64-bit) / 2.2.18 の数字をクリックするとダウンロードできます。

でダウンロードできます。


USB・RS232C シリアル変換ケーブルについては、大まかに Prolific の PL2303、FTDI の FT232RL、SILICON LABS の CP2104 チップを使ったものがあります。現在、Prolific の PL2303 チップを使った純正ドライバ ProlificUsbSerial.kext がダウンロードできなくなっています。


代わりに

stijns/osx-pl2303
https://github.com/stijns/osx-pl2303

から、PL2303用のドライバをダウンロードすることができます。


残念がら、私の環境では、ドライバ osx-pl2303.kext で表示されるデバイス名: /dev/tty.PL2303-002013FD は、オープンできませんでした。/dev/cu.PL2303-002013FD なら問題なく動作しました。また、osx-pl2303.kext は自分でビルドする必要があります。個人的にパッケージ化したのですが、上記問題があるので、公開は控えました。


今現在、一番入手しやすく、動作も安定している USB・RS232C シリアル変換ケーブルは

です。Mac 対応とは記載されていませんが、

FTDI Drivers
http://www.ftdichip.com/FTDrivers.htm

Virtual COM Port Drivers
http://www.ftdichip.com/Drivers/VCP.htm

VCP Drivers の Mac OS X / x64 (64-bit) / 2.2.18 の数字をクリックするとダウンロードできます。

から OS X Mountain Lion 10.8 対応ドライバをダウンロードできます。

FTDI:
/dev/tty.usbserial-FTG6R5XK
/dev/cu.usbserial-FTG6R5XK

Mac で上の表示されたデバイス名どちらでも、拙作 PCG-LinkMac

PCG-LinkMac
http://kyoshiaki.sakura.ne.jp/osx/pcg850v.html#pcglink

で、PC-G850VS と問題なくシリアル通信ができました。参考までに、私が成功した PCG-LinkMac の環境設定を



載せて置きます。PCG-LinkMac の使用方法は、同封された ReadMe を参照してください。


注意)
PCG-LinkMac プログラムの欠陥で、オープンできないデバイス (例えば、/dev/tty.PL2303-002013FD) を選択すると無限ループに陥ってしまいます。アクティビティモニタで強制終了してください。それから、USB・RS232C シリアルポート変換ケーブルを抜き、PCG-LinkMac を再起動し、環境設定から 'デバイス名' を a と入力して '保存' ボタンを押してください。もちろん、a という名前のデバイスは、オープンできませんが、初期設定は a と保存されます。後は、USB・RS232C シリアルポート変換ケーブルを接続して、環境設定で、デバイス名を選択してください。

Version 0
ダンリックの8Kアドベンチャー 日本語版
http://www16.ocn.ne.jp/~ver0/g800/index.html#8kadv850
http://ver0.sakura.ne.jp/g800/index.html#8kadv850

上のアドベンチャーゲームに熱中してしまいました。


ネタばれになりますが、樫の木の前で、木に登ることができます。それには、ロープが必要です。森の西側 --> 西 : 小屋の中 でロープを見つけたのですが、何度試しても、ロープを取ることができません。'ー' 文字をテンキーのマイナスで入力していたのが原因でした。 'ロープ' と入力する場合、文字 'ー' は、Shift + 'カナ' キーで入力する必要がありました。王笏を探し出してゲームをクリアしました。攻略方法を書いてみたいですね!後、ソースの解読を試みました。単純な構造ですが、素晴らしいプログラムです。これを土台にしてアドベンチャーゲームを作ってみたいですね!


OS X and iOS Kernel Programming

OS X and iOS Kernel Programming

  • 作者: Ole Henry Halvorsen,Douglas Clarke
  • 出版社/メーカー: Apress
  • 発売日: 2011/12/16
  • メディア: ペーパーバック
  • 購入: 1人 クリック: 1回
  • この商品を含むブログを見る

上記書籍を読み終えたので、IOKit を使ったドライバについてもわかる範囲で解説してみたいですね。


また、Japanino についても、OS X Mountain Lion 10.8 で問題なく動作しています。次回に、紹介したいと思います。後、私の Mac は、iMac 27インチ Mid 2010 なので、最近の Mac で PCG-LinkMac が問題なく動作するか、心配ですが!