ユーザ用ツール

サイト用ツール


leonard_pirate

Leonard Pirate とは

Leonardoじゃなくて、Leonardです!
Arduino Leonardoと同じ構成で(といってもピン数少なくしてますが)、USBポートにお手軽に刺してArduino環境で遊べるボードです。
Bus Pirateというボード(汎用シリアルインターフェース)があって、こいつはお手軽にUSBポートに刺して色々繋いでコントロールして遊べるのですが、
使い慣れたArduino環境でセンサとかをとりあえず使ってみるのに便利かなーと思って作ってみました。
小さくするために、3.3Vとか、Leonardで追加されたピンなどは捨てています。あくまでサクっとプロトタイピング用という目的で。

このボードは、Dangerous PrototypesのBus Pirateにインスパイアされて作りました。
MTMでDangerous PrototypesのIanに会って見せていたのですが、Ianにblogエントリで煽られたので、”Bus Ninja”をPortしてみました。
“Bus Ninja”は、”Bus Pirate”というSPI/I2Cデバイスをコマンドラインでハックできるモノのクローンです。

USB-Aコネクタを取り付けてそのままPCに刺せるようにする使い方と、micro-Bコネクタを取り付けてケーブルを使ってPCと接続する方法とが選択可能です。

USB-Aコネクタの場合
6237845177_dc04ea8842_m.jpg
micro-Bコネクタの場合
6238366920_2e4861f537_m.jpg

コネクタ両方付けるのは、micro-Bのケーブル側コネクタと基板に取り付けたUSB-Aコネクタが干渉して無理だと思います。
(それになんか気持ち悪いことになるしね。)

回路図


betaの回路図はこちら。
といっても、たいしたもんじゃありません。
Arduinoのpins_arduino.h(105行目〜)を参照してピンをレイアウトしました。

回路図、修正してRC版を作りました。

ピン定義はmasterブランチのpins_arduino.hに移動して、変更されているので、こっちに合わせてあります。

パーツリスト

Part.容量など部品名パッケージ入手元通販コード値段
C11uFC-USC0603KC0603K秋月P-029962
C222pFC-USC0603KC0603K千石 4
C322pFC-USC0603KC0603K千石 4
C40.1uFC-USC0603KC0603K秋月P-049400.5
C510uFC-USC3216C3216秋月P-0118512.5
C60.1uFC-USC0603KC0603K秋月P-049400.5
C70.1uFC-USC0603KC0603K秋月P-049400.5
IC1ATMEGA32U4-AUATMEGA32U4-AUTQFP44SSCI 480
LD13LEDCHIP-LED0805CHIP-LED0805秋月I-0397810
L1500mAPTCFUSE-1206R1206
L2TXLEDCHIPLED_0805CHIPLED_0805秋月I-0397810
L3RXLEDCHIPLED_0805CHIPLED_0805秋月I-0397810
PWRGREENLEDCHIP-LED0805CHIP-LED0805秋月I-0398010
R122R-US_R0603R0603千石 4
R222R-US_R0603R0603千石 4
R31KR-US_R0603R0603千石 4
R410KR-US_R0603R0603千石 4
R51KR-US_R0603R0603千石 4
R61KR-US_R0603R0603千石 4
R71KR-US_R0603R0603千石 4
R810KR-US_R0603R0603千石 4
S1 TAC_SWITCHSMDTACTILE_SWITCH_SMD秋月P-0300620
X1USBUSBMOLEX_480371000秋月C-0223650
X2USB-MICROBUSB-MICROBUSB-MICROB千石 200
X3FA238-16MHzXTAL-4-3225 秋月P-0245750


大抵のパーツは秋月と千石で手に入ります。
ポリスイッチはどうしようか思案中。私は、とりあえずスズメッキ線で短絡してます。

組み立て方

といっても、SMDを手ハンダしようとしている人に言うことなぞありません。
あえて言えば、秋月のAコネクタはSMTタイプじゃないので、ラジオペンチで足を曲げて、ランドからはみ出る部分はニッパーで切って、うまいこと納めてください。
また、千石で買ってきたmicro-Bコネクタは、裏にポッチが付いてるのですが、基板には穴が開いていません。なので、ポッチをニッパーで切ってください。
micro-Bコネクタは奥まったところに足が出てたので、ちょっとだけはんだづけ難易度が高かったです。

XTALの取り付け方向ですが、写真を参考にして下さい。(写真は2011/09/25-alphaのものです。RCとは方向が違うので注意してください。)
端子は対角線上に配置されていますので、長辺と短辺が合っていればOKです。
6237121977_54f9830035_m.jpg

下のErrataのところに記載していますが、RX, TXのLEDはシルクと逆に取り付けてパターンカットするか、そもそも取り付けないのがお薦めです。

ソフトウェア

組み終えたら、32U4にブートローダを書き込んでやってください。
Arduino 1.0 RC1あたりを立ち上げて、USBtinyISPなどのArduinoが対応しているISPで接続し、BoardでArduino Leonardoを、あとProgrammerの機種を選択、
“Burn Bootloader”をクリックすれば書き込めます。
もちろん、ISPとLeonard Pirateは接続しておいてくださいね。6pinのICSP端子がついてて、pin1のところに▼のシルクでマーキングがあります。
ターゲットに給電してくれないタイプの(AVRISP mkIIなど)ISPを使う場合、USBに刺してLeonard Pirateに給電してやらなきゃいけない事をお忘れ無く。

“Bus Ninja”のhexは、ここからダウンロードできます。ソースコードに興味があれば、僕のgithubレポジトリに置いてありますので、どうぞ。
avrdudeで書き込むなら、

avrdude -p atmega32u4 -c stk500v2 -P usb -F -U flash:w:ninja-leonard-pirate-atmega32u4.hex -U lfuse:w:0xCE:m -U hfuse:w:0xD8:m -U efuse:w:0xFF:m

こんな感じにすると良いでしょう。



Errata

2011/09/25-alphaと裏面にシルクがあるものの既知の問題点は次のとおりです。

  • RX, TXのLEDがH/L逆になっており、普段は点灯しっぱなしになる。
    • LEDを逆に付けて、R6,R7のGNDをパターンカットしてVCCに接続することで、とりあえず対応してください。
  • 部品は裏面にも実装すべきじゃなかったなぁ…
  • ソフトウェアの問題のような気がしてなりませんが、digitalWrite(A0, HIGH);すると、RXのLEDが…
  • RSTピンの位置が微妙(ユニバーサル基板を上に載せられない)


ToDo

2011/11/16 基板作り直して、以下の内容を変更しておきます。

  • RX,TXのLEDをVCCからぶら下げる
  • 部品は片面に揃える
  • ピンのシルクを修正
  • 全てのデジタルピンとアナログピンを出すべきだろうか(検討中)
  • VCCとGNDは信号ピンと別に出そうかなぁ
  • USB-Aコネクタオスの位置修正
  • 今みたいに列にD0-D7と出すのではなく、ボックスヘッダに合わせてD0,D2,D4と出すべきだろうか
  • RSTピンの位置が微妙なのを修正
leonard_pirate.txt · 最終更新: 2011/12/10 21:56 by ytsuboi