
究極なリモートコントローラー?(Part-2)
(7月月末noteを公開したと思い込んで、公開が遅くなってしまいました。大変もうしわけございません!)
みなさん、こんにちは!
早くも7月月末ですね。梅雨も明けて、毎日暑いですが
なさんはいかがお過ごしでしょうか?
さて、今日のnoteは、前回の続きを書きたいと思います。
(300円の値段設定しましたが、最後まで全部読めます。)
前回も書いておりますが、最近ずっとESP32のリモートコントローラーを作っています。
Made some modifications so external USB connector can be inserted without problem. #電子工作 pic.twitter.com/jx6OYd16R0
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) May 18, 2023
半田付けをしながら、機能ブロックを確認していこうという方式でやっていこうと決めました。
半田付けと機能テスト
半田をつけながら、機能をテストしていきます。
74HC4501
ジョイスティックが二つのポテンシオメーターをつかっているので、アナログピンを拡張するために、今回は74HC4501を使いました。
今回のジョイスティック二つポテンシオメーター二つで、合わせて、アナログ入力のために、GPIOが6本必要ですが、74HC4501を使うと4本で足ります。
しかし、見事にミスりました。一番大事なピンがつながっていなかったです。一番大事な共通出力ピンが未接続にしています。あと、アドレスとして使っているS0、S1、 S2のS2を間違ってGNDにしてしまいました。幸いなことに、なんとか直すことができました。
今日の進捗です。
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) June 11, 2023
ジョイスティック二つとポテンシオメーター二つが、74HC4051を使って動かすことができました。GPIOが6本必要ですがこれで4本でできました。
74HC4501は初めて回路を作って使っているのですが
見事にミスりました!
でもなんとかワークアラウンドができました。#電子工作 #pcb #esp32 pic.twitter.com/aOx6eJIZPe
GPIO Expender:MCP23008
今回、大量のスイッチを使っているので、デジタル入力のIOピンも足りないので、GPIOピンの数を拡張するMCP23008を使いました。MCP23017もあり、16チャネルまで増やせるのですが、今回初めてなので、まずMCP23008を使ってみようと考えてMCP23008にしました。結果としてMCP23008を三つ載せることにしました。
同じI2Cを使うコネクターも実際にM5StackのI2Cモジュールを繋いて、確認したら問題なく操作しています。M5StackのI2Cモジュールは電源が5Vの入力が必要です。中で3Vを使う場合はそのモジュールの中で5Vから3Vへの変換回路がよくつかわれているので、今回のPCBでは二つのI2Cコネクターに電源を5Vにして、M5StackのI2Cモジュールも問題なく使えるようにデザインしました。ほかに3Vを使うI2Cコネクターも二つ用意しました。
今回動作確認につかったのは、QMP6988を使うMini BPS Unitです。
今日の進捗(2)
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) June 11, 2023
大きいPCBだと半田付けも時間がかかる!笑
機能毎に段階的に半田付けをしています。
I2CのGPIO expender もはんだジャンパーでアドレスを決めて、動作確認できました!
あとm5stackのセンサーモジュールも使えますよ!(5V対応にしたから)#電子工作 #pcb #esp32 pic.twitter.com/NTf3Yg3Wbq
半田付けが進むにつれていくつかバグが発覚しましたが
全体がとてもいい感じに仕上がってきました。
当初予想した機能の八割は正常に動作しているので、実験基板としては、成功と考えてもよいかなと思います!
soldering is halfway completed. However I found some bugs in the PCB design.
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) June 13, 2023
But is looks great with the displays, isn’t it!
I assume 80% planned-functions will work as designed. (^^)#pcbway #pcb #pcbdesign #kicad #pcba #electronics #電子工作 #esp32 #remote #remotecontrol pic.twitter.com/8x3B4MOgJq
液晶ディスプレーも刺して、ロータリーエンコーダやジョイスティック、トグルスイッチなどの半田付けが終わると、だいぶ見栄えがよくなり楽しくなってきますね。
There will be some progress next week, hopefully;-)#pcbway #pcb #pcbdesign #kicad #pcbdesign #pcbassembly #pcba #electronics #electronicsprojects#arduino #arduinoprojects#raspberrypi #raspberrypiprojects#esp32 #esp8266 #esp32project #iot #make#maker #remote #remotecontrol pic.twitter.com/btRBiGkWIT
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) June 18, 2023
ほかの仕事もしながら進めるプロジェクトなので、半田付けだけでも断続でやって、一週間ぐらいもかかりました。
I2Sでインタネットラジオ
そして、スピーカーもI2S周りの半田付けも終わり、以前作ったインタネットラジオのソースコードをほぼ修正なしで、そのまま実行したら、インタネットラジオの音楽も流れてきました!
I2Sとその後続のアンプ回路、スピーカーまで搭載しているので、インタネットラジオは簡単に実現できました。
以前蓄積した回路に感謝です。
あと、リモートコントローラーとしてプログラミングする際に、操作の種類によって音を出すこともできそうですね。
My remote controller is also an Internet radio! Well, the sound is not that great with that speaker #pcbway #pcb #pcbdesign #kicad #pcbdesign #pcbassembly #pcba #electronics #electronicsprojects#esp32 #esp8266 #esp32project #iot #make#maker #remote #remotecontrol #電子工作 pic.twitter.com/YFzfxAVTau
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) June 19, 2023
ジャイロ:KXTJ3
今回のPCBのデザインでは、二つのジャイロを載せてみましたが、実際に一つしか半田付けしませんでした。
一つが、KXTJ3-1057です。もう一つはQMA7981です。QMA7981のほうはそれ用のライブラリを見つからなかったので、今回は見送りしようと思いました。KXTJ3-1057はライブラリも用意されているので、手間をかからずにすぐ試せるかなと思って、今回はKXTJ3-1057にしました。
KXTJ3-1057というジャイロセンサー
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) June 20, 2023
どうしてもI2C検出出来ず
外して裏を見たら
ハンダが乗っていないピンが四つもあるじゃん!
これが小さすぎて、半田付けが大変でした!
その後問題なく動作することが確認出来ました!(^^)
また一つ実験項目がクリアです!(^^)#電子工作 #pcb #ESP32 #pcbway pic.twitter.com/gAp9DN5sLk
ところが、KXTJ3-1057がとても小さくて、はんだ付けをしたあと、なかなかI2Cで検出できず、だいぶ長く悩みました。
KXTJ3-1057の回路はシンプルなもので、周辺もパスコンだけで、新品の部品なので、部品不良も考えにくいので、はんだ付け不良かなと考えました。外して確認したら、やはり、半田がついていないピンが四か所もありました。通りにこれは検出できませんね!
フラックスを直接につけて、チップのほうのピンにまず半田をつけて
再度基板にマウントしたら、うまくいきました!
Internet radio run by 18650 battery!
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) June 21, 2023
It is remote controller board but by programming it can turn into many things! (^^) #esp32 #電子工作 pic.twitter.com/5vTTMyEJea
一部の機能をテストするために、もう一枚もつくってみました。関係の回路の影響を除外できるから、デバッグするときはシンプルになり、分析する箇所も減ります。
To test some sub functional circuits I started to soldering another one! pic.twitter.com/kK63jPW4DR
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) June 22, 2023
半田付け完了
半田付けもだいぶ完了して、ノブなどもつけると、完成に近づきます。見栄えもそれっぽくなりましたね!
My ESP32 remote controller! Looks great when put on all the knob caps!
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) June 27, 2023
Caution: not recommended for submarines!#pcbway #pcb #pcbdesign #kicad #pcbdesign #pcbassembly #pcba #electronics #electronicsprojects#arduino #esp32 #esp8266 #esp32project #remotecontrol #電子工作 pic.twitter.com/5c7I0ulx4J
プログラミング
ハードウェアがほぼ用意できたので、次はプログラミングのほうですね。まずディスプレーをテストします。lovyanGFXを使います。ESP32が使うグラフィックのライブラリの中では一番パフォーマが早いです。
また、ディスプレーを二つ以上動かすこともできます。
Now, it’s programming time!
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) June 28, 2023
I got the two displays running using lovyanGFX. #pcb #kicad #マイコン #電子工作 #pcbway #esp32 #Electronics pic.twitter.com/IekCTZhtsC
GUI
今回はGUIのプログラミングは結構時間が掛かりました。こんなにちゃんとGUIを作ったのは初めてかもしれません。
色々大変ですが、でも作ったものは今後のプロジェクトにも応用できるから、無駄にはなりません。
My ESP32 remote controller! Today’s progress!#pcbway #pcb #pcbdesign #kicad #pcbdesign #pcbassembly #pcba #electronics #electronicsprojects#arduino #arduinoprojects#raspberrypi #raspberrypiprojects#esp32 #esp8266 #esp32project #iot #remote #remotecontrol #電子工作 pic.twitter.com/vez6wZKo3F
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) July 2, 2023
ジョイスティックの動きも可視化して、動きが「見える」のはとても楽しいですね。
My ESP32 remote controller! Today’s progress!#pcbway #pcb #pcbdesign #kicad #pcbdesign #pcbassembly #pcba #electronics #electronicsprojects#arduino #arduinoprojects#raspberrypi #raspberrypiprojects#esp32 #esp8266 #esp32project #iot #remote #remotecontrol #電子工作 pic.twitter.com/NHwBoymrcF
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) July 5, 2023
次はGyroセンサーの動きを可視化します。
左右、前後の傾きで、円の位置が変わって、とても分かりやすいです。また上下するときに、円の大きさが変わるようにしていて、高さの変化も表現されています。
Playing with/ visualizing the gyro sensor data is FUN! #電子工作 #マイコン #esp32 #electronics #pcbway pic.twitter.com/9yOCkR8UEx
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) July 7, 2023
ジョイスティックやロータリーエンコーダなどの可視化ができました。あとはスイッチの部分が残っています。
Did some UI programming for my ESP33 remote controller,still a lot to do! #電子工作 #esp32 #electronics #pcb #pcbway pic.twitter.com/g7kyK1yHA6
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) July 8, 2023
3Dパネル
プログラミングの時も結構基板を触ったり、ものに当たったりするから、部品を保護するために、簡単なパネルを3Dプリンターで作って、つけました。将来余裕があれば、きれいなエンクロージャーを作りたいですね。
背面はこんな感じです。
In order to confirm the size and the locations of certain parts, I test printed some partial enclosure for the PCB. ABS in hot summer came out well! After this I will do the front panel too, if everything looks good I will add more design-ish element to them. #電子工作 #pcbway pic.twitter.com/25vss3Rq2Q
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) July 11, 2023
表面はこんな感じです。
Front panel test!#pcbway #pcb #pcbdesign #kicad #pcbassembly #pcba #electronics #electronicsprojects#arduino #arduinoprojects#raspberrypi #raspberrypiprojects#esp32 #esp8266 #esp32project #iot #make#maker #makersgonnamake #makersmovement
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) July 20, 2023
#remote #remotecontrol #電子工作 pic.twitter.com/drXXICd42Z
スイッチのビジュアル効果も加えて、だいぶ完成に近づきました。
My #esp32 remote controller UI is almost done!#pcbway #pcb #pcbdesigen pic.twitter.com/qs3TSnHnfJ
— kokensha_tech 電子工作 YouTube! (@kokensha_tech) August 3, 2023
ここまで、なかなか時間が掛かりましたが、半田付けもプログラミングも大変お勉強になりました。
回路の間違いや不備もいくつか分かって、貴重な経験になって次のプロジェクトに生かせることができます。
8月中、頑張ってYouTubeの動画を完成させたいと思います。出来たら、またnoteで共有します!
また次回のnoteで会いましょう!
ここから先は
¥ 300
株式会社虹賢舎 CEO 著書:https://amzn.to/39KwlE4 技術ブログ:https://kokensha.xyz 機械学習 深層学習 Python /JS IoT Raspberry Pi ロボット TOEIC950 https://gosen.world