コメを噛め

コメを噛め

rerofumi の電子工作メモ

Archive for 7月, 2012


hatena bookmark

背中がかゆくなった。
しかし、そんなときいつも使っていたアルミ定規がどっかにいってしまった。どこいってしまったんだろう。

そんなとき ICレールで掻くのが通という声もある。まあ確かに使うことはあるが、これ結構とがっていて痛いのだよな。
ここは素直に「まごの手」を入手するか。まごの手ってどこ行けば買えるのだ?Amazonでは確かに買えるけれども、まごの手風情を Amazon でいうのも大仰な気がする。

……こういう身近な日用品は家庭内で3Dプリントできるべきなんじゃないかな。
というわけで「まごのて」を作ってみるよ。

といっても廉価な3Dプリンターでは長いものが作れない。Makerbot Replicator ではテーブルが大きくなったといっても 15cm 強くらいのがせいぜい。
一般的な孫の手って長さどれくらい?と調べてみると 40cm くらいはあった方が良いらしい。なので、3Dプリンターでの出力品をつないで伸ばす事を考える。


つないで伸ばすための「継ぎ」をいくつか考えたり作ってみたりしたのだけれども、最終的にこういう形になった。
あそび無くはまるものを作るのは難しく、使う3Dプリンターの癖を加味しないといけないので、今回はあくまでうちの Makerbot Replicator で出力したときに填まるものという設計。


継ぎができたらそれをCAD上で伸ばすようにして設計。


3Dプリンターで出力して

完成。

ABS なんでしなるし、たわんでも壊れない適度な厚さで良い感じに作れた。
これでまごのてを買わなくても済んだぞ。

形状データは Thingivers に置いてあるのでよろしく。
MAGONOTE (Backscratcher) http://www.thingiverse.com/thing:27371


hatena bookmark

Gynostemma で KiCAD のゾーン(ベタ塗りつぶし)が適用されないという報告をいただいた。
KiCAD から適当なサンプルを出力してガーバーを確認してみると、拡張コードの G36/G37 にあたる「ポリゴン領域指定」を使用していることがわかった。
確かにこの命令には未対応である。

回避策はあるものの機能として未対応なのはイマイチなので、今回はポリゴンフィルに対応させてみることにした。
Gynostemma でポリゴン領域を読み込んだら、ハッチ(ラインを並べて塗りつぶす)に変換して扱うという若干暫定的な対応。

Download: gynostemma-20120721.zip (1.34MB) マルチスレッド、ポリゴン対応版

ハッチは線を密に並べて埋め尽くすというものなので、形状が爆発的に増えてそれだけ処理時間が増大するので今ひとつ良い対応でもなかったりする。

ポリゴンフィルの情報など。

KiCAD のゾーンでは穴あきのポリゴンも出力できる。
どういう仕組みかと見てみたら、

このような出力になっていた。

わかりやすく手直しするとこういう感じ。
確かに一筆書きの多角形ポリゴンではあるけれども、凹みがある複雑な形状に分類される類いのものであった。

Gynostemma は内部でパターンを三角形ポリゴン化して扱っているので、ポリゴンフィルもハッチではなくポリゴンとして扱った方が処理は軽くなるはずである。
しかし、上記のような複雑なポリゴンを三角形分割する低コストなアルゴリズムが思いつかなかったので今回はハッチ変換とした次第。
このへん思うところあるので、もうちょっといじって見る予定。


hatena bookmark


秋月電子通商の新製品一覧を見ていたら「シャープ モノクロHR-TFTメモリ液晶モジュール 2.7インチ WQVGA [LS027B4DH01]」なるものが出ていた。
うおお、これは面白そうだ。何か作品を作るのでは無くて単に使ってみたい!
と思ったので買って表示させてみましたというのが今回の工作記事。


大きさ的には 6cm×4cm ほどのモノクログラフィック液晶モジュール。
赤い丸は保護シートの模様。
低消費電力が売りになっているのは、バックライトがない反射型液晶だというのと画素メモリがあってリフレッシュなしでも画像を保持できるため駆動間隔を妙に長く取れてその分電力を食わないということらしい。同じ絵を出し続けるならリフレッシュなしで2時間くらいはほっておけるらしい。
まあ普通のLCDモジュールでもドライバー内にバッファがあって勝手にリフレッシュしてくれているから、マイコン工作として制御する分の手間は大して変わらない感じ。メリット的には 400x240pixel という高精細なモノクロLCDが手に入るというあたりではないかと。


裏面から見た写真。
これガラス基板の上にドライバーが構築されているのか。
昔シャープが「ガラスの上にZ80を構築できました!」とアピールしていたが、その技術がこんな風に使われていたのね。この液晶モジュールのシリアル通信駆動速度は max 2MHz なんだそうだけれども、その速度もガラス基板回路と考えると順当かも。


取り敢えずのテストで絵を出すにも、まずは breakout ボードを作らないといけない。
秋月で買うと面実装のフレキコネクタが 1個だけ付いてくる。これが 10p 0.5mm ピッチなのでなんとかそれっぽい変換基板を使って利用する形になるだろう。
こんな時に頼もしいのが自作基板である :-)
というわけで私はCNCフライスを使っての自作基板でコネクタを取り付けられる様な brekeout 基板を作ってみた。


今回はなんでもいいから表示だけしてみようという実験なので、自作の PSoC3 テストボードを利用する。
ブレッドボード部分に挿して簡易テスト配線。
LCDモジュールの電源は 5V 単一、信号線は 5V でもいいけどできるだけ 3V 前後にしてくれと不思議な指示がある。今回は 3.3V のシグナルを利用。
コントロールに必要なのは
シリアルクロック・シリアルデータ・チップセレクト(シリアル送信中にHになる)、LCD表示コントロール
の 4本のみ。
シリアルクロックとシリアルデータは SPI の tx オンリーと見て良い。


PSoC Creater でのブロック設計はこんな感じで SPI 1個。
チップセレクトは SPI ブロックの SS 出力タイミングで良かったのだけれども、モジュールと H/L が逆なので NOT を追加している。PSoC 便利だねえ。
転送終了の割り込みを受け取れるかと ISR と追加したけれども、これは使っていない。

参考程度に PSoC Creater のプロジェクト
Download: hrtft-test.zip


反射型LCDなので暗いところでは見えないけれども、明るいところでは割と細かいのと黒が深いのとでかなり綺麗に見える。
特に黒い部分は格子が見えにくくてベタに見えるので文字表示とかは良さそう。

書き換えはライン単位で、横400pixel = 50byte にコントロール 4byte を一気に送る手法。部分矩形の更新とかは面倒なので全画面書き換えっぽくなるんじゃないかなあ。
そして全画面書き換えようとすると 2MHz シリアルではそんなに早くないという印象。
モノクロで細かい LCDモジュールなのはうれしいけれども、1画面分のバッファを持とうとすると 50×240 で 12000byte が必要になってしまうため、非力なマイコンだと辛いかもしれないです。

フレキコネクタの入手性が悪いのと、フレキコネクタ実装のための基板をどうするかという問題が案外ハードル高いのでそこをどうするかでしょうな。
実際に表示できるようになると、おーと思うぐらい視認性が高く面白いモジュールなり。


hatena bookmark

拙作の Gerber to G-Code アプリである Gynostemma だけれども「遅いよー」と常々言っているように処理に時間がかかるのが難点である。
高速化のために書き直すのもちょっと困難なので現状のままで提供している次第。
(そしてよくつっこまれる)

全面書き直しせずに ruby 版でもまだチューンの余地はあるのだけれども、その中でもマルチコア向けにマルチスレッド対応が常々やりたいと思っていたところ。演算のループやインスタンス構成をマルチスレッド用に改変しなくてはならないので手を出してこなかった。
IronRuby は .NET ベースなのでスレッドを使うと一応ネイティブスレットで駆動するようになる。パスの計算をマルチスレッド化すれば少しは早くなるのでは無いかといった目論見。

以下にマルチスレッド対応版を置いておく。
今回ちょっと大きく変わりすぎているのと検証が不十分なので「おためし版」としてのリリースとさせてもらう次第。問題があったら従来版に戻っていただきたい。

Download: gynostemma-20120709.zip (1.34MB)

Read the rest of this entry »