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

自作Arduino TVリモコン:電池駆動・3Dプリントケース・省電力設計

プロジェクト概要

彼女のTVリモコンが壊れたのをきっかけに、エンジニアカップルで自作リモコンを制作しました。ロックダウン中の楽しい共同作業になり、日常技術の仕組みを学ぶ良い機会となりました。家庭用3Dプリンターも大いに役立ちました。

仕様・機能

必要最小限の6コマンド:電源ON/OFF、入力切替、チャンネル±、音量±

ボタン読み取り

Arduino内部プルアップ抵抗を使用し、外付け抵抗なしで6ボタンを読み取り。スリープモードでない限り毎ループでポーリングし、millis()ベースの簡易デバウンスで多重検知を防止。

赤外線信号送信

IRremote.hライブラリを使用。メーカーごとのプロトコルに対応し、LG/Samsung/Sonyの3種類を#defineで切り替え可能。各コマンドのHEXコードをネット検索して設定。IR LEDはArduino PWMピン3に接続必須。

省電力設計

ハードウェア構成

電子回路組み立て

ユニバーサル基板をArduino UNOのピンヘッダーに合わせてカットし、シールド形式で実装。ボタンは最終的な筐体上の位置に合わせてはんだ付け。IR LED用に47Ω抵抗を2個並列接続して所望電流を確保。基板上の配線はハンダでパターン形成し、ピンヘッダーでArduinoと確実に接続。

筐体設計・3Dプリント

SolidWorksで設計、Ultimaker Curaでスライス、Anycubic Mega ZeroでPLA出力。ベースとカバーの2パーツ構成。ベースにはArduino固定用M2.5ネジ穴(3箇所)、バッテリー圧入スペース、IR LED位置合わせ用ミニポストを配置。カバーにはボタン露出穴と機能アイコン刻印。M3ネジ4本で組み立て。

フォトギャラリー

完成品の各種写真(外観、内部基板、組み立て過程、ボタン配置)を掲載。

完全コード (TV_remote.ino)

#include 
#include 
#include 

// ピン定義
#define OnOff 1
#define Source 0
#define CH_plus 4
#define CH_minus 5
#define Vol_plus 6
#define Vol_minus 7
#define Interrupt_Pin 2

// TVモデル選択(いずれか1つを有効化)
//#define LG_TV
//#define SAMSUNG_TV
#define SONY_TV

// 各モデルのHEXコード定義(省略)

IRsend irsend;
unsigned long debounce_time, last_time;

void setup() {
  analogWrite(13,0); // 内蔵LED消灯
  // クロック分周など省電力設定(コメントアウト中)
  
  pinMode(OnOff, INPUT_PULLUP);
  pinMode(Source, INPUT_PULLUP);
  pinMode(CH_plus, INPUT_PULLUP);
  pinMode(CH_minus, INPUT_PULLUP);
  pinMode(Vol_plus, INPUT_PULLUP);
  pinMode(Vol_minus, INPUT_PULLUP);
  pinMode(Interrupt_Pin, INPUT_PULLUP);
  
  // 省電力: 未使用ペリフェラル無効化
  power_adc_disable();
  power_spi_disable();
  power_timer1_disable();
  power_usart0_disable();
  power_twi_disable();
  
  #ifdef DEBUG
  Serial.begin(9600);
  #endif
}

void loop() {
  // 各ボタン: デバウンス後、対応プロトコルでIR送信、last_time更新
  // 5秒無操作で going_to_sleep() 呼び出し
}

void going_to_sleep() {
  sleep_enable();
  attachInterrupt(digitalPinToInterrupt(Interrupt_Pin), wake_up, LOW);
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_cpu();
}

void wake_up() {
  sleep_disable();
  detachInterrupt(digitalPinToInterrupt(Interrupt_Pin));
}

回路図・CADデータ

Fritzing回路図 (remote_sketch_r4f8a47oWX.fz) とピン配置図を提供。3Dモデルファイルは要問い合わせ。

製造プロセス

  1. QR・RFID・体温検知統合アクセス制御システム(Raspberry Piベース)
  2. LIRCなしでRaspberry PiにIRリモコンを接続 - Python UARTアプローチ
  3. PiCy:自分だけの小さな Raspberry Pi 搭載ロボットを作ろう
  4. Arduino NanoとMPU-6050で作るリアルタイムジャイロスコープゲーム
  5. ESP32-CAMで作る動体検知セキュリティカメラ:Discord通知対応
  6. スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
  7. Unopad: Ableton Live連携シームレスなArduino MIDIコントローラー
  8. ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
  9. Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
  10. モダン産業におけるリモート生産制御の5つの主要メリット
  11. Millport SmartLathez 1740 CNC旋盤 – 精度とパワー