クラフトマンシップ
北里電子工業は常に新しい技術に取り組み成長を続けます。以下に、これまでに設計・開発した試作品を紹介します。
AWS®対応のIoTロガー
ネットワークのページでも紹介しましたが、AWS®対応のIoTロガーを評価ボードを使って試作しました。AWS®にするためには、以下のセキュリティ上の機能が必須になります。
- サーバー認証
- クライアント認証
- 通信の暗号化(暗号化したMQTT通信)
- ファームウェアのOTA更新(OTA:On The Air、ネットワーク経由という意味)
- ファームウェアの認証
これらの機能を一から作り上げるのは、そうです、不可能です。しかし、ありがたいことにSTマイクロエレクトロニクス社から、上記の機能を実装したソフトウェアのデモプロジェクト(X-CUBE-AWS)がダウンロードできます。
このプロジェクトを動作させるには、
- プロジェクトのビルドと書き込み
- IoT Core®へのデバイスの登録
- 同時に証明書の取得とプロジェクトへの設定
- IoT Core®でのデータモニター
等が必要になります。クラウドでの手順も必要な上、関連ドキュメントが全て英文なので、少々敷居が高いというのが実感です。
WiFiからキャリア通信モジュールへ
X-CUBE-AWSは、基板上のWiFiモジュールを使用していますが、実際のIoT機器ではキャリア通信モジュールを使うことが少なからずあります。この場合、デモプロジェクトのプログラム変更が必要です。
- デモプロジェクトは、基板上のWiFiモジュール上のTCP/IPのプロトコルスタックを使用する前提となっている
- キャリア通信モジュールには、TCP/IPのプロトコルスタックが実装されていないものがある
- 今回は入手性の観点からソラコムの開発ボードLTE-M Shield for Arduinoを使用しました
- この開発ボードではQuectel社製BG96が搭載されており、BG96にもTCP/IPのプロトコルスタックが実装されています
というところで、キャリア通信モジュールへの対応は、イメージとしてはTCP/IP以下の階層の置き換えととなります。これは、
- ソケットインターフェースの関数名、引数は変更しない
- その内部処理をWiFiモジュール用からキャリア通信モジュール用に、ATコマンド等を変更する
- BG96とはシリアル通信なので、シリアル通信ドライバを実装する
ことで実現しました。この結果、IoT Core®へのデータ伝送とOTAファーム更新(更新ソフトはAWS®のデータベースに配置)ができるようになりました。
*試作当時は、開発環境のstm32Cubeの特定のバージョンでないと動作しなかったため、非常に苦労しました。(-_-)
実際の試作機
試作機は以下の写真になります。

AWS®のIoT Core®で受信したデータをクラウドでモニターすると以下のようになります。各データは評価ボードに付属のセンサーデータです。

GPS周波数カウンター
GPS周波数カウンターは、ネット上でも記事を見かけますが、高周波領域まで測定可能で1Hz単位を表示可能なものを試作しました。GPS周波数カウンターの原理は単純で、GPSモジュールが出力するPPS(Pulse Per Scond)信号を利用して、1秒間の入力パルスをカウントするものです。
高周波領域(数100MHz)を測定するには、カウンター部の設計に特性インピーダンスを50Ωに合わせる等、高周波回路に必要な設計テクニックも必要です。また、カウントが9桁以上になるため、複数のカウンターを組み合わせる必要もあり、高周波用のプリスケーラも必要になります。
試作したGPS周波数カウンターは、400MHzを越える周波数まで測定可能です。将来的には、1GHz以上を測定可能にする予定です。
ドットマトリックス表示部
測定した周波数やGPSのステータスの表示を、セグメント方式するかドットマトリックス方式で表示するか迷いましたが、表示の柔軟性を考慮し、ドットマトリックス方式にしました。
ドットマトリックス方式は、文字の大きさを変えたり、複数行やアイコンの表示が可能ですが、フォントを自前で用意する必要があります。また、周波数表示は大きな文字で、ステータス情報は小さい文字にすると、複数フォントを用意する必要があります。
フォントは、ベクトルフォントとビットマップフォントがありますが、組み込みシステムで多く使われているビットマップフォントを採用しました。マイコンのメモリ上に表示させる文字のフォントを展開し、これをディスプレイのメモリへ書き込んで表示させます。ディスプレイメーカーがサンプルソフトを公開していますが、ある程度の見栄えで表示させるには根気が必要ですね。
実際の試作機
実際の試作機は以下の写真になります。

詳細な仕様は割愛しますが、特徴としては、
- USB電源で動作(カウント値のシリアル出力)
- 最大10桁表示
- RF入力とロジックレベル入力(排他的に機能)
- GPSが受信できないときは内蔵のRTCのパルス出力でカウント
- 1ボタンで設定等の変更可能
が、あげられます。精度は未確認ですが、429MHzの既知のRF信号は正しく表示しましたので、とりあえずは正常に動作していると思います。周波数を誤差なく合わせたいときにはとても便利です。また、基準クロックがGPSですと、経年変化等を考慮する必要がない点も便利です。
その他
その他いろいろな試作品がありますが、紹介は別の機会にしたいと思います。
以上