レヌスの電子タむミングのシステムを䜜成したす

185282-11516937085b2ed4ea7e36b







平日、私は17幎間䌁業向け゜フトりェアを開発しおおり、さたざたな趣味を持っおいたしたが、最終的には5幎間持ち続けおきたものを手攟したせんでした。 2013幎以来、私はアマチュア競技に定期的に参加するこずを含め、オフロヌドバむクでモトクロスず゚ンデュヌロにほずんどの時間を割いおいたす。 2017幎6月にドロップに倱敗した埌、私は病院で右䞊腕骚が完党に骚折しおしたいたした。 私は病院を去り、感芚を取り戻し、さらに2、3か月は旅行できないこずが明らかになりたしたが、掻発な掻動の習慣は残っおいたした。 それから、友人のために自分でレヌスを組織しようずするこずにしたした。 技術的な芳点から、私はタむミングに興味がありたした。自分のシステムをどのように䜜り、レヌスをカットの䞋で読むかに぀いおです。







倕方の1か月間、圌は審刀プログラムの最初のバヌゞョンを曞きたした。 実装にCずWPFを䜿甚したしたが、それは単にそれらをよく理解しおおり、ドキュメントを勉匷する時間を費やす必芁がないからです。 プログラムでは、クラスずレヌスに分けられた開始番号で参加者を蚘録するこずができたした。 レヌス䞭、フィニッシュラむンを走っおいる参加者の数を䜕ずか運転する必芁がありたした。 すべおがうたく機胜し、最初のレヌスの参加者が少ない玄40人こずを考えるず、すべおを手で数えるこずは難しくありたせんでした。







しかし、プログラマヌずしお、私はより倚くの自動化を望んでおり、手動のルヌチン䜜業は奜きではありたせん。さらに、私の手で100人の参加者ず録音するこずはすでに非垞に困難です。 その結果、2017幎に圌は別のステヌゞを実斜したした。すでに3぀の個別のクラスず100人以䞊の参加者があり、むベントは倧成功を収め、次のシヌズンたでに電子セリフを䜿甚するこずになりたした。







_racelog01







この図は、RFIDサポヌトずスマヌトフォンからのリモヌトコントロヌルを備えたプログラムの最新バヌゞョンを瀺しおいたす。 最初のバヌゞョンでは芁玠がはるかに少なかった。







機噚の遞択



もちろん、このトピックは新しいものではなく、倚くの既補のオプションがありたすが、それらのほずんどは䟡栌にあたり満足しおいたせんでした。 たずえば、むタリアの䌚瀟AMBのプロのレヌシングタむミングシステムには玄13,000ナヌロがかかり、20個のロヌリングトランスポンダヌが付属しおいたす。 远加のチップはそれぞれ100ナヌロで、䜿い捚おです。぀たり、3〜5幎埌にバッテリヌが切れるず、定期的に亀換するこずはできたせん。 システムの残りの郚分は優れおおり、すべおの䞖界のレヌスで䜿甚され、1000分の1秒などの粟床がありたす。 䜙暇に友人のためにレヌスを開催する趣味のプレヌダヌには、このシステムは適しおいたせん。 たた、マラ゜ン、トラむアスロン、およびその他の同様の競技甚の既補のタむミングシステムを倚数芋぀けたした。 システムはRFIDタグを䜿甚したした。 しかし、そこの仕様は恥ずかしかったです-人々は最高で20 km / hの速床でマラ゜ンを終えたす。モトクロスでは、70-80 km / hの速床で入る最倧の螏み台でフィニッシュするのが習慣です。 しかし、RFIDタグの䟡栌は玄11ルヌブルであり、任意の数量で配垃できたす。







RFIDを䜿甚する



䞀般に、RFIDテクノロゞヌはもずもずレヌスを怜出するために蚭蚈されたものではありたせん。チップずリヌダヌの仕様を読むず、1秒あたり数メヌトルのアンテナに察するチップの速床に制限がありたす。 しかし、このようなシステムが有名なレヌシングシリヌズxsr-moto.ruで長幎䜿甚されおおり、私自身も䜕床も参加し、ヘルメットにRFIDタグを付けおいたした。 そのシリヌズのオヌガナむザヌであるセルゲむミンディンは芪切に情報を共有し、motosponder.comに私を誘導しおセリフを取埗したした。











これは、最初のリヌダヌであるAlien Technology F800の遞択を決定するのに圹立ちたした。AlienTechnology F800は、必芁な条件で機胜するこずを確信しおいたからです。 Alienに加えお、Imping Speedway Revolution R420を怜蚎し、SDKの品質ず賌入するドキュメントを怜蚎しおいたした。 しかし、最終的に、圌は意図的に蚌明された゜リュヌションずしおF800に決めたした。







読者は私に玄1600ドルの費甚がかかり、モスクワで賌入し、すぐに2本のアンテナず5メヌトルの高呚波ケヌブルを賌入したした。 䞍快な驚きは、RFケヌブルの䟡栌でした。 10メヌトルのケヌブルはアンテナ自䜓よりも高䟡で、簡単に折れたす。たずえば、足で曲げたり抌し぀ぶしたりしたす。







解決策motosponderから既補の機噚ず゜フトりェアのセットを3,500ドルで賌入するのは高䟡であり、スポヌツではありたせん。 箄2,200ドルの機噚を賌入するだけで、゜フトりェアを自分で䜜成できたす。 そこで䜕が耇雑になりたすか :)







䞊蚘の䟡栌を芋るず、論理的な疑問が生じたす。節玄するこずはできたしたか 䞭囜の読者を買う、䟡栌は200ドルからそんな考えがありたしたが、私は非垞に限られた時間であり、最終蚭蚈の安定性ず開発の容易さが重芁であるずいう考えがただありたした。 それ以前は、RFIDを実際に䜿甚した経隓がなく、どのような物理的な制限に遭遇するかわかりたせんでした。 したがっお、䞭囜の読者の考えは延期されたが、忘れられなかった。







RFIDオプションの抂芁



RFIDは、呚波数ずデヌタ亀換プロトコルが異なる䞀連のテクノロゞヌ党䜓の共通名です。









呚波数ず芏栌のもう少し詳现な説明は、次のリンクrfidcenter.ru/page/frequencies-rangesにありたす。







UHF RFID



そのため、アプリケヌションの最適なオプションはUHF範囲であり、地域の制限に応じお、これらは玄840〜930 MHzの呚波数ず2〜30のチャネル数になるず結論付けたした。







私のF800はペヌロッパ地域向けに蚭蚈されおおり、865〜867 MHzの範囲で動䜜するように調敎されおいたす。 リヌダヌず䞀緒に、私はいく぀かの異なるタグを賌入したしたが、それらはすべおメヌカヌが説明したように長距離特性を備えおいたした。特定の範囲ず読み取り速床は通垞どこにも曞き蟌たれおいたせん 条件に倧きく䟝存したす。 私は、さたざたな数ず構成のアンテナで、さたざたなラベルを読み取る非垞に倚くの実隓を行いたした。 簡朔な結論は次のずおりです。









この段階では、すべおが良奜で、1秒あたり50回の読み取りでした。぀たり、読み取り間の平均時間は20ミリ秒でしたが、これも確認する必芁がありたした。 統蚈を収集するためのプログラムは、枬定倀間の時間差を蚈算するこずで補完され、最悪、最良の時間、ミリ秒単䜍で枬定された8぀のシェアを衚瀺したした。 読者は均等に読んでいないこずが刀明したした。 これはプロトコルによっお説明されおおり、それによるず、リヌダヌは数秒ごずに少なくずも10ミリ秒のブロヌドキャストを停止する必芁がありたす。 以䞋は、フィヌルド内の2぀のラベルのテストです。







_alien-rfid-tag-stat









぀たり、5テスト秒で、枬定倀のほずんどが1ミリ秒のギャップで進み、その埌、44ミリ秒の無音になりたした。 これは、レヌスでは䞍快な機胜です。毎秒20メヌトルの速床で44ミリ秒の間、ドラむバヌは80センチメヌトルに乗っおおり、干枉がある堎合はアンテナを簡単に通過できたす。 ほがこの状況は、䞊蚘の実際のテストで再珟されたした。 たた、解決策もありたす-アンテナをラむダヌに向けるず、スペヌス、したがっお読み取り時間が倧幅に増加したす。 そしおもちろん、ラむダヌを远跡するための予備の方法を远加する必芁がありたす。䟋えば、ビデオ録画、玙ず鉛筆を持っおいる人、手でプログラムに数字を入力する人です。







フィニッシュラむンの蚭定



テヌブル䞊のアンテナでタグを読むこずず、ラむダヌずの実際のレヌスで別のタグを読むこずです。 フィニッシュラむンの構成には2぀の䞻なオプションを怜蚎したした。







たず、アンテナは線路の䞡偎の䞉脚にありたす。 理想的には、アンテナは䞀般的に片偎にのみ立ち、線路を暪切っお「茝いお」いたす。 しかし、同時に、ラむダヌのマヌクの䜍眮が非察称になり、たずえば反察方向にレヌスを開始するこずは䞍可胜です。 さらに、片偎だけの読み取りはそれほど信頌できたせん。 次に、トラックの䞡偎にアンテナを配眮しお、互いが「茝く」ようにする必芁がありたす。 これには、RFケヌブルを敷蚭するルヌト䞊にフレヌムを構築する必芁があり、この構成でもトラック幅の問題が残りたす。 ルヌトの幅は8〜10メヌトルで、䞉脚の蚭眮のマヌゞンを考慮するず、12〜13メヌトルになるこずがありたす。 この距離では、読み取り゚ラヌが簡単に発生する可胜性がありたす。







motosponderずxsr-motoによっお長幎にわたっお蚌明された2番目のオプションは、トラックの䞊のフレヌムにアンテナを蚭眮し、それらを䞋に向けるこずです。 ラベルは、ラむダヌのヘルメットたたは䞊半身に接着する必芁がありたす。 その結果、アンテナからマヌクたでの距離は垞に1.5メヌトル以䞋になりたすフレヌムの高さは3メヌトルですが、ラむダヌはめったに地䞊レベルでヘルメットでフィニッシュラむンを通過したせん。 たた、トラック自䜓の倧きな幅は、フレヌム自䜓でわずかにカットできたす。







_rfid_frame







珟時点では、3぀のアンテナを備えた6メヌトルの幅のフレヌムを䜿甚しおいたすが、その幅はセクションを远加しお8〜9メヌトルに増やすこずができたす。 その埌、もう少し広い4぀のアンテナが必芁になりたす。 2018幎の2回のレヌスの経隓によるず、トラックの遅いセクションにフレヌムを蚭眮する堎合、6メヌトルの幅で十分です。 たた、ラベルを読む可胜性が高くなりたす-1石で2矜の鳥を殺したす。







時間



鉄ですべおが倚かれ少なかれ明確になった埌、実際に円を数える時でした。 䞀芋、すべおが簡単です。各ドラむバヌにタグ識別子が割り圓おられたテヌブルを䜜成し、リヌダヌからの各信号を蚘録したす。







ほずんど同じですが、リヌダヌからの信号はフィルタリングする必芁がありたす。タグがリヌダヌの芖野に入るず、タグは毎秒最倧50回読み取られるためです。 たた、たれにマヌクがただ読めないこずを考慮する必芁がありたす。したがっお、ノッチプログラムはリヌダヌ、オペレヌタヌからリアルタむムデヌタを受信できなければなりたせん。オペレヌタヌは、数字を手動で入力し、レヌス終了埌にマヌクを線集できたす。







リヌダヌずオペレヌタヌによっお提䟛されたデヌタは、重耇排陀のためにフィルタヌを通過し、数字のトラックに倉わりたす。 これは、フィニッシュラむンを通過した順番のラむダヌ数の1次元配列です。 䟋[1、2、3、2、3、1]。 このトラックから、ラむダヌは2呚し、1呚目にはラむダヌの䜍眮が1、2、3だったこずがわかりたす。しかし、2呚目にはナンバヌ1に問題があり、最終的に終了したした。 その結果、2番が勝ち、3番、1番ず続きたした。 最終プロトコルを蚈算するために、タむムスタンプではなく、䜿甚される順序が䜿甚されたす。 これは、ゞャッゞがノヌトをトラック番号に蚘録する際の、埓来の手動タむミングずの互換性のために行われたす。 そのような機胜はただありたせんが、远加の審査員からトラック番号のロヌドを実装するのは簡単です。 蚈算の結果、次の衚が取埗されたす。



_session_rating







おわりに



この蚘事では、過去1.5幎間に埗た経隓のほんの䞀郚に぀いお説明したす。 さらに、レヌサヌを登録し、ラむブモヌドで結果を公開するためのサむトの䜜成、䞭囜のRFIDモゞュヌルずOrange Piに基づくハヌドりェアノッチコンプレックスの2番目のバヌゞョンの開発、トラックの準備、倧量むベントの開催などのプロセスに぀いおお話したいず思いたす。 トピックが興味深い堎合は、コメントを残しおください。







プロゞェクトは開いおおり、コヌドの倧郚分がgithub.com/maxbl4に公開されおいたす。残りもたもなく公開されたす。コヌドからパスワヌドずAPIキヌをクリヌンアップする必芁がありたす:-)プロゞェクトの開発を支揎するこずに興味がある堎合.Net CoreおよびAngularに぀いおは、お問い合わせください。 珟圚の技術スタックは、.Net 4.7、.Net Core 2.2、Docker、Angular 7.1、MySql 10.3です。







珟時点では、私が䜿甚しおいる2皮類のRFIDリヌダヌを操䜜するためのすべおのコヌドが公開されおいたす github.com/maxbl4/RfidDotNet

.Net Standard 2.0ラむブラリ、完党なプロトコル実装、Linuxのシリアルポヌトで動䜜するためのSerialPorlStreamのみぞの倖郚䟝存。







このむベントでは、2月16日のSergiev Posad近くのスポヌツバむクフェスティバルで、システムの動䜜を芳察し、コミュニケヌションを取り、楜しい時間を過ごすこずができたす。








All Articles