USB-シリアル変換ケーブルを試してみた

Raspi-Picのプログラム(JAVA)はPCで開発し、Raspiで動作確認するという方法を採用しています。I2Cの時はbcmlib_for_java(↓これです)がRaspiでないと動かないので、PC上の開発に大きな制限がありました。

GitHub - Denshikobo-Life/bcmlib_for_java: Interface between Java app. and bcm2835 library(written by C)


PCとRaspiにインストールしたUARTライブラリのVersionが異なっていたらしく、RXTXcomm.jarを切り替えなくてはならないのですが、(大きな支障では無いので)そのまま作業を続けることにしました。

f:id:RASPI-PIC-CLUB:20170729132910j:plain

Amazonで手に入れたUSB-シリアル変換ケーブル(↑こんな奴 ¥200で売られているのは非正規品かも・・・)をPC(Windows10)に接続してみました。するとドライバでエラー(コード10)を起こして動いてくれません。orz
以下のページに記された修正方法(最後の修正プログラムを適用)で認識してくれるようになりました。

ehbtj.com

尚、RaspiではこのUSB-シリアル変換ケーブルは問題なく認識されます。(/dev/ttyUSB0)

 

Commクラスに二つのThread(送信用と受信用)を設けて、PCとRaspiでループバックテストO.Kの確認がとれました。(パチパチパチ~)

 

(↓こんな感じです)

private class ReceiveThread extends Thread {
         public void run() {
            int receive = 0;
            System.out.println("Receive run");
            while (true) {
                if( receive_ringbuff.full )
                {
                    try {
                        Thread.sleep(10);
                    } catch (InterruptedException ex) {
                        Logger.getLogger(Comm.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
                else
                {
                    try {
                        receive = in.read();
                    } catch (IOException ex) {
                        Logger.getLogger(Comm.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    receive_ringbuff.write((byte)receive);
                }
            }
         }
     }

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

追伸

リング・バッファはThread Safeなのでこういうときには重宝します。