コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark


コンサートライトで使うにはどれくらいの明るさがあれば良いのだろうか。
ダイソーにて100円で売っている化学蛍光ケミカルライトを買ってきて明るさを計測してみた。

上の写真で左は発泡樹脂の中に細いケミカルライトが三本入っている奴。太くてぼんやり光るのが売りらしい。他の二つは通常型のケミカルライト。
Read the rest of this entry »


hatena bookmark

コンサートライトを作ろうと思い立ったのが前回までのお話。
このお話をもらったときにいくつかの要求をもらっている。

  • 三色LEDでフルカラーが出せること
  • エネループで動作すること
  • ボタン一つで色(キャラクターイメージカラー)が変えられること
  • できるだけ明るいこと
  • コンサートの間電池が持つこと(最長6時間を想定)

これを抵抗による色調整でやると、色の切り替えができないことと明るさが今ひとつになってしまうこと、なによりエネループ駆動させるのに最低3本は必要ということでうまくいかない。これを克服するにはどうしてもマイコンによる制御が必要になるというのが依頼の理由だった。

ちなみに表示できる色の要求は、赤・橙・黄・黄緑・水色・青・桃の7色。
ここから仕様を検討していく。

これら要求のうち、エネループ駆動(リチウムイオン充電池)とできるだけ明るくというのが相反するものなので、バランスを取らなくてはいけない。
フルカラーLEDをいくつか物色したが、あまりにもハイパワーなものは電力も必要だし熱も出すので逆に扱いにくかったので、角形のそこそこのヤツ(To 秋月)を使うことにした。
三色全部点灯したら 110mA くらいなので、3個つかって 330mA にマイコン1個分の電流を想定。エネループ二本で 3800mAH なので、二本使えばなんとかいけそうなところ。
エネループ二本でいくと決めると電圧は 2.4V ほど。LEDを点灯させるには低すぎるのでDCDCで昇圧させる必要がある。逆にDCDCコンバータをつかって昇圧すれば、電池が減って電圧降下をしても絞り出すように灯し続ける事ができる。
DCDCコンバータは結構肝なのでストロベリーリナックスで扱っているモジュール完成品を使うことにする。今回はLEDに焦点をあてまくってLED専用昇圧ドライバーを使うことにした。これなら抵抗を挟まずに直接LEDをドライブできるので無駄な負荷を排除できるし、全灯してもリミッターがかかる。
ただ、ほんとうにLED専用なのでDCDCで昇圧したものでマイコンを駆動させるには安定していない。そこで、PSoC の SMP 機能を使ってマイコン分は自前で昇圧させることにした。都合昇圧が二系統になるけれども、その分LED側がフルパワーで回せるだろうという計画。

電池二本になっちゃうよと依頼主に告げてだいたいの大きさをイメージしてもらい、了承を得たところで設計開始。
機能としては

  • エネループ2本で6時間は駆動
  • 3色フルカラーLEDを3個点灯
  • 電源スイッチと色変更のタクトスイッチをもつ
  • タクトスイッチクリックでキャラクターカラーが切り替わる
  • タクトスイッチ長押しでじんわりと色が変わっていくレインボーモード
  • レインボーモード中にボタンを放すとその色で固定
  • タクトスイッチを押しながら電源を入れると点滅するモードになる(オマケ)

とまあこんなところが機能仕様。

さて作り始めますかね。


hatena bookmark

パーソナルファブリケーションという単語に乗ってか乗らなくてか物作りのための楽しそうな機械を色々と導入してきた。
Makerbot の CupcakeCNC パーソナル3Dプリンター。オリジナルマインドの卓上CNCフライスキット。
どちらも小さくて安価なものだし、なにより操る人(私)の腕が大したことないのでそんなに凄いものができるわけじゃない。でも、それで作れるようになった物がある。
凄い物や完成度の高いものじゃないけれども、そこそこの物をそこそこの手間と時間でそこそこそこそこに作成できる環境が手元にあるのだ。

これで割となんでも作れるぞ!!と思ったところで「それで何を作るの?」という壁が目の前にあった。これまでもおぼろげに見えていたものの、工具を手に入れ、それをある程度操れるようになったところでさてどうしようと考え込んだのである。
技術屋は割と道具に惚れ込んで、道具を使いこなすことに腐心しがちである。極端な話、道具を使いたくてそのために何かを作ろうとする。道具が目的であり、その目的を満たすために仮の成果物を据えるような行動をとってしまうのではないか。
それは良くない。
道具はあくまで使うためにあるのであり、何のために使うのかというと目的を遂行するために使うのである。
つまり、本当に作りたい物を持っていなくてはいけない。
そしてそれを作るために最適な道具を選んで駆使するのである。

道具もそろってパーソナルファブっぽくなってきたはいいものの何を作ろうかと悩んでいた私のところに 1通のメールが届いた。
ごえもんP というか Magical-Soft の人というか、学生時代に SPS-NET というパソコン通信で知り合った人。インターネットへ場を変えた後もトゥルーラブストーリーのファンコミュニティーで再会したりゆるゆるとおつきあいさせていただいている。あの頃 TLS に入れ込んでいたメンバーはこぞってアイドルマスターというかニコマスクラスタへシフトしていったのだけれども、私はそんなに入れ込まなかったから久しかったのですな。
まあ、そのへんはいいや。で、メールに何が書いてあったかというと
「アイマスのライブで振りたいからフルカラーLEDのコンサートライト(サイリューム)を作ってくれ」
といった要望。
LEDコンサートライトといえばニコマスクラスタやニコニコ技術部界隈ではメジャー(?)なアイテム。yytuneさんの実装が一番有名どころ。
簡単に済ますのであればこの yytuneさんのコンサートライトを作成して渡せば良いのだけれども、いやまてよと思いを巡らせた。この「コンサートライトを作って欲しい、作ろう」という要望こそが貴重な『制作の目的』である。物自体は目新しくもないけれども、それを自分の手と工具を使って再実装していくというのは得難い体験となることだろう。
設計、フライスでの基板作成、マイコン電子工作、ファームの実装、外装を3Dプリンタで作成、組み立て、リリース。これらの行程をすべて自宅でできたなら、それはパーソナルファブリケーションと言えるのではないだろうか。
そう考えた私はフルカラーLEDコンサートライトの作成を請け負った。
焼き直しでも二番煎じでも良いのである。実際にできる機会に出会えた事が重要なのだから。

そんなこんなでコンサートライトを作成します。「いるみさん」はそのコードネーム。
プリント基板のフライス作成やそのツールをちびちび作ってきていたのを見ている賢明な方はもうお気づきのことであろうが、制作依頼が来たのはもうずいぶんと前の事である。たしか7月末あたり。
そして次のアイマスコンサートは 2011年1月10日である。それまでに完成させなくてはならない。しかもできれば冬コミに間に合うといいなとかいわれているし。
依頼を受けてからある程度のところへくるまで水面下での作業だったのだけれども、そろそろ形になりつつあるのといい加減期限が近づいてあわあわし始めているので表に出そうというあたり。

はてさて、どうなることやら。


hatena bookmark


ようやくCNCフライスでプリント基板を作ることができた。

プリント基板を CAD で設計したり、その結果であるガーバーデータを P板.com 等の基板試作屋さんに出して製作をしたことのある人なら理解していると思うんだけれども、プリント基板を作るにはいくつものレイヤーを扱う。
そのレイヤー毎のガーバーデータを製造会社に渡してようやく1枚のプリント基板ができあがる。

今回 CNCフライスで作るのは片面一層なので必要なレイヤーは以下の3つとなる。

  • プリント基板外形
  • ソルダー面パターン
  • ドリル穴データ

基板試作屋さんに出しているときはコレに加えて、ソルダーマスクのデータ、シルク面のデータとか、二層のときは部品面パターンのデータとかが増えるわけだ。
ドリル穴データはガーバーでも GCODE でもないんだけれども、まあその辺は置いておいて、これら 3つのガーバーデータをそれぞれ 3つの GCODE にコンバートして CNCフライスでその GCODE を都合三回処理する。

ガーバーから GCODE へ変換するコンバーターは cam.py を始めいくつかあるんだけれども、パターンのパスを作るだけの物が多かった。しかも、出力の空間座標が元のガーバーのそれとは異なっているので外形やドリルが合わせられなくて困るのである。
cam.py はドリルとパターンを一緒に処理してくれる機能があるけれども、ドリルのデータ形式が不明でうまく読み込めなかった。ガーバーも EAGLE のを期待していて K2CAD の奴は読めなかったりと色々不満が残る。(GCODEのパラメーター省略に対応していないのが多い)
結局外形とパターンを合わせられるツールがなかったので、ソフトを自作することにした次第。EAGLE 使っていれば全部解決していた気もするけれども、まあそこはそれ。


先ほど書いた様に 3つのレイヤーをへて 1枚の基板を作るのでフライスのツールも 3種類用いる。左から、ドリル、パターン彫刻の半月カッター、外形を切り出す1mmエンドミル。
XYテーブルはひとつのゼロ座標で固定しながら、ツールを手作業で取り替えてそれぞれの対応 GCODE で切り出していく。
パターン彫刻カッターはキデッジショップさんから購入した物。ドリルやエンドミルはIHCモノタロウとかで適当に。

そんな感じの作業をへてついにプリント基板が完成。
丸い形状とか CNC じゃなきゃやってられんよ。

テスターでショートチェックをしていると、クズが溝に残ってショートしてたりすることはある。あとバリがあってショートとか。色々試したけれども、細かいのはクリームクレンザーとスポンジで磨くのが効果的だった。指紋とか酸化膜とかも落ちるしね。
それでもショートしている場合(バリの場合が多い)、カッターで切るしかないけれども。

さて、そんなこんなで作っていた CNCフライス用の GCODE コンバーターというか、パターン外周抽出ツールだけれども、これが遅い。5cm程度の基板パターンで 5時間ぐらいかかる。
それは流石にどうだろうということでちょこっと高速化したら、8分にまで縮まった。まあ、これくらいなら。
今のところ書き捨てのクラスとテストスクリプトがあるだけで公開できるようなものではないのだけれども、どうしよう。気が向いたらもうちょっとまとめてソース置いておこうか。


hatena bookmark


ちょいと前のお話になるけれども、小型のCNCフライスキットを購入したのです。


これでアクリル板にキャラ絵を彫って遊ぶとか、フィギュアのパーツを削り出すとか、そういったことも楽しいのだけれども一番の目的はプリント基板の作成。
銅箔版をフライスでけがいてプリント基板を作成するという奴ですな。

プリント基板はポジ感光基板とエッチングで自作できるものの、廃液処理が面倒だとか、感光作業が面倒なわりに綺麗にできないとか、ランニングコストがかかるだとか、これらを乗り越えるために職人技がいるだとかでじわじわとおっくうになってきたのです。それに基板カットが面倒だとか、穴開けが手作業で死ねる上に綺麗にできないとか。
それらを CNCフライスでより簡便にできるんじゃないかと夢ふくらみ始めたわけですよ。

まあ、ここまでちまちまとパターン絵を描くプログラムを作っているあたりを見て気がついていた人もいるかもしれないけれども。


基板パターン周辺を刃サイズ分外側を拾いながらパスを取ることが、前回のコードまででできていたので、後はCNCフライスにかけられるよう GCODE を出力すればよいだけの話。
そのあたりを書いてようやくカットできるようになったものがこちら。

ちなみに CAD に EAGLE を使っている場合は、EAGLE から直接 GCODE をはき出すスクリプトがいくつも公開されているのでそれを使うのが吉。
私は K2CAD を使っているので、そこから garber 経由でフライスに持ってくるのがうまくいかず変換ソフトウェアを自作し始めたってだけなのです。おかげでわりかし自在に扱えるようになった、と思う。


hatena bookmark


前回あった、重なっているはずなのに線が残ってしまう問題が解決した。
トレードオフとしてかなり処理が遅くなってしまったけれども、時間がかかっても確実にできることを目標に今のところはあきらめていく方向で。
ようやく、ここまでできた。

これでまた前に進める。


綺麗綺麗。

source:
g2g-20101113a.zip


hatena bookmark


ざっくりとガーバーファイルの読み込みを作って、ずいぶんとそれらしい表示ができるようになってきた。
単純にガーバーを読んで表示するだけならさほどでもないけど、外周合成に時間がかかって300オブジェクトで20分とか。rubyインタプリタでやっているとか、計算が適当で無駄が多いとかあるんだけれども、自分用の使い捨てコンバーターだからそれでも別に良いかという感じ。


フィルの部分とか内部に外周奇跡が残ってしまっている。
cam.py でも同じ目にあって自作する最大の動機(理由は他にもある)だったのだけれども、自分でも同じ轍を踏んでしまうとは。
他にもゴミが残っているし、この部分がクリアできるまで成果物とは言えないよなあ。

一応ソースコードのSNAPSHOT
Download: g2g-20101107a.zip


hatena bookmark


ちと脇道にそれたり、やり方を変えていたりして間が空いた。
前回まで「三角形を合成して細かい三角形の塊で持つ」というのをやっていたのだけれども、やっぱりどっかでうまくいってなくて完全な結果が得られなかった。
なのである程度の塊(ライン単位)にしておいて、目的であるアウトラインだけをがんばって合成するという手順にしてなんとか進行。これまでの作業も有効利用できているし無難な落としどころなんじゃないかな。


hatena bookmark

最近ニコゲーなるサイトで遊んでいて、そこのクイズジェネレーターでちょこっと作成してみた。(要Flash再生環境)

抵抗カラーコードってなんとなく気合い入れて覚えた事がないので普段使う抵抗値以外の部分が割と曖昧になっていたりするものじゃないですか。わたしだけ?
てなわけで、抵抗値が読めるかガツンとチャレンジしてみてください。

始めるといきなりクイズ形式で「この色は何番?」と聞いてくるけれども、そのまえに読み方の説明をしたスライドを挟むことで教材になるんじゃないかという指摘をいただいた。その通りですな。

何かというと、ニコゲーはこういった用途でさくっと作るのに便利ですよということで。
ブログ等自分のサイトにも張れるのも良いところ。


hatena bookmark

AVR初心者にとって取っつきにくいのがヒューズビットの設定。
チップ起動時の設定を焼き込むものなのだけれども、この設定をミスすると一般的な USBライタで読み書きできなくなったりしてしまう。まあ、設定ビット自体はPICにもあるし、普段はプロジェクトで隠蔽されているけれどもPSoCにもあるので概念としては難しくないのだけれども、うっかり変な値を書いて書き込みできなくなるというのが難しいところ。
書き込みできなくなるといっても簡素な手順であるシリアルでの書き込みができなくなるだけで、12Vの印可が必要になる高電圧書き込みだと書いたり消したりすることができる。
高電圧書き込みできるライターってのはちょいと大きかったり古かったりするので玄人さんでないとなかなか所持していないものだったりもする(偏見)。
追記:Dragonってそんなに大きくないのね、AVRスターターと混同してた

どうする、自分でそのライターを作ってみるか?データシートに手順は書いてあるからできなくもない。

DSC00711
考えを巡らせているうちに、ユニバーサルプログラマを持っているのを思い出した。ROMとかフラッシュとかを読み書きできるちょいと便利な機械。昔はドライバーに使っているUSBフレームワークがバージョン古くて、同じフレームワークを利用している他のアプリと喧嘩しまくり(そして案外使っているアプリがおおい)で不満たらたらだったけれども、最新版はそのへんが解消されていた。今なら9800円とかだしお買い得かも。
で、このプログラマだとPICやAVRの主要なチップを読み書きすることもできるのですな。全種類じゃないけれども。
なので、こいつを使ってヒューズビットやロックビットを間違えた AVR を全消去してしまえば万事解決なのでした。
このユニバーサルプログラマ、ソフトウェアの書き込み用に使えるかというと使えるのだけれども、普通にAVRライタを使った方が良いと思う。

で、このユニバーサルプログラマで対応しておらず、過去にヒューズ設定を間違えた AVR がまだほかにあるのです。
DSC00710
ATTiny85、8ピンの奴はなぜか対応していなかった。
通常 AVR の高電圧印可書き込みはパラレル方式なのだけれども、この8ピンのシリーズは足が足りないので高電圧印可シリアル書き込みという奇妙なモードを持っている。
データシートを見てみると 12V を印可しながらシリアルで手順を踏めば良いだけとわかる。んじゃ、ちょっと手作業でヒューズ消し作業をやってみますか。
Read the rest of this entry »