私の猫は、私が彼女のために買ったスクラッチボードを使うことを拒否しているので、私のソファではなくそれを使うように彼女を動機付けるためのこのデバイスを作りました。。。。それがどのように機能するか見てみましょう。。。
スクラッチボードに取り付けられているのはMPU6050ボードとの対話を監視する加速度センサ。猫がボードを使用すると、サーボがトリガーされて、おやつを与えるようになります。
これがデバイスのWIPプレビューです。まだ電子機器は統合されていません。
部品リスト
- アルデュイノ ナノ(私はNano Everyを使用しましたが、同じサイズの他のバリエーションでも問題なく動作するはずです。他のサードパーティの代替品はさらに小さいかもしれませんが、それでも問題なく動作するはずです)
- MPU6050慣性測定ユニット(IMU)。
- HW-0855Vステップアップコンバータで、バッテリー電圧を5Vに上げて、Arduinoとサーボに給電します(他のものも動作しますが、私が持っていたのはこれです)。
- リチウムイオンバッテリー(最大40 mm×75 mm×22 mm)。私はバッテリーホルダーの中に18650を使用しました。バッテリーコンパートメントは2つの18650バッテリー用のバッテリーホルダーを収容できる大きさです。
- フィートテック FS90 マイクロサーボ
- ワイヤーとコネクター
- 長さ1.75 mmのファイルメントの短い断片(6~7 mm)。
- このリスティングからのすべての3D印刷部品。
使用したソフトウェア
- フリーCADパーツのデザインのために。
- アルデュイノ IDEプログラミングやコードをマイクロコントローラにアップロードするために。
- フリッツィング配線図のために。
- ブレンダーそしてクリタこのリスティングの画像を作成したために。
- コードのバージョン管理にはgit/githubを利用する。
組み立ての概要
ここでは、主要なコーパスのパーツを見ることができます。
- 電子機器コンパートメント
左側はArduinoと電圧レギュレータ用です。そこは少しきつくなっています。振り返ってみると、これをもう少し大きくすべきだったのです。側面のスロットは、2つのクリップ(写真には写っていません)を使ってArduinoと電圧レギュレータを取り付けるためのものです。
右側の大きめのコンパートメントは、2×18650バッテリーホルダーを収容するように設計されています。 - ベースとベースエクステンション
この2部構造のコンパウンドの後ろには、サーボを受け入れるスロットがあります。サーボケーブルを電子機器室に導くためのスロットもあります。
ベースの底部には、ホッパー(写真にはない)が差し込む2つの切り欠きがあります。 - ソリ
ソリはサーボによって移動します。ソリには3つの位置があります。中央位置と、それぞれのホッパーチューブの下にある位置です。ソリが側面に移動すると、おやつが中央の穴に落下します。ソリが中央に戻ると、おやつがシュートを通って落下します。コントローラは、2つのチューブ間を交互に移動して、両側から同じようにおやつを取るようにします。
ソリは1.75 mmのフィラメントで短い(6~7 mm)距離でサーボに接続されます。 - 下に
アセンブリの下部。スレッドとチュートを保持しています。 - チュートリアル
壁から離れて、おやつをリダイレクトします。
ステップ1 - 挿入するチュートリアルに下に
降下パラシュートを角度をつけて底部のスロットに押し込みます。
完全に挿入されたら、降下路の前部を回転させて、降下路の上端を底面と同じレベルにします。
シュートの上端がソリのガイド面よりも低くなるようにして、しっかりと押し込んでください。そうしないと、ソリが引っかかってしまい、サーボがそれを動かすことができなくなってしまうからです。
ステップ 2 - 挿入するソリ

ステップ 3 - 取り付けますベース
最後の2つのパーツではなく、2本の長いレールが付いている代わりに、この接続にはたった4本の短いスタッドしかありません。それらが整列していることを確認してください。すべてを一度に取り付けるのは少し難しいかもしれません。私は少し力が必要でした(パーツをテーブルに垂直に置き、手の甲でそっと叩きながら)。
そのソリこの時点では、スロットにスムーズに滑り込むはずです。
ステップ 4 - 取り付けベースエクステンションそして電子機器コンパートメント
前のステップと同様に、ピースを一緒にスロットに入れるには多少の力が必要かもしれません。しかし、ここでは2つのスロットのみを合わせる必要があるので、アライメントはそれほど問題ではありません。
完全に組み立てられた状態で、すべての個別部品の裏側が互いに合わせ合っていることを確認してください。
まだ4つの作品が説明されていない:
- アルデュイノ ナノ クリップと電圧レギュレータ クリップ
これらの部品は、Arduinoと電圧レギュレータを保持しています。まずは基板を取り付け(クリップに取り付けるだけ)、それから電子機器収納室の内壁に挿入します。
そこはかなり狭いので、私はピンセットを使ってそれらを入れることをお勧めします。

- エレクトロニクスのカバー
これは電子機器のコンパートメントに取り付けるカバーです。すべてが内部に取り付けられた後に取り付けます。 - ホッパー
ホッパーは、おやつを保持する2本のパイプで構成されています。これは、ベース部の四角い切り込みに簡単に滑り込みます。最後に、これを取り付けて、ホッパーにおやつを入れます。
サーボの取り付け
下記のリポジトリからコードを実行しているArduinoにサーボを接続し、電源をオンにします。サーボは90度の位置に回転します。サーボを外し、サーボホーンを取り付けます。
サーボが横に置かれているときには、ホーンがまっすぐ上に向かっていなければなりません。正しい向きに置いておいてください。下の2枚の画像からそれがわかります。3Dプリンテッドケースの後ろにあるスロットに挿入すると、ホーンはその部分に向かっていなければなりません。
さて、フィラメントの断片をサーボホーンの大きな穴に挿入します。ホーンをスレッドのスロットに合わせて、フィラメントが両者をつなぐようにします。そして、サーボを後にスライドし、スロットにクリップで固定します。
もしこれがうまくいかない場合は、底部を外し、サーボをスロットに取り付け、底部を再び取り付け、フィラメントピンが正常に配置されていることを確認することもできます。
配線
パワー
- 接続するバッテリー+それで、イン+電圧レギュレータのピン
- 接続するバッテリー-それで、イン。電圧レギュレータのピン
- 電圧レギュレータのを接続してください。アウト+ピンをサーボの赤いワイヤーそしてアルデュイノのVin連絡先
- 電圧レギュレータのを接続してください。アウト-ピンをサーボの黒/茶色のワイヤーそしてアルデュイノのGND連絡先
- 接続してください。MPUのVCCに連絡してください。アルデュイノの5V連絡先
- 接続してください。MPUのGNDに連絡してください。アルデュイノのGND連絡先
論理
- 接続してください。サーボのデータピン。(通常は黄色またはオレンジ色)にアルデュイノのD9連絡先。これはPWMピンです。別のピンを使用する必要がある場合は、それがPWMピン(通常は〜で印をつけてあります)であることを確認し、コード内のそのピン(PIN_SERVO)も変更することを忘れないでください。
- 接続してください。MPUの...
- SCLにアルデュイノのA5
- SDAにアルデュイノのA4
このグラフィックのSVGバージョンは、「その他のファイル」セクションで見ることができます。
試運転
サーボをインストールするために必要なので、Arduinoにコードをフラッシュするはずですが、組み立て時にすでにそれが行われていたはずです。
アルデュイノの電源を入れると、最初にデバイスが安定し、振動が消えるまでに5秒待機します。
その後、簡単なキャリブレーション手順があります。この手順では、デバイスを動かさずにセンサーノイズを検出するために、加速度計のデータを分析します。この間にセンサーを動かさないでください。そうしないと、後ほど感度が低下する可能性があります。
キャリブレーションが完了すると、サーボがわずかに震え、キャリブレーションが完了したことを示します。これからMPUを動かすと、おやつを分配する動作が開始されます。
コードで変更できるパラメータがいくつかあり、これらによって動作を調整できます。これらは次のとおりです。
- ディスペンスのクールダウン:分注がトリガーされた場合、このクールダウンが終わるまで次のトリガーは発生しません。デフォルト: 5秒
- 投薬量:トリガーされたときに配られるおやつの数。デフォルト: 1
- 配布期間の長さそして期間あたりの投薬量期間は、時間の経過とともに与えられるご馳走の数を制限する手段です。期間中には、期間ごとの設定量だけが与えられます。例えば、期間の長さが60分に設定され、期間ごとの量が3に設定されている場合(これらはデフォルトの設定です)、最初の与えられた後の60分以内に、合計3つのご馳走が与えられます。これは、最初の1分の間に発生する可能性も、
- ディスペンスのインタラクション時間:これは、トリガーを起動するための感度を制御する方法です。ご馳走を与える前に、MPUとの対話を少なくともこの時間だけ記録する必要があります。より高い値ではより長い対話が必要になります。デフォルト: 3秒
- ディスペンスのインタラクションタイムアウト:対話は、長時間の対話だけでなく、いくつもの短い対話からなる可能性があります。これは対話がタイムアウトになる前の時間です。この期間に別の対話が記録された場合、これらは同じ対話と見なされます。デフォルト: 2秒
コード
アルデュイノのコードはこちらで見ることができます。GitHubリポジトリ。
以上のセクションで述べたパラメータは次のとおりです。
- ディスペンス・クーダウン
- 分配量
- 分配期間の長さ
- 期間あたりの分配量
- 投薬のための対話時間
- ディスペンス・インタラクション・タイムアウト
これらの値はミリ秒単位です。
キャリブレーションでは、すべての関連するセンサー読み取り値の最後の50サンプルを格納するリングバッファを使用します。リングバッファに格納された値は、すべての値の平均を計算するために使用されます。この平均は、動きを検出するためのベースラインとして使用されます。
現在の加速度値がセンサーの平均値としきい値を超えた場合にインタラクションが記録されます。しきい値は、起動期間中に測定されたノイズから算出されます。
この方法では、センサーの値がゆっくりと変化する限り、センサーの値のドリフトは問題ではありません。
印刷の指示
部品はすでに印刷すべき方向に配向されています。
- 材料:PLA
- 層の高さ: 0.2 mm
- インフィル: 15%
- 私はすべての部品にブリムを使用しましたが、大きな部品には必要ないかもしれません。特に、Sledを印刷するときにベッドの接着に問題がありました。ブリムがなければ、それはただくっつかないのです。2つの小さなクリップの場合は、ブリムを使用することをお勧めします。
- だけど、ベースエクステンション- サーボとサーボケーブルの大きなオーバーハングのため、パーツはサポートが必要です。私はオートツリーサポートを使用しました。これが私がOrca Slicerでサポートを塗った方法です(緑:サポート、赤:サポートなし)。

改善の余地がある
- 電源スイッチを追加する。このプロジェクトでは時間的にかなりプレッシャーがかかっていたので、これを考慮するのを忘れてしまいました。
- 必要ないときにサーボへの電源を切る。
- アルデュイノの電源管理。使用しないときにスリープに入る。
- ドアに取り付けられたときにトリガーされないように、モーション検出を改善する必要があります。そしてドアが動かされたときにもトリガーされないようにする必要があります。
- エレクトロニクスカバーを改良して、スナップで閉じるようにします。今のままでも使えますが、よりスムーズに取り付けられると嬉しいですね
- ホッパーキャップを追加して、おやつを埃や湿気から保護します(少なくともある程度は)。
标签
模型来源
