home.gif

主にCADツールやサーバ管理など、知財や共同研究に関係しない事項についてはこちらに書いておきます。気が向いたら分類していますが、分類方針があやふやなので、結局、検索しないとだめかも。


目次


コメント欄

コメントはありません。 コメント/公開作業日誌?

お名前:

LSI設計CAD関連

Cadence Virtuoso

  • ver.6.1.5を使う場合、ver.6.1.4で作成したライブラリを読み込むことができるが、レイアウトにDRCエラーが出ることがある。一旦、ver.6.1.4のライブラリからストリームアウトし(ver.6.1.5でよい)、ver.6.1.5で新規に作成したライブラリへストリームインすることにより、DRCエラーが出なくなる。

Mentor Calibre

  • テクノロジファイルに、GDSレイヤー情報がない場合、レイアウト検証が正常に行えない。レイアウトをエクスポートするためのGDSレイヤーマップを設定する必要がある。
    • Cadence VertuosoからCalibreを起動する場合は、Virtuosoのメニューより、Calibre - Setup - Layout Export... を選択
    • Layer Map File欄に、レイヤーマップファイルを入力して、OKをクリック

Synopsys HSPICE

  • Cadence ADE環境からHSPICEを呼び出した場合、ビュワーが自動起動しない。ADE-XLでシミュレーション結果リストを選択して、グラフ表示ボタンをクリックして表示されることができる。

DAW関連

KORG microKEY のMIDIチャネル設定

KORG microKEYは、本体でMIDIチャネルが設定できないので、PCの専用ソフトから設定を書き込む。

  • 参考:microKEYはキーのタッチは悪くないので、練習すれば何とかなるかもと思ったが、和音や速いパッセージを引くのは、やはり難しい。リアルタイム入力する人は、場所を取るが、フルサイズキーのほうが安全。
  1. microKEYをUSB接続した状態で、KORG KONTROL Editorを起動し、MIDIチャネルを設定する
    korg_editor03.png
  2. KORG KONTROL Editorのメニューより、[転送] - [シーン・データを書き込み]で、本体に書き込む
    • 書き込んだ情報は、電源を切っても保持される
  3. KORG KONTROL Editorのメニューより、[編集] - [環境設定...]を選び、下記のように設定する
    • microKEYに書き込まれた設定値を自動的に読み出すように設定
      korg_editor04.png

KORG nanoLONTROL2 の動作モードとMIDIチャネル設定

KORGのコントロールサーフェスを入手したので、DAWに設定をしてみた。

  • CCモード:MIDIのコントロールチェンジ・メッセージを割り当てる方式(ACID, Abilityはこちら)
    1. SET + CYCLEボタンを同時押ししてUSBに接続
    2. nanoLONTROL2をUSB接続した状態で、KORG KONTROL Editorを起動し、MIDIチャネルを設定する
      korg_editor01.png
    3. KORG KONTROL Editorのメニューより、[転送] - [シーン・データを書き込み]で、本体に書き込む
      • 書き込んだ情報は、電源を切っても保持される
    4. KORG KONTROL Editorのメニューより、[編集] - [環境設定...]を選び、下記のように設定する
      • nanoLONTROL2に書き込まれた設定値を自動的に読み出すように設定
        korg_editor02.png
  • Liveモード:Ableton Live用の設定
    1. SET + STOPボタンを同時押してUSBに接続
    2. MIDIチャネルの設定は、CCモードと同じ
    3. Liveの[環境設定]を開き、コントロールサーフェス=Maclie Controlを選択
  • その他のDAWモード
    1. その他のDAW対応モードも用意されているようですが、私は使わないので、説明書を見てください

KORG nanoKONTROL2 のLEDを点灯させる

上記のCCモードでは、ボタンのLEDが、ボタンを押したときだけ点灯する。ミキサーのS(Solo), M(Mute), R(Rec)ボタンの状態に合わせて、nanoKONTROL2のLEDを点灯させてみる。

  1. nanoLONTROL2をCCモードでUSB接続した状態で(上記参照)、KORG KONTROL Editorを起動し、S, M, Rボタンに対して、下図のように設定する
    korg_editor05.png
  2. KORG KONTROL Editorのメニューより、[転送] - [シーン・データを書き込み]で、本体に書き込む
    • または、下記のファイルをダウンロードし、メニューより、[ファイル] - [開く...]で、設定を読み込み、[転送] - [シーン・データを書き込み]で、本体に書き込む
  • [注意1] ACIDでは、上手く動作しないらしい。
  • [注意2] Abilityでは、下記「Ability で KORG nanoKONTOL2 を使用」の項で使用したコントロールサーフェス設定ファイルfilenanoKONTROL2.ucdを再度ダウンロードして、設定し直してください(2016.8.22以前にダウンロードした場合)。

Ability で KORG nanoKONTOL2 を使用

  1. 下記の nanoKONTROL2.ucd をダウンロード
  • 2016.8.22: 上記コントロールサーフェス設定ファイルを修正しました。これ以前にダウンロードした場合は、再度ダウンロードして、設定し直してください。
  1. C:\Program Files\INTERNET Co.,Ltd\ABILITY\MidiController?\ の下に、nanoKONTROL2.ucd をコピー
  2. Abilityを起動
  3. Abilityのメニューより、[設定] - [MIDIポートの設定...]を選択
    1. MIDI IN / MTCタブをクリックし、nanoKONTROL2 をMIDIポートとして設定して(何番のMIDIポートでも良い)、OKボタンをクリック
  4. Abilityのメニューより、[設定] - [コントロールサーフェス...] で、定義ファイルに nanoKONTROL2.ucd を指定して読み込む
    1. 上記設定ファイルでは、下記の設定になっているので、必要に応じて変更
      • MIDIチャネルは、3を使用
      • 右端のフェーダーは、マスターフェーダーに割り当て
      • SETボタンは、曲の頭に移動
    2. 同フォームのコントロールサーフェス用入力ポートの設定で、nanoKONTROL2 を選んで、OKボタンをクリック
  5. nanoKONTROL2をCCモードで起動して使用

ACID で KORG nanoKONTOL2 を使用

  1. 下記の nanoKONTROL2.xml をダウンロード
  2. C:\Users\<ユーザ名>\AppData?\Local\Sony\ACID Pro\7.0\標準コントロール マップ\ の下に、nanoKONTROL2.xmlをコピー
  3. ACIDを起動
  4. ACIDのメニューより、[オプション] - [ユーザ設定...] を選ぶ
  5. MIDIタブをクリックし、「次のデバイスをMIDI入力に使用できるようにする」欄で、nanoKONTROL2 をMIDIポートとして選択し、適用ボタンをクリックする(MIDI出力指定は不要)
  6. 外部コントロール&オートメーションタブをクリック
  7. 使用できるデバイス=標準コントロール を選択し、追加ボタンをクリック
  8. アクティブなコントロールデバイス欄に、「標準コントロール」デバイスが表示されるので、これを右クリックして、ポップアップリストで「設定」を選択
  9. 標準コントロールの設定画面が開くので、開く...ボタンをクリック
  10. コピーしておいた nanoKONTROL2.xml を選んで、開くボタンをクリック
    1. 上記設定ファイルでは、下記の設定になっているので、必要に応じて変更
      • MIDIチャネルは、3を使用
      • 右端のフェーダーは、マスターフェーダーに割り当て
      • プレビューフェーダー(ループのモニタ)への割り当てはない
    2. 同フォームのMIDI入力欄で、nanoKONTROL2 1 を選んで、OKボタンをクリック
  11. nanoKONTROL2をCCモードで起動して使用

Abilityのプラグインスキャン手順

  1. ニュー:設定 - フォルダの設定...
  2. VST2xプラグインが存在するフォルダ欄に、追加ボタンをクリックしてVSTフォルダを指定
  3. VST情報を再構築をチェックしてOKボタンをクリック
  4. メニュー:設定 - VSTプラグイン設定...で、必要のないVSTのチェックを外す

ACIDのプラグインスキャン手順

  1. ACIDのプラグインマネージャー(最下側のタブまたは、メニュー:表示-プラグインマネージャー)を選択
  2. プラグインマネージャーの上側アイコンからVSTの設定を選ぶ(一番右のレンチアイコン)
  3. VSTフォルダを追加してスキャン
  4. プラグインマネージャのツリーに、インストールしたVSTが表示されていることを確認

George Yohng's W1 Limiter

大抵のDAWには、マスタリングエフェクトとしてマキシマイザが付属している。ACIDには、iZotopeが付属していたが、現在はダウンロードできないようなので、とりあえず、W1 Limiter を入れておく。ACIDには、Sony マルチバンドダイナミクスが付いているので、好きな方を使用。

  1. ダウンロード先は、Yohng.com
  2. 解凍して、32bit, 64bit VSTをそれぞれの標準VSTプラグインディレクトリ(例:VSTPlugins, VSTPlugins 64)にコピー
  3. DWAでプラグインのスキャンを行う

Roland A-PROの初期設定

A-PROをコントロールサーフェスとして使用するときの最初の設定です。購入直後とファクトリーリセットを行ったときだけ、お好みにより実行します。

  1. [ACT]+[左三角]ボタンでEDITモードにする
  2. [VALUEつまみ]で、SYSTEM SETTINGを選んで、ENTER(VALUEボタンの上)を押す
  3. [VALUEつまみ]で、L9 FUNCTIONを選んで、ENTERを押す
  4. [VALUEつまみ]で、L9を選んで、ENTERを押す
    • HOLDボタンにMIDIメッセージを割り当て、L9ボタンとして使用する
  5. 再度、[ACT]+[左三角]ボタンでEDITモードにする
  6. [VALUEつまみ]で、SYSTEM SETTINGを選んで、ENTER(VALUEボタンの上)を押す
  7. [VALUEつまみ]で、STARTUP MEMORYを選んで、ENTERを押す
  8. [VALUEつまみ]で、LAST ACC MAPを選んで、ENTERを押す
    • 電源ON時に、前の電源OFF時のコントロールマップ設定を呼び出す(デフォルトでは、コントロールマップ0番が呼び出される)

Roland A-RPOのコントロールマップ設定

ローランドA-PROのキーは、ハンマーアクションがないが、打鍵反射が速い割にキータッチが軽いので、トリルやグリッサンドを多用するオルガン弾きには扱いやすいキーだと思う。付属ソフトのAbleton Liveなどの各種DAWソフト用のコントロールマップがプリセットされているが、AbilityとACIDのコントロールマップが付いてなかったので、自分で作ってみた。

  1. 下記の コントロールマップをダウンロード
  2. A-PRO本体をUSB接続した状態で、A-PRO EDITORを起動
  3. メニューより、[オプション] - [MIDIデバイス...]を選び、入力ポート=A-PRO 2, 出力ポート=A-PROを選ぶ
  4. メニューより、[ファイル] - [開く...]で、ダウンロードしておいたコントロールマップを読み込む
  5. A-PRO EDITOR画面上で、Comtrol Map=19 を設定
    • A-PRO本体は、0~19のコントロールマップメモリを持っているので、何番を使っても良いが、ここでは、工場出荷時にプリセットされていない19番を使用
  6. A-PRO EDITOR画面上のTransmitボタンをクリックして、本体にコントロールマップを書き込む
  7. A-PRO本体の[左三角]ボタンで、CTRLマップモードにすると、LCD画面に「CTRL MAP 番号」が表示される
  8. [VALUEつまみ]で、19 を選ぶ
    • 上記、Roland A-PROの初期設定を実行した場合は、次回電源投入時には自動的にコントロールマップ19が選択される
  9. 設定を変更する場合は、A-PRO EDITORで修正を行う。
    • 注: Button Modeは、Unlatchにすると、ボタンを押す度にON/OFFが切り替わり、Latchにすると、押したときだけONになる。
    • コントロール番号の右側の数字はMIDIチャネル。MIDIポートは、色で分けられている。
      A-PRO_CC.png

Roland A-PROをAbilityのコントロールサーフェスとして使用

  1. 下記の A-PRO.ucd をダウンロード
  2. C:\Program Files\INTERNET Co.,Ltd\ABILITY\MidiController?\ の下に、A-PRO.ucd をコピー
  3. Abilityを起動
  4. メニューより、[設定] - [MIDIポートの設定...]を選択
    1. MIDI IN / MTCタブをクリックし、A-PRO 1とA-PRO 2をMIDIポートとして設定して(何番のMIDIポートでも良い)、OKボタンをクリック
      • A-PROは2個のMIDI出力ポート(A-PRO 1とA-PRO 2)を持っているので、キーボードの情報(ノートやベロシティ)をA-PRO 1から取得し、コントロールサーフェスの情報をA-PRO 2から取得する
  5. メニューより、[設定] - [コントロールサーフェス...] を選び、定義ファイルに A-PRO.ucd を指定して読み込む
    1. 上記設定ファイルでは、下記の設定になっているので、必要に応じて変更
      • MIDIポート=A-PRO 2, MIDIチャネル=1 を使用
      • PAUSEボタンは、停止ボタンと同じ
      • HOLDボタンは、曲の先頭に戻る
      • A1~A8は、チャネルRECボタン
      • B1~B4は、トラックのシフト
    2. 同フォームのコントロールサーフェス用入力ポートの設定で、A-PRO 2 を選んで、OKボタンをクリック

Roland A-PROをACIDのコントロールサーフェスとして使用

  1. 下記の A-PRO.xml をダウンロード
  2. C:\Users\<ユーザ名>\AppData?\Local\Sony\ACID Pro\7.0\標準コントロール マップ\ の下に、A-PRO.xml をコピー
  3. ACIDを起動
  1. ACIDのメニューより、[オプション] - [ユーザ設定...] を選ぶ
  2. MIDIタブをクリックし、「次のデバイスをMIDI入力に使用できるようにする」欄で、A-PRO 1とA-PRO 2をMIDIポートとして選択し、適用ボタンをクリックする(MIDI出力指定は不要)
    • A-PROは2個のMIDI出力ポート(A-PRO 1とA-PRO 2)を持っているので、キーボードの情報(ノートやベロシティ)をA-PRO 1から取得し、コントロールサーフェスの情報をA-PRO 2から取得する
  3. 外部コントロール&オートメーションタブをクリック
  4. 使用できるデバイス=標準コントロール を選択し、追加ボタンをクリック
  5. アクティブなコントロールデバイス欄に、「標準コントロール」デバイスが表示されるので、これを右クリックして、ポップアップリストで「設定」を選択
  6. 標準コントロールの設定画面が開くので、開く...ボタンをクリック
  7. コピーしておいた A-PRO.xml を選んで、開くボタンをクリック
    1. 上記設定ファイルでは、下記の設定になっているので、必要に応じて変更
      • MIDIポート=A-PRO 2, MIDIチャネル=1 を使用
      • HOLDボタンは、曲の先頭に戻る
      • A1~A8は、チャネルRECボタン
      • B1~B4は、トラックのシフト
      • プレビューフェーダー(ループのモニタ)への割り当てはない
    2. 同フォームのコントロールサーフェス用入力ポートの設定で、A-PRO 2 を選んで、OKボタンをクリック

サーバ管理関係

PukiWiki上でURL指定により画像を指定するとき、画像表示サイズが変更されない件

  • Pukiwiki.ini.phpに下記のように設定する
  • define('PLUGIN_REF_URL_GET_IMAGE_SIZE', TRUE);

PukiWikiページのパスワード設定

  • PukiWiki-officialの説明を参照: https://pukiwiki.osdn.jp/?PukiWiki/Authentication
    • 認証方式、ユーザIDとパスワード設定、閲覧|編集|検索制限ページの指定
      • 例: ABC/以降のページ $read_auth_pages = array( '#^ABC/#' => 'hoge',);
    • ユーザIDとパスワードの設定
      • 例: $auth_users = array('hoge' => '{x-php-md5}***********************',);
      • ****部分(MD5パスワード)の作成: echo -n 'パスワード' | md5sum

LTspice関係

OS X (Mac)へのインストール

  1. MikuInstaller?をインストール(Wineインストーラ)
  2. リニアテクノロジー社よりLTspiceIVをダウンロード
  3. ダウンロードしたLTspiceのインストーラ(.exe)をMikuInstaller?にドラッグでインストール

Linuxへのインストール

  1. 下記のURIよりOS(ディストリビューション)に合わせてWineをダウンロードしてインストール
  2. リニアテクノロジー社よりLTspiceIVをダウンロード
  3. コマンドラインより wine LTspiceIV.exe でLTspiceをインストール

初期設定

初期設定は人の好みなので、使いやすければ何でもよいわけですが。

  • [Tools] - [Control Panel] - [Operation] - Default Window Tile Pattern = Vert
  • [Tools] - [Control Panel] - [Drafting Options] - Orthogonal snap wires = OFF
  • [Tools] - [Control Panel] - [Netlist Options] - Convert 'μ' to 'u' = check
  • [Tools] - [Color Preferences] - [Selected Item = Background], Red = Green = Blue = 255

LTspice雑記帳

検索すれば、LTspiceの優れた解説ページやブログがたくさん見つかるので、いまさら解説ページを作成する意義は小さいのですが、講義のシミュレーション演習や自宅での学習の際、忘れやすい事項について参照するためのノートとしてまとめたものを以下のURIに置きます。

MOSES関係

2015.02.22: MOSES for Windowsのインストールと設定手順

  • Moses を適当なディレクトリにコピー(例: C:\Moses)
  • テクノロジデータのディレクトリを作成(例: C:\Moses\LIB)
  • テクノロジの種類別ディレクトリを作成(例: C:\Moses\LIB\CMOS_2u)
  • テクノロジの種類別ディレクトリに cex.mdl, drc.md, mos_tt.lib をコピー
  • gex.defが供給されている場合は、これもテクノロジの種類別ディレクトリにコピー(MakeLSIでは、Mosesディレクトリに含まれている)
  • Windowsに環境変数を設定(Windows7 の場合)
    • コンピュータを右クリック -> メニューでプロパティを選択
    • システムの詳細設定をクリック
    • システムのプロパティウインドウが表示されるので、環境変数...ボタンをクリック
    • ユーザ環境変数欄で、新規ボタン...で、以下の環境変数を入力(既に変数が定義されている場合は、編集...ボタンをクリックし、 ; で区切って追加)
      • PATH = %PATH%;C:\Moses (インストールディレクトリ)
      • GEXLIB = C:\Moses\LIB\ (テクノロジデータのディレクトリ)
      • RULE = CMOS_2u (テクノロジの種類別ディレクトリ)
  • GEX(レイアウトエディタ)本体のショートカットを作成
    • インストールディレクトリ\wgex.exeを右クリックし、スタートメニューに表示するを選択
    • Windowsのスタートメニューで、wgexを右クリックし、プロパティを選択
    • 作業フォルダー欄に、レイアウトデータを保存するディレクトリを指定(例: C:\Moses\WORK)
      • 作業フォルダーは事前に作成しておくこと
  • スタートメニューから、WGEXを起動
  • WGEXのメニューより、ファイル -> 新規作成
  • WGEXのレイヤー設定が使用するテクノロジになっていない場合は(テクノロジの種類別ディレクトリにパスが通っていない場合)、以下のようにしても設定できる
    • WGEXのメニューより、設定 -> 定義ファイルを設定
    • 使用テクノロジに対応するgex.def を選択
  • 以上でレイアウト作業を開始できる

PSoC Designer関係

プロジェクトのPSoCデバイスを後から変更する(ver. 5.4以降)

  1. New Projectフォームで、プロジェクト名、保存場所を設定し、Project CreationをClone Existing Projectに変更
  2. Clone from Project欄右側の ... ボタンをクリックして、旧デバイスで作成したプロジェクト内の .soc ファイルを選択
    • .socファイは、プロジェクト名/プロジェクト名/プロジェクト名.soc に保存されている
  3. その下のラジオボタンから、Select target device を選択
  4. Select Target Device欄の Device を、新しいターゲットデバイスに設定
  5. OKボタンで、旧プロジェクトで使用している機能が、新デバイスへの移行が可能かどうかをチェックした結果が表示される
  6. Cloneボタンをクリックすると、新デバイスに変更したプロジェクトが作成される
    psoc20161203.png

プロジェクトのPSoCデバイスを後から変更する(ver. 5.2以前)

  1. 新規プロジェクトを作成すると、次に Select Project Type フォームが開く
  2. Clone project欄の Path の Browse...ボタンで、旧デバイスで作成したプロジェクト内の .soc ファイルを選択
    • .socファイは、プロジェクト名/プロジェクト名/プロジェクト名.soc に保存されている
  3. その下の Select target device のラジオボタンを選択
  4. Select Target Device欄の Device を、新デバイスに設定
  5. OKボタンで、新デバイスへの移行が可能かどうかをチェックした結果が表示される
  6. Cloneボタンをクリックすると、新デバイスに変更したプロジェクトが作成される

PSoCのデバイス選択

デバイスの比較については、各種の解説ページやCypress社のドキュメントに説明されているが、実際には、メモリ容量や、アナログ/ディジタルブロック数を考えてデバイスを選択することは難しい。多くの場合は、使用できるユーザモジュールやIOピン数で選択することが多いと思われる。私の場合は、以下の基準で探しているが、妥当かどうかは不明。

  • CY8C29466-24PXI(28DIP)
    • DIPが入手できる汎用デバイスとして
    • ディジタルブロックがCY8C28445より多い
      • 例えば、UART4個, RX, TX単体なら8ポート搭載可能
  • CY8C29666-24LFXI(48MLF)
    • 小型化できる汎用デバイスとして
    • IO数が多い
      • MLFの半田付けには少し気合いが必要
  • CY8C28445-24PVXI(28SSOP)
    • 複雑なアナログ処理を行う場合
    • デルタ-シグマ型ADCの同時4入力が可能
      • デシメーションフィルタ専用ブロックが4系統ありディジタルブロックを消費しない
    • インクリメント型Triadc(同時3入力)、Dualadc(同時2入力)なら他のデバイスでも可能
      • PSoC1のADCはあまり高速ではないので、データの同時性が要求される場合AMUXによるアナログ入力切り替えでは補間が必要。同時サンプリングが必要無い場合は、インクリメント型ADCをAMUXで切り替えて使用する
    • DACは4個まで可能
    • CapSense?可能
    • 2系統のI2Cコントローラ専用ブロックが用意されている
  • CY8C21534-24PVXI(28SSOP)
    • CapSense?(20入力)を使いたいとき
    • USB-UARTを使うときはCY8C24794-24LFXI

UARTとTX8, RX8の使い分け

UART, TX8, RX8, TX8SW(TX8のソフトウエア版)がある。UARTは双方向、TX8は送信専用、RX8は受信専用となっている。高レベルAPIはどれも殆ど同じ。複数のシリアル通信ポートが必要な場合には、使い分けが必要。例えば、多数のセンサによる計測システムでは、コマンドを送るための送信ポート1個と計測データを吸い上げるための受信ポートが多数必要となる。従って、1個のTX8と、多数のRX8を実装することになる。また、PCと1対1の通信を行う場合には、UARTを1個使用したほうが便利。

I2CとUARTの使い分け

I2Cは2線のBUS接続であるため、複数のチップ間の通信を容易に行え、また拡張性が高い(7bitアドレス)。しかし、データレートが100kまたは400kbpsに限られ、CPUクロックも制約を受ける。UARTは、BUS接続ではないため、通信相手毎にポートを作る必要がある。CY8C29466では、RX, TXの合計で8ポートまで。この範囲内であれば、UARTを使用することで、高速化が可能。UART接続でデバイス数を増やしたい場合は、ヘッダにデバイス番号を追加し、2つのUARTポートをスルーさせるように接続することで実現可能。ただし、この接続法では、ソフトウエア処理が挟まるため、デバイス間の遅延が発生し、処理の同時実行はできないので、別途割り込み専用の配線が必要となる。

VC3のアナログブロックでの利用

通信と計測を行う場合、異なるクロックが必要となる。クロックを分周した周波数ソースとして、VC1, VC2, VC3が用意されているが、分周比が大きい(低周波)のはVC3である。VC1, VC2で通信用のクロックを作成したとき、VC3でDACやADCを動かしたいことがあるが、アナログブロックのクロックとしてVC3が選択できない。別途カウンターを用意する方法もあるが、ディジタルブロックを複数消費するので、Misc Digital/DigInv?(インバータ)の入力をVC3とし、Analog Clock Select(アナログクロックのMUX)で、DigInv?を置いたディジタルブロックを選択して、アナログクロック他院に接続する。DigInv?ClockSync?をSync to SysClk?にしておくこと。インバータを通すので、アナログ部とディジタル部のクロック位相が180度ずれてしまうが、ADCやDAC単体では問題ないようだ。回路間の接続によっては、クロックの位相に注意が必要。DigBuf?というものもあるが、なぜか上手く動作しない。何かの設定が必要なのかも。

不揮発性メモリのエミュレーション

センサやADCの較正値の保持や前回終了時(電源OFF時)の状態の復元などに不揮発性メモリが必要なことが多い。大容量が必要ない場合には、外部マイクロSDモジュールを接続すしなくても、PSoC内のフラッシュメモリに書き込む方法が用意されている。

  • レイアウト画面で、E2PROMを配置(ブロックは消費しない)
  • Workspace Explorerで、flashsecurity.txtをダブルクリックして開く
    • flashsecurity.txtタブを選び、フラッシュメモリブロックの配置を調べる。1文字=1ブロック=64Byte(0x40Byte)を表す
    • 初期状態では、全領域 W(Write protected)になっている。デバイスに搭載されているフラッシュメモリ容量とプログラムの大きさを考慮して、使用するメモリ領域をU(Unprotected)に変更
    • Uに変更した領域の先頭ブロック番号を数えておく(1からスタート)
  • レイアウト画面に戻り、Parameters欄で、First Block(先頭ブロック番号※), Length(バイト)を入力する
    • ※ First Blockは、アドレスではなくブロック番号なので注意
    • First Blockの先頭アドレスが、プログラムで指定するアドレスの0番となる
  • E2PROM_bE2Write(先頭アドレス, データポインタ, データ長Byte, 温度), E2PROM_E2Read(先頭アドレス, データポインタ, データ長Byte) により書き込み/読み出しを行う
    • E2PROM_Start/E2PROM_Stop関数があるが使用しなくてもよい
    • E2PROM_bE2Writeの最後の引数は、PSoCの温度(摂氏)となっている。Flashメモリの書き込み特性の温度依存性に対応。温度測定モジュールFlashTemp?を使用するか、外部温度センサを利用または通常の使用環境温度を想定して値を代入。

FirstTouch?の回路図

自作の楽しみはないけれど、センサー、ブザー、LED、プログラマなど、全部付いていて、色々な実験ができるマイコンボードが3,000円ほどで買えるということで、早速、講義の演習に使用してみたが、学生には受けないようだった。CY8C21434 が搭載されていて、キャップセンス(タッチセンサ)も使える。

first_touch_SZ.jpg

評価ボード部分の等価回路図。

ftmf_circuit.png

評価ボードには、GPIOがピンヘッダーに接続されており、拡張が可能。写真はブレッドボードに挿せるようにした変換基板。RS232Cポートも付けてあるが、今ならUSBポートだろう。

br_ext_board.jpg

タッチイルミネーション

PSoC FirstTouch?の近接センサ(人体センサ)を使ったカラーイルミネーションの例

lab00_SZP.jpg
  • lab00.lzhをダウンロードして、適当な場所で解凍する。
  • lab00ディレクトリ内のlab00.appをダブルクリックするとPSoC Designerが起動する
  • PSoCデザイナのメニューより、Build - Generate/Build 'lab00' Projectを選ぶ
  • PSoC Device Configuration Selectionフォームで、CY8C21434 32-Pin(FirstTouch?に搭載されているPSoCの型番)が選ばれているのを確認してNextをクリック
  • User Pin Assignmentフォームで、Nextボタンをクリック
  • ファームウエア(組み込みプログラム)のコンパイルが始まる
  • Output欄に 0 error(s) 0 warning(s) と表示されていることを確認
  • FirstTouch?をプログラマに評価ボードを挿した状態で、PCのUSBポートに接続
  • PSoCデザイナのメニューより、Program - Program Part...
  • Program Partフォームで、Port SelectionがFirstTouch?/番号となっているのを確認
  • 下のステータスバーにConnectedと表示されているのを確認
  • 水色の矢印ボタンをクリックすると、PSoCにファームウエアがダウンロードされる
  • 下のステータスバーにPassと表示されているのを確認
  • これで、評価ボードがProximity Sensorとして動作するはず。電源はUSBから供給されているので、USBに挿したまま動作確認する。もし、電源が供給されていないようなら、Program Partフォームの電源マーク(丸に縦棒)をクリックする

LED体温計

lab02.lzhをダウンロードして、適当な場所で解凍してください。下記の回路図に合わせて、IOポートやクロックの設定をする必要があります。 LEDの色で体温を測る、LED体温計。30 - 40度ぐらいの温度を細かく測定する必要があります。ここでは、室温付近での温度変化を増幅する代わりに、ソフトゥエアでADCの変換結果(adc_out)を変数sensの倍率に拡大しています。但し、ソフトゥエアで増幅すると、その倍率に比例して精度(LSB当たりの変換電圧)が落ちることになります。精度を落とさないためには、ADCの前にアナログ電圧を増幅する方法がありますが、FirstTouch?に搭載されているPSoC CY8C21434には、Programmable Gain Amplifier のモジュールがありません。このため、ADCの変換ビット数を高くする必要があります。1bitの増加は、約6dBの増幅に相当します。

lab02_circuit.png

Thermistorは、温度によって抵抗値が変化するデバイスです。FirstTouch?に付いているものは、摂氏25度で10kohm, 温度依存性は、Cypress社のWEBページでAN2395というドキュメントに含まれる自動計算ソフトで計算できますが、ここでは、温度を数値で表すわけではないので、必要ありません。Zener (Zener diode)は、逆方向バイアスを加えると、一定電圧に保つことができるダイオードです。FurstTouch?には、2.4Vに保つダイオードが付いていて、これで一定電圧をThermistorに加えます。基準とする温度のときのTermistorの電圧を基準電圧(2.4V)/2となるように設定することで、その温度を中心として温度測定ができます。このため、10kohmの抵抗を接続しています。BGR(Bandgap Reference)は、ADCのMSBに相当する電圧を決める基準電圧源として使用しています。Thrmistorの出力電圧をADCでディジタル値に変換後、CPUにデータを転送し、2個のPWM回路のDuty Ratioを設定し、BlueとRedのLEDの明るさを制御して、色を変化させます。

PSoC Creator関係

PSoC Creatorのコンパイラライセンス登録

PSoC Creator をインストールすると、PSoC Creatorの登録画面が自動で起動するので、そのまま登録すればよいが(Cypress社のアカウント登録が必要)、コンパイラのライセンス登録は手動で行う必要がある。

  1. PSoC Creatorの初回起動時、または、PSoC Creatorのメニューより: Help - Register - Keil...
  2. Keil License Registrationフォームで、Get License online ボタンをクリック
  3. ライセンスリクエスト用のWEBページが表示されれ、必要事項(太字の項目)を入力して送信すると、メールでライセンスコードが送られてくる
  4. メールのLicense ID Code (LIC)の文字列を、Keil License Registrationフォームの New License ID Code (LIC): 欄にコピペ
  5. Add LICボタンをクリックすると、Support Period が更新される。ライセンスの有効期間は1年のようだ。

TWE-lite (ZigBee?)関係

TWE-Liteインタラクティブモード

  • TWE-Liteには、ファームウエアを書き直さずに設定を変更するインタラクティブモードがあるが、親機と子機では、インタラクティブモードへの入り方が異なる。
    • ターミナルでシリアルポートで接続したら、通信速度を115200bpsに変更。改行コードを、受信=CR, 送信=CR + LF にする
    • 親機:TWE-Lite R(ライター)等でPCに接続し、+をゆっくり3回入力
    • 子機:TWE-Lite R等でPCに接続し、26番ピンをGNDに落とした状態(基板にタクトスイッチをつけておくとよい)で、リセット(TWE-Lite Rの場合は、リセットスイッチを押す)
      • 注意:TWE-Lite R を5ピン接続している場合は、USBから電源が供給されないので、別途、基板への電源供給が必要。

モノスティックのアプリ変更

  • 出荷時は、標準アプリがインストールされているため、子機側が標準アプリの場合は、そのまま使用する
  • 子機側が、無線タグアプリの場合は、モノスティック(親機)も無線タグアプリにする
    • ver.2(App_Tag_bin_2) と ver.1(Samp_Monitor_bin_1)があるので、親機と子機でバージョンを合わせる(合わせなくてもよいらしい)

子機のアプリ変更

  • TWE-lite-Rで接続して、TWE Programmerを使用
    • 注意:TWE-Lite R を5ピン接続している場合は、USBから電源が供給されないので、別途、基板への電源供給が必要
    • ver.1.5 以降では、option bits = 0x000004** を設定する(起動時のOTAを禁止)
    • ver.2には、BLUE(標準出力)用とRED(高出力)用の2種類が用意されている。通常はBLUEを使用

Bluetooth関係

RBT-001のUART通信速度設定

  • マイクロテクニカRBT-001(Bluetooth2 - シリアルモジュール)のUART通信速度を変更するとき、PCのシリアル端末のスピードを、RBT-001の初期値(工場出荷時は9600)に設定し、設定変更コマンドを送信(3年生自主課題研究では230400)。
    • 結果がRxできていることを悪人する必要がある。設定コマンドが受け付けられていない場合は、Txのみが表示され、Rxが表示されない。
    • 設定は、電源を入れ直した後で反映されることに注意。

工作関係

レーザカッタの作図 (CorelDraw?)

  • CorelDraw?の極細赤線で書くと、切り線になる。
  • 周囲にでこぼこを作りたいときは、四角を貼り合わせて、一辺の線が完全に重なり合うようにする
  • 左のツールバーで、上から3番目(トリミング)のボタンをクリック - メニューが表示されるので、仮想セグメントの削除を選択
  • 線が重なっている部分にマウスカーソルを近づけると、カッターのアイコンが縦になる
  • 線の上をクリックすると、線が重なっている部分が削除され、四角形が一体化する

BNCとSMAケーブルの作り方

こちらに公開

2014.05.01: ワイヤーボンダーの基板は無電解金フラッシュ仕上げ

ワイヤーボンダーを行う基板は、ボンディングランド部分を無電解金フラッシュ仕上げにすること。簡易説明書に書き忘れていた。

近視老眼による半田付け

  • 近視の人は眼鏡を外して半田づけしてみましょう。視力の良い人より半田がうまく付けられる可能性があります。ただし、目が半田溶融部に近くなるので、フラックス等が目に入らないように注意。

老眼の場合、近視用眼鏡をしていると50cm-60cm離れた物しか見えないのですが、眼鏡を取ると、2-3cmのところにフォーカスが来ます。この状態だと、至近距離のため物が大きく見え、正確に半田付けを制御できます。半田付けのポイントは、半田の量と溶け具合を把握することですが、小さなパッド面積では、目が良くても溶け具合の把握が難しいので、精密工作用のレンズを使用するか、至近距離で見える目を持つことが必要です。フラックスで目がやられることだけ注意すれば、SSOP, 0.5mmQFPのほか、QFNやMLFでも半田付けできるようになります。

表面実装パッケージの半田付け

SSOP, QFPなどの表面実装パッケージの半田付け手順

  • ランド周辺にフラックスを塗る
  • ランドに半田を薄く付ける(複数本同時に付けて問題ない)
  • パッケージの位置を合わせて、角のピンを半田で固定する(固定できていればきっちり付いてなくてもよい)
  • 対角のピンも半田で固定する
  • 1本ずつピンの先端付近に半田を盛って半田を付けていく(先に固定したピンもしっかり付ける)
  • テスターでランドとパッケージピンの間の導通、隣接ピンのショートの有無を確認する

QFN, MLFの場合は、位置合わせまで行ったら、ピンセットで抑えて、ホットエアSMD除去機で加熱する。この場合、導通確認は難しいが、ショートの確認は可能。

PCBEによるGerberデータの出力

某P版.comに基板製造を発注したところ、拡張Gerberフォーマットで設計データを出して下さいと言われました。研究室でよく使用されているPCBE ver.0.4では、拡張Gerberフォーマットに対応していないため、PCBE ver.0.4で設計したPCBE0.4形式データを、PCBE ver.0.5で読んで、拡張Gerberデータを出力し、製造発注したところ、うまく製造できるようです。拡張Gerberデータの出力手順については、 http://jaco.ec.t.kanazawa-u.ac.jp/edu/vlsi/pcbe/ に書いておきました。

Microsoft Windows10 関係

プリインストールアプリの削除

プリインストールアプリは、設定画面やコントロールパネルでは削除できないため、Power Shellで以下のコマンドを実行。

  • Get-AppxPackage?
  • または、Get-AppxPackage? | Select-String キーワード
  • インストール情報のリストから削除対象のアプリ_バージョン(例:Microsoft.Office.OneNote_***)を探し、PackageFullName?をコピーしておく
  • Remove-AppxPackage? 先程探したPackageFullName?

これを行う状況の例:Windows10には、何種類かのストアアプリがプリインストールされている。ストアアプリ版OneNote?もプリインストールされているが、これは、ログインアカウントをマイクロソフトアカウントからローカルアカウントに変更すると起動しなくなる。また、ローカルアカウントから関連付けしても復活できない。ただし、デスクトップ版OneNote?では、この現象は起こらない。起動しなくなったOneNote?は、一旦削除して、Windowsストアから再インストール(無料)すると、起動できるようになる。ただし、再インストールしてもローカルアカウントでは起動しない。

MS-IMEの変換が異常に遅い場合の対処

MS-IMEをしばらく使っていると、変換時間が遅くなり、キーボード入力の妨げとなることがある。予測変換に時間がかかっていると思われる。

  • MS-IMEのメニューでプロパティを選択
  • 詳細設定ボタンをクリック
  • 予測入力タブをクリック
  • 予測候補を表示するまでの文字数の数値を15にする(初期値では3)

ローカルアカウントとマイクロソフトアカウント

Windowsのアカウントには、PCに独自に設定したローカルアカウントとストアアプリを利用するときに必要なマイクロソフトアカウントがある。マイクロソフトアカウントを使用して、PCにユーザを作成した場合、ユーザ名がマイクロソフトに登録したままの名前になる。日本語で登録した場合、ユーザ名とホームディレクトリ名が日本語になり、日本語非対応のソフトなどが動作しない等の不都合がある。回避方法として下記が考えられる。

  • マイクロソフトアカウントの氏名を英語に変更する
    • マイクロソフト社のホームページ右上でサインイン
    • 右上メニューからアカウントを表示
    • 基本情報で名前の編集
  • 好きなユーザ名でローカルアカウントを作成し、後で設定画面からマイクロソフトアカウントでのサインイン方式に切り替える
    • この方法では、ユーザ名はマイクロソフトアカウント名に変更されるが、ホームディレクトリ名はローカルアカウントのユーザ名となる

ローカルアカウントのBitLocker?エラー

Windows8.1 の初期設定で、マイクロソフトアカウントではなく、ローカルアカウントを作成すると、システムドライブのBitLocker?が実行できないようで、ドライブエラーとなる(! マークが付くのでわかる)。そのまま使っても問題ないのだが、気持ちが悪いので、マイクロソフトアカウントを関連付けると解消される。しかし、エラーのまま(ローカルアカウントのまま)Windows10にアップグレードすると、BitLocker?解除も実行もできなくなり、エラーをクリアすることができず、Windows8.1再インストールとなる。もしかすると、Windows10のBitLocker?解除方法があるのかもしれないが。

パブリックネットワークとプライベートネットワーク

Windows7/8からWindows10に移行すると、ネットワーク設定が少し変更されていて、設定フォームが見つからないことがあるので、こちらにまとめておく。デフォルトでは、パブリックネットワークに設定されているらしい。

  • 使用中のネットワーク場所の確認
    • スタートメニュー等から[設定](または[全ての設定])を開く
  • ー [ネットワークとインターネット]をクリック
    • 右列のリストで[ネットワークと共有センター]をクリック
    • アクティブなネットワークの表示欄にネットワーク場所の種別が表される
      • パブリックネットワーク:公共Wi-Fiなど
      • プライベートネットワーク:ホームネットワーク、社内ネットワークなど
  • パブリックネットワークとプライベートネットワークの切り替え
    • スタートメニュー等から[設定](または[全ての設定])を開く
    • [ネットワークとインターネット]をクリック
    • 左列のリストで[イーサネット]をクリック
    • 接続済みのアダプターをクリック
    • このPCを検出可能にする欄の下のスイッチのON/OFFを切り替える
  • NETBIOSの設定(社内ネットワークなどで他のPCとファイル共有をしない場合)
    • 上述のネットワークと共有センターの、アクティブなネットワーク欄に表示されている接続(例:ローカルエリア接続)をクリック
    • [Microsoftネットワーク用ファイルとプリンター共有]のチェックを外す
    • インターネット プロトコル バージョン 4 (TXP/IPv4)を選んで、プロパティボタンをクリック
    • [詳細設定...]をクリック
    • WINSタブをクリック
    • NetBIOS設定欄で[NetBIOS over TCP/IPを無効にする]を選択して、OKボタンをクリック

Microsoft Windows7 関係

マウスカーソルをキャプチャーしたいとき

スタート - アクセサリ - コンピュータの簡単操作 で、拡大鏡を起動拡大鏡のウインドウにマウスカーソルを表示した状態で、スクリーンキャプチャーする。

デスクトップに一時的においたファイルが削除できないとき

デスクトップに一時的においたファイルを編集した後、削除ができなくなることがある。但し、この現象が起きるマシンとそうでない名心があるようで、特定マシンで頻繁に起きる。対策は、他のAdministratorアカウントで、ユーザフォルダの相当ファイルを削除する。コマンドラインでの実行は、

  • runas /user:hogehoge cmd (hogehogeはAdministratorアカウント名)
  • パスワード入力
  • hogehogeのコマンド端末で削除を実行

ログイン時にNASに自動接続できないとき

NASへの接続のためパスワードを保存設定するようにしておいても、「ネットワークドライブに再接続できませんでした」と表示され、接続ができないことがある。WindowsのバージョンやWindowsの更新状態にも依存しているようだ。いろいろな対処法が考えられるが、簡単な方法は以下の通り。Windows7 64bit Ultimate で動作確認(このバージョンは、金沢大学のMS包括ライセンス協定で提供されている)

  • コントロールパネル > ユーザーアカウントと家族のための安全設定 > 資格情報マネーージャー
  • Windows資格情報の追加
  • NASのサーバ名、ユーザ名、パスワードなどを設定してOKボタン
    • 以上の方法は、アカウントごとに行う必要がある

ATOKの言語バーが消える

ATOK2010以降変換精度が低いという噂があり(辞書の引き継ぎの問題では?)、ATOK2009を使い続けている人が多い。しかし、Windows7では、ATOK2009の言語バーが消えて使えなくなることがある。私の場合、Windows7 (64bit)でこの現象を確認した。ただし、この現象が出たのは、Dell OPTIPLEX のみで、他のマシンでは問題なく動作している。応急対処法は以下のとおり。

  • コントロールパネル > キーボードまたは入力方法の変更
  • キーボードの変更...ボタン
  • ATOK2009を選んで、プロパティボタンをクリック
  • ATOKプロパティウインドウの設定項目から、表示・ATOKナビを選ぶ
  • カーソル位置に入力モードを表示欄で、"しない"を選択
  • OKボタンで設定終了

2015.02.22: winmail.datの対処

Microsoft outlook から送信されたメールを受信すると、winmail.datという添付ファイルになっていることがある。このままでは、添付ファイルが読めないので、Gmailに転送して読む。専用のリーダソフトもあるようだが、稀に来るwinmail.datのために専用ソフトをインストールするのは面倒だ。

Microsoft Office関係

Wordに背景を貼り付ける

事務文書や推薦書などの専用様式が印刷物で提供されることが多い。スキャンした画像を背景として設定し、上に文字を入力すれば、プリント時の位置合わせの必要が無くなって便利だが、Microsoft Officeには、表だってこの機能が用意されていない。Wordの背景にスキャンした画像を貼り付けるには下記のようにする。

  • Word 2013
  1. メニューより、デザイン-ページ背景欄の「透かし」-ユーザ設定の透かし
  2. 図のラジオボタンをクリックして図の選択...(オフライン作業をクリックすると時間短縮できる)
  3. 背景図のファイルを指定
  4. 倍率=100%, にじみ=チェックしない-OK
  5. メニューより、挿入-ヘッダーとフッター欄の「ヘッダー」-ヘッダーの編集
  6. ヘッダー欄とフッター欄が表示される
  7. 図を左クリックすると、図のサイズや位置を調整できる
  8. 図を右クリックして、図の書式設定-色のリストボックス=白黒、などを選ぶ(ウオッシュアウト)
  9. 設定が終わったら、ヘッダーとフッターを閉じるボタンをクリック(背景は少し薄く表示されるが問題はない)
  • 参考:Woed 2010から2013で、ページレイアウトのメニューが一部デザインに移されている。以前あったレイアウト関係メニューが見つからない場合は、デザインを探してみると良い。
  • Word 2010
  1. メニューより、ページレイアウト-ページの背景欄の「透かし」-ユーザ設定の透かし
  2. 図のラジオボタンをクリックして図の選択...
  3. 背景図のファイルを指定(倍率=100%, にじみ=チェックしない)-OK
  4. メニューより、挿入-ヘッダーとフッター欄の「ヘッダー」-ヘッダーの編集
  5. ヘッダー欄とフッター欄が表示される
  6. 図を左クリックすると、図のサイズや位置を調整できる
  7. 図を右クリックして、図の書式設定-色のリストボックス=白黒、などを選ぶ(デフォルトではウオッシュアウト)
  8. 設定が終わったら、ヘッダーとフッターを閉じるボタンをクリック

Officeでよく使う操作をアイコン化する

Office2003以降、ツールバーがなくなりリボンで各種操作を行うようになった。よく使う機能をツールバーにアイコンとして並べておくと便利なのだが、Office2003以降では、リボンよりも、クイックアクセスツールバーにアイコン登録しておくほうが便利。

  1. ウインドウ上部のクイックアクセスツールバー右端の逆三角記号(ユーザ設定)をクリックし、リボンの下に表示をチェック(リボンの上に表示した方が使いやすい人もいるかもしれない)
  2. クイックアクセスツールバー右端の逆三角記号(ユーザ設定)をクリックし、その他のコマンドを選択
  3. コマンド選択のリストボックスで、全てのコマンドを選択
  4. クイックアクセスツールバーに表示したい操作を選んで、追加ボタンをクリック
  • PowerPoint?, Word, Excelのクイックアクセスツールバーに、上付き、下付き、シンボルフォントを設定、くらいを登録しておくと便利

Android関係

2015.02.08: NEXUSのスリープモード無効化

タブレットを表示器に使用する場合などは、スリープモードにならないようにする。設定画面 - {}開発者向けオプション - スリープモードにしないをチェック。開発者向けオプションは、デフォルトでは使用できないので、「Nexus7 への自作プログラムのインストール」の項を参照して、開発者になっておくこと。

2015.02.21: Androidのバックライトを付けたままにする

Android の画面は操作しないと消灯になり、最大30分まで設定できる。しかし、表示器として使用する場合には、点灯したままにしたい。Backlight Switchというアプリを使用して、指定アプリの起動時に、消灯しないように設定することができる。

Nexus7 への自作プログラムのインストール

Eclipse環境で開発したAndroidアプリケーションをスマホに転送するのは、スマホをUSB接続した状態で、Eclipseでアプリを実行し、エミュレータと接続された実機の接続画面で、実行したい機種を選択するだけというお手軽さだが、Google Nexus は少し手順が必要だ。Android端末は、PCにUSB接続すると、自動的にストレージと認識され音声や動画をUSBメモリと同じように転送できるが、Androidのシステムとして認識させるためにはPC側にドライバーをインストールする必要がある。一旦、Androidとして認識させると、DDMSから実機上でのデバッグが可能となり、これほど楽ちんな開発環境は、見たことがないほどだ。

手順は下記のような感じ。検索すると色々な手順が示されていて、Adnroidのバージョンにも依存するようだ。

  • Nexus7で設定 - タブレット情報 - ビルド番号を表示させ、ビルド番号を何度かタップすると、デベロッパーになるには後何ステップのような表示が出る
  • タップを繰り返すと、設定画面に、開発者向けオプションの項目が追加される 開発者向けオプションに入り、右上のスイッチがONになっていることを確認
  • USBデバッグのチェックを入れる
  • 設定画面から、セキュリティ画面に入り、提供元不明のアプリにチェックを入れる
  • USBケーブルでPCと接続すると、WindowsのデバイスマネージャーにNexus7が不明なデバイスとして表示されるので、これを右クリックしてメニューから"ドライバーソフトウエアの更新"を選ぶ
  • "コンピュータを参照してドライバーソフトウエアを検索します"を選択
  • "次の場所でドライバーソフトウエアを検索します"の参照ボタンで、ユーザディレクトリ配下の(Android SDKをインストールした場所)、android-sdks\extras\usb_driverを選ぶ
  • サブフォルダーも検索するにチェックを入れて、次へボタンをクリックする
  • ドライバのインストールが完了するとデバイスマネージャーにAndroid Deviceが表示される
  • Nexus7が、USBデバッグを許可するか聞いてくるのでOKする
  • EclipseでRunまたはDebugさせると、Android Devices Chooser が起動し、起動中のエミュレータおよび接続されたデバイスのリストが表示される
  • Nexus7を選んでOKをクリックすると、アプリがそのデバイスに転送および実行される
  • 実機で実行されていてもブレークポイントやログは有効である。さらに、PerspectiveをDDMS(Dalvik Debug Monitor Service)モードにすると、より詳細な実機の状態をPC側でモニタすることができる

ソフトウエアキーボードの制御

Androidスマートフォンで文字入力入力(エディットテキスト)にフォーカスすると、自動的にソフトキーボードが起動する。しかし、初期状態で起動されると都合の悪い場合がある。画面が余っていれば、下の方をソフトキーボードエリアとして残しておけば使い勝手がよいが、起動画面に多くの情報を表示する場合、最初からソフトウエアキーボードで画面が隠れるのは避けたい。この場合は、表示設定処理の前に下記のような記述を入れる。android.view.WindowManager?.LayoutParams?インポートすること。

   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       
       // Suppress the soft keyboard(追加部分)
      getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
       // Set the activity contents(表示設定)
       setContentView(R.layout.activity_main);
   }

NULL文字列の取り扱い

テキストボックスに何も入力されなかった場合の処理が必要な場合が多いが、空の文字列の判定でエラーを出すことが意外と多い。メモリに割り当てられたインスタンス(オブジェクト)の文字列の空と、変数宣言における空、または、オブジェクト同士を比較したことによるシンタクスエラーだが(英語の"a"と"the"の違いと同じ)。無いということ自体が抽象的概念であるため、混乱しやすい。以下のように判定を行うと覚えておくことにする。

               EditText inputNum  = (EditText) findViewById(R.id.editTextInputNum);
		String inputText = inputNum.getText().toString();
               // 空文字の判定部分
		if(inputText.equals("")) inputText = "0";

つまり、imputTextオブジェクトの文字を""と比較している。例えば、if(inputText == "")としたのでは、別のオブジェクト(ポインタ)の比較なのでNG。当然、インスタンスを持たないnullとの比較もNGとなる。

VB/C#.NET関係

自作の計測システムを手っ取り早く作成するためのPCのプログラミング方法をまとめておく。市販の計測器を組み合わせてシステム化する場合は、LabView?を使用するのが効率的だが、自作の回路基板をPCと接続するには、シリアル接続 + 自作プログラムのほうが簡便。こうしておけば、ZigBee?やBluetoothによる無線化も容易に実現できる。
VB(Visual Basic)使いの学生はあまり見かけないが、電子情報分野以外のPCユーザにはVBが普及しており、また、市販計測器のマニュアルには、大抵BASICのプログラム例が掲載されていて、慣れている人が多いという事情からVB.NETの例を示す。C#でも殆ど違いはない。

数値の変換

Stringから整数, 実数

   adc16  = Short.Parse(rcvData)
   adc32  = Integer.Parse(rcvData)
   offset = Double.Parse(calData)

整数からString

   '固定小数点3桁
   Label1.Text = offset.ToString("F3")

待ち時間

   System.Threading.Thread.Sleep(ミリ秒)

シリアルポートの利用

フォームにSerialPort?ComboBox?を配置し、ComboBox_Portをいう名前にしたと想定。ComboBox_Portには、現在使えるポート番号一覧を表示する。

   '起動フォームのクラスより前にインポート
   Imports System.IO
   'データの受信用バッファを想定
   Dim rcvDataStr As String 
   '起動処理
   Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
       'ポート番号用の配列
       Dim PortList As String()
       '利用可能なシリアルポート名の配列を取得
       PortList = IO.Ports.SerialPort.GetPortNames()
        'シリアルポート番号リストの表示をクリア
       ComboBox_Port.Items.Clear()
       Dim PortName As String
       'シリアルポート名をコンボボックスにセット
       For Each PortName In PortList
           ComboBox_Port.Items.Add(PortName)
       Next PortName
        'シリアルポートの初期選択(任意)
       If ComboBox_Port.Items.Count > 0 Then
           ComboBox_Port.SelectedIndex = 0
       End If
   End Sub
   '終了処理(フォームが閉じられたとき)
   Private Sub Form1_Close(sender As System.Object, e As System.EventArgs) Handles MyBase.FormClosing
       'シリアルポートの状態確認
       If SerialPort1.IsOpen = True Then
           '制御対象のデバイスの停止命令送信の例
           SerialPort1.Write("stop" + Chr(13) + Chr(10))
           'シリアルポートのクローズ
           SerialPort1.Close()
       End If
       'フォームの終了
       Me.Close()
   End Sub
   'COMポートのオープン/クローズの実行
   Private Sub Button_Com_Click(sender As System.Object, e As System.EventArgs) Handles Button_Com.Click
       If SerialPort1.IsOpen = False Then
           'ドロップダウンリストによるシリアルポートの設定
           If ComboBox_Port.SelectedItem = "" Then
               MessageBox.Show("デバイスをPCに接続してから本プログラムを再起動してください", "Error", MessageBoxButtons.OK)
           Else
               SerialPort1.PortName = ComboBox_Port.SelectedItem
           End If
           'シリアルポートのオープン
           Try
               SerialPort1.Open()
           Catch ex As Exception
               MessageBox.Show(ex.Message, "シリアルポート開始エラー", _
                   MessageBoxButtons.OK, _
                   MessageBoxIcon.Error, _
                   MessageBoxDefaultButton.Button3)
           End Try
       Else
           SerialPort1.Write("stop" + Chr(13) + Chr(10))   'stopコマンドの送信
           rcvDataStr = SerialPort1.ReadExisting()         '受信バッファのクリア
           rcvDataStr = ""                                 '受信変数のクリア
           'シリアルポートのクローズ
           SerialPort1.Close()
       End If
   End Sub

シリアルポートを使用する前の確認

面倒でも、シリアルポートにコマンドを送る前に実行するとよい。

   'データの受信用バッファを想定
   Dim rcvDataStr As String 
       'シリアルポートの確認
       If SerialPort1.IsOpen = False Then
           MessageBox.Show("シリアルポートが開いていません", "Error", MessageBoxButtons.OK)
       Else
           rcvDataStr = SerialPort1.ReadExisting()         '受信バッファのクリア
           rcvDataStr = ""                                 '受信変数のクリア
           SerialPort1.Write("start" + Chr(13) + Chr(10))  'startコマンドの送信を想定
       End If

多チャンネル化

多チャネル化を行う場所は2カ所考えられる。(1)センサの多チャンネル化(マイコンの入力ポートを増やす)、(2)PCの多チャンネル化(シリアルポートを増やす)。(1)はクロック精度での同時性を保障することができる。(2)は、空間的に分散させることができる。通常、1つのシリアルポートに1つの計測制御ソフトを用意し、さらに複数の計測制御ソフト1つのソフトで制御する構成が便利である。作例をに示す。

#ref(): File not found: "key_ctrl.png" at page "公開作業日誌"

上段左から、計測ソフトの起動、一斉スタート(モード1)、一斉ストップ(モード2)、一斉ストップ、下段左から、状態表示欄、起動しているプロセスIDリストの表示欄。ただし、プロセス間の実行命令時刻は、10ms程度ズレが生じるため、マイコン基板にRTCを搭載(32.768kHzが多い)してもよいが、面倒な割には精度は上がらない。時刻確認のためのタイムスタンプ機能(クリックするとPC側の時刻をデータに追加する)も搭載している。コード例は、他の項目で機能毎に分解して紹介する。

他フォームの表示と終了

フォームの開始

       Dim f As New Form2()
       f.Show(Me)

フォームの終了

       Me.Close()

他のプログラムの起動

フォームにProcessを配置する。

       'TEST.exeプログラムを起動
       'Microsoft.VisualBasic.Interaction.Shell("TEST.exe", AppWinStyle.NormalFocus)
       Process.Start("TEST.exe")
       'プログラムを起動したことをStatusStripのLabelに表示(無くてもよい)
       ToolStripStatusLabel1.Text = "New TEST is invoked"

プロセスIDの取得と表示

フォームにComboBox?とProcessを配置する。現在起動しているTEST.exeのプロセスIDを取得して、ComboBox?のリストに表示する。

   'フォームのClass
   Dim procID(32) As Integer   '動作中のTEST.exeのProcess ID
   Dim Nproc As Integer        '動作中のTEST.exeのプロセス数
   '先に起動していたプロセスIDの取得
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       'FVSプロセスのリスト作成
       getID()
   End Sub
   'プロセスの起動毎に、getID()を実行する
   'プロセスIDの取得とComboBoxへのリスト表示
   Private Sub getID()
       Dim processes() As Process
       'Processの再チェック
       processes = Process.GetProcesses()
       'TESTプロセスのリスト再作成
       ComboBox1.Items.Clear()
       ComboBox1.Text = "TEST Process ID"
       Nproc = 0
       For i As Integer = 0 To processes.Count - 1
           If processes(i).ProcessName = "TEST" Then
               procID(Nproc) = processes(i).Id
               ComboBox1.Items.Add(procID(Nproc).ToString())
               Nproc = Nproc + 1
           End If
       Next
       ToolStripStatusLabel2.Text = Nproc.ToString()
   End Sub

複数のプログラムへのコマンドの通知

       'コマンドを送るプロセスのリスト作成(プロセスIDの取得の項参照)
       getID()
       '例えば、[CTRL] + [s] を子プロセスのあるコマンド1に割り当ててあるとする
       For i = 0 To Nproc - 1
           AppActivate(procID(i))
           SendKeys.Send("^s")
       Next
       ToolStripStatusLabel3.Text = "Running in mode 1"
       '必要ならフォーカスを制御元である自分に戻す
       Me.Activate()

ホットキーの作成

フォーカスの有無にかかわらず、ホットキーのポーリングを行うには、(1) GetAsyncKeyState? API関数, (2) RegisterHotKey? API関数, の方法が一般的だが、実際に実装してみると、かなり処理が重い。計測の開始、停止を制御するだけであれば、フォーカスを持つフォームのキーイベントを受け取れればよいことが多いので、下記のような簡便な方法でも対応可能。

   'キーイベントの取得
   Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
       'コマンドを送るプロセスのリスト作成(プロセスIDの取得の項参照)
       getID()
       'Form1に対してMe.KeyPreview = Trueにしておくこと
       If e.KeyCode = Keys.T Then    '[CTRL] + [t] でコマンド1開始
           If e.Control Then
               For i = 0 To Nproc - 1
                   AppActivate(procID(i))
                   SendKeys.Send("^t")
               Next
               ToolStripStatusLabel3.Text = "Running in mode 1"
           End If
       ElseIf e.KeyCode = Keys.S Then    '[CTRL] + [s] でコマンド2開始
           If e.Control Then
               For i = 0 To Nproc - 1
                   AppActivate(procID(i))
                   SendKeys.Send("^s")
               Next
               ToolStripStatusLabel3.Text = "Running in mode 2"
           End If
       ElseIf e.KeyCode = Keys.X Then    '[CTRL] + [x] でコマンド停止
           If e.Control Then
               For i = 0 To Nproc - 1
                   AppActivate(procID(i))
                   SendKeys.Send("^x")
               Next
               ToolStripStatusLabel3.Text = "Stopped"
           End If
       End If
       '次のキーイベントを受け取るため、フォーカスを自分に戻しておく
       Me.Activate()
   End Sub

データのファイル読み出し

フォームにOpenFileDialog?を配置。

   '起動フォームのクラスより前にインポート
   Imports System.IO
   Private Sub ReadCSV(ByRef DataLine() As String)
       OpenFileDialog1.FileName = "calibration_data.csv"
       OpenFileDialog1.Filter = "CSVファイル|*.csv|全てのファイル|*.*"
       If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
           Using reader As New StreamReader(OpenFileDialog1.FileName)
               For i As Integer = 0 To calEL
                   DataLine(i) = reader.ReadLine
               Next
           End Using
       End If
   End Sub

データのファイル書きだし

フォームにSaveFileDialog?を配置。

   '起動フォームのクラスより前にインポート
   Imports System.IO
   Private Sub WriteCSV(ByRef DataLine As String)
       SaveFileDialog1.FileName = "measurement_data.csv"
       SaveFileDialog1.Filter = "CSVファイル|*.csv|全てのファイル|*.*"
       If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
           Using writer As New StreamWriter(SaveFileDialog1.FileName)
               writer.Write(DataLine)
           End Using
       End If
   End Sub

ファイル名に日付を付けてデータを保存(計測データ保存の基本形)

フォームにSaveFileDialog?を配置。

   '起動フォームのクラスより前にインポート
   Imports System.IO
   'ヘッダー文字列の設定
   header = "Input (V), Output (A)" + Chr(13) + Chr(10)
   'データのファイル書き出しルーチンの呼び出し
   saveData(header)
   Private Sub saveData(ByRef header As String)
       SaveFileDialog1.FileName = DateTime.Now.ToString("\d\a\t\ayyyyMMdd-HHmmss") + ".csv"
       SaveFileDialog1.Filter = "CSVファイル|*.csv|全てのファイル|*.*"
       If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
           If File.Exists(SaveFileDialog1.FileName) Then
               Dim result As DialogResult
               result = MessageBox.Show("同じ名前のファイルがあります。上書きしますか?", "ファイルの新規作成", MessageBoxButtons.YesNo)
               If result <> Windows.Forms.DialogResult.Yes Then Return
           End If
           '日本語文字コード指定書き込み(Shift-JIS)
           Using writer As New StreamWriter(SaveFileDialog1.FileName, False, System.Text.Encoding.GetEncoding("shift_jis"))
               'ヘッダーの書き込み
               writer.Write(header)            
               'データの書き出し
               For i As Integer = 0 To Nd - 1
                   writer.WriteLine(input(i).ToString() + "," + output(i).ToString())
               Next
           End Using
       End If
   End Sub

ヘルプの作成

ヘルプは、HTMLで提供する。インストールしておいたHELPファイルを参照させるか、インターネットを通じてHELPファイルを提供しているURLを参照させる。ヘルプは、頻繁に改訂が必要なため、URLを参照させたほうが便利。

       'HELPファイルのパス指定
       'Dim helpFileName As String = ".\help_files\help.html"
       Dim helpFileName As String = "http://jaco.ec.t.kanazawa-u.ac.jp/j/"
       'HELPファイルのオープン
       Try
           Help.ShowHelp(Me, helpFileName)
       Catch ex As Exception
           MessageBox.Show("ヘルプファイルが見つかりません")
       End Try

コマンドラインをEnterキーでシリアルポートに送信

   'シリアルポート送信処理
   Private Sub TexBox_Cmd_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox_Cmd.KeyPress
       If e.KeyChar = Chr(13) Then     'Enterキーの判定
           If SerialPort1.IsOpen Then
               If String.IsNullOrEmpty(TextBox_Cmd.Text) = False Then  'TextboxがNullの場合は送信無し
                   Try
                       'シリアルポートからコマンドを送信する.
                       SerialPort1.Write(TextBox_Cmd.Text + Chr(13) + Chr(10))
                       'コマンドボックスをクリアする
                       TextBox_Cmd.Clear()
                   Catch ex As Exception
                       MsgBox(ex.Message)
                   End Try
                   'e.KeyChar = ""          'Enterキーのクリア
               End If
           Else
               MessageBox.Show("シリアルポートが開いていません", "Error", MessageBoxButtons.OK)
           End If
       End If
   End Sub

シリアルポート受信内容のテキストボックス表示

   'デリゲートの宣言
   Private Delegate Sub Delegate_RcvDataToTextBox()
   Private Delegate Sub Delegate_logData()
   'シリアルポート受信イベント処理
   Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
       'シリアルポートをオープンしていない場合、処理を行わない.
       If SerialPort1.IsOpen Then
           Try
               '受信バッファの行データ読み出し(ASCII)
               'rcvDataStr = SerialPort1.ReadLine()
               '受信バッファの行データ読み出し(Binary)
               '(配列変数, 配列変数のオフセット(Byte), 読み出しByte数)
               'SerialPort1.Read(rcvDataBin, 0, 16)
               '受信バッファの全データ読み出し
               rcvDataStr = SerialPort1.ReadExisting()
               '
               '受信データの変数処理ルーチンに転送(ASCIIモード受信処理)
               Invoke(New Delegate_logData(AddressOf Me.logData))
               '
               '受信したデータをテキストボックス処理ルーチンに転送
               Invoke(New Delegate_RcvDataToTextBox(AddressOf Me.RcvDataToTextBox))
           Catch ex As Exception
               MsgBox(ex.Message)
           End Try
       Else
           MessageBox.Show("シリアルポートが開いていません", "Error", MessageBoxButtons.OK)
       End If
   End Sub
   '受信データをテキストボックスの最後に追記する
   Private Sub RcvDataToTextBox()
       If IsNothing(rcvDataStr) = False Then
           TextBox1.AppendText(rcvDataStr)
       End If
   End Sub
   '受信データを処理する
   Private Sub logData()
       '受信データの処理内容
   End Sub

ベクトルの描画

   '起動フォームのクラスより前にインポート
   Imports System.Drawing
   'データ
   Dim X(8), Y(8) As Double
   Private Sub vactorDraw()
       Dim ix(8), iy(8), im(8), norm As Integer
       Dim prsclr(8) As Color      '色分け用変数
       norm = 20                   '表示倍率調整
       '座標の計算
       For i As Integer = 0 To 7
           ix(i) = (X(i) + 125) * norm
           iy(i) = (Y(i) + 125) * norm
           im(i) = Math.Sqrt((X(i) * X(i)) + (Y(i) * Y(i)))
       Next
       '軸の描画
       Dim gport As New Bitmap(PictureBox1.Width, PictureBox1.Height)
       Dim g As Graphics = Graphics.FromImage(gport)
       g.DrawLine(Pens.LightGray, 125, 0, 125, 250)
       g.DrawLine(Pens.LightGray, 0, 125, 250, 125)
       g.DrawEllipse(Pens.LightGray, 94, 94, 62, 62)
       g.DrawEllipse(Pens.LightGray, 62, 62, 125, 125)
       g.DrawEllipse(Pens.LightGray, 31, 31, 187, 187)
       g.DrawEllipse(Pens.LightGray, 0, 0, 250, 250)
       '時間に対するペン色の割り当て
       Dim BPen0 As New Pen(Color.Black, 2)
       Dim BPen1 As New Pen(Color.DimGray, 2)
       Dim BPen2 As New Pen(Color.Gray, 2)
       Dim BPen3 As New Pen(Color.DarkGray, 2)
       Dim BPen4 As New Pen(Color.Silver, 2)
       Dim BPen5 As New Pen(Color.LightGray, 2)
       Dim BPen6 As New Pen(Color.Gainsboro, 2)
       Dim BPen7 As New Pen(Color.WhiteSmoke, 2)
       'ベクトルの→描画
       g.DrawEllipse(BPen7, ix(7) - 2, iy(7) - 2, 4, 4)
       g.DrawLine(BPen7, ix(7), iy(7), 125, 125)
       g.DrawEllipse(BPen6, ix(6) - 2, iy(6) - 2, 4, 4)
       g.DrawLine(BPen6, ix(6), iy(6), 125, 125)
       g.DrawEllipse(BPen5, ix(5) - 2, iy(5) - 2, 4, 4)
       g.DrawLine(BPen5, ix(5), iy(5), 125, 125)
       g.DrawEllipse(BPen4, ix(4) - 2, iy(4) - 2, 4, 4)
       g.DrawLine(BPen4, ix(4), iy(4), 125, 125)
       g.DrawEllipse(BPen3, ix(3) - 2, iy(3) - 2, 4, 4)
       g.DrawLine(BPen3, ix(3), iy(3), 125, 125)
       g.DrawEllipse(BPen2, ix(2) - 2, iy(2) - 2, 4, 4)
       g.DrawLine(BPen2, ix(2), iy(2), 125, 125)
       g.DrawEllipse(BPen1, ix(1) - 2, iy(1) - 2, 4, 4)
       g.DrawLine(BPen1, ix(1), iy(1), 125, 125)
       g.DrawEllipse(BPen0, ix(0) - 2, iy(0) - 2, 4, 4)
       g.DrawLine(BPen1, ix(0), iy(0), 125, 125)
       'オブジェクトの開放
       BPen0.Dispose()
       BPen1.Dispose()
       BPen2.Dispose()
       BPen3.Dispose()
       BPen4.Dispose()
       BPen5.Dispose()
       BPen6.Dispose()
       BPen7.Dispose()
       g.Dispose()
       PictureBox1.Image = gport
   End Sub

チャートコントロールによるグラフの表示

   '起動フォームのクラスより前にインポート
   Imports System.Windows.Forms.DataVisualization.Charting
   '過去8点のベクトル描画の例
   Private Sub vectorChart()
       Dim series1 As New Series()
       'チャート表示用変数
       Dim chartMag As Double
       Dim chartDir As Double
       'グラフのタイプを設定
       series1.ChartType = SeriesChartType.Polar
       'データ系列の初期化
       Chart1.Series.Clear()
       'マーカの設定
       series1.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Star4
       Chart1.Palette = ChartColorPalette.SemiTransparent
       series1.MarkerSize = 20
       'データポイントの設定
       For i As Integer = 0 To 7
           'データ数(pid)がプロット数に足りない場合(0, 0)をデータポイントに設定
           If i > pid Then
               chartMag = 0
               chartDir = 0
           Else
               chartMag = Double.Parse(mag(pid - i)) 
               chartDir = Double.Parse(dir(pid - i))
           End If
           'X-Yデータポイントの追加
           series1.Points.AddXY(chartDir, chartMag)
       Next
       'グラフ出力
       Chart1.Series.Add(series1)
   End Sub

Visual Studio Express 2012 のOS互換性エラー

Windows 7 (64bit)に Visual Studio Express 2012 for Desktop をインストールして起動すると、OSの互換性に問題があるというメッセージが出る場合がある(出ない場合もある)。patch_KB2781514を適用(エラーメッセージから検索できる)しても、問題が解決しない場合は、Visual Studio 2012 Update 3 により解決する。 http://www.microsoft.com/visualstudio/jpn/visual-studio-update#story-update

その他

Ngraph

  • クリップボードにグラフをコピーすると落ちる
    • Windows10では、クリップボードにコピーするとNgraphが落ちるが、拡張メタファイルではなく、メタファイルの形式ならコピーできる。
  • 目盛数字の数が少ない
    • Ngraphは、目盛数字が少ないことが多い(1個だけとか)。軸の目盛り数字の設定だけではなく、スケールの増分を変える必要がある。

レーザーカッター

  • 2つの図形を接続する
    • レーザーカッターで複雑な形を作成するとき、2つのオブジェクトを接続したい場合が多い。CorelDraw?では、2つのオブジェクトを重ねて置いた後、いらない線を切り取る。
      1. 左側ツールバーで、整形ツールを選択
      2. 線上の切るポイントをクリックして選択
      3. 選択したポイントを右クリックして分割を選択
      4. 同様にして、反対側の切り取りポイントを設定
      5. 切り取る線分上を右クリックして、コンテクストメニューから削除を選択
      • 線の太さ分を残すため、切り取りポイントの選択は、十分拡大して正確に行う。

金沢大学へのVPN接続

2016年夏より、Cisco VPN のサポートが終了し、F5 Networks に一本化されました。総合メディア基盤センターのVPNサーバにWEBブラウザでアクセスすると、VPN拡張機能がインストールされますが、Microsoft Edgeにはインストールできないようです。また、Google Chrome ver.52以降)にインストールできないようなので、以下のように対応。

  • Windows 10
    1. Microsoftストアで、F5 Accessを検索してインストール
    2. Windows10のVPN設定ページで「VPN接続を追加する」をクリック
      • VPNプロバイダ F5 Access
      • 接続名 Kanazawa Univ VPN
      • サーバー名またはアドレス vpngw02.kanazawa-u.ac.jp
  • Android(iOSでも同じ)
    1. Google Playで、F5 Edge Clientを検索してインストール
    2. F5 Edge Clientを起動し、「サーバの設定」をタップ
      • 名前 Kanazawa Univ VPN
      • サーバー vpngw02.kanazawa-u.ac.jp
      • ユーザ名 金沢大学のネットワークID

WinSCPでディレクトリツリーが取得できない

とりあえず、下記で接続してみる。

  • プロトコル = FTP
  • セッションの設定
    • 設定 - FTP - ディレクトリ一覧にMLSDコマンドを使用 = OFF
    • 設定 - 接続 - パッシブモード = ON


添付ファイル: filepsoc20161203.png 355件 [詳細] fileA-PRO_CC.png 526件 [詳細] fileA-PRO.xml 455件 [詳細] fileA-PRO.ucd 456件 [詳細] fileA-PRO-ACID.mid 242件 [詳細] fileA-PRO-Ability.mid 436件 [詳細] filenanoKONTRL2.nktrl2_data 468件 [詳細] filekorg_editor05.png 573件 [詳細] filenanoKONTROL2.ucd 462件 [詳細] filelab02_circuit.png 501件 [詳細] filelab00_SZP.jpg 463件 [詳細] filefirst_touch_SZ.jpg 506件 [詳細] filebr_ext_board.jpg 521件 [詳細] fileftmf_circuit.png 472件 [詳細] filehome.gif 226件 [詳細] filekorg_editor04.png 559件 [詳細] filekorg_editor03.png 558件 [詳細] filenanoKONTROL2.xml 488件 [詳細] filekorg_editor02.png 540件 [詳細] filekorg_editor01.png 537件 [詳細]
トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-08-30 (水) 02:31:58 (21d)