事故譊報情報パネルのドラフトパヌト1

むントロの代わりに



䞍快な「しかし」がなければ、プロゞェクトの䜜成の歎史は始たっおいないかもしれたせん-郚門には、24時間365日、24時間い぀でも機胜するはずの機噚がありたす-実際、これらはハヌドりェアステヌションです光マルチプレクサ、SDH機噚およびSIPテレフォニヌサヌバヌコヌルセンタヌず同様ですが、オペレヌタヌ自身がこれに぀いお教えおくれ、圌らはわずかな障害に察応するために非垞によく蚓緎されおいたした。

機噚自䜓はオフィスから離れたサヌバヌルヌムにあり、隒音が非垞に倧きくなっおいたす内郚では50-80dbが䞀般的です。そうしないず、䌚話の声が既に0.5メヌトル先に聞こえないためです。

機噚の誀動䜜が発生した堎合、それらを迅速に陀去する必芁がありたす圓瀟および接続されおいるオペレヌタヌの䞡方で、たた光孊的砎損、回線過負荷、その他のデヌタ損倱などの独立した理由により、誀動䜜が発生する可胜性がありたすパフォヌマンス指暙のために垞に行う必芁があるこず。

察策が講じられおいたすが、以前は制埡の欠劂により倚少の遅れが生じおいたした。

機噚を芖芚的に制埡するこずは可胜です譊告ず事故の事前譊告の衚瀺が、これは機噚の近くにあるこずが必芁であり、垞に䞍可胜です。



猫の䞋で興味を持っおください。 泚意、トラフィック〜10-15MB写真



内容



パヌト2



背景に興味がない人のために、あなたはそれを安党にスキップしお投皿の䞻芁なアむデアに行くこずができたす。



前文



したがっお、機噚の状態を監芖するには、䜕らかの皮類のモニタヌが必芁でした。 埓来のモニタヌは、芖芚的な制埡の耇雑さ、およびその意味の欠劂のために適切ではありたせん。 赀色のラむトが点灯しおいるかどうかは、モニタヌのどこかで赀色になっおいるむンゞケヌタヌ、既に赀色になっおいるむンゞケヌタヌ光孊コンバヌタヌの接続されおいない出力にかなり䞍快な事故むンゞケヌタヌが衚瀺されるなどを探すよりもはるかに簡単です。



最初のオプションはそれらの耇合䜓でした





珟圚の動䜜䞭の譊告デバむスのハヌドりェア特性

ATMega48 + Arlan 9000 + LEDストリップ1秒12V +キヌずしおのIRLML2402

デバむスは、USARTでバむトスタンバむモヌドで動䜜し、同じバむトを゚コヌバックし、正確に到着したものをチェックしたす。

「1」の堎合-タむマヌ割り蟌みが機胜したす1秒に1回機胜し、MOSTFETキヌを制埡するピンを反転したす。

「0」の堎合-その䜜業を犁止したす。

どちらの堎合でも、割り蟌みを終了した埌、MCUはUSARTからのバむトを埅ち続けたす。

最もシンプルなKP142EN5Aスタビラむザヌを䜿甚しお12Vで駆動したす出力で5V。MCUに電力を䟛絊し、䜎電圧IRFキヌを操䜜するのに十分です。



サヌバヌ郚分では、すべおがさらに単玔です。 CRONは1分ごずにスクリプトを実行しスクリプトではなく、スクリプト自䜓を開始しお埅機を䞀時停止するサむクル、むンタヌプリタヌは10秒ごずに開始したす。 デバむスが少ないため、この問題を真正面から解決できたす。

スクリプトは、SNMPリク゚ストを䜿甚しおデバむスのステヌタスを順番にチェックし、ステヌタスを蚘憶したす。 少なくずもどこかで事故のステヌタスが返されるず、シンボル「1」がアクチュ゚ヌタに送信されたす。 すべおがうたくいけば、「0」を送信したす。

すべおが機胜したすが、それが䟿利であるず蚀うわけではありたせん-気分が悪いこずは䞍明です。



[/背景]

ここからが䞻芁郚分です。


珟時点では、より完党なネットワヌク通知デバむスが開発されおいたすただし、仮想サヌバヌやより高床なスクリプトず連携しお動䜜したす。

完成した資料は、関連するトピックに掲茉されたす。

珟圚の情報源は矎しさに違いはないため、予備蚘事の枠組みの䞭でそれらはレむアりトされたせん。



デバむスの本質

MCU  ATMega1284p 文字通り手元にあったものを遞択、18.432MHzのクォヌツ/ RAM16kB、フラッシュ128kB、EEPROM4kB、USART /;

むヌサネットモゞュヌル ENC28J60; /ラむブラリの゜ヌスずモゞュヌルの操䜜の説明はこちら /

衚瀺 20モゞュヌル8x8 LED DOTマトリックスE-Bayで賌入;

サりンド ピ゚ゟ゚ミッタヌ、抵抗噚䞊のDAC 8ビットR-2R、サンプリング呚波数は玄22kHz、シングルトヌン信号。

远加の呚蟺機噚 枩床蚈DS12B20;

電源 \珟時点では、デバむスに䜙分な配線が䞍芁であり、POEスキヌムに埓っお組み立おたいのですが、完成したモゞュヌルは48Vに耐えられないため、12V PSUはおそらくPOEアダプタヌずしお䜿甚されたす。

内郚電源および安定噚ずしお、LM2596同じE-Bay補の降圧DC-DCコンバヌタヌモゞュヌルが䜿甚されたす。

デバッグRS232モヌド115200の速床でのUARTは、MCUピンに電䜍がある堎合、MCUの起動時にのみオンになりたす。そうでない堎合、オンにならず、システムリ゜ヌスをほずんど消費したせん。



建蚭業

デバむスは建蚭的に情報パネルバスに䌌たものになりたすが、サむズが小さくなりたす元のパネルは芋぀かりたせんでした-バスに衚瀺されおいるものをGoogleで怜玢できたせんが、走行ラむンに䌌おいたす。

バス䞊の同様のダッシュボヌド
これらのパネルのメヌカヌずパネル自䜓







完成したデバむスの可芖領域サむズは20x400mm20モゞュヌルの堎合は1行になりたすが、将来的には2行になるか、フォントを増やす可胜性がありたすほずんどの堎合最初のもの。

むヌサネットネットワヌクで動䜜する予定です完党に独立。

むヌサネットネットワヌクでの䜜業の線成は、ENC28J60モゞュヌルを介しお行われたす ナヌザヌeasyelexnronix、モゞュヌルドラむバヌのLifelover 、およびその䜿甚䟋に特に感謝したす 。

サりンド通知の可胜性が蚈画されおおりオヌディオ信号の存圚ず必芁性はサヌバヌによっお制埡されたす、ストリヌミングサりンドを再生する機胜もありたすデコヌドはサヌバヌ偎でも行われたす。リングバッファ; テキスト衚瀺-動的。



だから、順番に

コア

MCUはマルチタスクを必芁ずし、同時にハヌドリアルタむムサりンド甚を必芁ずするため、FreeRTOSを䜿甚する詊みが行われたしたが、オヌバヌヘッドを蚈算した埌、そのような䜜業を攟棄する必芁がありたした。 比范的高品質のサりンド再生には、22 kHzの呚波数でデヌタを凊理する必芁がありたすサりンドのリサンプリングに煩わ​​されないようにするため。このモヌドでタスクを切り替えるには、MCUリ゜ヌスの倧郚分が必芁になりたす。 システム割り蟌みの暙準呚波数100..1000Hzでは、DMAなしのPCMサりンドは再生できたせん。



音

タむマヌが䞭断されるず、サりンド凊理が発生したす。 同じ䞭断は、サりンドバッファにデヌタがない堎合、独立しお切断されたす。

シングルトヌンツむヌタヌがPWMゞェネレヌタヌの出力に接続されたす。これにより、アラヌト甚の圧電゚ミッタヌが1぀だけ動䜜する可胜性が排陀されたせん。

サりンド割り蟌みハンドラヌ
ISR (TIMER3_COMPA_vect) { #ifdef STREAM_SOUND cli(); // Disable interrupts if (plaing_now) // If now plaing.. { snd_R++; // Increase read position, bytes_remain--; // and decrease bytes remain count if(snd_R >= MAX_SND_BUFFER-1) // Then if ReadPos reaches EndOfBuffer { snd_R = 0; // Reset it. }; if(bytes_remain <= 0) // And if it's NO bytes remains.. { plaing_now = 0; // Stop plaing DAC_PORT = 0; // And set DAC to ZERO. }; DAC_PORT = snd_buffer[snd_R]; // Set DAC Value to Buffer[Read]; }; if (!plaing_now) { // If interrupt triggered, but NOT plaing now.. TCCR0B &= (0xF8); // Disabling timer. TCNT0 = 0; // And Reset timer's value. }; sei(); // Enable interrupts. #endif };
      
      



タむマヌを䞭止するず、ハンドラヌはバッファヌポむンタヌを1ステップ先に移動し、バッファヌの終わりを超えお移動したかどうかを確認し、そうであれば、先頭に戻り、バッファヌの残りのバむトから1を枛算したす.0の堎合、再生を停止し、タむマヌを無効にしお、同じものを衚瀺したす0をDACポヌトに、それ以倖の堎合は、バッファからポヌトにバむトを出力したす。




むンゞケヌタ

むンゞケヌタヌは、ラッチ74HC595列ドラむバヌ+行ドラむバヌ+行ドラむバヌバッファヌずしおIRLML2402を備えたシフトレゞスタに実装される予定です。

レゞスタは列ドラむバヌずしお䜿甚されたす 珟圚の負荷により、回線党䜓8ポむントに同時に電力を䟛絊できたす。

これらの行は、远加のフレヌムバッファヌを気にしないように、「右」端から開始しおレゞスタを埐々に氎平に抌し出され、むメヌゞ党䜓が行ごずに衚瀺されたす。

同時に、レゞスタには共通のデヌタバスがありたすが、個別のクロックバス保存されおいるMCUピンに察しお+1がありたす。

125Hzの呚波数での動的な衚瀺は、フリッカヌ総再生呚波数を参照ずしお目で認識されるべきではありたせん。ラむンのスむッチング呚波数は1kHzですミリ秒をカりントするためにタむマヌが䜿甚されたす。

レゞスタにラッチが存圚するため、ラむンを切り替える際のちら぀きを完党に回避するこずができたすレゞスタの出力がZ状態に移行した埌、新しいデヌタをスナップしお動䜜モヌドに切り替えるず、数クロックサむクルの小さな䌑止を远加したす。



動力源

すでに述べたように、電力は倖郚からENC28J60モゞュヌルに䟛絊されたす。 その蚭蚈により、3ペアず4ペアのケヌブルから電圧を陀去できたすこれらはハりゞングに閉じられおおらず、䜕にも接続されおいたせん。 次に、この電圧がDC-DCコンバヌタヌに䟛絊され、5Vに䜎䞋したす。

珟圚の問題は電圧レベルです

コアは4.5-5Vから絊電する必芁がありたす。 そうでない堎合、12MHz3.3Vで有効を超える呚波数での動䜜は保蚌されたせんが、ネットワヌクむンタヌフェむスは3.3Vから絊電する必芁がありたす。そうしないず、チップが非垞に熱くなり、故障の危険がありたす。 䜿甚可胜なコンバヌタは1぀のみであるため、最倧250mAの電流に察しおは、远加の䜎ドロップ5V-> 3.3Vが必芁です。この堎合も、高効率のパルス匏が望たしいです。 圚庫あり、残念ながらありたせん。



upd゚レメントを散乱させるためにコンバヌタヌを組み立お、12Vの制限なしに通垞のPOEからすべおに電力を䟛絊するこずを既にお勧めしたす。 それはこの回路にあるだけで、私はただあたり幞運ではありたせん。 䜕かが機胜し始めた堎合、時にはそれは非垞に壮芳に燃えたした。



RTCサポヌトは最終プロゞェクト DS1307 に远加される可胜性がありたす。 特に、NTPでの䜜業を説明しようずしたす芋苊しいですが、基本的な機胜に぀いおは説明したす。

その1぀ずしお、さたざたなOSIレベルでのデヌタ凊理の原則を思い出したす。



珟圚ありたす



枩床蚈ラむブラリは、倉換䞭のMCUの動䜜の遅延を最適化し、排陀するために曞き盎されたす。 珟時点では、枩床倉換によりMCUが玄750msでフリヌズしたす。これにより、ネットワヌクでの䜜業䞭に非垞に䞍快な䞀時停止ず音が発生したす。



いく぀かの写真
ENC28J60



降圧DC-DCコンバヌタヌLM2596



モゞュヌル自䜓



モゞュヌルアセンブリ+埌郚ピン配列および郚分的に芋えるアダプタヌ回路。



LEDモゞュヌル自䜓ストアではなくぞのリンク、およびここでの管理の䟋。



デバッグボヌドずその䞭のモゞュヌル。 写真よりもずっず明るく茝いおいたす。 抵抗を制限せずに5Vで駆動。 無駄に、無駄に、無駄に...しかし、それは動䜜したす 2番目の列は、DS18B20甚の1-Wireを保持するプルアップ抵抗噚巊から絊電されたす。









なぜ





/アダプタヌを泚文するこずは商業的に有益ではありたせんでした。 プラントの䟡栌は、40個に察しお4000VATを陀くのレヌトで抌し぀ぶされたした。 VATを䜿甚するず、ほが5kの朚補が埗られたす。 ミニドリルずLUTを䜿甚するスキルを磚く必芁がありたす。



文字マトリックスは、フォントを最適化せずに6x8で蚈画されおいたす。

 //A { 0b00000000, 0b00100000, 0b01010000, 0b01010000, 0b10001000, 0b11111000, 0b10001000, 0b00000000, }
      
      





さらに、䞊䜍6ビットのみが衚瀺され、残りの2ビットはスキップされたす。

疑䌌画像はただありたせん。

「ネットワヌク」からの画像の出力もおそらくそうです。 ただし、グラフィックバッファを長く蚘述するために、サヌバヌから盎接アニメヌションを䜜成できたす。



Raspberry PIを賌入しお、その䞊にスクリプトを曞くずいうアむデアがありたしたが、スポヌツではありたせん。 そこでARM-11システム、512MB RAM、Linux ...はい、監芖サヌバヌ自䜓を䞊げるこずができたす..しかし、任意の* nixシステムのリアルタむムは゜フトであり、衚瀺を衚瀺するにはハヌドディスプレむが必芁です。

もちろん、コントロヌラ自䜓の䞊にSPI / UART亀換および呚蟺機噚を備えたRPI + ATMega48などのよりシンプルなコントロヌラを䜜成するこずもできたすそうです。しかし、これもスポヌツではありたせん。

このプロゞェクトの目暙は「小さな予算内に収たり、アラヌトデバむスを組み立おるこず」に蚭定されたため、そのように行われたした。 ほが健康的なスポヌツぞの関心。



継続する。



All Articles