ikkei blog

電子工作やパズルのブログです。主にLEDを使った電子工作をやっています。

とりあえず万能トレーを棚に収めてみた

2014年01月30日 00時40分01秒 | 組み込みソフト
部屋の配置換えをして、棚に万能トレーを入れてみました。


キレイに見えているのは今だけかも。

実は、まだ未収納の部品が山ほどあります。
それらを入れていくと乱雑になるのは必至。
とりあえず、イニシャル状態を撮ってみました。

「Eメールの中国語」を買ってみた

2014年01月29日 12時45分04秒 | 中国語
29日はMacfanの発売日なので、本屋さんへ行き、
買ったのがこの2冊です。



本屋で他のコーナーも見ていたとき、中国語のコーナーで、
「Eメールの中国語」と言う本が目に止まりました。
そう言えば、今日上海の会社に中国語のメールを書いたのでした。

中を見ると左ページに中国語のメール、右ページにその解説という具合に
シンプルで見易い構成になっていたので、思わず買ってしまいました。

EagleでSOT-89の基板マクロができた

2014年01月27日 23時26分15秒 | 電子工作
Eagleで部品のパターンが基板マクロです。
表面実装部品の場合、大抵長方形のPADを並べれば、
基板マクロを作ることができます。
例えば、こんなSOT-23のトランジスタなどは、


データシートに推奨フットパターン図が書いてありますので、


そのまま、PADのサイズを決めて配置すればできます。




でも、3端子レギュレータなどは、SOT-89になっています。


データシートにはこんな図面が描いてあります。


ところが、EagleのPADには長方形しかありません。
長方形に台形のポリゴンを付け足したりしてみましたが、
DRCでエラーが出たりして、うまくいきません。

ツイッターで聞いてみたところ、すぐに情報を頂きました。
マニュアルの8.13に書いてあるとのことで、
読んでみると、PADの中心を含むようにポリゴンで書けば良いとのこと。
なるほど、気が付きませんでした。

で、作ってみました。
角を丸くしないようにポリゴンの線幅をゼロにすると
エラーになってしまうので、0.2mmで描いてみました。
すると、エラーは出なくなりました。
tStopは線幅ゼロのポリゴンで描きました。


でも、よく見て下さい。
中央のPADはGNDですが、太くなっているところに
ベタGNDがつながっていません。

確かに、PADの中心を含むようにポリゴンを描けば
PADと同じ扱いになるものの、やはりポリゴンはポリゴンのまま
PADのようなThermalsなどの属性を持っていないのです。

DRCエラーは無くなりましたが、これでは基板マクロとしては
ちょっともの足りません。

どうにかして、ThermalsなどPADと同じ属性の図形が描けないのか?


と、考えているうちに、
ふと、じゃ大きさの違うPADを複数並べて作れば良いんじゃないか?
と、ひらめきました。


ものは試し、作ってみました。


どうでしょう?
角も丸くならないで、うまくできたでしょう?

バラすと、こんな感じです。

中央のPADは4つのPADから出来ています。

でも、これじゃ中央のPADにはピンが4本必要になってしまいます。
これじゃ回路図が変になってしまいます。
3端子レギュレータが10端子レギュレータになってしまいます。w

でも、deviceのConnectionをいじっていたら、
1つのピンに複数のPADを割り当てることができることがわかりました。


それで、こんな風につないでみました。



こうやって出来た基板マクロを使ってみると、
うまくベタGNDにもThermalsでつながりました。



これって、取説に書いてあったのかなぁ。
まぁ、うまくできたのでこれで良しとしましょう。w

WS2812 デジタルLEDをTrinketで点灯させてみた

2014年01月26日 16時28分33秒 | Arduino
以前、シリコンハウスのレジ横でふと見つけたArduino互換ボードがありました。
それが、Adafruit(エイダフルートです、一応)のTrinketです。


中身はこれです。


ピンヘッダをハンダ付けしようとしたら、
5ピンなのに6ピンのピンヘッダが付いていました。

はい、それだけハンダ付けしたら工作は終わりです。w




これで終わったらつまらないので、一応Lチカでもやってみましょう。
Arduino互換だと言うので、多分簡単に違いありません。

まずは、説明書の通り、Adafruitのサイトに行きます。
http://www.adafruit.com/products/1501

普通イントロダクションから始めるのでしょうが、
Arduino互換なので、ちょっとはしょりましょう。

Setting up with Arduino IDE へ行きます。
手っ取り早く動かしたい場合は The Fast Way でAdafruit Arduino 1.0.5.app をダウンロードします。
ここからは Mac OS での場合を書いてみます。

ところが、これを実行しようとすると、なぜか壊れてると言われてしまいます。
よく見ると、Mac OS がMavericksの場合は、ここを修正する必要があります。


私の場合、すでに変更していました。
再度ダウンロードしても、やはり壊れていると言われてしまいました。

なんで?



しょうがないので、 The Slow Way の方を試してみます。
Arduino IDE v1.0.5 はインストール済みなので、
Step 1. Add ATtiny85 Support から始めます。

まずは、ATtiny85 をArduino IDE に加えるため、
このアイコンをクリックします。


すると、ダウンロードしたファイルが解凍されて
Downloadsフォルダに hardware と言うフォルダが出来ます。


そして、このフォルダごとArduinoのスケッチの入ったフォルダに移します。


この状態で、Arduino IDE を起動すると、
マイコンボードにAdafruit のTrinketなどの3つのボードが追加されます。




これが、確認出来たらQuitして次のステップです。
次は、Step 2. Updating avrdude.conf です。

まず、このアイコンをクリックします。


すると、Downloadsフォルダに avrdude.conf がダウンロードされます。

これを Arduino.app の中に入れるのですが、
ダブルクリックすると、起動してしまうので、右クリックします。


内容を表示を選んで、etcフォルダまで開きます。


ここにある avrdude.conf をダウンロードしたものに入れ換えるのです。
avrdude.conf.bak を消して avrdude.conf を avrdude.conf.bak に変えておきましょう。
そこへ avrdude.conf を移せばOKです。


次に Step 3. Update 'ld' linker を行います。
やはり、同様にアイコンをクリックします。


すると、Downloadsフォルダに ld と言うファイルがダウンロードされます。

これを入れるのはここです。


ここにある ld を消して、ダウンロードした ld と入れ換えます。


これで、完了です。
Arduino IDE を起動してみましょう。
そして、Lチカです。

Blink! と言うところに、コードがあるので、ここをクリックします。


そして、空のスケッチへ貼り付けます。



マイコンボードは Trinket の 8MHzを選びます。



ただし、書き込みはシリアルポートではなく USBtinyISPを選びます。



で、いつもの調子でマイコンボードに書き込むをやるとエラーが出ます。


Trinket の場合、自動的にリセットが掛からないので、
ブートローダも自動で起動しないのです。
すなわち、書き込みを開始する前にリセットボタンを押して
ブートローダを起動する必要があるのです。

リセットボタンを押すと、赤いLEDがふわふわと明滅します。

これが、ブートローダの表示なのです。
この表示がしている間にマイコンボードに書き込むをクリックします。

すると、赤いLEDが点滅に変わりました。
これでLチカ成功です。

と、言われても、ブートローダの表示とあまり変わらないので、
つまらないですね。

とは言っても、ATtiny85で使えるIOは5個しかありません。
Trinket では#0~#4までです。
Arduino のディジタルIOとして使う場合はこのまま0~4として使えます。
アナログ入力に使う場合は、#2がA1、#3がA3、#4がA2 として使えますが、
analogRead()でA1~A3の記号は使えないので、1,2,3を使います。


IOが少ないので、用途は限られますが、
WS2812なら1本の出力さえあれば動かせます。
先日の24個のリングと同じものがAdafruitにあります。
実はここのNeoPixel library のソースコードを見ていた時に
Trinketがあるのに気が付いていました。


このライブラリをダウンロードすると Adafruit_NeoPixel-master と言うフォルダが出来るので、
Adafruit_NeoPixel に変更してから libraries フォルダに入れます。
そして、サンプルスケッチを選びます。



そして、PIN を6から2に変更し、LEDの数を24にして
Trinket に書き込むとサクッと動きました。


今回は、ソースコードの中に書いてある通り
電源に1000μFを入れ、通信線には330Ωを入れておきました。

「LED灯器の見え方に関する調査研究」ってなんかおかしい

2014年01月23日 22時54分34秒 | その他
ツイッターで流れてきた「LED灯器の見え方に関する調査研究」ですが、
なんか凄そうなんですが、よく見るとなんかおかしい。
違和感があるのです。

特に、この図4です。

デューティが小さい方がよく目立つと言うのです。
え、えー?ホントに-?


で、よくよく読んでみると、こんな一文が。

なるほど、ピーク値を一定じゃなくて、
光度とデューティの積が一定になるようにしているのか。

ま、確かにそう言う考え方はあると思う。
デューティに関わらず光量を一定にすべきだと。

しかし、この場合、LEDの明るさはどうなっているのか
次のグラフを見てください。

これは、デューティの逆数で光度(cd)を替えたものです。
デューティ100%つまり点きっぱなし(実際は0.4秒間/3秒)が50cdに対し、
デューティ50%ではその倍の100cd、
デューティ10%では10倍の500cdにするというものなのです。
PWMの方が赤で、100%の方が青です。


さらに、人間の感覚は対数的なので、縦軸を対数にしてみました。

あるところから、青の高さより赤の高さが高いと感じると言うわけです。

これを見て、ほとんどの人は分かったと思いますが、
図4の結果は、「LEDが明るい方がよく目立つ」
と言う至極当たり前のことを表しているに過ぎないと言う事です。

なんか、金と時間掛けた割にこの結果だけ?

この後の説明でも出てきますが、目の感じ方は微分で効きます。
つまり、暗いところから明るくなった場合、その差が大きい方が明るいと感じるわけです。
だから、その場合、デューティはほとんど関与しないのです。

それなら、もっとデューティを小さくして1%とかだったらどうなるの?
とやってみるべきですが、5,000cdと言うとてつもない光源が必要になるのでやっていないのです。
そうです、光度を上げるにはLEDの性能が必要な訳です。

そこで、こんな事を書いています。

って、どこからこんな結論出したの?
具体的な数字を出さずにこんな結論をさらっと書いています。

つまり、現在のLEDでは電流を10倍にしても光度は10倍にはなりません。
光度 × デューティ は電力に等しくならないのです。

だから、図4はデューティが小さくなるほど電力は大きくなっているのです。

さらに、通常のLEDで 20mA動作の絶対最大定格は
デューティ10%以下で大体100mA程度です。

さらにデータシートを見ると、
デューティ10%で100mA流したとしても、
光度は20mAの時の4倍くらいにしかなりません。

そして、電流を多く流そうとするとそれだけの電流を
スイッチできる素子が必要になってきて、経済的に合わないことになってくるわけです。

で、なんだかんだで、デューティは30~50%程度が
実用範囲だと言うことなんだと思います。



これが、注入電力が一定で、デューティを変えたとき
どのくらいのデューティが良いのか
と言うグラフだったら、もっと有益なものになったかも知れません。
私はそれが知りたかった。