果報は寝て待て

2018年4月5日木曜日

佐保川の桜

今年も近所の桜を見てきました。一気に咲いてとてもきれいでした。


佐保川に映る「逆さ桜」


一気に満開



照明は、裸電球とか赤っぽい方が雰囲気出ます。






初めてのはじめての深層学習プログラミング その1

「はじめての深層学習プログラミング」を買って、自分にもできるのかどうか挑戦する事にした。
 いきさつ;
  ちょくちょく見ているCQ出版のインターフェイス誌では、結構簡単にdeep learningができそうに書いてあり、やってみようと思った。tenserflowをインストールするまで丁寧に書いてあり、できたのだが、インストールしても何をしてよいのかわからない。
 もっと基礎的なことを勉強しようとして Chainer Playgroundをやってみたけど、あまりに難しいことばかり書いてあり、とてもついていけそうに無い。
 そんな時にネットで「はじめての深層学習プログラミング」を知り、即購入した。

  
1章の深層学習のためのマシン構成
 これでまず引いてしまいます。
 MACやLINAXの名前は知ってますが、身近に又は社内で使ってることが無い。
ましてUbuntuって何者?です。
 メモリも16GBも入ってて今まで十分だったのに、128GB推奨。やっぱ普通のおじさんがぼけ防止にかじってみるのには敷居が高すぎるのかも。
 でも、できるところまで挑戦しようと思います。

必要な事は
 1 Ubuntuのインストール
 2 Gitのインストール
 3 pipのインストール
 4 OpenCVのインストール
 5 CUDAのインストール
 6 Chainerのインストール
 7 Deelのインストール
先ずはここまでを目指します。

まずUbuntuのインストールです。
3通りあります。
 1 Windows上でのサブシステムでUbuntu(Linax)を動かす
  2  WindowsとUbuntuをデュアルブートする
  3  クリーンインストールしてしまう

敷居の低い順にまず 1の方法でやります。正しいのかどうかはわかりません。



マウスを右クリックし 「アプリと機能」の画面にします。



 
「プログラムと機能」をクリックします


「Windowsの機能の有効化または無効化」をクリックします。

 「Windows Subsistem for Linux」にチェックをいれます。

次にUbuntuの入手です。
 Microsoft Storeを検索して表示させ、 さらに「Ubuntu」を検索します。

後はインストールするだけ。

  Installing, this may take a few minutes...
Installation successful!
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: toruosada
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Default UNIX user set to: toruosada
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
これでUbuntuのインストールは成功したようです。


2018年3月9日金曜日

格安USBロジアナをXPで使う

携帯性を持たせるため、格安USBロジアナをXPのノートパソコンで使えるようにした。

ドライバーのインストールまではできたが、PULSEVIEWを起動させると
「MSVCR100.DLL が見つからなかったため、アプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題が解決する場合があります。」
と表示され、立ち上がらない。

その時の対処方法です。
 http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84&displayLang=ja

へ行きます。
 「ダウンロード」をクリックします。
「NEXT 」をクリックしてダウンロードし
保存します。
   「 vcredist_x86.exe」という名の自己解凍プログラムです。

 それをPULSEVIEWを使いたいXPノートパソコンで展開します。
そのあとは通常の起動方法(前回にやったとおり)でOKです。

2018年2月18日日曜日

格安USBロジアナを買った

ネットで評判のSaleaeの中国製パチモンです。
eBayで616円で送料込み、さすがこの安さなら、壊れてても文句言う人もいないでしょう。
注文して2週間で届きました。けっこうきちんと梱包してあります。





使い方です。
https://sigrok.org/wiki/Downloadsからオープンソースのpulseviewをダウンロードします。ドライバーも入ってます。
 
 

この下の方にある pulseview-NIGHTLY-32bit-static-release-installer.exeをダウンロードします。


 ダウンロードして解凍します。


 このフォルダの中で使うのはzadig.exeとpulseview.exeだけ。

最初にドライバーのインストールです


 ロジアナ本体をパソコンにUSB接続するとデバイスマネージャーに以下のように表示されます。

Unknown Device #1 というのがロジアナ本体です。
 Zadig.exeを起動して Options の中の List All Devicesにチェックを入れます。

リストの中から Unknown Device #1 を選びます。
DriverにWinUSBを選んでReplace Driverをクリックすればドライバーがインストールされます。
ウィルス対策ソフトが何回も待ったをかけますので、そのたびに許可を出す必要があります。
これでドライバーのインストールは完了です。

次はアプリの設定です。
 pulseview.exeを起動させます。
<No Device>と表示されている右をクリックし Connect To Deviceを選びます。
Step 1: Choose the driverで fx2lafw (generic driver for FX2 besed LAs)(fx2afw)を選択します。
Step 2:でUSBを選択し、Step 3:で Scan for devices using driver aboveをクリックするとデバイス名が表示されますので OKをクリックします。

これで準備完了です。対象回路につないで Run を押せば測定開始です。
あとは触ってるうちにわかると思います。














2018年1月7日日曜日

Bluetoothモジュール HC-05 HC-06で遊ぶ

格安のbluetoothモジュールHC-05とHC-06を使い、シリアル通信を無線化してみる。
よく考えずに購入したため、このような組み合わせになった。
中国からの直送で「書留でーす」と届きます。ちょっと怪しげです。


まずHC-06の設定。
  USBシリアル変換モジュールAE-UM232RのRXDとHC-06のTXDを、 AE-UM232RのTXDとHC-06のRXDをつなぎ、GNDとGND、AE-UM232RのUSBとHC-06のVCCをつなぐ。USBケーブルをパソコンにつなぐとHC-06モジュールの赤いLEDが点滅する。
  ペアリングしてないときはATコマンドを受け付ける状態になります。
 次にパソコンのTERATERMを立ち上げ、COMを選択し、接続する。セットアップはローカルエコーをオンにし、改行を「CR+LF」にし、あとはデフォルトのまま。
    9600baud 8bit ストップビット1bit パリティなし ハンドシェイクなし

正常に接続できてれば、 AT(改行なし)と素早く打ち込めば、OKと帰ってきます。これで、モジュールが正常に動作することがわかりました。
1秒以内に打ち込む必要があり、コピーしたコマンドをTERATERMの右クリックで張り付けるとやりやすいです。
使えるATコマンドはかなり少ないです。

 AT+NAME 名前の変更ができます。使いたい名前をスペースなしで書き込みます。メモ帳からコピペします。
他に使えるATコマンドです。
 AT+BAUD  ボーレートの変更です。デフォルトは9600になってます。
 AT+PIN   デフォルトは1234です。パスワードのようなもの?
 AT+VERSION バージョン表示
 AT+P   パリティを変更する ODD:AT+PO EVEN:AT+PE NONE:AT+PN
 



ATコマンドはこれだけしかなく、設定内容の確認もできません。
そのため、ペアリングに必要な、このモジュールのアドレスも単体で表示できないためHC-05から読み出す必要があります。

設定後は
9600baud 8bit ストップビット1bit パリティODD ハンドシェイクなし
となります。

HC-05の方です。
もう一方のパソコンでHC-06と同じように接続します。
 USBシリアル変換モジュールAE-UM232RのRXDとHC-06のTXDを、 AE-UM232RのTXDとHC-06のRXDをつなぎ、GNDとGND、AE-UM232RのUSBとHC-05のVCCをつなぐ。
  HC-05の基板上の34ピンに銅線の切れ端をはんだ付けして10Kの抵抗をかまして3.3vにつなぎ、プルアップします。

 基板上のスイッチを押しながらUSBケーブルをパソコンにつなぐとHC-06モジュールの赤いLEDがゆっくり点滅する。
 これで全てのATコマンドを受け付ける状態となります。
 34ピンをプルアップしないと一部のATコマンドしか受け付けません。
 次にパソコンのTERATERMを立ち上げ、COMを選択し、接続する。セットアップはローカルエコーをオンにし、改行を「CR+LF」にし、38400baudにする。
    38400baud 8bit ストップビット1bit パリティなし ハンドシェイクなし
で通信を始めます。
 
この状態でATエンターと押してOKと帰ってきたら、HC-05のモジュールは正常に動いてます。
  次にスレーブとなるHC-06のアドレスを調べる操作に入ります。
   >AT
         OK
         >AT+ORGL  (工場出荷状態に戻す)
     OK
         >AT+RMAAD (以前のペアリング情報をクリア)
         OK
     >AT+ROLE=1 (マスターモードにする)
         OK
     >AT+CMODE=0   (どのデバイスにでも接続できる)
         OK
     >AT+INQM=0,5,9 (デバイス5台が見つかるか、又は9秒間探す)
         OK
     >AT+INIT   (プロファイルを初期化する?)
         OK
     >AT+INQ  (他のbluetoothデバイスを検索する)

         +INQ:8073:9F:CDF4B7,5A020C,7FFF
         OK
           (携帯やスマホなど周りにあるデバイスが表示されますが、どれがどれかはわかりません。)
    ここでHC-06の電源を入れて起動させます。
    再度 bluetoothデバイスを検索します。
     >AT+INQ  (他のbluetoothデバイスを検索する)

         +INQ:98D3:31:FBA23B,1F00,7FFF
          +INQ:8073:9F:CDF4B7,5A020C,7FFF
           OK

これでHC-06のアドレスが 「98D3:31:FBA23B」であるとわかりました。「,」より後ろはデバイスのモード、信号の強さとなります。  アドレスをメモします。

アドレスが判明したら1対1の通信状態にします。
   

    >AT+UART=9600,0,1  (9600baud、 0=1bit、1=ODDパリティ)
           OK


        >AT+PAIR=98D3,31,FBA23B,9  (9秒以内にペアリングできないとエラーメッセージが出る)
           OK

        >AT+BIND=98D3,31,FBA23B
           OK

        >AT+CMODE=1   (特定の1台のみペアリングする)
           OK
        >AT+LINK=98D3,31,FBA23B
           OK
これで完成です。電源を入れるだけで自動的につながってくれ、それぞれにAE-UM232Rを接続しTERATERMを起動すれば、双方向から通信できます。
HC-05の画面
HC-06の画面

 

 これも有効に活用できるよう自分なりに勉強していきます。

こんなものが送料込みで1台500円で中国から買えるというのは、すごいと思います。
日本では到底マネできないでしょう。恐るべしです。

2018年1月5日金曜日

ESP-8266で遊ぶ その3

続きです。
  では、次に両端のTERATERMをGXdeveloperと三菱A1SCPUシーケンサにつなぎ変えます。
元はこれです。

           TERATERM  (COM9 115200baud  CR+LF)

             ⇅     (COM9)

        仮想COMポート hw-vsp3

             ⇅     

                         BUFFALO WLI-UC-GNM2無線lanアダプタ

             ⇅   (WIFI)

            ESP8266

             ⇅  (UART)

           AE-UM232R  

             ⇅  (COM3)

           TERATERM  (COM3 115200baud  CR+LF)

これを以下のように変えます。
         GXdeveloper  (COM9 9600baud  8 ODD 1)

             ⇅     (COM9)

        仮想COMポート hw-vsp3

             ⇅     

                         BUFFALO WLI-UC-GNM2無線lanアダプタ

             ⇅   (WIFI)

            ESP8266

             ⇅  (UART)

          LTC485(RS422ドライバー)  

             ⇅  (RS422)

           三菱A1SCPUシーケンサ

まずGXdeveloperの設定です。
 COM9と9600baudを選択します。

仮想COMポート hw-vsp3は設定変更はなしと思います。

 BUFFALO WLI-UC-GNM2無線lanアダプタも変更不要と思います。

 ESP8266の設定書き換えです。
telnetで接続します。

115200baud 8bit パリティなし ストップビット1bitとなってるのを
9600baud 8bit パリティODD ストップビット1bitに変更します。
まず9600baudに変更です。
次にパリティをODDに変更です。

ESP8266から三菱A1SCPUシーケンサまでの回路図です。
 もともとハードウエァフロー制御するためLTC485が4個ある回路の流用ですのでCTSとRTSはショートさせてます。これのDSUB25ピンコネクタを三菱A1SCPUシーケンサにつなぎます。
 そして、PLCとESPとLTCの電源を入れ、ESPをパソコンが 認識してるのを確認し、
GXdeveloperの通信テストを実行します。
  しかし何度やっても以下のメッセージです。  
 ではどこまでが期待通りに動いてるのかです。
   ESP8266の12ピン(TXD)からは GXdeveloperの通信テストを実行毎に信号が出てます。1山100μsecくらいの信号です。9600baudのGXdeveloperの信号と思われます。しかし11ピン(RXD)からは何も応答ありません。

 1mSEC/DIVの12ピンの信号です。
DSUBの2ピンと15ピンには位相が逆になる信号が正常に出てますのでPLCまでは期待通りに振舞っているようです。

ではおかしいところです。
 PLCからのスイッチングノイズはかなりひどいです。そのせいかもしれません。PLCにDsubをつなぐとESPの電源に±0.7V位のノイズがのります。

 また、ESP8266の12ピン(TXD)から120Kbaudくらいの不可解な信号が時々出ます。(2段目)60㎳くらいの間120Kbaudくらいの信号を出した後80㎳くらいの間0.5Vくらい下がります。何度捕まえても同じ形です。
先の波形の拡大です。

50μsec/DIVです。2段目です。115200baudのようです。
ESPから勝手に何か出してるようです。
 その内にESPが黙り込みました。 パソコンから消えました。時々あります。何度か電源を入れなおして復活させます。通信テストを繰り返しますがESP8266の12ピン(TXD)から1山100μsecくらいの信号が出てますが、11ピン(RXD)からは依然何も応答ありません。
 ここでいったんテストを打ち切ります。
 ESP8266を使用してのGXdeveloper無線化は私にはまだ無理のようでした。
自分の知識と技能がアップしたときに再挑戦します。



ESP-8266で遊ぶ その2

ESP8266で遊んでます
 beckdac/ESP8266-TRANSPRENT-BRIDGE
というファームウェアを書き込んで 2台のパソコンで通信させます。
  準備
   ESP8266 
   ファームウェア beckdac/ESP8266-TRANSPRENT-BRIDGE
    AE-UM232R(USBシリアル変換モジュール)
   パソコン2台 (内1台は無線lanが使えるもの)
    仮想comポートソフト hw-vsp3

ファームウェアはしたの場所からダウンロードしてきます。
 この2つのバイナリファイルを書き込みます。

このあと一度電源を切ってからflashbootモードにして電源を立ち上げたところまたもや問題発生。パソコンのワイヤレスネットワークの選択画面で一瞬表示されて消えてしまいます。
 結局、電源の問題でした。
 1Aクラスの3.3vのレギュレータをもう1台並列にいれて正常に表示されるようになりました。それでも2.9vくらいまで低下します。 ブレッドボードの接触不良のせいかもしれませんが。

無線lanパソコンで認識している様子です。
 無線で接続した後
TERATERMを使いtelnetで192.168.4.1でポート23で接続します。
下のコマンドでokが返ってくれば接続は正常にできてます。

   +++AT MODE 3
   +++AT STA ssid password の2行を書き換えます。
ssid passwordには、無線lanのアダプタのssidとパスワードをかっこなしで書きます。

次に無線lan側のパソコンに仮想comポートを作ります。
   hw-group.comから  hw-vsp3-single_3-1-2.exeというソフトをダウンロードしてきて無線lan側のパソコンに解凍します。
   hw-vsp3の設定です。

    SETTING   チェックを全てはずす

    ポートネーム COM9
           IPアドレス  192.168.4.1(ESPのアドレス)
    ポート    23
 設定の後CREATE COMを押すと動作します。


 全体でこのようになってます。
           TERATERM  (COM9 115200baud  CR+LF)

             ⇅     (COM9)

        仮想COMポート hw-vsp3

             ⇅     

                         BUFFALO WLI-UC-GNM2無線lanアダプタ

             ⇅   (WIFI)

            ESP8266

             ⇅  (UART)

           AE-UM232R  

             ⇅  (COM3)

           TERATERM  (COM3 115200baud  CR+LF)







 無線lan側のパソコンでのTERATERMです。

 ESPをつないだ方のパソコンです。
これで双方向からのシリアル信号を相手に送れます。つまり、UARTを無線化できた事になります。
     続く。