2014年8月3日日曜日

お茶杓を3Dプリント

私は趣味で茶道をしています。

茶道では、お茶碗に始まって様々な道具を使います。

多分にミーハーなもので、「〇〇の釜が良い」とか「〇〇という茶碗が面白い」という話を聞けば、
その週末には展示されてる美術館に行ってしまうくらいには入れ込んでいます。
(もちろん資金と時間の許す限りですが。。。。)

そんなことをしているうちに最近では、見るだけではなく、自分で作ってみたいと思うようになりました。ただ、作ったとしても、披露する場所がないんじゃ面白く無いので、中々踏ん切りがつかず見送っていたのですが、

今年の7月にFabLab Kitakagayaでお茶を振る舞う機会を頂いたので、
「コレ3Dプリンタで出力してみたら面白いんじゃね?」などと日々思っていたモノを思い切って作ってみることにしました。

そんなわけで今回制作をしてみたのは「お茶杓」です。

お茶杓はお茶碗に抹茶を入れる際に使う匙なのですが、
お茶をやっている人でも、茶杓師さんのところへ習いに行って自分で作ったものお茶会等で使うといったことがあります。

なので、敷居は低いものと勝手に独り合点して作るのに挑戦してみることにしました。
(先生にバレたら怒られるかも。。。。とか思いながら)

まずは手持ちのお茶杓の寸法を計測して3Dデータを作ります。
使用したソフトはDesignspark Mechanicalです。
作ったデータはこんな感じ。



作成した3Dデータを持ってFablabKitakagayaで3Dプリントしてきました。

Maker Bot Replicator2は調整中との事だったので、

FabLabのメンバーの方が自作された3Dプリンタを使わせていただくことに。



白地のカッチョイイお茶杓が出来上がる予定だったのですが。。。


密度や温度の設定が適当だったせいか、スッカスカのお茶杓にorz

設定を見直し、フィラメントを取り替えてもらい、再挑戦!

出力中。。。


出力結果はこんな感じ。周りにラフトが付いているのでこれをヤスリを使って除去します。

※ラフト:プラモデルでいうところのランナーみたいなモノ。プリンタのステージから3Dプリントしたモノをはがしやすくするためにつける。




除去した結果はこんな感じです。左側に元に下お茶杓を並べてみました。
粗形状は再現できているので、満足な結果が得られました。


完成したお茶杓は↓のイベントの最終日にお茶席を設ける機会を頂いたので、そこで披露してきました。
https://atnd.org/events/52702


2014年4月5日土曜日

レーザー加工機テスト

今回はFabLab Kitakagayaのレーザー加工機を使用してきたレポートをします。

レーザー加工機というのは材料にレーザーをあてて、
その部分を溶融・蒸発させることで形を切り出す工作機械のことです。

Fablab Kitakagayaにあるレーザー加工機は出力が12Wと比較的小さい出力なので、加工できる材料がガラスやアクリル、木材などに限られます。それでも、複雑な形がものの数分で切り出せるのは非常に便利です。

仕事で何度か加工に出してますが、自分でレーザー加工機を使うのは初めてです。

今回は我が家の表札を作ってきました。
ほぼこの一年表札にボールペンで適当に書いた紙を使っていたので、ここらでちゃんとしたものが欲しいなーと思っていたので思い切って作って見ました。

CADを使ってデータを起こして

Fablab Kitakagayaに行ってレーザー加工機で出力してきました。
使い方は非常に簡単だったので1時間ぐらい練習すれば誰でもすぐに使いこなせる用になると思います。

レーザー加工機の使い方はFablab Kitakagayaの講習におまかせするとして
(作業中の画面キャプチャ取るの忘れてた。。。)

材料はホームセンターで安売りしてた3mmの板。
結果はこんな感じ

レーザーカッターの特性を活かす為に穴を抜きまくったり、カーブをつけたりして作って見ました。

出力とレーザーの照射速度を調整すると表面だけを焼いて彫刻をすることも可能です。
(出力中の写真とか、動画撮っとけばよかったorz)

が、安い材料だった上に細い部分が木目に沿っていたので1日掲で無残なことに。。。orz

なので、材料をアクリルに変えて、再度挑戦してきました。

今度はちょっとやそっと負荷がかかっても割れない程度には丈夫です。



加えて、レーザー加工機性能を調べる目的でテストピースを作ってみました。

まずは加工精度、50mm,49.5mm,48.5mm,48.25mmで加工を行いそれぞれの長さをノギスで計測しました。長さを計測すると、全体で0.3mm程マイナスに加工されています。本来なら数を加工して歩留まりを計測したいのですが、予算と時間がとんでもないことになるので、チキンな私はやれませんorz

レーザーの照射幅の関係でしょうか。
加工用のデータを作る際に0.3mm程プラスにオフセットするとはめあい部品なども加工出来そうです。はめあい関係はデータをきちんと取って自分でデザインしたmbedのケースとか作ってみたいですね。

下側は穴加工のサンプルです。
左から順にレーザー出力と移動速度の設定を

  1. スピード0.5パワー90
  2. スピード0.2パワー90
  3. スピード1パワー90
  4. スピード30パワー80

で加工しています。
3.がマニュアルに乗っていた設定なのですが、きちんと穴が抜けていませんでした。
2.での設定では加工はきちんと出来ていたのですが、板の表面が焦げていたので、やはり1の設定で加工するのがベストの用です。

次はレーザ彫刻のテストです。
パワーとスピードを変えながら、加工をしてみました。
spがスピードpowが出力です。
(一番下の部分は見えにくいですが、sp60pow10で加工してます)
こちらはマニュアルに載っていた設定の値sp60pow80が一番深く綺麗に加工出来ています。

加工幅の限界も実験しました。
0.6mm,1.3mm,2.5mm,5.0mm,10.0mmの幅で材料を加工し、どこまで薄く削ることができるかを試してみました。
材料は木材とアクリルの2種類です。

結果木材は0.6mmの幅まで加工が可能でしたが、アクリルの場合は加工をした部分が熱で溶けてしまい、きれいな形状が得られませんでした。
木材は0.6mm,アクリルなどの樹脂は1mm程度が加工の限界の様です。

最小Rなども計測したいのですが、テストのデータを作るのが結構たいへんなので、またの機会に。
ではでは。



Namba Coworking

今日は日本橋のコワーキングスペースNamba CoWorkingから更新してます。

デジットさんで部品買った帰りとかに気になってたのでいつか入ろうと思ってたのですが、
中々タイミングが合わなかったので、FabLab Kitakagayaからの帰りによってます。
店の中はこんな感じ。


いつもの工作セットを広げて遊んでます。

13:00か23:00まで 1日1000円で電源とWifiは使い放題!!
コーヒー飲み放題!!
しかもネスカフェバリスタが置いてある!!

プロジェクターとスクリーンもあるので、セミナーとかちょっとした教室なんかも開催可能だそうです。ここでそういったイベント開けたらいいな~とか思いますが、自分の集客力なんぞたかがしれてるので、ちょっと人脈を整えてからでしょうか。。。







2014年3月11日火曜日

Seeeduino arch触ってみた。

最近、某大学のロボット倶楽部の後輩向けに、マイコンの講座をやってます。

「ARMに触らせてあげたいなぁ」とか思ってたので、安価に入手できてmbedに対応している評価基板を探してました。

そこで見つけたのがSeeeduino Arch

青いやつだと6k,黄色いやつでも4kぐらいするとこを2,400円で売ってたので、これ幸いとばかりに衝動買いしました。


中身のマイコンは黄色い奴と同じですが、異なる点は3つ
  1. ピンの配置がarduino互換なので、arduino のシールドが使える
  2. 書き込み可能なプログラムの容量が32kB
  3. デバッガが使用可能なこと
1.に関してはarduino互換とはいえ流石にプログラムは使えません。残念ではありますが。
2に関しては正直もうちょっと容量増やして欲しい感じもします。既存のライブラリをじゃんじゃん入れない限りは問題なく運用できるのでちょっとしたロボット作るには向いているのじゃないでしょうか。
3はまだ試してません。一応ここにやり方は書いてあるんですが、Keil uVistion4を入れて環境の構築しなきゃいけないのが、面倒でやってません。


最近はmbed対応の基板がSTMから4種類出たりFreeScalekからも2種類出てますね。

日本ではmbedはあんまり人気がないみたいですが、開発者コミュニティがしっかりしててライブラリがきちんと揃ってるので、自作のガジェット作って見たい人にはオススメしたいですね。

2014年1月29日水曜日

我が家の家電コントロール機器

最近、ネットワーク経由で操作できる学習赤外線リモコンが熱い(自分の中で。。。)
arduinoベースで製品化されたり、
http://getirkit.com/

現役大学生のスタートアップなんかでも作ってる。
http://engineer.typemag.jp/article/pluto-neo

エアコンを職場からいじったりできるようになると、会社から帰る前に部屋のエアコンを入れておいて、帰るころには部屋が暖かい/涼しいみたいなことがみたいなことができる用になるし。

タイマー設定しておいて時間になったら電気つけるみたいなのも面白いと思う。

「タイマーつけとけばいいじゃん」ってのはそうなんだけど、残業や休日に出かけていて、帰りがいつもより遅かったりすると、その分の電気代が無駄になるし。


まあ、何より「赤外線リモコン作ってみてぇ!」って気持ちが止められないw。


今回の制作もマイコンはmbedを使って作ります。
mbedの赤外線リモコンのライブラリを公開してくれている方がいるので、そのライブラリを使わせてもらいます。また、ネットワーク機器を簡単に作れるように、標準でRPC(りもーとぷろしじゃーこーる)のライブラリが用意されてるのでそれも使います。

大分前にブレッドボード上で完成してテストも完了してたんだけど、
中々基板を作る気になれなくて(気力削がれる半田付けの量でもないのに)、何ヶ月もほったらかしになってました。
材料はほぼ揃えていたので、年も明けてキリの良い所で一気に作ってしまいました。


材料

  • mbed1768 (いつもの頼れる相棒)
  • 角型単列20ピンのソケット
  • トランジスタ 2SC1815 (もうディスコンしてますけど。。。)
  • 赤外線LED (型式不明)
  • mbed イーサネット接続キット
  • みんな大好きユニバーサル基板


以下は回路図。(ホントはLED保護用の抵抗とかノイズ除去用のコンデンサとかいれないとヤバイんだけど。。。まぁとりあえずはこれで。赤外線LEDもそんなに高いものではないので。。)
作成はfritzingを使いました。
fritzingいいですよ。ライブラリが豊富で、ブレッドボードビューで部品の配置と配線したら、プリント基板のデータまでオートルートで作ってくれるのですごく楽ちんです。こいつの運用が軌道に乗ったら、P板辺りで発注してつくろうと思います。

同じような機能を持ったWebサービスで123D Circuitがありますが、mbedが部品として標準で登録されてないので、回路図作るのに一苦労あります。あと、タブレットに対応しているせいか、何もないところでドラッグすると勝手に画面が拡大されるような動作をするので、自分はストレス溜まりまくりでした。

閑話休題

後はちょいちょいと半田付けするだけ。
出来たのはこんな感じ(下の方に飛び出ているワイヤはテスト用です。ベッ別に配線間違えたワケじゃないんだからね!!)

ハードウェアはこれで一応完成。

後は、プログラム

使用したライブラリ
RemoteIR(http://mbed.org/users/shintamainjp/code/RemoteIR/)
@shintamainjpさんが公開されてるライブラリです。

CookBookから
mbed RPC
(http://mbed.org/cookbook/Interfacing-Using-RPC)

mbedをjavascriptからコントロールするためのライブラリ
(http://mbed.org/cookbook/Interfacing-with-JavaScript)

RPCのデーモン的なプログラムをmbed上で走らせて、
Htmlに記述したjavascriptからmbedのプログラム中で登録した関数をRPCでコールしています。

今のプログラムは人に見せると恥ずかしいレベルなので、コメント入れたりして綺麗に書きなおしてから公開します。


5,6年前までこんなことしようと思えば、TCP/IPのライブラリから自分で作らなくてはならないなんてことがザラだったのに。既存のライブラリの組み合わせだけで、web+組込みみたいなアプリケーションのがすぐに出来るようになるなんていい時代になりました。

こんな感じのアプリケーションは、アイディアがまとまったらまたつくろうと思います。


参考にしたところ

http://mbed.org/users/yueee_yt/notebook/use_ethernet/



2013年7月17日水曜日

フルカラーLEDドライバICp9813について

先日デジットで入手したフルカラーLEDモジュールの制御に成功したのでそのメモを。


まず、入手した部品の紹介から。
今回はこの部品。

この中にフルカラーLEDとドライバICのP9813が樹脂封入されてる。
制御自体はクロック(CI)とデータ(DI)の2線にクロックの立ち上がりで逐一ビットデータを送信するだけ。

このLEDドライバのすごいところはLEDモジュールをデイジーチェーンで配線できるところ。
つまり、LEDモジュールを数珠つなぎに伸ばして、しかもそれをたったの2線で制御できる。

「フルカラーLEDをたくさん光らせたいけど手持ちのマイコンのピン数たりねー」とかおもっていたので、衝動買いしてしまった。


さて、このドライバICの制御を解説をしていくとしましょう。

まず、このドライバICのシリアル通信の仕様について
このICはCIピンの立ち上がりエッジでDIピンの値を読み取る。

立ち上がりエッジってのは電気信号がLからHに変わる時の事。図にするとこんな感じ
つまり、マイコンでCIピンを一度Lowレベルに落としてから、
ビットのデータをDIピンにセットして、再度CIピンをHighにするとドライバICがビットのデータを読み取るわけだ。

次にデータの送信手順について、
このICではデータのスタートフレームをLの32bitと定義している。
つまり、Lowの信号を32回送ればいい。
次に、1番目のLED(直接マイコンに繋がれてるLED)についてデータ
その次に2番目のLEDのデータ、3番目のLEDのデータ・・・n番目のLED・・・とデータを送信していく。
最後にデータの送信が終了したらストップフレームを送信する。
このストップフレームはスタートフレームと同じ信号Lの32bitを送信する。

で、肝心のLEDの制御データの中身はと言うとこんな感じ。


写真はデジットで貰った取説を携帯のカメラで撮ったものです。
(デジットさん勝手に使ってごめんなさい。m(_ _)m)

データフレームの長さは32bitで
中身はこんな感じ。

  • フラグビット(H_H) 2bit
  • 青色用チェック(B7,B6のぞれぞれ反転) 2bit
  • 緑色用チェック(G7,G6のぞれぞれ反転) 2bit
  • 赤色用チェック(R7,R6のぞれぞれ反転) 2bit
  • 青色データ(B7~B0) 8bit
  • 緑色データ(G7~G0) 8bit
  • 赤色データ(R7~R0) 8bit


後は、これに合わせてRGBそれぞれのデータを8bitで送信してあげれば上手くいくと思ってた。

が、落とし穴が一個。
取説には制御データのコードは「グレイコード」と書いてある。
正直、「グレースケール」のタイポだと思ってたら違った。

Wikipedia:グレイコード 

調べて驚いたのが、アブソリュートエンコーダの信号なんかがこれで構成されているらしい事。
詳しい話はWikipediaの「利点」のところを参照して欲しい。

符号化の仕方は簡単。
「変換したい2進数」
「変換したい2進数を1ビット右にシフトし、先頭に0をつけたもの」
のXORをとるだけ。

これらをmbedで実装してみた。

mbedのサイトで公開したので興味ある方は参照して。
http://mbed.org/users/MrBearing/code/FullColorLEDControl/

(回路図作ってアップしたいけど作るのめんどくさい。。。。)
モジュールのDIをp10、CIをp11に繋げば動きます。

動作動画





取説だと12Vいることになってますが、5Vの電源でもとりあえず駆動するのでmbedのVoutとGNDをそれぞれ対応する線につないで電源入れれば駆動します。

今後の課題としては

  • LEDを一つしか点灯させていないので複数制御を達成する
  • Colorクラスの実装(特にHSVtoRGBみたいなのとかの実装)
  • ドライバコントローラーのクラス化・スレッド動作化
  • 送信クラスのstream化
  • 表示までの遅延時間の計測
ってとこですかね。