2023年12月23日

ProjectionBall Unit

2017年にProjectionBall IoT(v5.x)をリリースしてから、機能を絞った廉価で小型なモデルの要望を頂き、検討していました。試作を繰り返す中でコロナ禍における半導体不足の影響で予定のマイコンが入手できず、別のマイコンに変更する等で2020年リリースの計画よりも大幅に遅れました。結局、ProjectionBall Unit(v7.x)のリリースは2023年末になってしまい、先日からスイッチサイエンスにて販売を開始しましたfabcrossでも紹介して頂きました。


■筐体
従来は1枚の基板を100mmの樹脂球体に入れた構造でした。今回は筐体を兼ねた2枚の基板でガルバノミラーモジュールを構成することで、従来のような球体等のケースが不要となり、更に小型化が可能となりました。サイズは60mm x60mm x 43mmです(突起部、USBコネクタ除く)。

img4.JPG

■マイコン
マイコンにはRP2040を採用することで、2コアの特性を活かし、従来のSTM32F3よりも制御周期を100usecから80usecと更に高速化を実現しました。コア0にコンソールやユーザ処理、コア1にモータ制御で処理を分担しています。また、RP2040の採用で専用のファーム書き込みツールが不要となり、PC等から簡単にファームウェアのアップデートができるようになりました。ROM、RAMも非常に大きいため、今後の機能拡張にも十分です。

なお、小型化のため、今回はSDカードスロットを基板から除きましたが、SPIポート自体は基板上に残したため、SDカードやSPI通信等の将来的な拡張も容易です。Grove互換コネクタをI2CとUARTの2ポート搭載しており、センサとの連携等の拡張も可能です。

MPU.jpg

■エンコーダ
エンコーダには従来のAS5048Aと同等性能の14bit分解能でありながら、低コストなMA732を採用しました。MA732はICパッケージもQFN16で小型なため、本体の小型化にも貢献しています。

Encoder.jpg



■RTC
RTCには時刻ズレを抑えるため、温度補償付きの高精度かつ安価なRTC、SD3077を採用しました。最大3.8ppmと1ヶ月で10秒以内、1年でも数分以内のズレに大幅に低減することが可能です。温度補償や一般的な水晶発振子のみでは20ppmから 40ppmで1ヶ月で数分、1年で数十分のズレが生じる可能性があることから大幅に時刻ズレを低減できます。また、RAMが70byteまで利用できるため、様々な設定情報等を保持することが可能です。

RTC.jpg


■ミラーモジュール
従来のミラーモジュールは複数の部品を接着剤で組み合わせて固定していました(図左)。今回は廉価である他にも組み立て調整しやすいことも合わせて目標にミラー部分を3Dプリンタで一体成形しました(図右)。また、金属製のミラーからガラス製のミラーに変更しました。一体成型にすることでミラーモジュール全体が軽くなり、応答性や耐久性も向上しました。


mirror.jpeg


■まとめ
ProjectionBall Unit(v7.x)は前バージョンに引き続き、Open Source Hardwareとしてソースコード含めてリリースしています。初回ロットは販売当日に完売しました。可能な限り在庫0の状態を避けたいものの、他の製品と比べると部品数が多いため、当面は月10台程度の生産、納品数で様子をみたいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2023年08月12日

ToF測距センサMTOF171000C0

今回はToF測距センサーモジュールMTOF171000C0を紹介したいと思います。モジュール内部にマイコンを搭載しており、I2CもしくはUARTで距離を簡単に取得することが可能です。


I2Cで使用する場合は少し特殊で、RXをGNDに落とす必要があります。UARTを無効化するためにモジュールセレクトとしてRXピンを使用しているようです。実際に使用してみたところ、I2Cしか使用しない場合はRXピンを常にGNDに落としたままでも測距できました。そのため、専用のIOでRXピンを上げ下げしなくてもI2Cデバイスとして利用できるようです。


対応距離のラインアップの充実ではVL53LXXシリーズが勝りますが、VL53LXXシリーズはドライバが重く、マイコンの種類によってはROMに収まりきらないことが多々あります。ToF測距センサーモジュールMTOF171000C0は初期化コマンドも不要でレジスタにアクセスするだけで距離を取得することができます。ドライバプログラムが非常にシンプルで便利だと思いました。


USBシリアルI2C変換基板とWebシリアルAPIを活用して、モニタツールを実装してみました。


ToF.jpg

ToF測距センサーモジュールMTOF171000C0は比較的低価格で薄く小型なため、色々な機器に組み込んで活用できそうです。色々試してみたいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2023年03月25日

iOS Web Bluetooth API

前回はBLE5モジュール変換基板BLE5モジュール変換基板V2とブラウザを介してシリアル通信できるツールを紹介しました。実装方法としてWeb Bluetooth APIを用いており、EdgeやChrome等の対応したブラウザが必要になります。iOSのSafari含めてスマートフォンの多くのブラウザではWeb Bluetooth APIに対応していません。今回はiOSでWeb Bluetooth APIに対応したサードパーティのブラウザを使ってブラウザを介してシリアル通信できるツールを利用できるかテストしてみました。

手持ちのiOS16でWeb Bluetooth APIに対応したサードパーティのブラウザとして、BluefyC.ブラウザをテストしてみました。Bluefyでシリアル通信できるツールにアクセスして、接続ボタンを押すと、BLEデバイスが表示され、OS側でのデバイス追加なしで簡単に接続することができました。また、iOS上のBluefyブラウザから文字列を送信したり、逆にBLEデバイスからUARTを介して文字列を送信して、Bluefyブラウザに表示できることが確認できました。実際に接続してみたスクリーンショットは下記の通りです。

bluefy.jpg

一方でC.ブラウザは接続ボタンでデバイス選択画面が表示されるものの、BLE5モジュール変換基板BLE5モジュール変換基板V2のBLEデバイスが表示されず、利用できませんでした。

スマートフォン向けにBLE5モジュール変換基板BLE5モジュール変換基板V2を用いたシリアル通信はBGX Commanderアプリ(iOS/Android)が提供されていますが、独自UIを実装する場合、追加でアプリ開発や登録等の手間が生じます。それらの手間を考えるとブラウザは限定されるものの、Web Bluetooth APIでOSに依存せずにサービスを提供できるのは非常に魅力的だと思いました。今後、Web Bluetooth APIに対応したiOSのBluefyを用いて色々実験や検討をしてみたいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2023年03月11日

Web BLE API

以前にWebシリアルAPIとUSBシリアルI2C変換基板を用いてI2Cデバイスをブラウザから制御して、取得したデータからChart.jsで可視化するデモツールを紹介しました。今回はBLE5モジュール変換基板BLE5モジュール変換基板V2とブラウザを介してシリアル通信できるツールを紹介したいと思います。BLE5モジュール変換基板BLE5モジュール変換基板V2Wireless Xpressファームウェアが実装されているため、簡単にスマートフォン等と通信することが可能です。スマートフォン向けにはBGX Commanderアプリ(iOS/Android)が提供されています。

一方、PC版は提供されていないため、今回はWeb Bluetooth APIを用いて、ブラウザを介してシリアル通信できるツールを実装してみました。ツールはこちらから利用できます。


webbleapi.png

Web Bluetooth APIの制約で事前にOS側の設定画面でBluetoothデバイス追加が必要です。追加後、接続ボタンを押すと検出されたBLE5モジュール変換基板もしくはBLE5モジュール変換基板V2が表示されます。接続後は双方向に文字列を送ることが可能です。今回はモジュールをUSBシリアルに接続してテストしてみました。ブラウザから文字列を送信したり、逆にTeratermからUARTに文字列を送信して、ブラウザに文字列が表示されることを確認しました。デフォルトはシリアル通信を双方向に行うためのストリームモードとなっていますが、モードをコマンドモードに設定することでBLEモジュールの設定を遠隔で行うことも可能です。

実際にはBLE5モジュール変換基板をマイコン等に接続し、BLE5モジュールとペアリングしたPCのブラウザから遠隔でデバッグして使用します。Web Bluetooth APIの制約でOS側で事前にBluetoothデバイスの追加しない場合、データ書き込み時にGATT Error: Not pairedの例外エラーが発生します。事前のデバイス追加が必要なものの、ブラウザから簡単にBLEデバイスと通信することができるのは非常に便利だと思いました。なお、WebシリアルBLEツールのjsコードやcss含めてすべてhtml内に記述しているため、本ツールにアクセスして右クリックで「ページのソース表示」でソースを確認することができます。今後は他にも応用的な機能を実装したいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2022年12月17日

プログラマブルデバイスGreenPak

気が付いたら12月に入ってしまいました。今回はプログラマブルデバイスGreenPakを紹介したいと思います。デジタルの論理回路やアナログのコンパレータ、カウンタ、遅延、タイマといった比較的簡易な機能を実現するために特化したデバイスです。1個200円弱で16bit/32bitのマイコンよりも安く実現することが可能です。1個100円前後の8bitマイコンと比べると少し高いですが、アナログ系とデジタル系の簡易な機能が備わっているため、8bitマイコン単体+論理ICやアナログICを組み合わせる場合にはGreenPak1つで代替できる可能性があります。また、マイコンの周辺回路をGreenPakで統合するといったことが可能です。


greenpak.jpg

GreenPakシリーズ内ではAD搭載モデルやロードスイッチ搭載モデル、レギュレータ搭載モデル等、他にも様々ありますが、多くのモデルは製品への組込を目的としており、書き込みが1回のみの焼き切りタイプ(OTP)です。ホビーユースや試作目的では何度も書き換え可能な下記のタイプ(MTP)に制限されます。

 電源電源2コンパレータCNT/DLYLUTSDFF
SLG468242.3-5.51.71-5.5281917
SLG468262.3-5.51.71-5.5481917
SLG470042.4-5.5372018


SLG4682Xは2電源タイプのため、電圧レベル変換ICとしても利用できます。SLG46826のみ温度センサを搭載。SLG47004はオペアンプ、プログラマブルな基準電圧を搭載しています。

開発環境は無料で利用可能な専用のGo Configure Software Hubというソフトウェアを用いて設定します。ノーコードでGUI画面からモジュールを組み合わせて実装します。書き込みは専用のデバッガを介してI2C経由で書き込みを行うことが一般的ですが、昨今の半導体不足でデバッガが長期間在庫なし状況です。デバッガの代替としてArduinoを介して書き込みを行うことが可能です。

ide.jpg

sim.jpg

Go Configure Software Hubは設定の他、信号のシミュレーションもすることが可能なため、書き込み前に意図した信号処理ができているか確認することが可能です。

実際に使ってみると、コンパレータやLUT等の各モジュールで利用可能なポートの制約等ですべてのモジュールをフルに使うことはできないため、実装には工夫は必要であると分かりました。玉に瑕な点として、SLG4682Xは設定データ書き換え時のメモリ削除処理にエラッタがあり、I2Cに準拠しない挙動をします。その対処としてシステム内で書き換えを行う場合、書き換え時I2Cエラー処理が必須である点です。また、設定メモリの書き込みや削除は1ページ16byte単位となっており、1ページ毎に書き換える必要があります。8byteとか1byteとか細かく書き換えできればより便利だと思いました。

デバッガは入手しにくいものの、GreenPakIC自体は半導体不足の環境下でも在庫が豊富なため、今後はGreenPakを使ってちょっとしたデバイスを検討してみたいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする