BlueNinjaのソフトウェア担当、奥原です。
今回から「Ninjaの試練」としてBlueNinjaの9月ロットの検査で使用したプログラムを作例として紹介します。
複数回にわたり、出荷検査についての紹介と各プログラムの紹介をしていく予定です。
今回の連載で紹介するプログラムはGitHubで公開しています。
(会社からサンプルとして公開してよいという許可をもらっていますのでご安心ください。Cerevoで作成している部分はApache License 2.0として扱っていただければと思います。)
読者のみなさまが検査プログラムをそのまま使用する機会はないとは思いますが、実践的なサンプルとして参考にしていただけるのではと思っています。
今回は、導入としてどのような仕組みでどんな検査を行っているのか、概要を紹介します。
各プログラムの紹介は次回以降行っていく予定です。
出荷検査について
出荷検査そのものについて紹介します。
観点
出荷試験は製造に問題がないか確認する目的で行います。
主に、以下の観点で実施しています。
- BlueNinjaのオンボード機能(BLE、モーションセンサ、気圧センサ、LiPoバッテリー充放電IC)が正しく動作しているか
- ブレイクアウトボードに出ているピンに実装不良が無いか
- ブレイクアウトボードに不良が無いか
検査治具の構成
検査治具は、Raspberry Pi type B+と検査治具基板から構成されています。
検査対象のBlueNinjaとブレイクアウトボードを検査治具基板に設置し検査を行います。
各基板の接続は以下のようになります。
各基板の役割
検査者は、Raspberry Piで動作している検査コンソールにブラウザでアクセスして検査を実行します。
検査コンソールからの指示に従い、Raspberry Piで検査治具基板をコントロールしBlueNinjaの状態を収集していきます。
I/Oやセンサー類の情報は、BlueNinjaから検査治具基板経由でRaspberry Piに返されます。
BLEとUSBに関しては、Raspberry Piで直接チェックします。
BlueNinjaの開発環境を使用して作成しています。
各基板のソフトウェアの概要
BlueNinjaのテストプログラム
検査治具基板から受け取ったコマンドに従って、各I/Oの状態取得、センサー類の値の取得、USBファンクションの実行、BLEアドバタイズの実行を行います。
検査治具基板のファームウェア
Raspberry Piからのコマンドに従い、BlueNinjaの電源スイッチ、リセットスイッチの操作、ファームウェアイレースの操作、GPIOの設定、ADC向けの電圧出力などを行います。
BlueNinja向けのコマンドの転送、BlueNinjaからの結果の転送も行います。
Keil MDK5でmbedライブラリを利用し実装しています。
検査プログラム
主に検査者が使用するコンソールの提供、試験シナリオの実行、試験結果のロギングを行います。
試験シナリオの一環としてBlueNinjaのUSBとBLEが動作しているかの検出も行います。
Raspberry Pi B+のRaspbian Weezyで、主にPythonで実装しています。
次回は…
次回の「Ninjaの試練」は、BlueNinjaのテストプログラムについて紹介する予定です。
著者プロフィール
-
組み込みソフトウェアエンジニアです。
主にBlueNinjaを担当しています。