超薄型名刺サイズで流体シミュレーションを実行する
(github.com/Nicholas-L-Johnson)- flip-cardプロジェクトは超小型の名刺サイズでFLIP(Fluid-Implicit-Particle)シミュレーションを動作させるオープンソースハードウェアです
- PCB設計ファイルとシミュレーションロジックが直接含まれており、参照と応用が容易です
- WASMシミュレーターを使えば、実際のハードウェアがなくてもシミュレーションのデバッグが可能です
- 再充電可能なバッテリーとUSB-Cポートなどの創造的な設計が採用されています
- Matthias Müllerなど著名な研究者の最新アルゴリズムや参照プロジェクトを基に開発されています
flip-cardプロジェクト概要
- flip-cardは流体シミュレーションアルゴリズムを超スリム名刺サイズの回路基板に埋め込んで実行する、実体ハードウェアのオープンソースプロジェクトです
- このプロジェクトはmitxelaのfluid simulation pendantプロジェクトからインスピレーションを得ており、名刺上で直感的で視覚的な流体の動きを確認できる点が特徴です
主要ファイルと構成
- PCB設計ファイルは「kicad-pcb」フォルダに含まれています
- FLIPベースの流体シミュレーションロジックは「fluid_sim_crate」フォルダの独立Rustクレートにあり、Matthias Müllerの研究と「Ten Minute Physics」で紹介された最新手法に基づいて実装されています
- 「flip-card_firmware」ファイルにはRP2350チップベースのファームウェア実装が含まれます
機能と特徴
- 再充電バッテリー内蔵: cnlohrのtiny touch lcdプロジェクトの設計を参考に、ボード端USB-Cポートが採用され、実用性が向上しています
- WASMシミュレーター: 「sim_display」フォルダのWebAssemblyツールにより、ハードウェアではなくPCやWeb環境でもシミュレーションデバッグが可能です
- 各フォルダの詳細説明は、それぞれのREADMEファイルに掲載されています
その他の情報
- flip-cardは流体シミュレーションチップ実装、ハードウェア回路設計経験、WebAssemblyベースのシミュレーションデバッグ、再充電ボード設計などの観点から、さまざまな最新組み込み技術の学習・参照用途に適しています
- オープンソースコミュニティで参照事例と設計ノウハウとして注目されるプロジェクトです
1件のコメント
Hacker Newsコメント
名刺サイズの空洞容器に少量の水を入れることの利点は、よりリアルな流体運動を実装でき、安価で製作が簡単で、デバッグもやりやすいことです。
欠点は、座ったときにお尻が濡れる危険があり、難しくて挑戦的な作業をしているときの達成感が薄れやすいことです。
ボード端にあるUSB-Cポートが本当に素晴らしい。将来、別の部品やはんだ付けなしでボードにUSB-Cポートを取り付けられることを人々が知るようになれば、この種の取り組みはもっと増えるだろうと感じます
とてもクールな名刺だと思いますが、こうして配るには値段が少し高めだと思います
昔、ハードウェア名刺を作っている人に会ったことがありますが、はっきりとは覚えておらず、これほど完成度の高いものではありませんでした
その人の名刺はすでにかなり傷だらけで、渡した後に「取り返してほしい」と言われたのが少し変に感じた記憶があります
机の引き出しに置いておいて、ずっといじって遊ぶようになり、自然とその人のメールアドレスやLinkedInを覚えてしまいそうです
自分のウェブサイトへ多くのトラフィックを誘導でき、フリーランサーや就職活動中なら、少量だけを制作し、潜在顧客や採用チャンスがあるときに特別に配ることもあります
求職中であれば、このプロジェクトをブログ記事や履歴書/ウェブサイトにリンクするだけで十分インパクトが出せると思います
PCB設計図や回路図がどうなっているか気になるなら、KiCadファイルをオンラインビューアで直接確認できます
カード制作者(phirks?)に、より多くのインタラクションやLEDマトリクスを使ったテキストなど、さまざまな情報を表示することを考えたか質問してみたかったです
タッチボタンを使えば、BOM(部品表)上でほぼ追加コストなしにコントロールできます
もちろん現状だけでも本当にかっこいいです
とりあえず就職を終えた後で、それをやる予定です
実際、数字を表示するコードはすでに全部実装済みですが、まだ使っていません
テキストは思ったよりうまくいきません。文字が見やすくなるには意外ともっと大きなスペースが必要で、現在のようにLEDの間隔が広いと小さなピクセルフォントが見にくくなります
スクロールテキストは悪くないと思うのですが、まだそこまで目を向けられていません
QRコードを表示してみたところ、読み取りがあまりうまくいきませんでした
ボタンを使わないという方針なので、加速度計のクリック・ダブルクリックを使えるなら、さらに検討してみるつもりです
誰でもフォーク・コントリビュート・イシュー提起をしてくれれば嬉しく、メンテナンスもちゃんとやりたいです
中国ではすでに「デジタル・サンド・グラス(digital hourglass)」のような製品が、この方式でかなり前から販売されています
Acorn Archimedes向けに、Cataclysmというゲーム全体がこのコンセプトで作られたことがあり、YouTube動画で見ることができます
Xbox 360でもリメイクされましたが、当時の機器としてはかなり印象的だったと思います
Oxygen Not Includedでは多種の流体と気体がシミュレートされ、サンドボックスモードとデバッグツールまであります
さまざまな素材が互いに相互作用する様子を、まるで絵のように描くのが特に好きです
ゲームプレイ動画があります
このようなプロジェクトが気に入るなら、mitxelaのfluid simulation pendantを強くおすすめします
彼のすべての作品は常に驚くべきもので、ためになり、かつ面白いです
すべてを惜しみなく共有していて、動画も記事もクオリティが高く、声も良いので感嘆します
こうした人がもっと増えることを願っています
動画と記事をぜひご覧ください
ただ価格が£1200なので少し負担です
デザインは芸術的に美しいです
個人的にはシルク層が重なっている箇所が見えるので、その部分を整えるか、部品名(リファレンスデザインター)を全部消してしまうのもよいと思います
裏面のテキストフォントは、もっと遊び心のある感じで試してみたいです。好みは人それぞれだと思いますが
全体として、出来上がりはとても良いプロジェクトです
最近RP2350のLED制作をかなりやっているので、私がデザインしているペンダントでもこのコードを回せるか気になります
少し本題から外れますが、物理シミュレーションのコーディングをどこから勉強すればよいか気になります
数年前にtaichi_mpmプロジェクトを見ましたが、C++で88行しかないのにとても難しく感じました
コンパイラやデータベースについては簡単な実装を試した経験がありますが、物理シミュレーションに関しては完全にゼロの状態を感じます
物理シミュレーションの範囲は非常に広く、流体シミュレーションと惑星軌道計算の方法はかなり異なります
根本的には、さまざまな変数を微分方程式と線形代数に基づいて数値的に積分することが共通しています
最も基本的には、毎ステップで計算した加速度・速度・位置を更新するオイラー法(Euler's method)があり、誤差が大きいため実際にはRunge Kuttaのような高度な方法がよく使われます
物理系で保存すべき性質がある場合(例: エネルギー保存)、それを保証する数値手法もあります
また、粒子シミュレーションかグリッドシミュレーションかという違いも大きいため、この問いは物理学の核心の深さにも繋がります
そして、すべては物理的なものだという古典的な言葉でまとめました
SIGGRAPH 2001のrigid-bodyシミュレーション資料はやや難しいですが、数学的理解から全工程をざっと把握できます
たとえば、キャラクターのx/y位置、dx/dy(速度)を毎フレーム更新するマリオのようなシンプルな物理シミュレーションを実装すると、基本感覚を身につけられます
プレイヤーがジャンプボタンを押すと、'jump'状態でdy=1、毎フレームdyに0.9を掛ける
dyが0以下になると'falling'状態に切り替え、その後dyに1.1を掛けながら終端速度に向かう形になります
この基本を身につけるだけで、'falling sand'系のシンプルな物理効果は簡単に実装できます
実際には両方が離散化(discretization)と数値計算で交わります
「Numerical Recipes」は誰もが読む物理学者のバイブルで、「Computer Simulation of Liquids」(Allen)も入門書として悪くありません
ここで言っているのは実際の物理精度を追求する分野で、ゲームデザインなら見た目が本物らしく見えれば十分な様々なヒューリスティックも使えます
Pythonの例題も非常に多く含まれています
tenMinutePhysics動画も入門に良い動画です
2009年当時の最新技術の事例はここで見ることができます
製造方法についてもっと詳しく知りたいので、表面実装(surface mount)の組立はアウトソーシング会社と一緒にやっていたのではないかと思います
回路とレイアウトはオープンソースのKiCADツールで設計されており、おそらく海外のPCB製造業者へ発注されているはずです。この程度の複雑さなら簡単に対応できます
数百ドルあれば作成して配送まで、1か月以内に可能です
SMD(表面実装部品)を手作業で実装するには、まずソルダー(はんだ)ペーストを塗って部品を置き、全体を加熱してはんだ付けしますが、LEDがここまで多いと手作業はかなり面倒です
むしろこの方法の方がスルーホール(Through-hole)よりも簡単に感じることもあり、基板を何度もひっくり返す必要がないからです
ただし99.9%の確率でJLCやPCBWayレベルで製造されたものだと思います
ただ、この製品のLEDは品質が良く見え、いくつかの部品は単価が高い可能性があります
シリコンのような素材のグリッド型ガイドで合わせたのか、ロボットのピックアンドプレース装置が正確に自動配置したのかが気になります