Bloggerのテーマ変更。

なんかこのテーマ、行間があきすぎてるし文字が大きいし、読みにくくないかしら?

ちょっとフォントサイズ変えようかしら。

数式がmathjaxで表示されなかった理由。

しばらく前から、設置当初は表示されていたのに数式がいつのまにかMathjaxで処理されなくなっていたのですが、久々にmathjaxのサイトを見たら理由がわかりました。

We retired our self-hosted CDN at cdn.mathjax.org in April, 2017. We recommend using cdnjs.com which uses the same provider. The use of cdn.mathjax.org was governed by its terms of service.

2017年4月でホスティングサービスを終了し、cdnjs.comに移管したようです。

これにともなってBloggerテンプレートの設定も変える必要があるとのこと。

Curiosity Development Boardについて。

Microchip社から発売されているCuriosityですが、だいたい3,000円前後で入手できるようです。Microchip Directの価格ではUSD 20.0となっていますが、税・送料含めるとUSD 30を超えるので、チップワンストップやDigikeyなどの通販を利用するのがよいかと思います。

Curiosityは標準で PIC16F1619 を載せていますのでそのままで使えます。また20DIPのパッケージなら他のMCUと載せ替えることも可能なので、自分の目的に応じたチップを別途用意すれば差し替えて使えます。

プログラミング/デバッグ用にPIC24FJ128を裏面に実装しており、PICkit3とかICD3をそのまま接続できるようなコネクタ/端子は見当たりません。

ICD3やICD4は2万円以上、PICkit3やPICkit4は5,000円以上、さらにExplorer 8開発ボードが9,000円以上しますから、3,000円前後というのはずいぶん安いものです。さらに秋月電子ではPIC16シリーズが100円~300円程度で入手できますから、手軽に始めるにはずいぶんとハードルが低くなったものです。

ちょっと近日中に、このCuriosityとExplorer 8を使って、mTouchをいじってみようかと思います。

さて、Curiosityボードには、8bit、16bit(PIC24F系)、32bitのシリーズがあります。

8bit系は、DM164136(Curiosity High Pin Count(HPC) Development Board)とDM164137(Curiosity Development Board)があるようです。HPCのほうは、28ピンから40ピンの8bit PICをサポートしていて、20ピン未満は DM164137 が対応しています。16bit以上はQFPなどのパッケージが多いため載せ替えができるようにはなっておらず、ターゲットCPUごとにファミリーで選べるようになっています。

一方のExplorerボードの場合には、PIMと呼ばれるMCUモジュールを差し替えることで多数のPICデバイスに対応できるようになっているので、いろいろなMCUを扱うのであればExplorerのほうがおすすめです。

ということで、こちらでは DM164137 Curiosity Development Board を用意しました。
標準で PIC16F1619 を搭載していますが、ついでに PIC16F18346 も購入しています。こちらは単品で秋月電子で160円でした。

DM164137(以下、CDBと呼びます)はUSB経由で給電・プログラム・デバッグができるようになっていますが、残念すぎるのはUSBコネクタがmini-Bなことです。type-Cとはいいませんがせめてmicro-Bだったらありがたかったのですが…。面実装コネクタなので、コンパチなmicro-Bが手に入れば、ドライヤで剥がして載せ替えることもできるのですが…。ユーザーズガイドの回路図や部品表にもメーカ、型番ともに載っていないので、判明したらまた触れます。

CDBはWindows 10では標準ドライバで認識されるようで、HID準拠ベンダー定義デバイスとなるようです。MPLAB X IDEを起動してみると、ちゃんと認識されていました。


それから、企業ユーザであれば、PICを製品開発で使うことを前提に2個までサンプルを要求することができるというのも、ターゲットMCUが入手しづらい場合には有効です。

基板上の配線材について。

ちょっと前にMPLAB X IDEでプロジェクトを開始する。という記事を書きました。それに伴って、Microchipの開発ボード EXPLORER 8がどこかに行ってしまったので探していたのですが、ようやく見つかりました。
このボードはACアダプタ用のDCジャックもありますが、microBのUSBコネクタも付いているので、電源供給はUSB側からできます。ボード上にUSB-I2C/UART変換のMCP2221が載っていますので、Windows側にドライバをインストールすればPICからのprintf出力を見ることができます。

最近はMicrochipの8bit MCUだとCuriosityという開発ボードもあるようで、こちらのボードは3,000円くらいとずいぶん安く手に入ります。MCUの載せ替えでいろいろと対応できるのと、USBからファームウェアの書き込みができるようなので、ちょっと試したい向きにはよいかもしれません。

ところで開発ボード単体でアプリケーション開発ができるようならばいいのですが、実際にはセンサやスイッチ、モータやリレーなどなど、回路部品などを追加することも多いです。
回路の追加は、ブレッドボードなどを使う、ユニバーサル基板を使って配線する、エッチングで基板を作る、などの方法があります。が、ブレッドボードだとちょこっとテストするにはいいですが接触が不安定だったりちょっと触ると配線が外れたりという問題点があるので、ちゃんとした開発プラットフォームを作ろうとするとはんだ付け作業は避けて通れないものとなります。

以前はリード線(AWG24とかAWG28)を使うことが多かったのですが、電源系ではなく信号系の場合には最近はUEWを使うことが多くなっています。

UEWはポリウレタンエナメル線(polyUrethane Enameled Wire)という名称で、マグネットワイアの一種です。ウレタン線とも呼ばれています。コイルやトランスなどを巻くための絶縁被膜を持った銅線のことです。単なるエナメル線と異なり、被覆を剥がすのにポリウレタンが熱で溶けるのでジャンパワイアの配線や信号を取り出して評価するときなどに重宝されています。

被覆ははんだごてを使って溶かします。こて先にはんだを少量とり、そのはんだの中にウレタン線の先端部分を突っ込むとすぐに被覆が溶けてはんだ付けできるようになります。被覆部分は絶縁されているので、ショートの心配もありません。これがリード線だとワイアストリッパを使って被覆をカットして、予備はんだをしてからはんだ付けという手順です。
ちなみに信号線の場合にはコテ先温度は360℃(鉛フリーはんだの場合)を標準としています。これより高いとはんだがすぐにデロデロになってイモやツノになってしまうのと、コテ先チップの寿命が短くなるためです。熱容量の大きな電源プレーンに繋がっているGNDや+5Vなどに電線をはんだ付けするときには、信号用ではなくより太くて熱容量の大きいコテ先に取り替えます。ちゃんとはんだ付け教育を受けていない人は450℃にしたりしますが、これをやると基板もコテ先も痛みます。下手をすると銅箔が基板から剥がれてしまうので注意します。

以前は予備はんだされたジュンフロン線などを使っていましたが、0.5mmピッチのQFPの足にジャンパ線をはんだ付けするような場合にはちょっと太かったりするので、AWG28あたりのウレタン線は重宝します。

ウレタン線は基板上配線で使うとき、ピンセットの先などで直角に曲げることもできますが、配線の際にはできるだけ鋭角は作らないようにしたいものです。また、空中配線になると引っかかってもげることもあるので、配線したらホットメルトなどで基板に固定しておくことも大切です。

接着剤について。

近年接着剤の進歩はめざましく、いろいろな素材を強力に接着するものが出てきてどんどん便利になってきています。
ところが種類が増えると一体どれを使ったらよいものやら、結構悩みます。
こうした場合、素材によってどういう特性があって、どのような接着法が最適なのかを考える必要が出てきます。

たとえばプラモデルであれば、接着というのは素材(プラスチック)を溶かして接合する、という形になります。溶かしてくっつけることで、継ぎ目をぴったりと接着して剥がれないようにします。

木と木を接着する場合には、木工ボンドを使ってしっかり圧着します。一般的には酢酸ビニル系の接着剤を使いますが、酢酸ビニルは水濡れに弱いため、水に濡れる可能性がある用途では多用途系の接着剤などを使う場合もあります。

金属どうしの場合は、応力のかかり方が重要になってきます。接着剤自体には金属を溶かして接合するものはないので、あくまでくっつけるだけになります。

持っていて損はないのが、最近お気に入りの多用途系。

セメダインでいえばスーパーXシリーズ、コニシでいえばウルトラ多用途シリーズ。どちらも硬化後は柔軟性があり、幅広い素材に適応します。

特に、スーパーXハイパーワイドやウルトラ多用途SUプレミアムソフトは、他の接着剤では剥がれてしまうポリエチレンやポリプロピレンの接着もできるので、一つ持っていると便利です。硬くならないので布などの柔らかいもの、靴底などの曲がるものの補修にも使えます。

シリコーンゴムはかなり接着しにくい素材ですが、これもセメダインのPPXを使うと接着できます。これはプライマーを使うタイプなので、おそらくはプライマーで表面を変性させて溶着のような感じになるのだと思われます。

このへんの情報はセメダインがよくまとまっていて、接着剤を選ぶときには参考になります。自分ではウルトラ多用途SUプレミアムソフトをよく使います。

nkfのVisual Studio 2017でのコンパイル。

nkfはもう30年以上も前に開発された漢字コード変換のツールで、今でも結構使われています。iconvよりも小さくて軽いですし。

nkfのiconvに対するアドバンテージに「漢字コードを推測する」というのがあって、この辺は日本語環境をターゲットに開発されたnkfとI18Nをターゲットにしているiconvの差なんでしょう。ともあれ、日本語環境では非常に使いやすいです。

nkfはスタンダードなC言語で記述されているので、大抵のシステムでコンパイルできます。特殊な入出力も使わないので、それこそMS-DOSからUNIXまで、みたいな感じでかつては広範囲で使われていました。

で、これをちょっと使う用事があったので、VS2017でコンパイルしてみました。

やることは単純で、
  1. nkfのサイトからソーズのtar ballを拾ってきて展開
  2. "VS 2017用 x64 Native Tools コマンドプロンプト"を開いて展開したディレクトリに移動
  3. nmake /f nkf.mak
です。これで64bit版のnkf.exeができています。

このnkf.exeをパスの通った場所(自分の場合は c:\Apps\bin)にコピーすればどこからでも使えます。

CAPS/CTRLと全半/ESCの入れ替え。

最初からAT互換機を使っている人は気にならないかもしれませんが、PCに触り始めたのが PC-9800 シリーズとか X68000 とか Sun SPARCStation 10 とかだったりすると、キーボードの 'A' キーの左は CTRLキーだよね、とか指に染み付いちゃっています。

ということで、自分はタイトル通りに、CTRLとCAPS lockを入れ替え、全半とESCを入れ替え、という形で使いやすいように変えています。

UNIX系の場合には、カーネルのドライバ(NetBSDでいうならwscons)あたりで指定したり、X環境ならxmodmapなどでいじったりします。

Windowsの場合には、常駐モノもあるようですが自分はレジストリを直接いじってしまっています。
REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:\
  00,00,00,00,\
  00,00,00,00,\
  05,00,00,00,\
  29,00,01,00,\
  01,00,29,00,\
  1d,00,3a,00,\
  3a,00,1d,00,\
  00,00,00,00

上記の内容を適当な名前(拡張子は.reg)に保存して、regeditでインポートすればOKです。

SWDなら3線でいいとはいうものの。

 安価で優秀なデバッグプローブはないかしら、と探したら、 Raspberry Pi Debug Probe というのがあったんですが、これは3線がにゅるんと出てるだけです。 もちろんSWDなら3線を繋げばいいのではありますが、汎用的に考えるなら5x2のリボンケーブルコネクタが欲し...