はんだ吸取器 [ツール]
パソコンをしていると、8ヶ月の息子が邪魔をしてきます。
以前に使っていた PFU Happy Hacking Keyboard Lite を与えました。
スペースキーの接触が悪くなりお蔵入りしていたものです。
ところが、やたらコードを舐めるので、分解してコードレスにしてみました。
分解したついでに基板も取り外し、部品取りをしました。
そのときに使ったのが、はんだ吸取器 HAKKO 808です。
[HAKKO] | はんだ吸取器 | HAKKO 808
http://www.hakko.com/japan/products/hakko_808.html
いままで、はんだ吸い取り線やスッポンで苦労していたのですが、808は気持ちいいくらい吸い取ってくれます。
お手入れは説明書をみてもよくわかりませんでしたが、実際さわってみると簡単にできました。
表面実装部品以外のパーツはすっかりきれいに取り外せました。
このキーボードになにか仕込めると楽しいかも。
以前に使っていた PFU Happy Hacking Keyboard Lite を与えました。
スペースキーの接触が悪くなりお蔵入りしていたものです。
ところが、やたらコードを舐めるので、分解してコードレスにしてみました。
分解したついでに基板も取り外し、部品取りをしました。
そのときに使ったのが、はんだ吸取器 HAKKO 808です。
[HAKKO] | はんだ吸取器 | HAKKO 808
http://www.hakko.com/japan/products/hakko_808.html
いままで、はんだ吸い取り線やスッポンで苦労していたのですが、808は気持ちいいくらい吸い取ってくれます。
お手入れは説明書をみてもよくわかりませんでしたが、実際さわってみると簡単にできました。
表面実装部品以外のパーツはすっかりきれいに取り外せました。
このキーボードになにか仕込めると楽しいかも。
PFU Happy Hacking Keyboard Lite2 英語配列 USBキーボード ブラック PD-KB200B/U
- 出版社/メーカー: PFU
- メディア: Personal Computers
USBシリアル その2 [Arduino]
結局、ATtiny45版の他に、ATtiny2313版も作ってしまいました。
本家の表面実装パーツに比べるとかさばります。
それぞれの組み立て回路図はこんな感じです。
<ATtiny45版>
<ATtiny2313版>
CDC-AVRのページには、ツェナーダイオードではなくLEDで全体の電圧を落として使うように書いてあったのですが、意味なくLEDが光っているのもいやだったので、ツェナーダイオードを使いました。
ATtiny45版では、1カ所ジャンパの代わりにポリスイッチを挟んでみました。(ほんとはプルアップ抵抗の前に入れるべきでしょうが、ちょうどジャンパの代わりになって一石二鳥かなと、、)
ATtiny2313版では、ICソケット下にジャンパを通すのですが、秋月電子通商で買ったソケットは19番と20番の間にしきりがあるので、あえてあの位置になりました。
あと、ATtiny2313版は外部クロックが必要なのですが、ファームウェアを書き込むときにFuse (Lo:FF, Hi:CD, Ex:FF) を書き込んだ以降は外部クロックがないと操作できなくなるので、実際に回路の組み立てが終わってATtiny2313を搭載した上でICクリップで挟んで操作することになりました。
はじめUSBのD+,D-の信号線を逆にしていたため認識せず焦りましたが、原因も究明でき、デバイスドライバを要求してきたのでインストール。
Tx, Rxをワイヤーでつないでループバック試験をします。
Arduino IDEのシリアルモニターでBaud Rateを設定して、テキストボックスに入力した文字が返ってきたらOKです。
DTR制御線がなく、リセットができないことが残念なところです。
ドライバのインストールは64ビット版だと何やら面倒なようです。
うちの32bit Vistaでのドライバインストールは次のとおりです。
本家の表面実装パーツに比べるとかさばります。
それぞれの組み立て回路図はこんな感じです。
<ATtiny45版>
<ATtiny2313版>
CDC-AVRのページには、ツェナーダイオードではなくLEDで全体の電圧を落として使うように書いてあったのですが、意味なくLEDが光っているのもいやだったので、ツェナーダイオードを使いました。
ATtiny45版では、1カ所ジャンパの代わりにポリスイッチを挟んでみました。(ほんとはプルアップ抵抗の前に入れるべきでしょうが、ちょうどジャンパの代わりになって一石二鳥かなと、、)
ATtiny2313版では、ICソケット下にジャンパを通すのですが、秋月電子通商で買ったソケットは19番と20番の間にしきりがあるので、あえてあの位置になりました。
あと、ATtiny2313版は外部クロックが必要なのですが、ファームウェアを書き込むときにFuse (Lo:FF, Hi:CD, Ex:FF) を書き込んだ以降は外部クロックがないと操作できなくなるので、実際に回路の組み立てが終わってATtiny2313を搭載した上でICクリップで挟んで操作することになりました。
はじめUSBのD+,D-の信号線を逆にしていたため認識せず焦りましたが、原因も究明でき、デバイスドライバを要求してきたのでインストール。
Tx, Rxをワイヤーでつないでループバック試験をします。
Arduino IDEのシリアルモニターでBaud Rateを設定して、テキストボックスに入力した文字が返ってきたらOKです。
DTR制御線がなく、リセットができないことが残念なところです。
ドライバのインストールは64ビット版だと何やら面倒なようです。
うちの32bit Vistaでのドライバインストールは次のとおりです。
USBシリアル その1 [Arduino]
自作Arduinoで困るのはパソコンとのシリアル接続。metaboardはスケッチの書き込みにしかUSBを使えないのであいかわらず、
FT232RL搭載小型USB-シリアルアダプタ 5V
http://www.switch-science.com/products/detail.php?product_id=342
を使っています。
Arduinoとはピン配列が違ったりDTR信号がなかったりするわけですが、安いものなら400-500円くらいで売っているようです。
変換アダプタ > USB->TTL - aitendo@shopping
http://www.aitendo.co.jp/product-list/274
でも、調べてみると自作する方法もあるようです。
ソフトウェア USB による仮想 COM ポート AVR-CDC - CDC-232
http://www.recursion.jp/avrcdc/cdc-232j.html
ここではいつも使っているArduinoと同じAVRマイコンを使っています。
いろいろ制限はあるようですが、とりあえずファームウェアを書き込みさえできれば、あとは電子工作でよさそうです。コンパクトなものがいいので、ATtiny45を使用したもので行こうと思います。
というわけで早速ファームウェアの書き込みをしてみます。
以前に作ったブートローダライターにICSPの6ピンのヘッダーを付けておいたのでこれを利用します。
ブートローダライター [AE-UM232R]
http://hello-world.blog.so-net.ne.jp/2011-03-27
書き込まれる側にはICクリップを使うという技がありました。
AVRISP mkIIとAVR Studio 4で始めるAVRマイコン開発
http://homepage.mac.com/keinsoft/archive/hardwares/090112-avr1ststep-avrispmk2/090112-avr1ststep-avrispmk2.html
たしかに便利。
というわけでATtiny45用に作ってみました。
ケーブル圧接型ソケットも初めて使いましたが、安い万力みたいなものでカチカチっとしたらくっつきました。
書き込みソフトは avrdude-GUI [YCIT] を使わせていただきました。新バージョンです。
AVR/avrdude13 - 千秋ゼミ: avrdude-2011-0610版 【ダウンロード】
http://202.35.250.1/ken/senshu/sitedev/index.php?AVR%2Favrdude13#n9d66a8a
「Programmer」 を 「(diecimila) FT232 Sync Bitbang」 にして、「Read」 ボタンを押して、マイコンの種類と Fuse が表示されれば接続はOK
「Flash」 にダウンロードしたHexファイルを指定して、「Fuse (HEX)」はReadme.txt の通りに指定して
「Write」ボタンで書き込み完了。
次回は、ハードウェアです。
FT232RL搭載小型USB-シリアルアダプタ 5V
http://www.switch-science.com/products/detail.php?product_id=342
を使っています。
Arduinoとはピン配列が違ったりDTR信号がなかったりするわけですが、安いものなら400-500円くらいで売っているようです。
変換アダプタ > USB->TTL - aitendo@shopping
http://www.aitendo.co.jp/product-list/274
でも、調べてみると自作する方法もあるようです。
ソフトウェア USB による仮想 COM ポート AVR-CDC - CDC-232
http://www.recursion.jp/avrcdc/cdc-232j.html
ここではいつも使っているArduinoと同じAVRマイコンを使っています。
いろいろ制限はあるようですが、とりあえずファームウェアを書き込みさえできれば、あとは電子工作でよさそうです。コンパクトなものがいいので、ATtiny45を使用したもので行こうと思います。
というわけで早速ファームウェアの書き込みをしてみます。
以前に作ったブートローダライターにICSPの6ピンのヘッダーを付けておいたのでこれを利用します。
ブートローダライター [AE-UM232R]
http://hello-world.blog.so-net.ne.jp/2011-03-27
書き込まれる側にはICクリップを使うという技がありました。
AVRISP mkIIとAVR Studio 4で始めるAVRマイコン開発
http://homepage.mac.com/keinsoft/archive/hardwares/090112-avr1ststep-avrispmk2/090112-avr1ststep-avrispmk2.html
たしかに便利。
というわけでATtiny45用に作ってみました。
ケーブル圧接型ソケットも初めて使いましたが、安い万力みたいなものでカチカチっとしたらくっつきました。
書き込みソフトは avrdude-GUI [YCIT] を使わせていただきました。新バージョンです。
AVR/avrdude13 - 千秋ゼミ: avrdude-2011-0610版 【ダウンロード】
http://202.35.250.1/ken/senshu/sitedev/index.php?AVR%2Favrdude13#n9d66a8a
「Programmer」 を 「(diecimila) FT232 Sync Bitbang」 にして、「Read」 ボタンを押して、マイコンの種類と Fuse が表示されれば接続はOK
「Flash」 にダウンロードしたHexファイルを指定して、「Fuse (HEX)」はReadme.txt の通りに指定して
Fuse bits ext H-L ATtiny2313 FF CD-FF ATtiny45/85 FF CE-F1 ATmega8 8F-FF ATmega48/88/168 FF CE-FF
「Write」ボタンで書き込み完了。
次回は、ハードウェアです。
タグ:AVR-CDC
Arduino Mega 2560 間違い探し [Arduino]
Arduino Mega 2560 を買おうと思って安いサイトを探していたら、
Aliexpress.com
http://www.aliexpress.com/
というところに行き着きました。
中国の業者と買い手の橋渡しをするようなサイトの様です。
ここの一番安いところで注文して、2週間弱で届きました。
値段は送料を含めて $33.77 と日本円で2700~2800円くらいで非常に安かったのですが、、
なにやら違和感があります。
・箱に入っていない (プチプチにくるんであった)
・ハンダがテカテカしていて鉛フリーではなさそう
・シルク印刷が薄い感じがする
ということで、今回購入したものと、Arduinoのサイトに載っているものを比較してみました。
<今回購入したもの>
<本家>
http://arduino.cc/en/Main/ArduinoBoardMega2560
比較してみると、、
パーツの違いや、シルク印刷のフォントやサイズ、USBコントローラのICSPピンがついていたり、、
いろんなところが違っていました。
裏面も「DESIGN IN ITALY」とあり、イタリア製ではないみたい。
タグ:Arduino Mega
続・自作プロトシールド [Arduino]
自作プロトシールドの続きです。
秋月電子通商で以下のものを注文してみました。
片面ガラス・ユニバーサル基板Cタイプ1.27mmピッチ(72x48mm): パーツ一般 秋月電子通商 電子部品 ネット通販:
http://akizukidenshi.com/catalog/g/gP-04707/
ピンソケット1x6(6P): パーツ一般 秋月電子通商 電子部品 ネット通販:
http://akizukidenshi.com/catalog/g/gC-04045/
ピンソケット1x8(8P): パーツ一般 秋月電子通商 電子部品 ネット通販:
http://akizukidenshi.com/catalog/g/gC-04046/
合計は、100 + 30x2 + 40x2 = 240 (円) となりました。
ユニバーサル基板をArduinoに合うように切断しました。
ピンはピンホールとピッタリのはまり具合でした。
ほんとは、ソケットなしのピンだけというもの(釘のような形?)のものがあるといいのになぁ。
秋月電子通商で以下のものを注文してみました。
片面ガラス・ユニバーサル基板Cタイプ1.27mmピッチ(72x48mm): パーツ一般 秋月電子通商 電子部品 ネット通販:
http://akizukidenshi.com/catalog/g/gP-04707/
ピンソケット1x6(6P): パーツ一般 秋月電子通商 電子部品 ネット通販:
http://akizukidenshi.com/catalog/g/gC-04045/
ピンソケット1x8(8P): パーツ一般 秋月電子通商 電子部品 ネット通販:
http://akizukidenshi.com/catalog/g/gC-04046/
合計は、100 + 30x2 + 40x2 = 240 (円) となりました。
ユニバーサル基板をArduinoに合うように切断しました。
ピンはピンホールとピッタリのはまり具合でした。
ほんとは、ソケットなしのピンだけというもの(釘のような形?)のものがあるといいのになぁ。
日本語対応の電光掲示板ができました [Arduino]
いままでの成果
・I2C EEPROM
・日本語処理
・16x8 マトリックスLED
これらをまとめたものが完成しました。
再生できない場合、ダウンロードは🎥こちら
シリアルで入力した文字列を、スクロール表示するスケッチです。
ふと思ったのは、LinuxやMac OSだとシフトJISでないかもしれないことです。
しかし確認のしようがないのでごめんなさい。
あと、アナログピンソケットの接触不良は、ピンをすこし曲げることで応急処置が可能でした。
スケッチはビギナーらしく、きれいとは言えませんが、
i2c_eeprom_read_buffer()
sjisToElisa()
asciiToElisa()
matrixClear()
matrixRefresh()
これらの以前使ったものを再利用して、
さらに、シリアルからのテキストを受信/テキストをドットイメージに変換/スクロール表示部分を追加しました。
お恥ずかしながら、スケッチを載せます。
・I2C EEPROM
・日本語処理
・16x8 マトリックスLED
これらをまとめたものが完成しました。
再生できない場合、ダウンロードは🎥こちら
シリアルで入力した文字列を、スクロール表示するスケッチです。
ふと思ったのは、LinuxやMac OSだとシフトJISでないかもしれないことです。
しかし確認のしようがないのでごめんなさい。
あと、アナログピンソケットの接触不良は、ピンをすこし曲げることで応急処置が可能でした。
スケッチはビギナーらしく、きれいとは言えませんが、
i2c_eeprom_read_buffer()
sjisToElisa()
asciiToElisa()
matrixClear()
matrixRefresh()
これらの以前使ったものを再利用して、
さらに、シリアルからのテキストを受信/テキストをドットイメージに変換/スクロール表示部分を追加しました。
お恥ずかしながら、スケッチを載せます。
16x8 マトリックスLED 電光掲示板 [Arduino]
Arduinoで、8x8マトリックスLEDを1つなら普通なのですが、
ikkei Electronics:
http://web.mac.com/kxm_ikkei/Site/Welcome.html
ここに、なんと16ピンだけで8x8マトリックスLEDを2つも駆動する方法が詳細に書いてありました。
「Charlieplexingの考察と8x8ドットマトリクスLEDへの適用.pdf」
を熟読してなんとか理解しました。
肝は、Arduino のI/Oを 入力(INPUT)にすることでHi-Z (ハイ・インピーダンス:回路の出力が電気的に接続されていないような状態)とすることの様です。
とても感心いたしました。
赤色LEDドットマトリクス(8×8)38x38mm TOM-1588BH
http://akizukidenshi.com/catalog/g/gI-00963/
が、販売終了になってしまったので、
2色(赤・緑)LEDドットマトリクス(8×8) BU5004-RG
http://akizukidenshi.com/catalog/g/gI-00889/
を赤だけ使うことにしました。
前回の自作シールドを使って電光掲示板をつくってみました。
接触不良のため、輪ゴムで固定しないと点灯しない行や列ができてしまいました。
スケッチを簡単にするため、ArduinoのI/Oピンの順番とLEDの列の順番を合わせました。
配線はUEW線というものを使いましたが、初めてのUEW線で、エナメルが熱で溶けるのかどうか、エナメルの被覆がはがれているのかどうかよくわからない状態で困難をきわめました。見た目も美しくありません。
今後の漢字表示のためにEEPROMも搭載しています。
LEDの真ん中の列は、赤のカソードで行(ROW)の順番どおりに配置されているので助かります。
(抵抗が入っていますが説明簡略化のためこの図にはなかったことにしてあります)
右側のLEDのカソードを左側のLEDの列(COL)となるアノードに
左側のLEDのカソードを右側のLEDの列(COL)となるアノードに
悲惨な裏面、、。
スケッチは比較的シンプルになりました。
Arduinoだとピン数が足りないけど、Sanguino や Arduino mega だと、24ピンだけで 8x8の2色マトリックスLEDを3つ駆動することができるんじゃないかなぁと思っています。
2色のマトリックスLEDを3つつなげようと思うと
単純に接続した場合、
(Red 8 + Green 8 + Common 8) x 3 = 72 ピン
commonを3個で共有したとしても、
(Red 8 + Green 8) x 3 + Common 8 = 56 ピン
逆にRed, Greenを3個で共有したとしても、
Red 8 + Green 8 + Common 8 x 3 = 40 ピン
必要なはず。
ikkeiplexing はすごいなぁ。
ただ、駆動する個数が増えると電流や明るさの問題がでてくるかもしれませんね。
ikkei Electronics:
http://web.mac.com/kxm_ikkei/Site/Welcome.html
ここに、なんと16ピンだけで8x8マトリックスLEDを2つも駆動する方法が詳細に書いてありました。
「Charlieplexingの考察と8x8ドットマトリクスLEDへの適用.pdf」
を熟読してなんとか理解しました。
肝は、Arduino のI/Oを 入力(INPUT)にすることでHi-Z (ハイ・インピーダンス:回路の出力が電気的に接続されていないような状態)とすることの様です。
とても感心いたしました。
赤色LEDドットマトリクス(8×8)38x38mm TOM-1588BH
http://akizukidenshi.com/catalog/g/gI-00963/
が、販売終了になってしまったので、
2色(赤・緑)LEDドットマトリクス(8×8) BU5004-RG
http://akizukidenshi.com/catalog/g/gI-00889/
を赤だけ使うことにしました。
前回の自作シールドを使って電光掲示板をつくってみました。
接触不良のため、輪ゴムで固定しないと点灯しない行や列ができてしまいました。
スケッチを簡単にするため、ArduinoのI/Oピンの順番とLEDの列の順番を合わせました。
配線はUEW線というものを使いましたが、初めてのUEW線で、エナメルが熱で溶けるのかどうか、エナメルの被覆がはがれているのかどうかよくわからない状態で困難をきわめました。見た目も美しくありません。
今後の漢字表示のためにEEPROMも搭載しています。
LEDの真ん中の列は、赤のカソードで行(ROW)の順番どおりに配置されているので助かります。
(抵抗が入っていますが説明簡略化のためこの図にはなかったことにしてあります)
右側のLEDのカソードを左側のLEDの列(COL)となるアノードに
左側のLEDのカソードを右側のLEDの列(COL)となるアノードに
悲惨な裏面、、。
スケッチは比較的シンプルになりました。
// 8x8 matrix LED を ikkeiplexing で 2個使う byte hello[] = { 0b11111111, 0b00010000, 0b11111111, 0b00000000, 0b01111000, 0b10010100, 0b01011000, 0b00000000, 0b11111111, 0b00000000, 0b11111111, 0b00000000, 0b01110000, 0b10001000, 0b10001000, 0b01110000 }; void setup() { } void loop() { matrixRefresh( hello ); } void matrixClear() { for(int i = 0; i < 16; i++ ) pinMode( i + 2, INPUT ); } void matrixRefresh( byte bitmap[] ) { for(int x = 0; x < 16; x++ ){ matrixClear(); pinMode( x + 2, OUTPUT ); // 点灯する列を指定 digitalWrite( x + 2, LOW ); for(int y = 0; y < 8; y++ ) { // 指定列のデータを表示 if( bitRead( bitmap[x], y ) ) { pinMode( y + ( ( x < 8) ? 10 : 2 ) , OUTPUT ); digitalWrite( y + ( ( x < 8) ? 10 : 2 ) , HIGH ); } } delay(1); } }
Arduinoだとピン数が足りないけど、Sanguino や Arduino mega だと、24ピンだけで 8x8の2色マトリックスLEDを3つ駆動することができるんじゃないかなぁと思っています。
2色のマトリックスLEDを3つつなげようと思うと
単純に接続した場合、
(Red 8 + Green 8 + Common 8) x 3 = 72 ピン
commonを3個で共有したとしても、
(Red 8 + Green 8) x 3 + Common 8 = 56 ピン
逆にRed, Greenを3個で共有したとしても、
Red 8 + Green 8 + Common 8 x 3 = 40 ピン
必要なはず。
ikkeiplexing はすごいなぁ。
ただ、駆動する個数が増えると電流や明るさの問題がでてくるかもしれませんね。