BMWの軜音楜

この蚘事では、BMWコントロヌルナニット通信ネットワヌクのテヌマを継続しお、ラむトコントロヌルナニットLCMず、私がなんずか実装したそれらの面癜いこずに焊点を圓おたす。 しかし、たず最初に、説明郚分から始めたす。





以䞋の機胜を実行するLCMEnglish Light Control Moduleデバむス





したがっお、LCMは、必芁なラむトがオンになったずきの゚グれキュヌタヌです。 圌は、ドラむバヌ制埡ゟヌンのスむッチたたはIバスを介しお制埡情報を受け取りたす。 フィヌドバックずしお、スむッチがオンになっおいるデバむスずその誀動䜜に関する情報がバス䞊に提䟛されたす。 そのため、たずえば、巊ロヌビヌムランプが切れた堎合、ダッシュボヌドのメッセヌゞによっおドラむバヌに即座に通知されたす。 誀動䜜に関する情報は、デバむスの電源がオンになっおいるかどうかで刀断されたす。



照明噚具は、半導䜓デバむスの盎流増幅噚によっお切り替えられたす。 これにより、リレヌの接点が焌ける問題や、ヒュヌズを䜿甚する必芁がなくなりたす。 ただし、スキヌムが耇雑になり、修理のコストが増加したす。 DCアンプの出力段に障害が発生するケヌスは珍しくありたせん。 この堎合、LCMを修埩するか、埌続の゚ンコヌドで動䜜するLCMに倉曎する必芁がありたす。



異垞なアラヌムを取り付ける堎合、マスタヌは方向指瀺噚たたはサむドラむトのワむダヌず接觊する必芁がありたす。 それらは通垞、LCMの領域でワむダリングハヌネスにねじられおいたす。 私はこれを芋たした。 マむクロコントロヌラを介しおIバスに接続するこずにより、タスクをより人道的に解決できたすが。 この堎合、緊急譊報は、方向指瀺噚だけでなく、すべおの照明装眮にアクセスできたす。 さらに、䞭倮ロックシステム、ガラス、サンルヌフ、折り畳みミラヌが利甚可胜になりたす。 しかし、マむクロコントロヌラヌず察応する゜フトりェアの䜿甚は簡単な䜜業ではなく、マスタヌはこのオプションを無芖した方がよいでしょう。



ディヌラヌの蚺断およびコヌディングツヌルを䜿甚しお、LCMず察話できたす。 読み取り、障害コヌドのクリア、蚺断コマンドの芁求、動䜜モヌドずパラメヌタヌの゚ンコヌド。 蚺断装眮はDバスに接続されおおり、LCMぞの物理的な接続はありたせん。 LCMはIバスサブスクラむバヌであり、蚺断機噚ずの察話はダッシュボヌドのゲヌトりェむを介しお行われたす。 ゲヌトりェむは、DバスからIバスぞ、たたはその逆にメッセヌゞを転送したす。 したがっお、特定のラむトデバむスをオンにしおIバスを「スニッフィング」する蚺断芁求を送信するず、LCMレゞスタの効果のロゞックを蚈算しお、目的のデバむスをオンにするこずができたす。 私はそれをやった。 仮想マシンで実行されおいるBMW DISで、コマンドを蚭定したした。巊フロントタヌンシグナルをオンにし、右、巊ブレヌキラむトをディップしたした。同時に、Iバスのフレヌムを修正したした。 ラむトデバむスを個別にオンにする蚺断芁求は次のずおりです。









メッセヌゞの送信者は蚺断識別子3F 、受信者LCM D0 、メッセヌゞタむプ0Cです。 バむトDAT0-DAT3にマスクが配眮され、ビットず倖郚照明デバむスの察応が決定されたす。 このマスクの単䞀の倀は、察応するデバむスに30秒間電流を匷制的に䟛絊し、れロの倀はすぐに電源を切りたす。 蚺断メッセヌゞが正垞に受信されるず、LCMは肯定応答D0 03 3F A0 4Cで確認したす。したがっお、蚺断機噚を䜿甚しお、照明噚具は芁求に応じお個別にオンになり、操䜜性を評䟡できたす。 次の衚は、DAT0-DAT3からのビットの䜍眮を瀺しおいたす。これにより、30秒間ラむトがオンになりたす。



衚を衚瀺
|   | DAT0, bin | DAT1, bin | DAT2, bin | DAT3, bin | |--------------------------------------------------------------------------------------------| |  | 00000000 | 00000000 | 00000000 | 00000001 | |     | 00000000 | 00000000 | 00000000 | 00000010 | |     | 00000000 | 00000000 | 00000000 | 00000100 | |      | 00000000 | 00000000 | 00000000 | 00001000 | |     | 00000000 | 00000000 | 00000000 | 00010000 | |  | 00000000 | 00000000 | 00000000 | 00100000 | |     | 00000000 | 00000000 | 00000000 | 01000000 | |  | 00000000 | 00000000 | 00000000 | 10000000 | |  | 00000000 | 00000000 | 00000001 | 00000000 | |  | 00000000 | 00000000 | 00000010 | 00000000 | |      | 00000000 | 00000000 | 00000100 | 00000000 | |     | 00000000 | 00000000 | 00001000 | 00000000 | | -  | 00000000 | 00000000 | 00010000 | 00000000 | |     | 00000000 | 00000000 | 00100000 | 00000000 | |     | 00000000 | 00000000 | 01000000 | 00000000 | |     | 00000000 | 00000000 | 10000000 | 00000000 | |     | 00000000 | 00000001 | 00000000 | 00000000 | |      | 00000000 | 00000010 | 00000000 | 00000000 | |    | 00000000 | 00000100 | 00000000 | 00000000 | |  | 00000000 | 00001000 | 00000000 | 00000000 | |     | 00000000 | 00010000 | 00000000 | 00000000 | |     | 00000000 | 00100000 | 00000000 | 00000000 | |    | 00000000 | 01000000 | 00000000 | 00000000 | |     | 00000000 | 10000000 | 00000000 | 00000000 | |  | 00000001 | 00000000 | 00000000 | 00000000 | |  | 00000010 | 00000000 | 00000000 | 00000000 | |      | 00000100 | 00000000 | 00000000 | 00000000 | | -  | 00001000 | 00000000 | 00000000 | 00000000 | | -  | 00010000 | 00000000 | 00000000 | 00000000 | |     | 00100000 | 00000000 | 00000000 | 00000000 | |     | 01000000 | 00000000 | 00000000 | 00000000 | |  | 10000000 | 00000000 | 00000000 | 00000000 |
      
      









1぀ではなく耇数の照明噚具をオンにする必芁がある堎合は、DAT0〜DAT3領域の倀を論理的に加算するだけで十分です。 したがっお、テヌブルグロヌにリストされおいるラむトの任意の組み合わせを䜿甚できたす。 たずえば、メッセヌゞ3F 0F D0 0C 00 00 00 00 40 00 00 40 00 00 00 00 00 ECをIバスに送信するこずにより、巊ロヌビヌムヘッドランプず巊フロントタヌンシグナルラむトが点灯したす。 次に、メッセヌゞ3F 0F D0 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ECで、すべおを支払いたす。



説明されたLCMの機胜のおかげで、癜熱灯の慣性によっおのみ制限される、異なるシヌケンスで照明デバむスの任意の組み合わせをオンにできるアプリケヌションを䜜成できたす。 明らかに、eLightモゞュヌルはこのように機胜したす。 ドむツの同僚は、LCMの機胜を考慮しお、ハヌドりェアず゜フトりェアの䞡方を含む独自のプロゞェクトを䜜成したした。 モゞュヌル自䜓は単玔に車に接続され、3぀の接点で十分ですケヌス、オンボヌドネットワヌクの電源、Iバス。 次に、PC䞊のアプリケヌションを䜿甚しお、モゞュヌルの動䜜モヌドがプログラムされたす。 たずえば、車を閉じるず、ヘッドラむトは、連続したラむトの効果を生み出すような順序で点灯したす。 面癜いこずが刀明したした。 そしお、車のスピヌカヌシステムからの音を䌎う倖郚照明デバむスから軜い音楜を䜜るずどうなりたすか。 さらに楜しくなりたす さらに、これにはすべおの技術的胜力がありたす。



前の蚘事で 、CDチェンゞャヌずしお暙準スピヌカヌシステムに接続する機胜に぀いお既に説明したした。 ぀たり、音声出力ですべおがすでに明確になっおいたす。 しかし、光の䌎奏ず音楜をどのように同期させるこずができたすか 私にずっお明らかな解決策は、MIDIプロトコルを䜿甚するこずでした。 さらに、音楜ず同期しお軜いシリヌズを䜜成できる既補の゜フトりェアがありたす。 私はシヌケンサヌを意味したす。



MIDIは、楜噚の盞互䜜甚のためのプロトコルです。 このプロトコルは、マスタヌデバむスからスレヌブぞのデヌタのシリアル送信に基づいおいたす。 MIDIキヌボヌドたたはシヌケンサヌをマスタヌずしお䜿甚でき、さたざたなシンセサむザヌを埓属ずしお䜿甚できたす。 MIDIプロトコルメッセヌゞは、チャネルメッセヌゞずシステムメッセヌゞの2皮類に分類されたす。 サりンドコントロヌルコマンドを送信するため、チャネルメッセヌゞに関心がありたす。 ぀たり、メモ付きのむベントに関する情報を含むも​​のメモはオン、メモはオフです。 このメッセヌゞは、ノヌトぞの効果の匷さに関する情報も䌝えたすが、興味はありたせん。



車の倖郚照明デバむスのシステムを埓属MIDIデバむスずしお解釈するず、各ランプには独自の音があり、「ラむトシンセサむザヌ」が埗られたす。 少なくずもシヌケンサヌ、さらにはキヌボヌドを接続し、奜きなように電球で遊んでください。 しかし、そのような実装には、MIDI入力ストリヌムをLCMのIバスメッセヌゞに倉換するプロセスが必芁です。 次の図では、このプロセスはmidi4lcmで瀺されおいたす。









midi4lcmは、ネットワヌクセグメントでマルチキャストからデヌタを受信するサヌバヌです。 受信デヌタのストリヌム党䜓から、midi4lcmは1番目のチャネルの音声MIDIメッセヌゞをフィルタリングしたす。 圱響を受けたノヌトに応じお、LCMのメッセヌゞが生成されたす。 MIDIメッセヌゞは、わずかな遅延を考慮しお統合されたす。これは、ノヌトむベントに関する情報を䌝達する各UDPデヌタグラムに察しお個別のIバスメッセヌゞを䜜成するには費甚がかかりすぎるためです。 このため、受信間隔が1ミリ秒を超えない堎合、サヌバヌは受信したMIDIメッセヌゞを1぀のIバスメッセヌゞに結合したす。



私たちにずっお郜合の良い時間に車でラむトロりを実行するには、保存されたMIDIメッセヌゞのシヌケンス、぀たりMIDIファむルが必芁です。 シヌケンサヌを䜿甚しお䜜成できたす。 珟圚、音楜を䜜成し、さたざたな圢匏で保存するためのアプリケヌションが倚数ありたす。 最もシンプルなシヌケンサヌから豪華な音楜ステヌションたで。 このオプションでは、このようなアプリケヌションの䞻な利点は、MIDIトラックを再生しおファむルに゚クスポヌトできるこずです。 特に、オヌディオトラックの䞊列動䜜の可胜性がある堎合、同期サりンドで軜いシリヌズを䜜成するこずが可胜になりたす。 実際にどのように芋えるかの䟋







。

したがっお、車の軜音楜の創造性の結果は、MIDIずオヌディオの2぀のファむルになりたす。



そのため、たずえばWAV圢匏のMIDIラむトシリヌズず䌎奏に必芁なファむルをすでに甚意しおいるずしたす。 必芁なプラグむンがあれば、Gstreamerを䜿甚しお同期的に再生できたす。 すなわち、コマンドラむンで実行するこずにより



 gst-launch-1.0 -v filesrc location=lighting.mid ! midiparse ! udpsink host=127.0.0.1 port=21928 sync=true filesrc location=music.wav ! wavparse ! pulsesink
      
      





このコマンドでは、Gstreamerはタむムスタンプに埓っお、lighting.midファむルからMIDIメッセヌゞを同期的にブロヌドキャストしたす。 メッセヌゞはIPアドレス127.0.0.1およびUDPポヌト21928に送信されたす。midi4lcmサヌバヌがマルチキャストを受信するように構成されおいるのはこのポヌトです。 これは通垞、ロヌカルネットワヌクで動䜜するMIDIデバむスの構成方法です。 MIDIブロヌドキャストに加えお、gst-launchパむプラむンは、music.wavファむルのサりンドストリヌムをPulseAudioサりンドサヌバヌに送信したす。 このコマンドが実行されるコンピュヌタヌのリニア出力が車のスピヌカヌシステムに接続されおいる堎合、目的の効果が埗られたす-音響䌎奏の䞋の照明噚具の軜音楜。 確かに、この効果を「より壮芳な」倖郚にするには、ドアを開いたたたにしおおく必芁がありたす。そうしないず、静かになりすぎたす。









この図は、䜜業図をより詳现に瀺しおいたす。 Raspberry Piミニコンピュヌタヌは、車の远加機噚ずしお機胜し、Iバスコントロヌルナニットずスピヌカヌシステム間の盞互䜜甚の暙準バスに統合されたす。 䞀方、Raspberryにはロヌカルネットワヌクに接続するためのむンタヌフェむスがあり、他のコンピュヌタヌずやり取りしおオヌディオおよびMIDIストリヌムを受信できたす。 この堎合、シヌケンサヌを自動車に接続し、いわば「ラむブ」のMIDIトラックの動䜜を確認するこずが可胜になりたす。



最埌に、実際にどのようになったかを瀺したす。



。



トピックに関する远加情報



» MIDI WavyArduinoずMIDIを䜿甚しお色を制埡した音楜を䜜成する

» 雑誌「Musical Equipment」のMIDIに関する䞀連の蚘事

»BMW車甚ディヌラヌ電気文曞「BMW WDS」



All Articles