Sportiduino-スポーツ競技用の電子マーキングシステム、パート3

パート1パート2



前回の出版から1年が経過しましたが、それ以来何が変わったのかという質問をよく聞かれます。 要するに、Ntagチップへの移行が行われ、回路に小さな変更が加えられ、感度、信号量、および正しいクロックの動きが改善され、システムで動作するソフトウェアが作成されました。 一般に、システムは安定しており、再生と使用の準備ができています。 詳細は以下をご覧ください。



まず、RFIDチップ、なぜNtagに移行したのかを説明します。 Mifare Classic 1Kメモリには1024バイトが含まれており、そのうち752バイトは情報の保存に使用できることを思い出させてください。 メモリ構造は16ブロックに分割され、16ブロックの4ページが含まれ、そのうちの1つは暗号化のために予約されています。 1ページをサービスとして使用する場合、マークを記録するためのページはまだ46ページありました。



開発の最初に、メモリを自由に使用しました。1マークあたり16バイトの1ページで、中規模の起動の使用を制限します。 ロゲイニング、ツーリストオリエンテーリング、またはアドベンチャーレースには、46の駅はほとんどありません。 そのため、圧縮のアイデアが実現されました。各ページに2つのマークが書き込まれました。 同時に、記録単位が1ページであるため、データ損失のリスクがありました。再記録するときは、すでに記録された半分を再度書き込むために読み取る必要があります。 実際、昨年11月のRogainingでこのレーキを踏んだところ、データの一部が失われたため、手動で多くの編集をしなければなりませんでした。 そして、コードのエラーが検出されましたが、書き換え中のデータ損失のリスクなしに、より容量の大きいチップに切り替えることにしました。



可能なオプションの1つは、Mifare 4Kチップを使用することです。Mifare4Kチップの構造は、大容量のメモリの4倍しか1Kと異なりません。 しかし、そのようなチップはより高価であり、洗浄の期間、それらの使用によるマークが増加します。 別のオプションは、Ntagシリーズチップ(213/215/216)を使用することです。 Ntagチップのメモリ構造は非常に単純です。メモリは4バイトのページに分割され、最初の4ページと最後の5ページはサービス情報を保存するために予約され、残りは使用できます。 Ntagシリーズチップのメモリサイズは異なり、Ntag213の空き容量は36ページ(144バイト)、Ntag215の容量は126ページ(504バイト)、Ntag216の容量は222ページ(888バイト)です。 その結果、私はこのシリーズのすべてのチップのサポートを実装しましたが、Ntag215は最適と見なすことができますが、そのメモリは120マークに十分であり、価格は非常に低いです(ステッカーの形でチップあたり約0.2ドルまたはキーチェーンの形で0.4ドル)。 また、SFRの助言により、彼は重要な情報の保存-バイナリ検索に有利な最後の空きページの番号-を放棄することを決定しました。 これにより、タイムスタンプは増加しましたが、信頼性は向上しました。



メモリのNtagページには4バイトが含まれており、ステーション番号-1バイトとタイムスタンプ-4バイトを合わせる必要があります。 この問題は、チップの初期化(クリーニング)のフルタイムが別のページに書き込まれ、マークが付けられると、時間の下位3バイトのみが書き込まれるという事実によって解決されました。 次に、読み取り時に、マークの時間は初期化時間に基づいて完全に復元されます。 チップ内の別のページはチップ番号で占められており、2つは予約されています。 結果の構造を以下に示します。







Ntagを使用することで、チップに多数のマークを安全に記録する問題を解決することができましたが、別の問題が発生しました。 Ntagチップは、同じアンテナ領域のMifareよりも多くの送信機電力を必要とし、アンテナが2 cm ^ 2のオーダーのキーチェーンチップは、標準としてRC522モジュールではうまく動作しない可能性があります。 この問題の解決策は、モジュールのインダクタンスをより強力なものにはんだ付けすることでした。 同時に、Ntagチップでは最大2 cm、Mifareでは最大3 cmの応答範囲が大幅に増加しましたが、このようなはんだ付けのために一部のモジュールの動作が低下し始めました:チップは送信アンテナから一定のかなり予測不可能な範囲でしか記録されませんでした。 RC522 Arduinoライブラリにアクセスして、そこからアンテナパワーの原因となるゲインパラメータを見つける必要がありましたが、個々のステーション用に編集して問題を解決しました。 彼はまた、ブレスレットからブレスレットのチップを手作業で製造することも習得しました。 アリババはすでに既製で美しいものを販売していますが、アンテナ面積はその半分近くであり、マークはあまり安定していません。 また、Mifare 1Kチップのサポートを終了したので、それらを使用できますが、これには個別のファームウェアを使用する必要があり、チップ容量は42マークに制限されていますが、RC522モジュールが付属しています。







開発中に解決しなければならなかった別の問題は、クロックの不正確なコースでした。 一部のステーションでは、クロックが1日5分まで遅れたり急いだりし始めました。 理由が長い間わからなかったので、工場で作られたプリント回路基板を備えたステーションのみがバグであることがわかりましたが、手動でエッチングされたものではすべてがうまくいきます。 私はこれが何に関連するのか考えました。 手作業でエッチングされた厚いトラックでは、錫メッキが豊富で抵抗が少ないため。 スタビライザーの出力にあるコンデンサーでは、薄い工場トラックのクロックの電力を分離するには不十分であることが判明しました。 クロックの近くに別のコンデンサを配置すると、ほとんどの場合、問題は解決しました。 時計の一部はまだ機能していませんが、私はすでにこれを安価な時計とアリの結婚に関連付けています。信頼できるサプライヤーを探す必要があります。



さて、回路の最後の変更は音声信号の増幅です。 以前は、回路内のツイーターの制御と電力はマイクロコントローラーの足から実行されていたため、電力がかなり制限されていました。 これで、電力はバッテリーから直接供給され、制御はトランジスタを介して行われ、信号量が大幅に増加しました。 これらの変更はすべて考慮され、Gerberファイルに導入されましたが、手動で約40のステーションを作り直しました。化合物を選択し、トラックを切断し、トランジスターをワイヤに掛ける必要があり、ステーションが壊れていました。







他のチップへの移行により、基地局のファームウェアを大幅に変更する必要がありましたが、ほとんどの場合、動作の原理とロジックは同じままでした。 省エネ、スリープ、仕事、マスターチップを使用した設定の同じモード。 ただし、ゲートウェイのファームウェアは完全に再設計されています。 データが連続ストリームのCOMポートでストリーミングされていた以前の通信プロトコルは脆弱であるように見えました。1バイトが失われ、すべてのデータがカボチャに変わりました。 既存のデータ転送プロトコルへの適応は退屈に思えたため、彼は自転車を発明しました。



情報は、最大32バイトのパケットを送信することにより、順次送受信されます。 送信されたデータがパケットに収まらない場合、パケットを順次転送することにより送信が行われます。 パケットは開始バイト0xFEで始まり、コマンド番号、パケットの長さ、データ、最後にチェックサムが続きます。 コマンドは、チェックサムと開始バイトの正しい値でのみ渡されます。 かなりシンプルで十分な信頼性。







接続は確立されましたが、コンピューター用の通常のソフトウェアを作成する必要がありましたが、Processingの私の技術はこれに適していませんでした。 システムを操作するためのPython モジュールを作成し Semyon Yakimovがこれを取り上げてくれたので、とても感謝しています。 このモジュールを使用すると、ゲートウェイと通信し、便利な形式でデータを送受信できます。 その後、最初の近似としてPythonを習得し、このモジュールとPyQtに基づいて、システムを構成し、JSONファイルの形式でチップからデータを収集するために使用できるシンプルなGUIアプリケーションを作成しました。 それでは、さまざまな条件とルールを備えた競技用の小さなスクリプトを使用して、便利な形式( 観光客向けロゲイニング )でデータを処理できます。 しかし、すべて同じですが、これはいくつかのスキルを意味し、Sportiduino(SportidentおよびSFRに加えて)のサポートを追加したSportOrgプログラムの開発者でなければ、幸福は完全ではありません。 プログラムは積極的に開発されており、多くのことがオリエンテーリングの開始を判断することができます。



おわりに



したがって、現時点では安定して動作するハードウェアとソフトウェアがあります。 事業の目標は達成されたと思います:安価な電子マーキングシステムが登場しました。 何らかのバグがある場合を除き、このスキームのフレームワーク内では何も変更しません。 マーキングシステムは、オリエンテーリング、ロゲイニング、マーチスロー、トレイル、ツーリストステージなど、多数のさまざまな競技会で既に開発およびテストされています。 私以外にも、さまざまな場所の数人が使用しています。 誰かがシステムをプレイし、誰かがそこに追加しました。たとえば、 無線モジュールや、 リチウム電池とMifareチップを主なものとして使用します。



開発はオープンで非営利であり、GNU GPLv3の下でライセンスされています。 誰でも自由にコピー、複製、変更、使用できます。 過去1年間、私はステーションセールを行っているかどうかについて多くの質問を思いつきました。 いいえ、これはしたくありません。 一方で、誰かがこのニッチを埋めても構いません。 すべてが非常に単純なので、組み立てと使用についてアドバイスする準備ができています。



プロジェクトはgithubで利用できます。スキーム、指示、その他の有用な資料があります。 ご清聴ありがとうございました。



All Articles