Slide 1

Slide 1 text

2023/02/22 ネコIoTLT 自動給餌機をネットにつないでみた @tomorrow56 Masawo Yamazaki

Slide 2

Slide 2 text

自己紹介 Twitter: @tomorrow56 北海道札幌市在住の電子回路設計エンジニア 趣味は「100円ショップ巡り」と「Aliexpressの怪しいガジェットあさり」 最近は格安3Dプリンタの改造にはまっています。 [主な活動] Fecebookの「Aliexpress User Group Japan(非公認)」管理人 2019年より月刊I/Oで「100円ショップのガジェットを分解してみる」を連載中

Slide 3

Slide 3 text

● 名前: グーグー (大島弓子さんの作品よりいただきました) ● ネコ種:アメリカンショートヘア ● 年齢:5歳 ● 性格:ともかくかまって欲しいタイプ。 リモートワークの邪魔が趣味 うちのネコについて

Slide 4

Slide 4 text

うちにある自動給餌機

Slide 5

Slide 5 text

問題点 ● メモリ機能がないため、毎回時刻設定と給餌時刻の設定必要 ● 設定操作が複雑かつ取説がわかりにくい -> 自分で操作マニュアルを作成したけど覚えきれない… ● 実際にトレイが動作したかどうかが、帰宅して確認しないとわからない

Slide 6

Slide 6 text

● メモリ機能がないため、毎回時刻設定と給餌時刻の設定必要 → 設置場所は自宅内なので、自宅のWi-Fiに接続しNTP経由で時刻を取得すればOK ● 設定操作が複雑かつ取説がわかりにくい → 電源を入れるだけで決められた時刻に動作させたい。自宅用なので動作時刻は決め打ち ● 実際にトレイが動作したかどうかが、帰宅して確認しないとわからない → 動作状況をLINE Notifyでスマートフォンに通知したらいいのでは? 問題点の解決案を検討 マイコンモジュールはM5ATOMを使用

Slide 7

Slide 7 text

実際に改造してみました

Slide 8

Slide 8 text

まずは底面のビスを外して本体を分解 ● 駆動はDCモーターをギアで減速してトレイを駆動 ● トレイ位置を検出するセンサーは2ヵ所  センサー  DCモーター

Slide 9

Slide 9 text

トレイ位置検出用の2ヵ所のセンサーを確認 リミットスイッチ ボスに押されるとON スタート位置検出用のボス 各トレイ位置検出用のスリット フォトインタラプタ スリットが通過するとON

Slide 10

Slide 10 text

本体を開けた状態での動作を確認 実際の位置検出動作: 動画はこちら https://twitter.com/tomorrow56/status/1571670332960034816?s=20&t=l7fF0ip6S9Niv4e_AaR9jw トレイ移動時のモーターの両端電圧を実測 →電源(単2乾電池4本)の電圧(6V)がそのまま印加されている →回転スピード等の特別な制御は必要なさそう

Slide 11

Slide 11 text

制御基板を確認 ■ 制御基板はコネクタを使用せず、リード線を直接ハンダ付け ■ 液晶表示部分は別基板、フレキケーブルで接続

Slide 12

Slide 12 text

制御基板を確認 ■ 液晶パネルは異方性導電ゴムで接続 ■ 液晶パネルの下に樹脂モールドされたベアチップのコントローラが実装

Slide 13

Slide 13 text

制御基板を確認 ■ 制御基板にも樹脂モールドされたベアチップのコントローラが実装 ■ コントローラ以外はほぼディスクリート部品で構成 →回路図を作成しないと詳細がわからない…

Slide 14

Slide 14 text

しかたがないので回路図を作成してみた <<回路図より>> ■ モーターやセンサーの制御は液 晶表示側(Clock PCB)のコント ローラが担当 ■ 制御基板側のコントローラは音声 の録音再生用 ↓ Clock PCBをマイコンに置き換えれば 自動給餌機能は乗っ取れそう <<その他わかったこと>> ■ モータの両端に停止時のブレー キ用のトランジスタ(Q3)がある ■ ブレーキの信号が音声再生ボタ ンと共用になっている

Slide 15

Slide 15 text

マイコンとの結線を決定し、実際に接続してみた ■ 各信号はM5ATOMのピン数で問題ないので割り当てて実際に接続して基本 動作を確認してみる

Slide 16

Slide 16 text

M5ATOMからモーターを動かしてみてモーターの波形を確認する ■ モーターONは問題なし ■ モーターOFF時はブレーキ(Motor_Stop)制御必須

Slide 17

Slide 17 text

M5ATOMからモーターを動かしてみてセンサーの波形を確認する ■ トレイスイッチ・フォトインタラプタともにプルダウン抵抗は必須→I/Oの入力プルダウン設定でOK ■ 波形の信号レベル・パルス駆動幅はデジタル入力で十分取得可能

Slide 18

Slide 18 text

プログラムを作成して実際に動かしてみた プログラムはArduino IDEで作成 実際にトレイ位置を検出しモータ制御: 動画は以下 https://twitter.com/i/status/1581798588690337793 全コードはGithubにて公開中 https://github.com/tomorrow56/IoT_Cat_Food_Feeder

Slide 19

Slide 19 text

LINE Notifyへ通知させてみた LINE NotifyをESP32で使う方法: Qiitaの自分の記事 https://qiita.com/tomorrow56/items/2049eea1f68b9c1fd471 全部のトレイが設定時間通りに出ていることを確認

Slide 20

Slide 20 text

M5ATOMを本体に組み込む M5ATOMを取り付けるための小基板を作成し、本体に穴を開けて固定

Slide 21

Slide 21 text

M5ATOMを本体に組み込む 外装を外すことも考慮して、リード線はピンソケットで中継して基板に接続

Slide 22

Slide 22 text

実際に動作をさせてみた 組み立てた状態で実際に動作させた様子: 動画は以下 https://twitter.com/i/status/1591357064303235074 LINEグループに家族を追加して ゴハンを食べている様子を送ってもらいました

Slide 23

Slide 23 text

今後の予定(できればいいな、と思うこと) ● M5ATOMを含めて全て内蔵乾電池で動作させる ○ 現在はM5ATOMはUSBから別に給電 ● 乾電池の残量通知 ○ バッテリーチェッカー機能: 乾電池の内部抵抗値を測定できないか ● カメラユニットを接続して写真付きで通知(今は手動) ● 実際に食べたゴハンの重量測定と通知 今後の進行状況は随時ツイートします (現在進行中) https://twitter.com/tomorrow56/status/1571420604578013184