M.C.P.C. (Mamesibori Creation Plus Communication)

印刷屋から五反田のWeb屋に転職したCLのブログです。

エレコム11ac 867Mbps無線LANをWindows 10 Previewで使おう

(2015-07-28 0:05追記)現在のWindows 10 TH 10240では、「ELECOM WDC-867SU3S Wireless Adapter」として追加ファイルなしで認識します。

(2015-10-09 0:05追記)Windows 10用のドライバがエレコムから提供されています。

動画をネットワーク越しで見るとき、ハイデフ動画(とか言わんな最近)だとネットワーク速度が重要になってきますよね。ところで、わたし東京に来てから集合住宅に住んでいるのですが、無線LANの2.4GHz帯が住人たちの無線LAN親機の電波でひどいことになっていて、こりゃ都会やばいな、て思うわけですけれども、手持ちにあったRaspberry Pi用に使っている2.4GHz帯専用IEEE802.11n規格150Mbps対応のお手軽無線LAN子機だとスピードが出ないのです。我が家だと地デジのビットレート17Mbps=2.1MB/sを下回る。

というわけで、5GHzの帯域に退却ーということで親機を5GHz帯にしてあって、子機もせっかくだから5GHz帯で867Mbps出ることになっている(USB2.0の帯域超えているのでUSB3.0接続になっている)エレコムの子機アダプタにするわけですが、

OSがWindows 10 Previewなので、エレコムのドライバを入れても、なぜか2.4GHz帯のSSIDを表示してくれちゃって、しかしネゴシエーションできず、つながることはなかったのでした。

Windows 10正式対応まではMediatek MT7612Uのドライバを入れる

ネットでググったところ、

review.kakaku.com

で中身がMediatek MT7612Uであるとあったので、

www.mediatek.com

で入手できる(氏名・メールアドレス入力必須)ドライバを入れると、Windows 10 Previewでも動いたとさ。

5GHz専用で割とスピードが必要(目標としては100BASE/TX以上1000BASE/T未満)な無線LAN子機が必要な方は、とりあえずこれでしのごう。

Apacheログ "%U%q" のパス出力は"%r"と互換性が無い

AcceptPathInfoがOffになっているような、標準とは違うApache環境下で動く不幸なCakePHPで、公開ディレクトリに書かれる.htaccessによるmod_rewite規則

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

という奴を使うと、例えば http://example.com/top/ というURLにアクセスすると、Apacheのカスタムログフォーマットでいうと、

%r: GET /top/ HTTP/1.1

%U: /top/
%q: ?url=top/

となり、

%U%q: /top/?url=top/

となります。/top/ になってほしいのに、内部rewrite処理で生成された?url=top が付いてしまうのです。redirect_logはこんな感じ。

(3) [perdir /var/www/html/] add path info postfix: /var/www/html/top -> /var/www/html/top/
(3) [perdir /var/www/html/] strip per-dir prefix: /var/www/html/top/ -> top/
(3) [perdir /var/www/html/] applying pattern '^(.*)$' to uri 'top/'
(4) [perdir /var/www/html/] RewriteCond: input='/var/www/html/top' pattern='!-d' => matched
(4) [perdir /var/www/html/] RewriteCond: input='/var/www/html/top' pattern='!-f' => matched
(2) [perdir /var/www/html/] rewrite 'top/' -> 'index.php?url=top/'
(3) split uri=index.php?url=top/ -> uri=index.php, args=url=top/
(3) [perdir /var/www/html/] add per-dir prefix: index.php -> /var/www/html/index.php
(2) [perdir /var/www/html/] trying to replace prefix /var/www/html/ with /
(5) strip matching prefix: /var/www/html/index.php -> index.php
(4) add subst prefix: index.php -> /index.php
(1) [perdir /var/www/html/] internal redirect with /index.php [INTERNAL REDIRECT]

fluentdのログ転送で使うLTSVフォーマット指定で、パスの表記に%U%qで指定している例が多いので、通常のApacheログとfluentdで収集したApacheログで表記が食い違うことに……

fluentdでApacheログをLTSVで出力している人は注意が必要です……

ここで唐突にApache CustomLog書式の確認

http://httpd.apache.org/docs/2.2/ja/mod/mod_log_config.html

フォーマット文字列 説明
%q 問い合せ文字列 (存在する場合は前に ? が追加される。 そうでない場合は空文字列)
%r リクエストの最初の行
%U リクエストされた URL パス。クエリ文字列は含まない

修飾子
(略)
修飾子 "<" と ">" は内部リダイレクトされたリクエストのログに 元のリクエストか最終的なリクエストのどちらを使用するかを 指定するために使います。デフォルトでは、% ディレクティブの %s, %U, %T, %D, %r は元のリクエストを、他は最終的なリクエストを 使用します。例えば、リクエストの最終ステータスを記録するには %>s を、内部的に認証されていないリソースへリダイレクトされた リクエストで元のリクエストで認証されたユーザを記録するためには %<u を使うことができます。

LogFormatで%U%<qすればいいじゃない

効かないんだなーこれが

fluentdでの解決法

解決法はQiitaに書く(要fluentd v0.12以降)→書いた

74HC4511で7セグLチカ(Arduino Pro Mini 5V使用)

7セグメント表示器の点灯専用に作られたICのうち、今回は、カソードコモン7セグメントLED用デコーダIC・74HC4511を使った回路をArduino Pro Miniで駆動してみます。

f:id:C_L:20150404232711j:plain

最初に書いておきますが、マイコンArduinoみたいなプログラムでピン出力が自由に変えられるもの)を使っている場合、7セグ専用デコーダを使う意味はほとんどありません!

74HC4511は、2進4桁のBCDを入れてあげることで、その数値に対応したLED点灯パターンの出力が得られる便利なICです。自分で0~9の点灯パターンを作る必要が無いってことになります。

部品リスト

価格は執筆時点での価格(税込)です。 ※利用するArduinoの価格は除外しています。

部品名 価格
ブレッドボード EIC-102J ジャンプワイヤー付 600
ブレッドボード・ジャンパーコード(オス-オス)セット 220
ブレッドボード用マイクロBメスUSBコネクタDIP化キット 200
USBケーブル Aオス-マイクロBオス 1.5m A-microB 120
カーボン抵抗(炭素皮膜抵抗) 1/4W 470Ω (100本入) 100
超高輝度赤色7セグメントLED表示器1文字カソードコモン ボディ黒 C-551SRD 40
7セグメントドライバ CD74HC4511E 60


1,340

akizukidenshi-ogp-injector.dtpwiki.jp

akizukidenshi-ogp-injector.dtpwiki.jp http://akizukidenshi.com/catalog/g/gK-06656/

akizukidenshi-ogp-injector.dtpwiki.jp

akizukidenshi-ogp-injector.dtpwiki.jp

akizukidenshi-ogp-injector.dtpwiki.jp

akizukidenshi-ogp-injector.dtpwiki.jp

akizukidenshi-ogp-injector.dtpwiki.jp

実体配線図

led-09_breadboard.png

5VArduino Pro Miniを使っています。

黄色い線でArduinoからBCD(二進化十進表現、要は二進数4桁で0~9までをあらわす)を4ピンを使って74HC4511に入力します。白い線は74HC4511からの出力で、そのままだと7セグメントLEDに過大な電流が流れるので、左右に引き出した470Ω抵抗で電流を弱めて、7セグメントLEDのアノード(入力)に入れます。

Arduino用プログラム

const int pins[] = {
   2,  3,  4,  5,
};
  
void setup() {
  for ( int i = 0; i < 4; i++ ) {
    pinMode( pins[i], OUTPUT);
  }
}

void loop() {
  for ( unsigned int i = 0; i < 10; i++ ) {
    for ( int j = 0; j < 4; j++ ) {
      int d = LOW;
      if ( (i & 1 << j ) ) {
        d = HIGH;
      }
      digitalWrite( pins[j], d);
    }
    delay(600);
  }
}

www.youtube.com

実際に作ってみた後、重大な欠点に気づきます。

  • 74HC4511単体では7セグメントLEDの小数点の点灯に対応していない
  • Arduino側から見ると、BCD出力に4ピン、小数点を使う場合はさらに1ピンの合計5ピンを消費することになり、ピンの節約の観点では、あまりおいしくない
  • 7セグメントLEDの点灯パターンはICに初めから設定されている。点灯パターンが気に入らなくても変更できない

f:id:C_L:20150404123820g:plain

東芝の74HC4511のマニュアルから引用ですが6,7,9の点灯パターンに違和感覚える人いるんじゃないかと思います。

いろいろまとめると、マイコンを使うのなら、74HC5411の代わりにシフトレジスタIC(74HC595みたいなの)を使うと3ピンでピリオドまで含めた7セグメント表示器点灯パターンが簡単に作れるので、そっちのほうがよいです。

汎用ロジックの7セグメントデコーダ・ドライバというのは、どちらかというと回路の中にマイコンが無くて、電子回路と汎用ロジックのみの構成で7セグメントLEDを表示に使いたいときに使いましょう。

Arduino Pro Mini 328 5V 16MHz

Arduino Pro Mini 328 5V 16MHz

FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)

FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)

LED18チカをArduino Uno→Pro Mini→ATmega328で作る

みんなArduinoのことを「高い、高い!」と言うのだけれども、Arduinoでの開発の目標をATmega328で作ることにすると安くなるよー、ていうのをやります。

Arduino Unoによる18LEDチカ

現在標準的なArduinoとされているArduino Unoで18個のLEDによるLチカをします。

部品リスト

価格は執筆時点での価格です。基本的に秋月電子通商信販売で購入できるパーツを選定しています(送料に注意)。大田区から秋葉原に行くと運賃が送料よりも高くなるのでビバ通販、ヤマト運輸バンザイです!

部品名 価格(税込)
ブレッドボード EIC-102J ジャンプワイヤー付 600
ブレッドボード・ジャンパーコード(オス-オス)セット 220
ブレッドボード用マイクロBメスUSBコネクタDIP化キット 200
USBケーブル Aオス-マイクロBオス 1.5m A-microB 120
カーボン抵抗(炭素皮膜抵抗) 1/4W 470Ω (100本入) 100
小型赤色LED BR2222S(200個入) 200
Arduino Uno Rev3 2,940
------------- ----
4,380

akizukidenshi-ogp-injector.dtpwiki.jp

akizukidenshi-ogp-injector.dtpwiki.jp

akizukidenshi-ogp-injector.dtpwiki.jp

akizukidenshi-ogp-injector.dtpwiki.jp

akizukidenshi-ogp-injector.dtpwiki.jp

akizukidenshi-ogp-injector.dtpwiki.jp

プログラム

const int pins[] = {
   0,  1,  2,  3,  4,  5,  6,
   7,  8,  9, 10, 11, 12, 13,
  A0, A1, A2, A3,
};
  
void setup() {
  for ( int i = 0; i < 18; i++ ) {
    pinMode( pins[i], OUTPUT);
  }
}

void loop() {
  for ( int i = 0; i < 18; i++ ) {
    digitalWrite( pins[i], HIGH);
    delay(100);
  }
  for ( int i = 0; i < 18; i++ ) {
    digitalWrite( pins[i], LOW);
    delay(100);
  }
}

ブレッドボード上での実体配線図

この配線では、電源はブレッドボードに配置してあるMicroUSBから取り、Arduino側には電源をつなぎません。Arduinoの5VピンにUSBのVBUS(5V)、GNDピンにUSBのGNDをつなげてあげることで、Arduinoが動きます。

Arduinoへプログラムを転送する場合は、安全のためブレッドボード側のUSBケーブルはいったん外しましょう。

プログラムを転送してLチカが確認できたら、ArduinoのUSBケーブルを外し、ブレッドボード側のMicroUSBコネクタに電源を供給し、PCが無くてもLチカが動くことを確認できればOKです。

f:id:C_L:20150315010919p:plain

作例

Arduino Unoは持っておらず、その前のバージョンのArudino Duemilanoveで作例となります。

Arduino UnoをArduino Pro Miniに置き換えて18LEDチカ

ブレッドボード上でプロトタイピング(試作品を作ること)するためのArduino Pro Miniで、実際にブレッドボード上でプロトタイピングしてみました。

Arduino Pro Miniは、Arduino Unoなどで使われているMCU、ATmega328の表面実装タイプが使われており、標準的なArduinoで作られたアプリケーションのArduino部分を置き換える用途に最適です。

Arduino Pro Mini 328 5V 16MHz

Arduino Pro Mini 328 5V 16MHz

ただし、小型化するために、PCとのUSB通信を担う部分はオミットされていますので、試作中は、別途FTDI USBシリアル変換アダプターなどを使って、プログラムを転送する必要があります。

FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)

FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)

アプリケーションとして完成してしまえば、通信アダプターの部分を取り外して、そのまま実用使用してもよいです。

部品リスト

価格は執筆時点での価格です。なお、秋月電子には純正のArduino Pro Mini 5Vが売っていなかったので、スイッチサイエンスからの調達となります。

部品名 価格(税込)
ブレッドボード EIC-102J ジャンプワイヤー付 600
ブレッドボード・ジャンパーコード(オス-オス)セット 220
ブレッドボード用マイクロBメスUSBコネクタDIP化キット 200
USBケーブル Aオス-マイクロBオス 1.5m A-microB 120
カーボン抵抗(炭素皮膜抵抗) 1/4W 470Ω (100本入) 100
小型赤色LED BR2222S(200個入) 200
Arduino Pro Mini 328 5V 16MHz 1,243
FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き) 1,512
------------- ----
4,195

ブレッドボード上での実体配線図

f:id:C_L:20150314200432p:plain

作例

Arduino Pro MiniをATmega328に置き換えて18LEDチカ

Arduinoを使った工作の最終目標の一つとして、ArduinoをATmega328に置き換えてしまうというものがあります。だって、みんな「高い、高い」と言っているArduinoですが、工作ごとに3,000円ぐらいするArduino製品を組み込んでいたら、そりゃあ高いですよね。一方、ArduinoではなくてATmega328を使えば、250円で済んじゃいます。

なお、Pro MiniからATmega328に置き換える場合は、GPIO11ピンから13ピン(SPIで使うピン)の位置が同じ位置になるように置き換えると置き換えがしやすいです。

プログラムの書き込みについて

ATmega328をArduino化してプログラムを書き込む方法は複数ありますが、別のArduinoに書き込み用プログラムを書き込んで、それを使ってATmega328に書き込む方法もあります。

「びんぼうでいいの」に生AVRマイコンを載せたままArduino化(ICSP) - M.C.P.C. (Mamesibori Creation Plus Communication)

なお、ATmega328のArduino化する場合、「8MHz(内部RC発振)」というモードで書き込むと、余計なパーツが必要なくなるのでお勧めです。

部品表

部品名 価格(税込)
ブレッドボード EIC-102J ジャンプワイヤー付 600
ブレッドボード・ジャンパーコード(オス-オス)セット 220
ブレッドボード用マイクロBメスUSBコネクタDIP化キット 200
USBケーブル Aオス-マイクロBオス 1.5m A-microB 120
カーボン抵抗(炭素皮膜抵抗) 1/4W 470Ω (100本入) 100
小型赤色LED BR2222S(200個入) 200
AVRマイコン ATMEGA328P-PU 250
積層セラミックコンデンサー0.1μF10個入2.54mm 100
------------- ----
1,830

※これものすごいマジックが含まれていて、ATmega328を書き込むための機材の値段が入っていないことに注意! でも、ATmega328の書き込みには、Arduino UNO/Arduino Pro MiniなどのArduinoとして動いている製品が利用できます(この過程に進む人は当然持っているはずなんで……)。

ブレッドボード上での実体配線図

f:id:C_L:20150315010936p:plain

ATmega328のDIP版は、28ピンの300milパッケージとなっていて、表面実装パッケージを使っているArduino Pro Miniよりも専有面積は小さい。実はATmega328でArduino Pro Miniの機能のほとんどを持っているのです。では、Arduino Pro Miniの基板上では何をやっているのかといえば、安定した電圧の電源の生成、セラミック発振子によるクロックの提供、リセットスイッチの実装などです。これらをオミットしたり別回路で解決できれば、ATmega328に置き換えることができます。

akizukidenshi.com

今回の場合は、リセットスイッチとセラミック発振子をオミット、定電圧電源はUSBコネクタからの定電圧5V電源の供給、となり、置き換えられる条件がそろったことになります。

ATmega328のVCCGNDの間に配置している積層セラコン0.1μFは、おまじないのバイパスコンデンサ(パスコン)ですが、これがないとノイズで動作が狂ってくることがほんとによく発生するので、兎に角これをやっておくことをお勧めします。

作例

まとめ

  • Arduinoのシールドが使えるタイプは、シールドを使ったり作ったりするときに使おう
  • ブレッドボード上で試作するときは、ブレッドボード上に載せる用途で作られているArduino Pro Miniを使おう
  • 試作してうまく動いたら、ATmega328に置き換えてみよう

番外編

Intel Edison kit Arduinoでもやってみました。

youtu.be

この場合、Intel Edison kit for Arduinoの5Vに外部から電圧を入れても、Edisonは稼働しません!

作例の場合、ブレッドボード側のMicroUSBコネクタを外して、Edison側から給電しています。

Intel Edisonのセットアップスクリプト・時刻合わせ関係をまとめた

切手大(よりちょっと大きい)のLinuxが動くミニデバイスIntel Edisonをいろいろいじってみているんですけれども、もうちょっとしたら秋月電子のI2Cデバイスのライブラリが出るとか出ないとか聞いたので盛り上がりそうな気もするんだけれども、採用されたLinuxのYocto Projectのブートイメージのプロセス起動マネージャがSystemdなんですね!

f:id:C_L:20150207013517j:plain

おそらくIntel EdisonでSystemdっていうのはブートの高速化っていう意味でアリなんだと思うんですけれども、そのせいで昔のLinuxと勝手が違ったりするような気がします。そういう意味で、今時のやり方、とは言いませんけれども、ちょっと調べてまとめてみた次第です。

Intel Edisonの初期化後 毎回セットアップする作業をひとまとめ - Qiita

Intel Edisonの時刻合わせ(systemd-timesyncd,timedatectl) - Qiita

やっぱSystemdがいろいろ抱え込んだせいで今までのネットにある情報流用の勘所がわかりにくくなっているんだよなーとか思います。

会社だと運用人員の関係でCentOS 7とかにはできない感じなので、この機会にSystemdに慣れておこうと思っています。つかこの前CentOS 6のUpstart教えたばっかりだよ……

Intel Edison Breakout Board Kit: マイコン関連 秋月電子通商 電子部品 ネット通販

はじめての8pin IC Lチカ(タイマIC 555使用編)

8pinのICが手に入ったので、早速LEDをチカチカさせる、略してLチカを実行してみました。

f:id:C_L:20150127220346j:plain

使ったのは8pin AVRマイコンとかではなく、タイマIC 555です。昔バックアップ活用テクニックで555を使用した連射回路とか書いてあっても地方だと入手できなくて涙をのんだアレです。ここで雪辱を果たしましょう。

回路に関しましては、マルツ様のページを参考にしました。

タイマICでLEDを点滅させる | マルツオンライン

部品表としては、

部品名(秋月電子通商 価格(税込)
タイマIC NE555N 5個入り ¥100
3mm黄緑色LED OSNG3133A 100個入 ¥450
積層セラミックコンデンサ 0.1μF 10個入り ¥30
積層セラミックコンデンサ 0.01μF 10個入り ¥100
積層セラミックコンデンサ 0.47μF 1個 ¥20
抵抗 1MΩ 1/4W 100本入り ¥100
抵抗 150Ω 1/4W 100本入り ¥100
ブレッドボード ¥130
電池ボックス 単3×3本 端子Bスナタイプ ¥50
配線 適量 ありもの

積層セラミックコンデンサの0.1μFは、パスコン用途で鬼のように使うので、ものすごく安いです。あと、LEDは、たくさん入っていて暗くて安い奴のほうが燃えてもダメージ低いのでお勧めです……

部品名(マルツ) 価格(税別)
電池スナップ(先がピンになっているもの) ¥60

電池スナップから出ているコネクタの先がコンタクトピンになっているタイプはマルツの店頭で売っていたのですが写真のようにブレッドボードに刺せるので、こちらのほうがお勧めです……

なお、555の1ピン・GNDと8ピン・VCCにまたがって配置されている0.1μFのコンデンサはノイズ除去用のパスコン、5ピンとGNDにまたがって配置されている0.01μFのコンデンサは、555のタイマの出力を別の信号に応じて揺らすときに使う入力を一定にするためものなので、これらはLチカのようにすぐにほぐしてしまう回路ならば実質不要で、外してしまうとこんな感じです。

f:id:C_L:20150127224001j:plain

何はともあれ、これに3.6V電源を入れてあげると、普通に点滅し始めます。

f:id:C_L:20150127224505j:plain

点滅間隔や周期を変えるには、コンデンサと抵抗を変更する必要があります。それに関してはアナログ回路の単純さというか面倒くささがありますけれども、ICの動作電圧範囲が広いので、例えば12VのDCファンの速度を下げる時にタイマICを使い電流が流れる比率を変えて制御するときの、矩形波の発生源として簡単に投入できるなど、メリットもあります。

一方、マイコンを使うと、動作電圧が限定されるというデメリットがありますが、点滅の速さはプログラムで自由に変えられます。別の機会に、同じ8pinのICでもマイコンであるATtiny 13Aを使って、プログラムでLチカするやつをやってみたいと思います。

「びんぼうでいいの」に生AVRマイコンを載せたままArduino化(ICSP)

aitendoで売っている500円Arduino互換機基板「びんぼうでいいの」、プラス250円でそれ用の汎用部品パック、さらにそのまま秋葉原に歩いて行って秋月電子で生のATmega328(まだプログラムを焼いていないAVRマイコン部品)を買い合わせると1000円ちょい(秋月は税込みだけどaitendoが税抜なのだ)でArduino Uno互換機(ただし魂が入っていない)ができます。


びんぼうでいいの - aitendo


部品パック for びんぼうでいいの - aitendo


AVRマイコン ATMEGA328P−PU: マイコン関連 秋月電子通商 電子部品 ネット通販

ところで、生のATmega328を買った場合、どうにかしてArduinoとして動くようなプログラムを書き込む必要があって、それをする方法として、すでに動いているArduinoマシンにOptifixというスケッチを書き込んで、Arduino複製機にしてしまうというやり方がメジャーです。

「びんぼうでいいの」を販売するaitendoでも、Optifixを使ってATmegaに書き込みする方法を提示しているのですけれども、なにやら書き込むためにブレッドボードで書き込み回路(実は16MHzのクロック供給回路)を用意するなど大掛かりなことになっています。

f:id:C_L:20141230004321g:plain

16MHzの水晶振動子のところを16MHzのコンデンサ内臓セラロックにすれば35円程度という話なのですが、もう一回秋月電子に行くのは大変です。


セラミック発振子(セラロック)コンデンサ内蔵タイプ 16MHz: パーツ一般 秋月電子通商 電子部品 ネット通販

というか、目の前にArduino互換基板「びんぼうでいいの」があるなら、それで書き込みできたらいいじゃないか、ということであります。

ICSP端子を使おう

AVRマイコンを使った製品を、製品に組み込んだ後からでも書き込みできるように、ICSP端子というものが用意されていたりします。

Icsp-pinouts.png
"Icsp-pinouts" by Jwzumwalt - Own work. Licensed under CC BY-SA 3.0 via Wikimedia Commons.

そこで、手元のブツを見たれば、

  • 書き込み用プログラムを書き込もうと思っていた手持ちのArduino DuemilanoveにはAVRスタイルの6ピンのICSP端子
  • 「びんぼうでいいの」にもAVRスタイルの6ピンのCSPとシルク印刷されたランドパターン

がありました。

※現行Arduinoでは標準品となるArduino UnoR3では、USB側にICSP2なる6ピンヘッダが出ていますが、UnoはUSBの通信とATmega328の書き込みを担当するサブAVRマイコンATmega16U2がUSB近くに配置されていて、それの再書き込み用ICSP端子(普通は使わない)です。

f:id:C_L:20141230003002j:plain

ICSP端子は、書き込まれる用途に使われるのですが、Optifixスケッチ(プログラム)では、書き込む側でも、ICSP端子のうち第5ピンのRSTを除く5つのピンが共通して使われていました。

そこで、「びんぼうでいいの」の空きパターンに、ピンヘッダ(別売り)をはんだ付けして端子を建てて、利用できるようにした後、1~4ピン、6ピンは同じピン番号同士を接続、書き込み先の基板のICSP端子5ピンは、書き込み元のArduinoのD10端子につなぎます

f:id:C_L:20150128024818p:plain

f:id:C_L:20141230000756j:plain

あとは、aitendoの商品ページに書いてある通り、転送元のArduinoに(ヘッダ記述を修正済みの)Optifixを書き込むと、転送元のArduinoに書き込み終了後「いきなり」ICSPで接続した書き込み先の基板上のAVRマイコンArduinoブートローダ―プログラムを書き込みます。

というわけで、ICSP端子を使えば、AVRマイコンArduino化にわざわざ部品を集める必要はないよ、ていうことでした。

追記

新製品出てた! 水晶振動子がはんだ付けされていないから自由に速度選べるだそうで。

びんぼうでいいの - aitendo

追記2

勘のいい人は気づいたかもしれませんが、びんぼうでいいの部品パックには、USBASP用の10ピンのボックスヘッダが付いてきますので、ここに対応する位置を合わせて接続すれば、ICSPのところにピンヘッダを建設する必要はありません。結局ピン対応図を見比べて配線するのであれば、そっちで書き込むほうが余計なコストがかからずいいのかもしれません。

追記3

勘のいい人は気づいたかもしれませんが、書き込み側ArduinoのスケッチをOptifixではなくてArduino ISPにすると(Arduino IDE環境に含まれている)、別のブートローダーを書き込めます。なので、「びんぼうでいいの」で開発が終わったATmega328をブレッドボードや基板などに移して使うために内蔵RC発振8MHz化したい(水晶振動子が要らない)、という場合にも「びんぼうでいいの」に載せたままATmega 328(Int.8MHz)のブートローダーを焼き、更に動作確認済みのスケッチも転送できます。