smartknob - ソフトウェア定義のエンドストップと仮想戻り止めを備えた触覚入力ノブ

(Haptic input knob with software-defined endstops and virtual detents)

Created at: 2021-10-24 11:48:44
Language: C++
License: NOASSERTION

SmartKnob

SmartKnobは、ソフトウェアで構成可能なエンドストップと仮想戻り止めを備えたオープンソースの入力デバイスです。

ブラシレスジンバルモーターを磁気エンコーダーと組み合わせて、閉ループトルクフィードバック制御を提供し、戻り止めとエンドストップの感触を動的に作成および調整できるようにします。

ビルドステータス ビルドステータス

デザイン

SmartKnobビュー

プレミアムSmartKnobエクスペリエンス。活発な開発中。

⚠️ このプロジェクトの人気の結果として、推奨されるモーターは残念ながら利用できなくなったようです。これらのモーターはもはや生産されていないため、在庫が限られていると思います。でも...👇

💡 新しいモーターの検索が進行中であり、私は現在、新しいモーターを製造することについて、元のモーターメーカーと思われるものと話し合っています(2022-06-26の時点で更新されています)。モーター検索の要約はwikiで最新に保たれており、問題#16で長い議論があります-最新情報についてはそこに従ってください(または参加して適切な代替品を見つけるのを手伝ってください、しかしwikiをチェックしてくださいあなた自身のコメントを投稿する前に、あなたの提案がすでに言及されているかどうかを確認してください!)。モーターを変更すると、大幅な再設計が必要になる可能性が高いため、モーターがより明確になるまで、PCB/印刷部品を注文しないでください。

特徴:

  • 240x240ラウンドLCD( "GC9A01")、ローターの39.5mm時計皿で保護
  • LCDを機械的および電気的に接続するための中空シャフトを備えたBLDCジンバルモーター
  • ESP32-PICO-V3-02(Lilygo TMicro32 Plusモジュール)を搭載
  • プレス検出に使用されるPCBフレクシャおよびひずみゲージ(モーターを介して提供される触覚フィードバック)
  • 8個のサイドファイアRGBLED(SK6812-SIDE-A)がノブの周りのリングを照らします
  • 5V電源およびシリアルデータ/プログラミング用のUSB-C(2.0)コネクタ(CH340)
  • 自動バックライトおよびLED強度調整用のVEML7700環境光センサー
  • 取り付け用の用途の広いバックプレート-4xネジまたは2x3Mミディアムコマンドストリップ(取り付け後に取り外しタブにアクセスするための切り欠き付き)を使用します
  • PCBに簡単にアクセスできるようにフロントカバーがスナップ式になっています

現在の状況:一般的な使用は推奨されていません(モーター/電子機器の可用性によっては、機械的および電気的な改訂が必要になる場合があります)

デモビデオ

使い方

3D CAD

分解図

最新のFusion360モデル:https ://a360.co/3BzkU0n

あなた自身のものをつくる?

これは「DIY」オープンソースプロジェクトですが、まだ成熟したプラグアンドプレイプロジェクトではありません。独自に構築する場合は、構築に高度なはんだ付けの経験が必要であることに注意してください。非常に小さなピッチの表面実装はんだ付けが必要であり(リフローまたは熱風を推奨)、組み立てには非常に時間がかかり、繊細です。ハードウェアとファームウェアの問題を自分でトラブルシューティングできる必要があることを期待して、この問題に取り組んでください。ジャンプする前に、回路図と基本的なファームウェアを確認/理解することをお勧めします。

BOMと、注文する必要のあるパーツに関するドキュメントが今後さらに増える予定です。ご関心をお寄せいただき、ありがとうございます。このプロジェクトや他のプロジェクトの最新情報については、Twitterでフォローしてください。

電子機器/ハードウェア部品リストの最新の自動生成された(テストされていない)ベースPCBインタラクティブBOMおよびスクリーンPCBインタラクティブBOM(または結合されたBOM csv )を表示します。⚠️これらは、GitHubのテストされていない最新のリビジョンから自動生成されます。テスト済み/安定/推奨のアーティファクトについては、代わりにリリースを使用してください。

その間にいくつかの雑記:

  • これは、適切に調整されたプリンターでFDM 3D印刷された可能がありますが、ビデオ/写真に示されているパーツは、厳しい公差とより良い表面仕上げのためにナイロンでMJF印刷されています。
  • よりシンプルなビルドが必要な場合は、LCDを省略し、モデルのノブとガラスを1つのSTLにマージして、クローズドトップノブを作成することができます。
  • LCDマウントの内側には配線用のスペースが限られており、中央の穴に8本のワイヤーを取り付ける必要があります。30AWGワイヤラッピングワイヤを使用しました。エナメルコーティングされたワイヤーもおそらく機能します。
  • ひずみゲージはBF350-3AAで、CA接着剤で所定の位置に接着されています(このプロセスのビデオは将来提供しますが、基本的にはカプトンテープを使用してひずみゲージをピックアップし、硬化中に所定の位置に保持します)。これはリフローはんだ付け後に行う必要があり、間違いがあった場合に取り外し/修正するのは難しいので、PCBを試す前に、ひずみゲージを他のアイテムに接着することを忘れないでください!
  • TMC6300は小型で底部パッドが付いているので、PCBの注文と一緒にステンシルを入手することを真剣に検討したいと思います。ステンシルを使用しても、後でブリッジを手動でクリーンアップする必要がありました。私は、 Amazonで入手できる(または代わりにこの非アフィリエイトリンクを使用する)または選択した電子機器販売業者から入手できるChipQuikNC191ゲルフラックスを強くお勧めします。LCDリボンケーブルをスクリーンPCBにはんだ付けする場合にも、フラックスは非常に役立ちます。
  • ブレッドボードのプロトタイピングの場合、TMC6300-BOBは素晴らしく、低電流BLDCモーターで遊んでみたい場合は、ベアチップよりもはるかに簡単に操作できます。
  • AliExpressでの購入の場合:AliExpressの標準配送(米国での購入)のみを使用することを強くお勧めします。私は複数の購入に数ヶ月かかるか、Cainiaoまたは他の低コストの配送オプションで購入したときに配達されませんでしたが、AliExpress Standardは非常に信頼性が高く、一般的に私の経験では高速です。
  • 未解決の問題を必ず確認してください。この設計はまだ「安定」していないため、すべてがスムーズに進むとは限らないことに注意してください。現在のリビジョンには機械的な干渉の問題があるため、安定リリースv1.0マイルストーンが完了するまで、これらのパーツを自分で注文することはお勧めしません。

今後の計画:

  • ESP32-S3-MINI-1モジュールの使用に切り替えることを検討してください(Arduinoコアのサポートが完了したら)。これにより、直接USB HIDサポート(コンピューターへのジョイスティック/マクロパッドタイプの入力用)が可能になります。
  • Bluetooth HIDサポート?
  • Wi-Fiを構成して機能させます(おそらくMQTT?)。現在、メモリはフルディスプレイフレームバッファスプライトの問題です。PSRAMはこれを修正する可能性があります(新しいESP-IDFとリリースされていないArduinoコアが必要であり、簡単なテストからPSRAMを有効にするとひどいパフォーマンスが得られました)、または次の項目がメモリの削減に役立つ可能性があります:
  • LVGLに移行して、表示のレンダリングを改善し、メニューなどを簡単にサポートします。メモリに240x240x24bのフルフレームバッファを必要とせず、Wi-Fi用に一部を解放します。
  • 構造化シリアルデータ用にnanopbを統合します(たとえば、 splitflap protobufプロトコルを参照)
  • Home Assistantの統合、またはその他の実際のアプリケーション
  • ???
  • 利益 😉

ベースPCB

注文上の注意:ノブの周りのRGB LEDリングからの光を反射するために、白いソルダーマスクを使用してください。厚さは1.2mmである必要があります(「標準」の1.6mmではありません)。

最新の自動生成された(テストされておらず、壊れている可能性が高い)アーティファクト⚠️

概略図

インタラクティブBOM

PCBパケット

ガーバー

⚠️テスト済み/安定/推奨のアーティファクトについては、代わりにリリースを使用してください。

スクリーンPCB

注文に関する注意事項:機械設計ごとに1.2mmの厚さ(「標準」の1.6mmではない)である必要があります。

最新の自動生成された(テストされておらず、壊れている可能性が高い)アーティファクト⚠️

概略図

インタラクティブBOM

PCBパケット

ガーバー

⚠️テスト済み/安定/推奨のアーティファクトについては、代わりにリリースを使用してください。

SmartKnob Mini

将来的に計画されています。

よくある質問(FAQ)

それはどれくらいしますか?

今お話ししたいのですが、頭のてっぺんからはわかりません。しばらくしてからもう一度確認してください。これまでに作成したのは1つだけです。これは、長期間にわたる一連の調整とプロトタイピングの結果であるため、まだすべての費用を集計していません。確かに部品で200ドル未満、そしておそらく100ドルに近いですか?

XYZで動作しますか?

まだ。これまでのところ、ビデオに示されているデモに十分なファームウェアしか実装していないため、実際にはまだ生産的なものに使用することはできません。基本的な戻り止め構成APIはありますが、それ以外はあまりありません。多くのファームウェア作業がまだ行われていません。作成する場合は、XYZのサポートを追加してください。

キットとして購入できますか、それとも組み立て済みですか?

おそらくそうではありませんか?または、少なくとも、自分で販売する予定はありません。あなたに幸せになってほしくないというわけではありませんが、ハードウェアは大変な仕事であり、私は自由な時間にこのようなことに取り組んでいます。

ただし、かなり寛容なライセンスを持つオープンソースであるため、理論的には誰でもキット/アセンブリの提供を開始できます。誰かがそれらを販売するそのルートをたどる場合は、帰属が 必要であることに注意してください(そして、あなたが与えている気分になっているなら、私はロイヤルティ/ヒント/感謝にノーとは言いません🙂)。

一般的なコンポーネント情報

磁気エンコーダ

MT6701(MagnTek)

リーズナブルな価格で優れたセンサー-強くお勧めします。TLV493Dよりもノイズが少なく、SSIを使用すると応答性が高くなります(制御ループがより安定します)。

  • 多くのIOオプション(SSI、I2C、およびABZ)は、良好な応答待ち時間を提供するはずです
  • SSIには、データを検証するためのCRCが含まれています
  • パワーダウンまたは低電力オプションなし-バッテリー駆動のデバイスには理想的ではない場合があります
  • 米国の販売代理店(Mouser、Digi-Key)からは入手できません

データシート

注文(LCSC)

TLV493D(インフィニオン)

平凡な選択。AdafruitのQWIICブレークアウトボードを使用して簡単にプロトタイプを作成できます。

私のテストでは、少しノイズが多く、応答性を低下させ、制御ループの安定性を損なう可能性のあるフィルタリング/平滑化が必要です。または、フィルタリングを少なくすると、PIDモータートルクコントローラーの微分成分によってノイズが簡単に「増幅」され、可聴(および触覚)のハミング/ブーンという音が発生します。

また、内部ADCが完全にロックアップし、完全なリセットと再構成が必要になることがある既知のシリコンの問題も明らかにあります。ユーザーマニュアルのセクション5.6を参照してください

In the Master Controlled Mode (MCM) or the Fast Mode (FM) the ADC conversion may hang up. A hang up can
be detected by:
 - Frame Counter (FRM) counter stucks and does not increment anymore.

In my experience testing 4 different Adafruit breakout boards, 2 of them (50%) regularly exhibit this lockup behavior within a minute or two of use. It is possible to detect and auto-reset (and there is code in the project to do so), but it is slow and may cause undesirable jumps/delays if the sensor locks up often.

Datasheet

AS5600 (AMS)

A mediocre choice. Cheap breakout boards are readily available.

In my testing, it's fairly noisy (anecdotally, noisier than the TLV493d), requiring filtering/smoothing that can slow responsiveness, hurting control loop stability. Additionally, it saturates at a lower magnetic field strength than other sensors I tested, requiring a significant air gap (8-10mm) when used with a strong neodymium diametric magnet like Radial Magnets 8995.

Datasheet

Motor drivers

TMC6300-LA

これは比較的新しいICであり、完全に一致します。通常、このプロジェクトで使用される低電圧および低電流モーターの要件を満たす他のドライバー(統合されたFETを備えた)はありません(DRV8316は機能する可能性がありますが、テストされていません)。

ハイライト:

  • 2-11VDCモーター電源入力
  • 最大1.2ARMS
  • 小さな(3x3mm QFN)

データシート

製品ページ

モーター

32mmローター、中空シャフト、直径磁石

  • 32mmローター
  • 全高15mm(磁石を含む)、磁石なしの高さ12.75mm、ローターの高さ9mm
  • 低/ゼロコギング-完全にスムーズな入力に最適
  • 5.9mm中空シャフト
  • エンコーダ用の内蔵直径磁石
  • 実証済みのオプション

これは全体的に始めるのに最も簡単なモーターです。低コギングと内蔵の直径の磁石は素晴らしいです!

残念ながら、もう利用できないようです。

ファームウェア

TODO:これを文書化する

また、TODO:より多くのファームウェアを実装します

謝辞

このプロジェクトは、JesseSchochのビデオ「触覚テクスチャと仮想戻り止め」およびSimpleFOCコミュニティでの対応するディスカッションに大きく影響を受けました。真剣に、そのビデオがなければこのプロジェクトは存在しなかったでしょう-ありがとうジェシー!

ライセンス

このプロジェクトは、Apache v2(ソフトウェア、電子機器、ドキュメント)およびCreative Commons Attribution 4.0(ハードウェア/機械)の下でライセンスされています(LICENSE.txtおよびCreative Commonsを参照)。

Copyright 2022 Scott Bezek

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.