工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

パブロフの猫:IoTディナータイマーで猫を調教しよう

必要な部品と材料

部品数量備考
Arduino MKR IoT Bundle1MKR1000、サーボ、フォトトランジスタ、ブザー等含む

使用アプリとオンラインサービス

プロジェクト概要

猫のしつけは難しいですが、パブロフの犬の古典的条件付けをIoTで実装。「特定のメロディー=ご飯」という関連付けを学習させ、光センサーで猫が来たか検知。Telegramボットから遠隔操作・データ収集が可能。MKR IoT Bundleの部品のみで段ボール工作とArduinoプログラミングで完成します。

注意:このチュートリアルは古い可能性があります。最新版はこちらを参照してください。

仕組み(要約)

学習目標

主要コンポーネントと配線

Telegramボットとカスタムキーボード

Telegramのカスタムキーボードで直感的な操作UIを実現。絵文字はUnicodeで指定。


// キーボード定義
TelegramKeyboard keyboard_one;
const char* MusicAndFood = "\U0001F3B6 + \U0001F36A"; // 🎶 + 🍪
const char* MusicNoFood  = "\U0001F3B6 NO \U0001F36A"; // 🎶 NO 🍪
const char* OnePortion   = "\U0001F408";             // 🐈
const char* TwoPortion   = "\U0001F408 \U0001F408";   // 🐈🐈
const char* ThreePortion = "\U0001F408 \U0001F408 \U0001F408"; // 🐈🐈🐈

const char* row_one[] = {MusicAndFood, MusicNoFood};
const char* row_two[] = {OnePortion, TwoPortion, ThreePortion};
keyboard_one.addRow(row_one, 2);
keyboard_one.addRow(row_two, 3);

ボットはメッセージ受信時にこのキーボードを返送。ユーザーはボタンタップでコマンド送信。

猫検知ロジック


unsigned long timer;
bool startDetecting = true;
int threshold = 200; // 環境に合わせて調整

void loop() {
  if (startDetecting) {
    int value = analogRead(A6);
    if (value < threshold) { // 光が遮断された=猫検知
      Serial.println("cat detected!");
      startDetecting = false;
    } else if (millis() - timer > 120000) { // 2分タイムアウト
      Serial.println("no cat detected in the past two minutes");
      startDetecting = false;
    }
  }
}

millis()でノンブロッキングタイマー実装。閾値は環境光に合わせて調整。

メロディー再生

Arduino標準例題「toneMelody」をベースに、ブザーで短いジングルを再生。

サーボ制御


#include <Servo.h>
Servo myservo;
int PortionAmount = 1; // Telegramで変更可能

void moveServo() {
  for (pos = 0; pos <= 90; pos++) { myservo.write(pos); delay(15); }
  delay(PortionAmount * 300); // 開放時間=量に比例
  for (pos = 90; pos >= 0; pos--) { myservo.write(pos); delay(15); }
}

Pro Tip: Webサーバー(APモード)で統計表示

MKR1000のAPモードでWebページをホスト。Telegramで「Server」コマンド送信→ボットがIPアドレス返信→ブラウザでアクセス→猫の反応履歴(ご飯あり/なし、来た/来ない、到達時間)をテーブル表示。「Back」ボタンでボットモードに復帰。


// APモード起動トリガー
if (m.text == "Server") {
  IPAddress ip = WiFi.localIP();
  web_server_mode = true;
  bot.sendMessage(m.chat_id, "To see the webpage go to https://" + IpToString(ip), keyboard_one);
  telegram_client.stop(); delay(1000);
  server.begin();
}

// Webサーバー内で「Back」ボタン検知
if (currentLine.endsWith("GET /BACKBUTTON")) {
  web_server_mode = false; client.stop(); delay(1000);
  bot.begin(); bot.sendMessage(OldChatId, "Back online!", keyboard_one);
}

HTML/CSS基礎知識が必要。データ永続化にはFlashStorageライブラリや「The Nerd」プロジェクト参照。

関連プロジェクト(MKR IoT Bundleシリーズ)

3Dプリント・レーザーカッター用データ

2mm段ボール用DXFファイル:pavlovcase_ShVm1OJRIF.dxf

回路図

フォトトランジスタ、サーボ、ブザーの接続図を掲載

完全なスケッチ

基本版とPro Tip版(Webサーバー付き)の2種類を提供

製造プロセス

  1. Shop.Cat.Com:機器、アタッチメント、ツールのワンストップリソース
  2. Cat®機材を最適化:My.Cat.com完全活用ガイド
  3. 冷凍野菜の科学と産業:収穫から食卓まで
  4. テレビディナー:歴史、生産、未来の革新
  5. CT(CAT)スキャナー:進化、設計、3D医用画像の未来
  6. 猫砂の歴史と影響:粘土から巨大産業へ
  7. フリーズドライ食品完全ガイド:保存技術、製造工程、未来のトレンド
  8. ペットフード製造:原料から規制まで完全ガイド
  9. 多機能フード自動販売機:スナックからフレッシュサンドイッチまで
  10. 自動化で食品生産を安全に高速化
  11. 金属検出可能プラスチック:食品産業の安全性を高める