からEペーパークロックを作成し、そのロックの下からの逆に、ソニーリーダーとアマゾンのKindleを読み込んだ場合は、 E-Paperは、昼光の読みやすいため、インクオン紙をシミュレートする色変更ビーズの柔軟なディスプレイです。電子ペーパーについての革命的なことは、設定後、それは追加の電力なしでそのようにしています。
これは理論的には素晴らしいように聞こえますが、Esquireのカバーは、皆がEプログラムのディスプレイをハックする余裕があるのは初めてです。私たちはカバーをカバーをカバックに文書化、テスト、そしてハックする。最後に、私たちはそれを個人が構築することができるという有益なものにリサイクルしました。ディスプレイの仕組みとそれがあなた自身のプロジェクトで使用するのに必要なものについての詳細をすべて説明しました。下の私達のE-Paper Clock Hackについて読んでください。
バックグラウンド
ESQUIRE E-Paperカバーはネット上で大きな打撃を受けましたが、迅速にパンされました。 NotCotは回路基板とEプログラムの美しいスキャンを持っています。人気の科学はPickit2でコードを読むための指示を投稿しました。 [Slaxter]フォトチップを読み取ることができ、コード保護ヒューズがオフであることを検証しました。 [Matt] eカー紙細胞を熟練したはんだ付けとアルドイーノと直接操作しました。これまでのところ、Eプログラムの再利用には多くの関心があり、既存のマイクロコントローラを再プログラムしていません。
電子ペーパーパネル
電子インクによって製造された実際の電子ペーパーパネルはそれほど刺激的ではありません。各パネルには、前面パネル上、後部フォード広告の3つの定義済みセグメント11のセットがあります。これは、Eリーダーに再プログラムできる行列ではありません。 [just_mike]各セグメントを構成する個々のビーズの超クローズアップショットの素晴らしいセットを持っています。
各Eプログラムセグメントには個々の接続、およびパネル上の他のセルと共有されている接続があります。セルに印加される電流の方向に応じて、セグメントは白または黒になる。共通が低い場合は、ハイに接続されているセグメントも暗くなります。一般的な場合、グランドに接続されている各セルはクリアされます。 PCBは、セルを切り替えるために5つの3.3ボルト電池から16ボルトを使用しますが、[スラックステ]は彼のArduinoプロジェクトで5Voltsが十分であることを示しました。
性能試験
電子ペーパーの運用仕様についていくつかの観察をしました。
まず、細胞を完全に暗くまたは透明にするのに十分な0.5秒かかります。ビデオでは、電子紙を速く切り替えて作成された部分状態を確認できます。私たちは最適な変化時間をよくわからないが、0.25から0.5秒の間は最小のように思われる。
これはまた最大変化時間についての質問を提起した。電子紙を損傷して電流を必要以上に長く適用しますか。電子用紙は、適用されている限り、電流を消費して電池を消耗させますか。パネルを介した連続的な電流を回避するために、すべての出力をグランドに戻すために、コードに特別な注意を払いました。
清算と暗めは別々に行う必要があります。画面を完全に更新するには2つの完全な操作が必要です。古いセグメントをクリアするために、新しいセグメントを暗くするためのもの。スマートプログラマーは、アイテムを追加または削除したときにサイクルを保存できると考えています。これはある程度当てはまりますが、隣接するセルをリフレッシュすることなく1つのセルの連続的な操作は色の「クリープ」を引き起こします。ビデオでは、他のセグメントの更新がないほどのフラッシュバックグラウンドは、不活性セグメントを暗と光の間の中間状態に迅速に駆動します。
ドライバーボード
モータリストは、8ピンマイクロチップPIC12F629、2つの4094シフトレジスタ、およびいくつかのサポートコンポーネントで構成されています。
電子紙電動機ボード(PNG)のフルサイズのピン図をクリックしてください。
電池
Esquireは、バッテリーを交換するというむしろラメの提案でカバーのハックを招待しました。これは理にかなっています、カバーは冷蔵容器の世界中で出荷され、バッテリーの寿命を延ばすのに役立ちました。その努力でも、Esquireは数ヶ月続く電池が続くと言います。
電池1~5は直列にあり、電子紙に15-16ボルトのスイッチング電流を供給しています。 6番目のバッテリーは写真のために3ボルトを供給しています。どちらのバッテリーが最初に死ぬという言葉はありません。電池を「交換」したい場合は、古いものを大型化し、表示されているポイントで5~16ボルトのEメーカー電源、および3Voltマイクロコントローラ電源を供給する必要があります。
我々は最終的に私達のマイクロコントローラバッテリーを交換しなければならなかったので、開発中は少し虐待したので。 20mmピン間隔を持つボタンバッテリーホルダーは既存の穴に収まります。 Mouser#534-106はおそらく働くでしょうが、これは未確認です。
4094シフトレジスタ(IC1、IC2)
シフトレジスタは、電子ペーパーセグメントを16ボルトで切り替えます。
2つの4094 ICは、IC1からIC2へのデータをカスケードするためのシフトレジスタ設定です。この基本シフトレジスタは、私たちの落書き壁で使用した74htc595の小さな変動です。主な違いは、4094ストロボラインが通常低く、出力ピンに新しい値を入れるために短く引き上げられます。 4094がLOを必要とすることを観察したNGクロックおよびストロボパルス。これは、写真と4094の間の怠惰なドライブ回路、または4000シリーズの性質だけである可能性があります。
4094セグメント出力マップ
IC
出力
住所
繋がり
1
Q1
0x01
FRONT_BOX_SYMBOL_DNA
1
Q2
0x02
front_box_guy
1
Q3
0x04
front_box_fireworks
1
Q4
0x08
front_on_the_west_coast.
1
Q5
0x10
front_three_hours_later
1
Q6
0x20
FRONT_ESQUIRE
1
Q7
0x40
FRONT_BOX_GILL
1
Q8
0x80
front_now.
2.
Q1
0x100
front_begins.
2.
Q2
0x200
FRENT_21ST_CENTURY
2.
Q3
0x400
front_background.
2.
Q4
0x800
front_common
2.
Q5
0x1000
back_common.
2.
Q6
0x2000
back_left.
2.
Q7
0x4000
バックチェンター
2.
Q8
0x8000
back_right
12F629
フルサイズの概略図(PNG)はこちらをクリックしてください。 8ピンPIC12F629は、各Eノートセグメントを制御する4094シフトレジスタを駆動します。 2つのピンは未使用(GP4、GP5)です。
MCLR機能は抵抗R8でイネーブルされています。このデザインには、13Voltプログラミング電流から写真を固定するためのダイオードが含まれていません。マイクロチップはこれを推奨していますが、回路を共有する他の機密ICはありませんので、デザイナーは抵抗器が十分な保護であったと感じました。
3つのピンは4094(GP0、GP1、GP2)のデータ、クロック、ストロボラインを駆動します。 4094は同じ電圧でインターフェースされなければならず、16ボルトはトランジスタを介してインターフェースピンを切り替える。私たちが知ることができる限りでは、4094のコントロールラインが抵抗で高くなります。写真はトランジスタをオンにし、線をグランドに引きます。 4094へのインターフェースは後方です。シフトレジスタでフォトハイピンは低く、低いと同じように見られます。逆の場合を除き、インターフェイスは機能しません。
プログラミングピンはPCBの上部にヘッダにされる。供給された穴にはんだ付け.1 “の穴にはんだ付けされました(Mouser#571-41033290)。 2つのプログラミングピン、PGD、PGCは、シフトレジスタを駆動する回路と共有されています。 ICD2デバッガでデバイスを読むことができました。たぶんシフトレジスタドライバのせいでは、それを再プログラムすることはできませんでした。個人が成功しましたか?とにかく、共有ピン配置は、この装置でインサーキットデバッグを行うことが不可能になる。
PICピン接続
ピン
名前
繋がり
1
v v
+ 3.3ボルト
2.
GP5.
–
3.
gp4.
–
4.
gp3
MCLR(プログラムVPP)
5.
gp2.
4094ストロボ
6.
gp1.
4094時計(プログラム時計)
7
gp0
4094データ(プログラムデータ)
8.
VSS
接地
ボードをタップします
ボードをタップしてお気に入りのマイクロコントローラで使用するのは簡単です。必要なインターフェース信号の1つがすでにヘッダーにもたらされています。ストローブラインは、矢印によって示されることによってタップすることができる。写真が新しいコントローラに干渉することを望まないので、電源ピンを切断してそれを取り外すか、それを無効にします。
インターフェースライブラリ
ボードを運転する最初の取り組みには、PIC24Fベースの小さなWebサーバーが含まれていました。それは便利でした、そしてPIC24fは一緒に働きやすいです。私たちは低電力MSP430でインターフェースライブラリを完成させました。どちらのバージョンもプロジェクトアーカイブ(zip)にありますが、ライブラリーのMSP430バージョンはさらに成熟しています。
このライブラリには、ソフトウェアビット-BANGルーチン、ボードをインタフェースするための機能、およびセグメントと共通の行のアドレス定義が含まれています。 esquire_eink.hのオプションは、ビット-BANG遅延を有効にしてその長さを設定します。 4094の怠惰で、長いクロックパルスを必要としていました。 initBang()関数はピンの方向を設定し、マイクロコントローラに合わせて変更する必要があります。それを呼び出すか、他の場所で出力するようにあなたのピンを設定します。
1
banginit(); // Bitbangピンを出力に設定します
setseg()関数は、渡されたセグメントを暗い(1)またはクリア(0)を設定します。
1
2.
setseg(front_box_guy + front_background、1); //これらのセグメントを設定(暗くする)
setseg(front_21st_century、0); //これらのセグメントをクリア(光)
setseg()関数には、esquire_eink.hのeink_delayによって定義された色変更遅延が含まれています。遅延の終わりに、シフトレジスタピンをグランドに戻します。これが必要な場合は実際にはわかりませんが、電子紙に損傷を与えたり、電池を浪費したりしたくない。
SETSEG()について観察したことの1つのことは、単一細胞を操作することであり、隣接するセルがミッドカラーに向かって退行させることでした。毎回ディスプレイを完全に更新することによってこれに対抗するためのsetDisplay()関数を開発しました。 setDisplay()は各変更に一時停止を含めてから、シフトレジスタの出力をグランドに返します。完全にリフレッシュされたディスプレイのためにセグメント配置を渡すだけです。
1
SetDisplay(Front_Esquire + Back_left); // XX Dark、他のすべてがクリア
Shift Registersに直接BANGIT()関数にアクセスできますが、Eプログラムの色の変更が完了したら、シフトレジスタを ‘0’に戻すことを検討してください。それが実際に「もの」の場合は、電子紙を損傷するか、または過度の現在の排水を引き起こす可能性があります。
1
2.
3.
Bangit(0B1110000000000000); //すべてのバックパネルセグメント
pause(); //色の変更を待つ
Bangit(0x0000); //すべての出力をグランドに返す
ライブラリをMIに移植するクロコントローラは、esquire_eink.hのPIN設定、およびESQUIRE_EINK.CのPIN設定関数Banginit()を確認してください。端子方向はインタフェーストランジスタによって逆になることに注意してください。
それを使うように、Eプログラムの時計
私たちは最初の安い消費者E-Paperパネルで有益なものをしたいと思いました。多くの人がこのクールな技術をリサイクルできるように、それはかなり簡単でなければなりませんでした。古いディスプレイテックで行うことがたくさんあることをすることはできませんでした。スキーマ、ファームウェア、およびアートテンプレートはプロジェクトアーカイブ(.zip)にあります。
電子紙には、時間を部分的にしか表現できないセグメントがほとんどありません。 6つのセグメントが時間を示し、各色合いは時間を過ぎた10分の時間を明らかにします。また、パネルの非タイムセグメントに眼用キャンディーをフラッシュします。これが私たちが作成したカスタムメイドのベゼルです。このベゼル、そしてあなた自身を作るテーマはプロジェクトアーカイブ(zip)に含まれています。私達は私達のベゼルをミラーリングしたので、インクは傷から保護されています。
ハードウェア
Texas InstrumentsのMSP430ラインを16ビットマイクロコントローラの16ビットマイクロコントローラを使用するための電子紙の低電力特性に触発されました。理想的な構成では、MSP430は電池の貯蔵寿命によってのみ制限されるような電力がほとんどなくなります。オリジナルのデザイナーにお金のために走るようにすることさえでき、より低い電力装置を作ることができるかどうかを確認することさえできます。
MSP430についての最良のことは、USBプログラマ/デバッガとブレークアウトボードを20ドルで獲得できることです。それは4Kに制限された無料のCコンパイラが付属していますが、F2013は2Kのメモリしかありません。これは完全な開発ツールであり、はんだ付けされていません。このハウツーでMSP430を扱うことについてもっと多くを学びます。
この回路図は、MSP430をEカープワイトボードに接続する方法を示しています。フルサイズのバージョン(PNG)はここをクリックしてください。 47K抵抗器、MSP430、およびLED(図示せず)がブレークアウトボードに含まれています。
時間を維持するために32.768kHzの水晶を追加しました(Q1)。通常、オシレータを形成するためにいくつかのコンデンサを追加することもできますが、MSP430はP2.6とP2.7に調整可能なコンデンサを内蔵しています。
また、P1.4とP1.2の間にボタンを追加しました(S1)。 P1.4の内蔵プルアップ抵抗器はボタンを高く保持し、P1.2を介して接地しています。これは最良の配置ではありません、P1.2をグランドに接続することもおそらく賢明でしょう。
プログラミングヘッダの電源とグランドピンの上にMSP430のブレークアウトボードをスライドさせます。クロックピンとデータピンをヘッダに接続することができますが、その下のビアからそれらをすべて配線することを決定しました。 MSP430からの信号を妨げないように写真を削除することを忘れないでください。
部品
番号
費用
Esquire E-Paperカバー
–
–
MSP430 EZ430開発キット
EZ430USB.
$ 20.
32.768kHzクリスタル
815-AB26T-32.768kHz
0.27ドル
ボタンを押す
642-MJTP1250
0.16ドル
ファームウェア
時計ソフトウェアは、EZ430プログラマーに含まれているTI / IAR Kickstart Cコンパイラの相補型デモ版で書かれています。
MSP430は非常に低い電力です。 1MHzでわずか220UAを使用していますが、寝ているときは6UA未満です。長いバッテリ寿命の重要なことは、チップをできるだけ眠りに保つことです。私たちの時計コードはこれを念頭に置いて書かれています。
32.768kHzの水晶でTimer_aを使用して、毎秒2回割り込みを作成します。最初の割り込みは、表示されるべきセグメントを構成するコードをトリガーし、これらの値をEプログラムに送信し、次の0.5秒間スリープします。 MSP430がスリープしている間、すべての「オフ」セグメントはクリアする時間があります。次の割り込みは、基本XORを使用して共通の線を反転し、値を出力し、さらに0.5秒間スリープします。次回サイクルが再び始まります。新鮮なフラックスが定期的にあるため、シフトレジスタを ‘0’の位置にリセットすることはわかりません。セグメントクリープは、各サイクルごとにすべてのセグメントを満たしているため、問題ありません。
ボタンを押すと、時間を次の10分に進む割り込みがトリガされます。時計を設定するには、時刻が1時間を過ぎた10分の側面まで待ってからボタンを押してCORREを表示します。