回路

8 x 8 x 8 LEDキューブを作成し、Arduinoでそれを制御する方法:7つのステップ(写真付き)

დედაflex - 8x8

დედაflex - 8x8

目次:

Anonim

InstructablesにはたくさんのLEDキューブがあります。ほとんどが27個または64個のLEDで構成される小さな立方体用ですが、マイクロコントローラで使用可能な出力数に制限があるため、これより大きいことはめったにありません。この立方体は512個のLEDになるでしょう、そしてArduinoから11本の出力線だけを必要とするでしょう。これはどのように可能ですか? Allegro Microsystems A6276EA LEDドライバを使用する。
キューブ自体、コントローラボード、そして最後にそれを輝かせるコードを作成した方法を紹介します。


用品:

ステップ1:材料

立方体を構築するために必要なすべての部分:
Atmega168以上のチップを搭載した1 Arduino / Freeduino
512個のLED、サイズと色はあなた次第です、私は3mmの赤を使いました
4 A6276EA AllegroのLEDドライバチップ
電圧の流れを制御するための8個のNPNトランジスタ、私はBDX53Bダーリントントランジスタを使用
4つの1000オーム抵抗、1/4ワット以上
12 560Ω抵抗、1/4ワット以上
1 330uF電解コンデンサ
4 24ピンICソケット
9 16ピンICソケット
すべての部品を保持するための4 "x 4"(またはそれ以上)のperfboard
古いコンピューターファン
古いフロッピーコントローラケーブル
古いコンピューターの電源
接続線、はんだ、はんだごて、フラックス、その他何でも
これをしながらあなたの人生を楽にする。
LEDはんだ付けジグを作るために使用される木の7 "×7"(またはそれ以上)の部分
完成した立方体を表示するのにいいケース
私のArduino / Freeduinoはwww.moderndevice.comのBare Bones Board(BBB)です。 LEDはeBayから購入され、中国から出荷された1000個のLEDに対して23ドルの費用がかかりました。残りの電子機器はNewark Electronics(www.newark.com)から購入したもので、価格は25ドル前後です。あなたがすべてを購入しなければならないならば、このプロジェクトはおよそ100ドルの費用であるべきです。
私は古いコンピュータ機器をたくさん持っているので、それらの部品はスクラップヒープから外れていました。

ステップ2:レイヤーを組み立てる

この512個のLEDキューブの1つの層(64個のLED)を作る方法:
私が買ったLEDは直径3mmでした。私は小さなLEDを使ってコストを削減し、机や棚を完全に引き継ぐことなく自分の机や棚に座るのに十分な大きさの立方体にすることにしました。
私は線の間に約.6インチの8x8グリッドを描きました。これは私に一辺あたり約4.25インチの立方体の大きさを与えた。あなたが各層をはんだ付けするときLEDを保持するジグを作るために線が交わるところに3mmの穴を開けてください。
A6276EAは電流シンクデバイスです。これは、電源電圧への経路ではなく、グランドへの経路を提供することを意味します。あなたは立方体を共通の陽極構成で作る必要があるでしょう。ほとんどの立方体は共通の陰極として作られています。
LEDの長辺は通常アノードです。念のためあなたのものをチェックしてください。私が最初にしたことはすべてのLEDをテストすることでした。はい、それは長くて退屈なプロセスであり、あなたが好きならあなたはそれをスキップすることができます。キューブを組み立てた後にキューブ内にデッドスポットを見つけるよりも、LEDをテストするために時間を費やしたいと思います。私は1000個のうち1個の死んだLEDを見つけました。悪くないです。
11インチの硬くて絶縁されていないフックアップワイヤーを5インチにカットします。ジグの列の両端に1つずつLEDを配置してから、ワイヤを各アノードにはんだ付けします。残りの6個のLEDを列に配置し、それらの陽極をワイヤに半田付けします。これは垂直でも水平でもかまいませんが、すべてのレイヤーを同じ方法で実行するのであれば問題ありません。各列を完成させたら、アノードからの余分なリード線を取り除きます。私は約1/8 "を残しました。
8行すべてが終了するまで繰り返します。今、あなたが作った列を横切って3本のフックアップワイヤーをはんだ付けして、それらすべてを1つの部品に接続します。私はそれから5ボルトをに接続することによって層をテストしました
抵抗器を介してワイヤー格子を接続し、各陰極への接地リード線に触れた。点灯していないLEDを交換します。
慎重に層を治具から取り除き、脇に置きます。あなたがワイヤーを曲げるならば、心配しないでください、ちょうどあなたがそうすることができるのと同じくらい彼らをまっすぐにしてください。曲げるのはとても簡単です。あなたが私の写真からわかるように、私はたくさんの曲がったワイヤーを持っていました。
おめでとう、あなたは1/8完了です。さらに7つのレイヤーを作ります。
オプション:後続の各層がまだ治具内にある間に、層を一緒にはんだ付けすること(ステップ3)を容易にするために、陰極の上1/4インチを45〜90度前方に曲げます。これにより、
それが接続しているLEDの周りに手が届くように導き、はんだ付けをはるかに容易にします。あなたの最初の層にこれをしないでください、我々は1つが最下層であり、リードがまっすぐである必要があると宣言します。

ステップ3:立方体を組み立てる

立方体を作るためにすべての層を一緒にはんだ付けする方法:
難しい部分はもう終わりです。今、慎重に1つの層を治具に戻します、しかし、あまり多くの圧力をかけないでください、我々はそれを曲げることなくそれを取り除けるようにしたいです。この最初のレイヤーは立方体の上面です。最初の層の上に別の層を配置し、リード線を並べてはんだ付けを開始します。最初にコーナー、次に外側のエッジ、内側の行の順に操作するのが最も簡単であることがわかりました。
完了するまでレイヤーを追加し続けます。あなたがリード線を事前に曲げるならば、それから最後にまっすぐなリード線で層を保存するようにしてください。一番下です。
各層の間に少し余裕があるので、立方体の形にはなりませんでした。大したことではない、私はそれと一緒に暮らすことができます。

ステップ4:コントローラボードを組み立てる

コントローラボードを構築してArduinoに取り付ける方法:
回路図に従って、選択したボードを構築してください。コントローラチップをボードの中央に配置し、左側を使用して立方体の各層への電流を制御するトランジスタを保持し、右側を使用してコントローラチップから陰極のカソードに至るコネクタを保持します。 LEDの列
私はそれをコンピュータの電源に接続するためのメスのモレックスコネクタを持つ古い40mmのコンピュータファンを見つけました。これは完璧でした。チップを横切る少量の気流が便利で、コントローラチップとArduino自体に5ボルトを供給する簡単な方法があります。
回路図では、RCは各A6276EAに接続されているすべてのLEDの電流制限抵抗です。 1000オームを使用したのは、それがLEDを点灯させるのに十分な5ミリアンペアをLEDに供給するからです。私はスーパーブライトLEDではなく高輝度を使用しているので、消費電流は少なくなります。列の8つのLEDすべてが一度に点灯している場合、それはわずか40ミリアンペアです。 A6276EAの各出力は90ミリアンペアを扱うことができるので私は十分に範囲内にいます。
RLは、ロジックまたは信号線に接続されている抵抗です。実際の値は、存在する限りそれほど重要ではなく、大きすぎません。私は560オームを使っています。
立方体の各層に流れる電流を制御するために、最大6アンペアを処理できるパワートランジスタを使用しました。立方体の各層はすべてのLEDが点灯した状態で320ミリアンペアしか描画しないので、これはこのプロジェクトにとってはやり過ぎです。私はスペースを広げることを望みました、そして後でもっと大きいもののためにコントローラボードを使うかもしれません。あなたのニーズに合ったサイズのトランジスタを使用してください。
電圧源の両端に330 µFのコンデンサを接続すると、小さな電圧変動を滑らかにするのに役立ちます。私は古いコンピュータの電源を使用しているので、これは必要ではありません、しかし誰かが彼らの立方体に電力を供給するために5ボルトの壁のアダプターを使用したい場合に備えて私はそれを残しました。
各A6276EAコントローラチップは16の出力を持っています。私は他の適切なコネクタを持っていなかったので、私はいくつかの16ピンICソケットにリード線をはんだ付けして、それらを使ってコントローラボードを立方体に接続します。私はまた、ICソケットを半分に切り、それを使ってトランジスタを立方体の層に接続する8本のワイヤーを接続しました。
私はArduino用のコネクタとして使用するために古いフロッピーケーブルの端から約5インチを切り取りました。フロッピーケーブルは2列の20ピンで、裸骨ボードは18ピンです。これはArduinoをボードに接続するための非常に安価な方法(無料)です。私はリボンケーブルを2本のワイヤーのグループで引き離し、端をはがしてそれらを一緒にはんだ付けしました。これにより、Arduinoをコネクタのどちらの列にも差し込むことができます。回路図に従って、コネクタを所定の位置に半田付けします。 Arduinoに電源を供給するために、コネクタの5ボルトとアースのリード線を半田付けすることを忘れないでください。
私は他のプロジェクトのためにこのコントローラボードを使うつもりです、それで私にとってモジュール式設計はうまく働きます。あなたが接続を配線したいならば、それは大丈夫です。

ステップ5:ディスプレイケースを組み立てる

あなたの最終製品を見栄え良くする:
私は4ドルでホビーロビーでこの木の箱を見つけました、そしてそれがすべてのワイヤーを入れるスペースを持っているのでそれが完璧であると思いました。私はこれを赤く染めました。私のコンピューターの机の上で使ったのと同じ染めです。
はんだ付け治具に使用されているグリッドと同じサイズ(グリッド間で0.6インチ)の上にグリッドを描画します。リードが上を通るように穴を開け、レイヤ/プレーンワイヤ用にグリッドの後ろに別の穴を開けます(ステップ4のトランジスタから)。 64本のリードを並べて小さな穴を通過させるのは非常に難しいという難しい方法を私は学びました。私はようやくすべての穴をもう少し大きくしてプロセスを早くすることにしました。私はおよそ0.2ドリルビットを使用してしまいました。
立方体がディスプレイの上に置かれたので、ワイヤを接続しても立方体が所定の位置に留まるようにコーナーリードを曲げます。すべてのワイヤを正しい順序で取り付けてください。
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
また、回路図では「プレーン」と表示されている層とトランジスタの間にワイヤを接続します。 Arduinoのピン6のトランジスタは立方体の最上層です。
ワイヤが間違っている場合は、コード内で多少修正可能ですが、多くの作業が必要になる可能性があるため、正しい順序で並べるようにしてください。
さて、すべてが構築され準備が整いました。コードを入手して試してみましょう。

ステップ6:コード

このキューブのコードは、ほとんどの場合とは異なる方法で作成されています。調整方法について説明します。
ほとんどのキューブコードは列への直接書き込みを使用します。コードはColumn Xを点灯させる必要があると言っているのでそれにジュースを与えれば完了です。コントローラチップを使っているときはうまくいきません。
コントローラチップは、Arduinoとの通信にSPI-in、Clock、Latch、Enableの4本のワイヤを使用します。 Enable端子(21ピン)を抵抗(RL)を介して接地したため、出力は常に有効になります。私はEnableを使ったことがないので、コードから外しました。 SPI-inはArduinoからのデータで、Clockは通話中の2つの間のタイミング信号です。Latchはコントローラに新しいデータを受け入れる時間を伝えます。
各チップの各出力は16ビットの2進数で制御されます。例えば; 1010101010101010をコントローラに送信すると、コントローラのLEDが1つおきに点灯します。あなたのコードはディスプレイに必要なすべてを通り抜けてその2進数を構築し、そしてそれをチップに送る必要があります。聞こえるよりも簡単です。技術的には、ビット単位の加算がたくさんありますが、ビット単位の計算がひどいので、すべてを10進数で行います。
最初の16ビットの10進数は次のとおりです。
1 << 0 == 1
1 << 1 == 2
1 << 2 == 4
1 << 3 == 8
1 << 4 == 16
1 << 5 == 32
1 << 6 == 64
1 << 7 == 128
1 << 8 == 256
1 << 9 == 512
1 << 10 == 1024
1 << 11 == 2048
1 << 12 == 4096
1 << 13 == 8192
1 << 14 == 16384
1 << 15 == 32768
つまり、出力2と10を点灯させたい場合は、小数(2と512)を合わせて514を取得します。514をコントローラに送信すると、出力2と10が点灯します。
しかし、私たちは16個以上のLEDを持っているので、少し難しくなります。 4チップのディスプレイ情報を構築する必要があります。それは1のためにそれを構築するのと同じくらい簡単です、ちょうどそれをあと3回行います。制御コードを保持するためにグローバル変数配列を使用します。そのほうが簡単です。
4つのディスプレイコードすべてを送信する準備ができたら、ラッチを下げ(LOWに設定)、コードの送信を開始します。最後のものを最初に送る必要があります。チップ4、次に3、次に2、そして1のコードを送信してから、ラッチを再びHIGHに設定します。 Enableピンは常にグランドに接続されているため、表示は直ちに変更されます。
私がInstructablesとWeb全般で見たほとんどのキューブコードは、プリセットアニメーションを実行するための巨大なコードセットのブロックで構成されています。これは小さい立方体では問題なく動作しますが、表示を変更するたびに512ビットのバイナリを保存、読み取り、送信する必要があるため、多くのメモリが消費されます。 Arduinoは数フレーム以上処理できませんでした。そこで私は、事前設定されたアニメーションではなく計算に頼る立方体を実際に動かすための簡単な関数をいくつか書きました。それがどのように行われるかを示すために私は小さなアニメーションを含めました、しかし私はあなた自身のディスプレイを構築するためにあなたに任せます。
cube8x8x8.pdeはArduinoのコードです。私はコードに関数を追加し続けるつもりで、プログラムを定期的に更新するつもりです。
matrix8x8.pdeは、独自のディスプレイを構築するためのProcessingのプログラムです。最初の数字はpattern1 に、2番目の数字はpattern2 に入ります。
A6276EAのデータシートは、次のURLから入手できます。
http://www.allegromicro.com/en/Products/Part_Numbers/6276/6276.pdf

ステップ7:あなたの手仕事を表示する

これであなたは立方体を楽しむ時が来ました。


ご覧のとおり、私の立方体は少し曲がっています。私は別のものを作ることにそれほど熱心ではないので、私はそれが曲がっている状態で生きます。私が調べる必要があるデッドスポットがいくつかあります。それは悪い接続かもしれません、または私は新しいコントローラチップを必要とするかもしれません。
このInstructableがあなた自身の立方体、あるいはA6276AEを使った他のLEDプロジェクトを構築するきっかけになることを願っています。作成した場合は、コメントにリンクを投稿してください。
私はここからどこへ行くかを決めようとしていました。コントローラボードも4 x 4 x 4 RGBキューブを制御するので、それは可能性です。私は、球体を作るのはきちんとしていると思いますし、私がコードを書く方法は、それほど難しいことではないでしょう。