エントリー

ジョイスティック赤外線リモコンの改修

制作したジョイスティック赤外線リモコンを試用してみたところ,OKボタンの操作は向上したが上下左右の動作に違和感がありスケッチを確認したところatan()の式でミスを発見したので修正

ついでに以下の改修を行い実際に使えるようにした

  • 電源を充電池にする
  • DeepSleepで省電力化,復帰はボタン操作
  • 方向スティック操作が軽いため傾け易いので,スイッチ判定となる傾け度合いを増やす
消費電力確認

(通常)

IMG_20260525_123224.jpg

約20mAで赤外線送信時は設計上+70mAとなるが瞬間的であることもありピークも34mAのようだ

(DeepSleep時)

IMG_20260525_123232.jpg

LEDが消費しているせいか1.5mAとなる

電源

単4電池×2か単4充電池×2として,2.4~3.0Vを5Vに昇圧してESP32C3に印加する

手持ちの昇圧モジュールだと2A出力とかオーバースペックなので,よりコンパクトなモジュールはないかとAmazonで発見したので購入

IMG_20260527_143918.jpg

  • 寸法:22x11x3.6㎜
  • 入力:2.5V~5V
  • 出力:4モード固定,5V Max.1200mA,8V Max.700mA,9V Max.600mA,12V Max.500mA
  • 出力電圧の設定:基板ジャンパーAとB(はんだで繋ぐ)
  • 動作周波数:1.2MHz(固定)
  • 価格:¥749/8個

電池ボックスは単4×2用を基板の裏に設置(ジョイスティックのネジ位置と同じだったので簡単に付いた)

IMG_20260527_143712.jpg

出力電圧を確認

IMG_20260525_145738.jpg

しかし単4充電池×2では電力不足なのか動作が安定しないので充電池×3に変更

IMG_20260527_143650.jpg

裏に基板を追加して充電池ボックスを設置(底の電池が掌に合っている)

スケッチ

ESP32C3のdeep_sleep登録関数は,時間復帰はESP8266やESP32一般と同じだが,GPIO復帰の場合は,

esp_deep_sleep_enable_gpio_wakeup()

を,使用することになる

リモコンスケッチ(SJIS,TAB4)

追加として方向スティックではDeepSleep復帰させていないので内蔵LEDでDeepSleep状態を確認できるようにしている

最終形状

IMG_20260527_143552.jpg

  • LEDが光りっぱなしになるので電源SWを付けた
  • 省電力を意識するならスイッチをプルダウンにするべきだが修正していない
  • ESP32C3は新しく購入した物を使用

(電力確認)

IMG_20260530_092036.jpgIMG_20260530_092048.jpg

ケース作製

持った時薄い方が良いと思っていたら,厚めの方が手にすっぽり入り(2つのボタンしかないためだけど)ボタン操作し易いようだ

この形のままケースを作ろうと,良さそうなサイズのタッパーを見つけて加工したが穴あけなどが難しく失敗したので3Dプリンタで作製予定

(追加:2026.5.31)

ABSで箱状のケースを作り,半透明アクリルでカバーした

IMG_20260531_171524.jpg

ESP32-C3 Super Miniを追加で購入

「ESP32-C3 Super Mini」が高性能,コンパクト,低価格と三拍子揃っているので追加で購入

IMG_20260523_105707.jpg

前の購入先は値上がりしていたので別店購入のため6個とした(¥390/個)→ 後でまとめ買い10個で¥2,450を見かけた

IMG_20260523_105910.jpgIMG_20260523_110007.jpg

6個にした訳は,基板は同じなのにチップが偽物というか安くしたのが出回っていて多量購入は避けたほうが良いと思ったからである

注視する点は商品写真でチップが綺麗に映ってない場合は怪しいらしく,現物確認の仕方はチップの表面刻印で「ESP32-C3」の下に「FN4…」「FH4…」とあるのが良く,無い場合は4MBのフラッシュが搭載されてないとのこと

IMG_20260523_110033.jpg

以下は前回購入の「ESP32-C3 Super Mini」で正規品

IMG_20260401_115132.jpgIMG_20260401_115144.jpgIMG_20260405_101023.jpg

注)互換品の多い市場放出のため正規品を定められないので仕様上正常な個体を正規品としている

ついでに購入した品

IMG_20260523_133947.jpg

基板を挟んで半田付けする治具

IMG_20260523_110529.jpg

ジョイスティックを使った赤外線リモコンを作る

いまさらの赤外線リモコンかもしれないが,理由はGoogleTVのリモコンボタンの使い勝手が良くないので何とかしようという試みである

IMG_20260509_105130.jpg

使いにくいのは赤の部分の移動キーと中央のOKキーで,特にOKキーが押しにくい

当初はBuletoothで接続されているので改良は困難かなと思っていたら,Buletoothを利用しているのは音声検索で他のボタンは赤外線であることが判ったので,一部のボタンを別リモコンとしてみることにした

尚,別リモコンにするのは矢印キーとOKキー,戻るキー(←)で,全てのボタンを作る訳ではない

赤外線受信

赤外線コードの解析のため,先ずはESP32を使用して受信機能を作る

IMG_20260505_092552.jpgIMG_20260505_092453.jpg

昔,秋月で購入しておいた安価な赤外線モジュール(SPS-442-1)→ 今でも在庫があるようだ

IMG_20260505_101245.jpg

ソフトウェアは「IRremoteESP8266」ライブラリの,スケッチ例 > IRremoteESP8266 > IRrecvDumpV3 を利用すれば簡単に解析できると思っていた

しかし,動作させてみるとリモコンのボタンを押さなくても,解析データが止まらず出力されてしまう

SPS-442-1の仕様書には誤動作を避けるために電源のリップルノイズをRCフィルター(R=100Ω,C=22μF)を付けて減らせとあるので設置したが変わらなかった

出力をオシロスコープで確認してみると,無信号時はHIGHレベル出力になっているはずなのだがパルスとなっている

IMG_20260505_174629.jpg

不良品かと変更してみたが同じだったので,これが仕様なのかとIRrecvDumpV3での解析を諦め,無信号パルスを避けるスケッチを作り解析

この件だが後で受信モジュールを基板化すると改善され無信号時はHIGHレベル出力となりIRrecvDumpV3で解析できるようになる

ブレッドボードだと何らかのノイズなどで受信している(つまりキャリアがある)とみなし復調していたのではないだろうか

解析用スケッチ(SJIS,TAB4):NEC,AEHAのみでSONYは未完成

フォーマット:NEC
ベンダーコード:0x4040
ボタンコード
0x21:電源
0x15:上
0x18:右
0x16:下
0x17:左
0x48:戻る
0x47:ホーム
0x19:OK(中ボタン)

(参考)

https://elm-chan.org/docs/ir_format.html

https://www.asahi-net.or.jp/~gt3n-tnk/IR_TX1.html

再利用することもありそうなので基板化

IMG_20260506_170301.jpg

電源が5Vなので3.3V出力にするため分圧する必要がある

このモジュールはオープンコレクタ部に抵抗を設けているので抵抗値を確認

IMG_20260505_172221_1.jpg

46kΩであった(モジュールごとで異なるようだ)

F20260511_01.png

R4=100Ω,C1=22μF

赤外線送信

コードが判ったので送信機を作る

矢印キーとOKボタンはジョイスティックを使う(戻るボタンはモーメンタリSW)

IMG_20260509_105155.jpg

ジョイスティックの解析は「よみやさん」のYoutube動画を参考にした

電源は5Vとあるが3.3Vでも問題なし

赤外線LEDは50~100mA必要なのでトランジスタでドライブする

IMG_20260509_165458.jpg

2N7000と2SC1815を利用する回路を検討(どちらも動作した)

F20260511_02.pngF20260511_03.png

  • Vf1.35V,50mAで算出
  • 50mAで出力が弱い場合はR1=47Ωにすると良い
  • 赤外線LEDを3.3V動作にするなら同じR1を並列に繋げば良い値になる

スケッチは「IRremoteESP8266」ライブラリで,RAW出力(sendRaw)にしたら受信が安定しないので最終的にコード出力(sendNEC)にした

IMG_20260510_104515.jpg

ESP-WROOM-32で動作確認後,基板化ではサイズ的にESP32C3に移植

リモコンスケッチ(SJIS,TAB4) → 修正版はこちら

赤外線コード(SJIS,TAB4)

IMG_20260510_204322.jpg

ESP32C3のPWMピン(6個あるはず)が解らず,手探りで探しGPIO6で動作

まだ実験用になるので電源はUSBで供給

IMG_20260510_212126.jpg

ケースに入れてないので使い勝手は良くないが動作は良好

改良点としては

  • DeepSleepで省電力化
  • ESP32C3をATtiny85に変更(コンパクト化)
  • 電源を設ける(単4×2位か)
  • ケース作製

この試用ボードには受信機能も追加しておくと良さそうではある

「な!百葉箱」の復旧

今年(2026年)になって動作したりしなかったりで不安定だった「な!百葉箱」が3月中旬に停止

寒いし天候が良くないことが多かったこともあり,様子を見ていたが復旧しないので復旧に着手

簡単にできるところで,また電源側の異常かと電圧を計測してみると3.6Vだった

IMG_20260422_111359.jpg

電源の修復

電源部を取り外し全体を確認して問題なし

IMG_20260427_143158.jpg

去年の11月に変更した65850(リチウムバッテリー)をチェック

充電してみると電圧が上昇したのでバッテリーの問題はない

IMG_20260427_143338.jpgIMG_20260427_153248.jpg

なので,今回は太陽電池を交換する

随分前になるが同じ仕様の物を予備で追加購入していたので助かった

IMG_20260427_144435.jpg

IMG_20260427_144452.jpg

長年太陽光を浴びれいたためか熱で溶けて劣化しているのが良く判る

IMG_20260427_145048.jpg

ケースも適当なアクリルでなく(3Dプリンタ用に購入した)ポリカーボネートにした

IMG_20260427_145308.jpg

薄いが熱に強いので十分だろう

IMG_20260427_153313.jpgIMG_20260427_161117.jpg

透明度も良い

IMG_20260427_161713.jpg

電圧の問題もなくなったが「な!百葉箱」の復旧しなかった

本体の修復

本体に正常な電源を印加したが動作しないので本体の修復に取り掛かる

埃除けにカバーを設けたので汚れはほとんどなかった

IMG_20260429_140926.jpg

水滴もないので何が問題なのか電源入力から電圧チェックしていくとNJM2884(3.3Vレギュレータ)が定電圧を出力していないことが判明

IMG_20260429_143503.jpg

これは(普通に考えると)非常にヤバい状態かも・・・

IMG_20260429_143717.jpg

(左)新品,(右)不良

このレギュレータ結構壊れるから予備を置いていたので直ぐ交換して確認が取れた

IMG_20260429_143654.jpg

そして祈るように各パーツを取り付け電源ON

IMG_20260429_144606.jpg

復旧した!

ESP8266,センサー類も無事で助かり

と,思っていたらDBにデータが上がっていない

IMG_20260429_151723.jpg

試験用機まで出してサーバ側の問題を確かめたところ,Apacheログに載らないことから通信が確立していないことは判ったが,問題箇所が不明で行き詰っていたところ,小一時間後位からApacheログに載るようになりDBに登録された

通信不良の原因は不明だが「な!百葉箱」は復旧した → 長い間通信してなかったから他通信が優先されアクセスポイントにコネクト拒否されたのか

小雨が降り出したのでささっと取付して終了

ユーティリティ

検索

エントリー検索フォーム
キーワード

過去ログ

Feed