第3世代 POV neon ②
はじめに
前置きが長くなってしまったので分けました.
①はこちら
第3世代POV neon
はじめに
第3世代POVは,精度,性能,機能と大幅に向上することにしました.
大きな変更点は,
- 第2世代で大きく問題となったフルカラーLED問題.
- 外装の再設計
- M5stack → ESP32独自基板
- ソフトウェア
MFT2021までにどこまで実現できるかな?? (審査受かってればだけれどなw)
フルカラーLED問題
第2世代POVで使用したLEDはAPA102-2020.
フルカラーLEDの定番,DOTSTARの製品ですが,上で述べたようにPOVで使うにはリフレッシュレートが足りないことが確認されています.
では,他にリフレッシュレートを上げることができる超小型フルカラーLEDは存在するのか?
いろいろ探した結果,見つけました.
Fast digital rgb pixel 2020 led chip HD107sroselighting.wordpress.com
なんとPWM rate 27kHz!!,データ更新レートは40MHz!!
これならいけそうだ!
HD107s-2020 が届いた!
— yakatano (@Yakatano) 2019年11月26日
GUGENに間に合うかな? pic.twitter.com/qm4ky7nUeh
HD107Sの電源波形
— mike (@mikekoma) 2020年9月4日
VCCに1Ωかまして観測。
GlobalBrightness=0x1E
Data=0x808080
Refresh rate=32KHz
公称値26KHz以上ってなっているので、一応OKぽい。 pic.twitter.com/cB3db13abW
しかも配置もNEOPIXELやDOTSTARと同じピンアサインなので,使い方も慣れていてGood.
ただしこの界隈,パチモノが多いというか...
商品ページの写真を比べてみましたが、載っているのはSK9822-2020の様に見えます。
— あおいさや (@La_zlo) 2019年9月4日
実物はいかがでしょう?https://t.co/rKVywt40WR pic.twitter.com/UHsS4Agy1G
こちらが、APA102-2020の写真。
— あおいさや (@La_zlo) 2019年9月4日
バリエーションが多いけど、どれとも違う。https://t.co/wuKXNhyeVF pic.twitter.com/E9YsIGLIQ7
同じような見た目で性能が変わる,なんてのがザラ...
地獄のようなハンダゴテを超えた後に変なもの掴まされてただのゴミと化すのは流石に辛い...
Rose Lightingさんというところが元のようなのですが
APA102互換の次世代LEDだそうです。2020サイズでも28kHzのリフレッシュレートが出るらしい! これなら既存基板で置き換え可能だ! https://t.co/Rvi1QaLcbd
— yakatano (@Yakatano) 2019年10月28日
でも1000個単位でしか売ってないっぽい。。。 誰か共同購入しません?w
— yakatano (@Yakatano) 2019年10月28日
1000個単位でしか売っていないようなのです....
それでもなんとか手に入れて,現在実装待機中です.
外装の再設計
第3世代POVは,外装も大きく変えます.
とはいえ基本的な設計思想は第1世代から変わりませんが,ちょっとづつ改良を加えていきます.
まだ,最終に向けてデザイン変更あるかもしれませんが,現状こんな感じ.
中央のキューブの中で回転軸の支柱を囲むように基板と電池が収まる予定です.
第2世代から変更した点
シャフト部分
第1世代は3Dプリンタ製 → 強度不足
第2世代は既製品(ステンレススペーサー)の流用
第3世代では専用に設計したシャフトを旋盤で削り出します.
素材は加工しやすい真鍮.両端にネジを切ることによって短い接合部でも強度と剛性を保つことができると考えました.
しかし,大きな問題が....そもそも旋盤加工を行う場所なんてあるのか? 設備は?
私自身,大学が機械工学科だったので旋盤作業自体は行ったことがありますが,個人で旋盤作業を行うことのできる施設が無い...
白羽の矢を立てたのはTechshopTokyo.
残念ながら2020年2月に閉鎖してしまいました..
しかし,その直前に入会して講習受けて旋盤してきました.入会したのは2020年の12月くらい....
え? もちろんその時にはTechshopが閉鎖するなんて知りませんでしたよ.ええ.講習代? もちろん支払いましたよ.
今も設計変更が入って新しく作り直さないといけないのに,今後どこで作業すりゃあいいんだ....orz
外殻部分
いままでの外殻は半球状のものを組み合わせましたが,第3世代では野球のボールのような構造のデザインに変更予定.
今回のMFTに間に合うかはわかりませんが,このような構造の外殻を作っています.
ただ,私の持っているAnycubic Photon-Sではサイズがぎりぎり足りないため,どうしようかなあと悩み中.
基板収納部分
いままではM5Stackを流用していたので,中央の基板収納部分のサイズはm5stackの基板サイズ50x50mmを超えることはできませんでした.
しかし,第3世代は専用基板を設計することにしたために,サイズの自由度が増えます.専用基板を設計することにした理由は以下の3点
- M5stackのサイズ制限からの開放.
- 精度向上のために中央の回転軸を固定するため
- M5stackの不要な機能の除去とIMU(ジャイロセンサ)の性能向上
①については,ボールの直径がφ100mm確定であることからM5stackを採用することは中央部分の空間を圧迫し,設計の自由度を下げてしまうため
②については,中央にm5stackが収納されるため,回転軸が途中で途切れてしまい,3Dプリンタ程度の設計精度だとやはり軸にズレが生じてしまうことから回転精度が低くなってしまうことを懸念したため
③については,M5stackはライブラリも充実しているし,よくできている製品だと思っていますが,今回の目的に対していくつかの機能は不要でいくつかの機能は性能不足,という点もあり第3世代は頑張って基板を起こしてみることにしました.
具体的には,M5stack のIMUはMPU9250もしくはMPU6886+BMM150による9軸センサですが,boshのBNO055がかなり性能が良さげなのです.
実際使ってみるとキャリブレーションもほとんど必要なく精度良く計測できているようで今回採用しています.
問題点としては,値段が高いことと,基板に実装しようとするとQFNでもない特殊な規格のようで一人でホットプレートリフローするにはかなり難しい点です.
今回はESP32をベースに,このIMUを組み込んだ基板を作成しよう,ということにしました.
基板設計
新しくM5stack相当の機能を持った基板を起こします.ピンアサインの基本的な構成はM5stackとなるべく共通になるように設定します
基板は設置スペースの都合で2枚に分離,さらに電源も別にしています.
上図のESP32基板(上段)には,
・U1:ESP32本体
・J1:SDカード( SPI経由での読み書き,ピンアサインはM5stack準拠)
・J2:PCと通信を行うためのUARTシリアル通信
・J7:2枚めの拡張ボードとの接続を行うためのコネクタ
拡張ボード基板(下段)には,
・U2:Motion Sensor(BNO055)
・U3:Motor Driver(DRV8355)
・U4:RTC(PCF8563TS)
・J5:フルカラーLED(HD107S-2020)とのSPI通信用コネクタ
・J6:4ch汎用GPIOコネクタ(うち一つは回転検出用ホール素子に使用)
・J8:3.3V,5V電源入力コネクタ
という構成です.
ESP32ボードは汎用性を持たせるために最低限の接続しかしておらず,拡張ボードとはJ7コネクタを介してI2C,HSPI,DACx2,GPIOx4の接続ができるように設計しました.
拡張ボート側を見ると分かる通りまだまだ余裕がありそうなので,今後他にもいろいろと積めると期待しています.
上のESP32ボード側は大したハンダ作業ではないので今回はホットプレートリフローを初体験してみました.
対して拡張ボードの方は,上述したとおりBNO055のピン配置は素人の私ではリフローする勇気はなく,こちらも初めて中国に実装も依頼しました.
いままで基板の作成はFusionPCBを利用していましたが実装が高いと感じていたので,今回はPCBwayさんに基板作成と実装を依頼してみました.
基板サイズは40x26mm,基板は10枚作成しそのうち5枚に実装を依頼しました.
基板作成・実装合わせて$200くらい.ざっくり1枚$40くらいでしょうか.部品代込みなのでこんなものでしょうかね...(BNO055が2000円くらいするのでかなり安い方?)
依頼して一ヶ月かからなかったくらいでしょうか.無事に届きました.
左がホットプレートリフローしたESP32基板(裏にSDカードスロット有り)
右が拡張ボードです.
ESP32ボード下側のコネクタにUARTシリアル変換を差し込んでPCからプログラムを書き込むことになります.
動作確認も無事に終わり,すべてのモジュールの動作を確認しました.
そして,分離した電源回路
左が電源回路で,
右が電源のオンオフを行うためのスイッチ回路です
電源回路は,
・U1:LiPo Battery Charger(MCP73831)
・U2:3.3V DCDC(LT1615)
・U3:5V DCDC(LT1615)
・U4:電源IC(XC6192)
という構成になります.
U1はLiPoを充電しつつ電源を供給できる構成としてMCP73831を採用.ここからはLiPo出力の3.7Vが出力されるので,分岐して各DCDCへ.
U2はESP32を駆動するのに必要な3.3Vを安定供給できるようDCDCを,U3はモータやフルカラーLEDを駆動するための5Vを安定供給することを目的に配置.
今後も汎用性を持たせたいので各DCDCの入り口にはジャンパーを配置して5V出力のみ,3.3V出力のみと切り替えることも可能です.
そして電源IC. POV neonは最終的にボールの中に収まることを想定しているので,電源ON/OFFの操作を行うことが難しい.
ボールから外部へのアクセスはwifi,BLE以外(これは通電していることが前提なので電源ボタンには使えない)には4chのオーディオピンコネクタしか存在しないので.このオーディオピンから供給される電源線を使ってON/OFFしたいと考えて採用しました.
4chのうち,2ch分はUSBからの5V入力とGNDとなり,残りの2chのうち1本を使って電源の管理を行おうというものです.
電源ICというのは,ボタン長押しで電源ONなどいくつかの機能的な電源管理を行うICのようで,本当はbattery chargerのような機能を持ったものもあるのですが,今回はスイッチ機能のみ採用しました.
奥にあるのがスイッチボックスとなります.向かって右側にUSB端子がありこちらから給電し,左側からケーブルが伸びて4chマイクロプラグを介してneonに接続されます.
第2世代ではここからそのままPCに接続してシリアル通信を行うことができましたが,今回はそれは廃止.
基板のシリアルコネクタからUSBシリアル通信を行うことで,基板の省スペース化を実現しています.
さいごに
現在は,これらすべてのパーツを組み合わせて最終工程に持っていくフェーズに入っています.
ソフトウェアの改良は③で紹介しようかなと思っていますが,現状の設計状況を3Dプリンタで出力した結果がこちら
モーターとスリップリングを仮組みして精度を確認しています.
シャフトもまだ金属ではなく3Dプリンタで打ち出したもので試し中
シャフト末端のマイクロプラグはなかなか小さいものが見つからず,最終的には自分で削ることになりそうです.
③のソフトウェア編に続く