TENTAKUを買ってレーザー刻印した

電卓自作キット

最近、自作キーボードが流行ってますが、その流れ?で電卓の自作キットというのも販売されてます。

テンキー型 電卓自作キット”TENTAKU”

気になってたけど買ってなかった

以前からメカニカルキーの電卓が欲しいなと思っていたので、気になってたけど、キースイッチとキーキャップが付属してなくて、別途入手しないといけないというのが面倒で、手を出してなかった。(このあたりをカスタマイズできるのがキットのいいとこだと思うので付属してないのが当然とは思いますが)

遊舎工房なら一気に全部揃えられそう

TENTAKUは通販のみと思ってたけど、自作キーボード専門店の遊舎工房でも売られてるというのを知って、トライしてみようという気持ちが強まった。

無事ゲット、そして少し困った

福岡から横浜に出張中なので、秋葉原は1時間かからずに行ける。ということで遊舎工房で人気のキースイッチとTENTAKUで使えるキーキャップを教えてもらって、一式購入。

キーボードは好きだけどキースイッチやキーキャップには詳しくなかったのでいろいろ教えてもらったんだけど、一つ困ったのがテンキー部分が印字されたキーキャップのセットというのが存在しないということ。

英字のとこまで含めたフルキー分の印字ありセットを買えばテンキー部分もついてくるけど、いらない英字キー部分までついてくるのでかなり割高になってしまう。

お店の人のアドバイスで、無刻印のキートップとデカールのキットを買った。これを張り付ければ一応それっぽくなるはず。

組み立てとはんだ付け

こまかいチップ部品とかははんだ付けされた状態で、キースイッチだけはんだ付けすればいいのでかなり簡単に完成できた。

どうせならレーザー刻印

デカールは張り付けた後にコーティングが必要だったりとかで、ちょっと手間がかかりそうだったのと、前々からレーザー刻印が気になってたので、よい機会と思って格安レーザー彫刻機を買ってみることに・・・

レーザー彫刻機

Bang goodは値引きの変動が激しいのでよくわからんけど、1万3千円ぐらいで買ったはず。。。

レーザーレーザー

ファブ施設にあるようなすごいのに比べると、めちゃくちゃパワーが弱いので瞬発力に欠ける。ということでゆっくりビームあてると今度は焦げてしまう。のだとおもう。

それでもどら焼きの焼き印みたいなのはできた。

肝心のキートップはどうだったかというと

なんだか焦げ焦げ。さすがに市販キーボードのレーザー刻印みたいにはいかないと思ってたけど、焦げすぎ感がひどい。

レーザー強度と移動速度が調整できるのいろいろいじってみたけど、まったく刻印できない状態の次が真っ黒こげ。ちょうどいい中間状態みたいなのが実現できず。

なんとかぎりぎり妥協できるラインをさぐってできあがったのがこちら。

ソフトのバグなのかレーザーの特性なのか、印刷し始めの上端がかすれ気味(とくに4がひどい)だけど、焦げ跡もふくめて味がある感じに仕上がったということで。。

最後に

電卓自作キットをきっかけにレーザー刻印にも挑戦できてよかった。キットの電源スイッチがちょっと操作しづらいので改造するか、電卓の完全自作にも調整してみたい。

ARCore1.7触ってみた その2

先週の土曜日に福岡工業大学で開催されたXR制作会 in 八耐に参加してきたのでその記録。

作ろうとしたもの

ARCoreのAugmented Faces紹介記事によく出てきてる、顔がミスティークみたいなアニメーションで金色になるのと、Developersサイトに載ってる、顔の上にメッシュが透過で描画されるものを作ろうとした。

できなかったこと

イチからのARCoreアプリ作成

新規のシーンからAugmented Facesのアプリを作れなかった。UnityのARCore SDKから、Examples – Augmented Faces – Scenes – AugmentedFacesだとうまく顔認識されるのに、新しいシーンを作って、そこにAR Core Deviceを追加する方法ではうまく動かなかった。

公式サイトの手順通りに新規作成したつもりで、Exampleのシーンと、一から作ったシーンで、オブジェクトのInspectorの内容を一つずつ見比べたりしてみたけど、違いを見つけられず。
https://developers.google.com/ar/develop/unity/augmented-faces/developer-guide
新規シーンを一から作れるようになりたかったので3時間ぐらい、いろいろと試したけどどうにもならなかったのでいったんあきらめた。

透過のワイヤーフレーム表示

透過のワイヤーフレーム表示ができなかった。

「Unity ワイヤーフレーム表示」で検索して出てきたページを参考に、meshにsetIndiciesでMeshTopology.LineとかLineStripとかを設定してみた。
https://qiita.com/2dgames_jp/items/231a18454348cfebd49d

最初、ARCoreAugmentedFaceMeshFilter.csのAwake()でSetIndiciesしてたけどまったく反映されず、_UpdateMesh()のとこで都度都度更新されているようだったので、UpdateMesh()に、

m_Mesh.SetIndices(m_Mesh.GetIndices(0),MeshTopology.LineStrip, 0);

というのを追加してみたら、ひどいことになった。

点をつなぐ順番がめちゃくちゃになってしまってるぽい。何が悪いのかよくわからず。 前回記事に書いた方法でFaceTextureを描画させると、透過はしてないけど、いい感じのMeshに見えるのに。

できたこと

顔が金色になるのモドキ

顔を覆う白色マスクがブラインドチックなアニメーションで動くもの。(ワールド座標基準なので顔を傾けたりしてもブラインドは傾かない・・・)

作り方は次回に続く・・・

ARCore 1.7を触ってみた

テーマ変えたせいか、タイトルのところアルファベット大文字しか入らない。なんでか。

ARCore 1.7がでた

ARCoreがアップデートされて1.7になったそうです。紹介記事で女の人の顔が認識されて金色になる動画がめっちゃかっこいい。しかもすごくきれいに顔の形がとれてるようにみえる。

ぜひ試してみたいということで、ひさびさUnityを起動してAugmented Facesのサンプルアプリを動かしてみました。

手順は完全に公式サイト通り。

UnityにARCoreのSDKを導入

Augmented Facesのサンプルシーンを開く

スクリーンショット取り忘れたので貼りませんが、スマホアプリのSNOWみたいな狐の耳と鼻がオーバーレイ表示されるというサンプルでした。

金色の顔メッシュはどうやれば・・・

Unityど素人なのでまったくどうすればいいのかわからないまま、サンプルシーンのCSファイルを読んでみたり、シーンに配置されているオブジェクトのInspectorのところを見て回った結果、なんとなくARCoreAugmentedFaceMeshFilter.csというところでAugmentedFaceのVerticesとかから顔のMeshを作り上げてるような気がした。

「Unity MeshFilter」とかでググってみたところ、MeshFilterというのがMesh情報の生まれてくるところで、MeshRendererでそれをどうやって描画するか決めるっぽい。あとシェーダーはよくわからん。

よくわからないままサンプルシーンのオブジェクトをいじりまわした結果、FaceTextureというのだけいじればよさそうなので。狐耳鼻のオブジェクトは削除。

サンプルアプリの状態だとFaceTextureに隈取みたいな絵が入ってるようなので試しに黄色一色に置き換えてみたのがこちら。

あと一歩!

FaceTextureのMaterialのShaderというところ、TransparentになってるのをVR/SpatialMapping/Wireframeに変えてみたらそれっぽくなった!(何が起きてるのか理解していない)

最後に

Unity素人すぎてなんか変なことやってる気もするけど、試してみたかったことはできたので満足。次はこのメッシュを保存してBlenderとかで表示してみたい。

あと、MeshFilterとMeshRendererのこともすこしだけ学べてよかった。AR関係なしでシンプルなプリミティブ図形を生成するようなアプリも試してみよう。

スクリーンショットをTwitterに投稿してたやつ、全部Augmentedの綴りを間違っとった。恥ずかしい。

OpenSiv3Dを使ってみた その2

先週に引き続きOpenSiv3Dをほんの少しだけ。

|1/2 * x^2| と |3/2 * |x| | のグラフを見ようとして、www.wolframalpha.com でちょちょっと試してみたら、簡単に表示はできたのだけど、拡大表示は有料のようなので自力で描画してみることに。(WordPressにMathJax入れてみたけど数式表示されない・・・)

Pythonのmatplotlibで簡単にできるはずだけど、OpenSiv3Dで線引くのを試してみる。double型そのまま使うと誤差でてしまうだろうけど、適当なので気にしない方針で。

単純にxを0.01ずつ増やしていきつつ、直前の座標との間に線を引く方式。ガウスなのでほんとは途切れたグラフだけど、この引き方だと途切れないのも気にしない。

Line関数使って線引き。重なったところが見やすいように線の太さを少し変えてみた。
(赤の半透明丸はサンプルアプリのまま。。)

OpenSiv3Dを使ってみた

先日、昼休みにp5jsとOpenFrameworksの話をしてたらOpenSiv3Dというのを教えてもらったので少しだけ触ってみた。

https://github.com/Siv3D/OpenSiv3D

詳しいことはグーグル検索したらでてくるので、ちょっとだけ調べてみた印象としては、言語がC++なのでOpenFrameworks(触ったことないけど)に近い。Windows・Mac・Linuxそれぞれ用に実行バイナリがつくれるというのがうれしい。 個人的にはC++になじみナシなのでかなりとっつきづらいけど、OpenFrameworksよりは記述量すくないっぽい?

続きを読む OpenSiv3Dを使ってみた

Neo Pixelを使いこなしたい LEDピカピカ編

その1はこちら
配線編はこちら

LEDぴっかぴか

ぱっと思いつくのは、単色点灯しっぱなし、単色明暗変化、虹色変化、ランダムぽく点滅あたり。

当初の構想

発光のパターンを表現するようなDSLみたいなのをつくって、好きなパターンをそれで表現してみたいと考えていた。パターンを確認するためにp5jsでピクセルをリング状に立体配置して、パターンを確認するための簡単なシミュレータちっくなのもつくってみたりしていた。

↑はリングごとに色が変わるパターンと、全リング同じ角度で円の色が変わっていくパターン。p5jsで試したコードをMicro:bitに実装したら実物LEDも同じ感じでピカピカしていた。

VJ系のソフトが気になった

一個一個のパターンをコーディングしていくのはなんか今一ついけてないなと思ってたところ、つくるけぇの大下さんの投稿でTouchDesignerというVJに使われるソフトの存在を知る。

このソフトで生成した画像をLED発光に使えたらかっこよさそう!ということで、唯一?のTouchDesigner日本語書籍をKindleで買って使い方の勉強を開始。


ノードのつなぎ方など、基本操作から応用編まで、この本のおかげでとりあえず触ってみるとこまでいけた。感謝。

あとは「映像音響処理概論 2018」のページ。第十四回のPythonのとこを見てPCに接続したMicro:bitにシリアルでLED色の情報を順次送るところまで到達したけど、どうにも速度が出ない。LED138個で秒間1回更新みたいな速度で、FPSあげると通信が詰まってしまうような現象になったので、Micro:bit使用をあきらめてm5stackさんに乗り換え。

DMX/artnetとかいうプロトコルが使えるようなので、少し調べてみるとクリスマスが近いせいか、まるで僕のために書いてくれてるの?と思えるmgo-tecさんの記事を発見。記事内で紹介されているJinx!というソフトがかなり素晴らしかったのでTouchDesignerもあきらめるか?となりかけたけど、プロジェクションマッピングにも興味あるのでJinx!は使わずTDで頑張ることに。

最初はmgo-tecさん作のコードを使ってたのだけど、LED138個だと、データ受信ごとに色反映するとなんかおかしくなる?ようなので、Arduino用のartnetライブラリについてたサンプルコードのほうに乗り換え。こちらは全LED分のデータ受信してから1回発光更新しているようす。

勢いでnano Kontrol2とnano pad2を購入。かなりあっさりTDへの入力として使えるようになった。線アリは不便なので無線のやつにしたほうがよかったかも。。

画像の各ピクセルをDMX用データに並び変えてつなげるところがちょっと苦戦したけどなんとかできたのが展示日の朝3時。なんでかわらかんけど結局シリアルの時と変わらないぐらい更新頻度は遅くなってしまった・・・。完全に詰まってしまわないのだけが救いだったけど。

ということで、すこし不満足な出来だったけど初TDでの作品づくり体験ができて満足。LEDだと解像度的には激低だったので、つぎはプロジェクターで映像うつすのもトライしてみたい。

Neo Pixelを使いこなしたい 配線編

その1はこちら

配線編

時間かけすぎると記事書く元気なくなりそうなので、ささっと書く。

今回作るのは6つのアクリルリングを吊り下げて、リングの内径のところにテープLEDを張り付けたクリスマスツリー風のオブジェ。一番上のリングはLEDなしにしたので、まずは大きさの違う5つのLEDリングを配線するところから検討開始。

テープLEDはこれを買った。(10年以上前につくったアソシエイトアカウント。超久しぶりに見たらまだ500円到達してなかった)

5メートルで300LED、1メートルあたり60個、LED同士の間隔は100(cm)/60(個)で1.66cm。アクリルリングの大きさは外径10cm、15cm、20cm、25cm、30cmで幅2.5㎝なので、内径はそれぞれ外径-5cm。内径の円周から、それぞれのLED個数を計算すると9個、18個、28個、37個、47個。なので、計算上は合計139個になる。(最終出来上がったものは9,18,28,37,46の138個だった。ほぼ計算通り)

スイッチサイエンスのページでみると1LED当たりの最大消費電力は18mA。18*139は2.5A。なるべく細い電線のほうが取り回ししやすいけど、LEDの数が多いのでどれぐらいの太さの電線がいるのか調べてみると、2倍ぐらいのマージンをみるとAWG22という太さぐらいで4.7Aまで。ただ、AWG22ってかなり太いので、もう少し細い線を使えるように電源の線を分けてみることにした。

5つのリングのLED個数は、あまりきれいにグループ分けできなかったけど、とりあえず9+18+28=55個、37個、47個の3つにグループ分け。これで最大でも18*55=0.99で、1Aを超えないのでAWG26でよさそう。

Fritzingでそれっぽく書いてみたけどLED数合わせられなかった。信号線は全部直線上につながっていて、電源の5VとGNDは3つに分割。5VとGNDを5V2AのACアダプタに接続。信号線とGNDをマイコンに接続という構成。

電源もかなりごっついのがいるかと思ってスイッチング電源とか調べたり、複数ACアダプタ使う方法とかを考えてたけど、実際に点灯させて測ってみたら、全部を白色でMAX発光させるような使い方をしてないせいか、138個を光らせても1Aいかなさそうだったので、やや大きめのACアダプタ1つでいくことにした。

テープLEDをリング状に形成しつつ、次の段につなげられるように配線を上下方向に出すというのもかなり大変で、テープ端にはんだ付けした線同士が接触しないように3Dプリンタでケーブルガイド的なのを作ってみたりした。下の画像の左端の穴が6つ開いてるパーツがそれ。線を誘導する穴の角度がいまいちで、ちょっと使い勝手が悪かった。

下の画像で水色になってるのが、LEDの発光源中心とアクリル(5mm)厚みの中心を合わせるためのガイドパーツ。こっちはまあまあうまくできた。もうちょっと大きく作って、このパーツだけでアクリルリングに両面テープ止めできるようにしたり、アクリルを挟み込んで固定できるようにすればもっとよかったかな。

一番下にうつってるコの字型パーツはテグスを使ってアクリルを吊り下げるときのフックのつもりだったけど、あまりうまくいかなかったのでプリントしたもののボツにした。配線編はとりあえずこれぐらいかな。続きはLEDピカピカ編に書く。

つくると in 織りなすラボ に出展した

出展は「つつうらら」と「トンガリズム」の2つ

つつうららのほうは個人的活動のつつうららで作った作品を出展。トンガリズムのほうは会社の人達と一緒にグループ出展。

つつうらら

今回は3Dプリント作品とフェルト手芸作品の展示。3DプリントのほうはHappyPhoneHolderHappyFaceMask。フェルト手芸は、つつうららのマスコットキャラクターどん太君の人形とクッション。

左側に映ってる黄色いハッピーフォンホルダーは展示中に机から落下してバラバラになってしまったけど、内部の様子が見えるからちょうどいいやと思って接着しなおさずにそのまま展示してたら、パズル的に組み合わせて遊ぶ子供が続出してたので、あえて未完成なのも楽しめる要素があっていいなと思った。

3Dプリントしたものを見慣れてない来場者も多かったようなので、廉価なプリンタでもこれぐらいできますよというのを紹介できてよかった。あと、こんな大きな作品って感じのものだけではなくて、カーテンレールのフックのような日用品も(100均で十分なんだけど)家でさっと印刷するのに使えて便利ですよアピールもできた。

ハッピーフェイスマスクはプロジェクションできる状態にセットすると、プロジェクターの充電口がふさがってしまうことに展示設営中に気づいたけど時すでに遅し。電池切れになるたびに取り外して充電してたので、プロジェクションありの完全な状態での展示はかなり短時間しかできなかった。これは大失敗。会場はかなり明るかったけど写真に写ってるぐらいの感じで肉眼でも見えてたのはマル。

どん太君人形は左手のところに鳴き笛を仕込んでもらって、押すとキューキューなる仕様。今回は小さい子供の来場者が多かったのでキューキュー鳴らすとめっちゃ興味持ってもらえてよかった。クッションのほうは鳴き笛なしだったけど、音が鳴るのを期待して押してくれるキッズが多かった。

トンガリズム

こちらはつくると!5で展示してたベルトさんアナライザーに加えて、アクリルのリングとLEDテープで作ったキラキラクリスマスツリーに、アクリルやMDFをレーザーカッターで切り抜いて作ったオーナメントに絵をかいてもらって飾るというものを展示。

アクリルリングをツリー状にぶら下げる方法をいろいろと考えて、テグスをクリップで引っ掛けたり、3Dプリントした柱で吊り下げたり、シンプルにテグスを巻き付けた摩擦だけでいけないかと試したりしたけど、結局リングごとにテグスを結び付けて6リングx4本=24本のテグスを個別に長さ調節するという一番力技でしんどい方法に落ち着いてしまった。当日朝から吊り下げ準備してくださったトンガリズムメンバーに感謝。

展示が始まってからは、想像していた以上に子供たちのお絵かきの勢いがすごくて、昼過ぎには用意していたオーナメントが全部なくなって、ツリーのほうも飾る場所がなくなってしまった。ほとんど書いてもらえないかもと思っていたのでかなり驚き。

LEDツリーの作成についてはNeo Pixelを使いこなしたいの記事のほうに書いていく。

Neo Pixelを使いこなしたい その1

Neo Pixelキレイですよね

大量LEDを光らせてみたいと前々から思っていたけど、難しそうな印象があってトライしてなかった。

難しそうポイント1

電力供給と配線。LEDがたくさんになるとそれなりの電源とそれなりの太さの電線が必要になるみたいで、なんとなく恐ろしいと感じている。

難しそうポイント2

キレイに光らせるパターンを作るのが難しそう。そもそも虹色に循環させるみたいなのが難しそう。RGBそれぞれを順番に強めて弱めるとかだけでもひ弱なマイコンではメモリが足りなくなりそうで怖い。

難しそうポイント3

実はAliexpressで安いテープLED(5m,300LED)を買って間接照明を作ってみようとしたことがあるけど、数か月放置してただけで9割ぐらいのLEDが壊れて?光らなくなった。NeoPixelは数珠繋ぎなので壊れたとこから先は一切光らず、ちょっとずつチョキチョキして光るLEDを探すみたいなことをやったのがつらかった。

といった難しそうポイントがあったのだけど、今回、「つくると! in 織りなすラボ」に出展するのをきっかけに、大量Neo Pixelをキレイにピカピカする!にトライしてみることになった。

以前、スティックタイプのNeo PixelをM5Stackに接続して光らせたことはあるけど、その時は数が少なかったので電源・電線は考慮しなかったし、光らせパターンもArduinoのNeoPixelライブラリ内蔵のやつにおまかせ。スティックタイプなので?配線のはんだ付けもしやすかった。

 

 

目標

大量のテープLED(300個ぐらい)を立体的に配置してピカピカする。ピカピカのパターンも単純な流れるレインボーではなくて、かっこいい感じにする。インタラクティブなのもやってみたい。

配線編に続く

UnityのTutorialをやってみた

きっかけ

VR部屋作りが滞っている。もともとVRデバイスを活用したかったのに、Odysseyが壊れたとか、FAB3Dコンテストに応募したとかでいろいろ横道にそれてしまった。

OculusGOとかWindowsMRとかUnityで作るにしてもいろいろSDKとか違うぽくてどれを選ぶのか迷いもあるけど、結局のところそもそもUnity慣れしてないのでまずはUnity公式のTutorialを試してみることにした。

公式チュートリアル

ページはこちら

まずは Interactive Tutorials から始める。UnityのProject作成ダイアログにLearnというタブがあって、そこを選ぶとこのサイトのチュートリアルと同じコンテンツが選べる。Downloadを押してしばらく待つとボタンの表記が「Start」に変わって、Startを押すとチュートリアル開始。

あらかじめ途中まで作成済みのプロジェクトが開かれて、クリック可能な場所が明るく表示されるので、それに従ってポチポチ押していくことでレッスンが進む形式。最初の2つをやった感じではかなり細かい単位でチュートリアル分割されている印象。

ひとまずの目標は「モデリングしたものをVR空間でじっくり見る」なので、そこに向けてVR要素なしの状態からすすめていくような感じ。Interactive Tutorialsが終わったら玉転がしをやるとして、そのあとどうすべか。

つつうらら