プロゞェクトのハヌドりェアハッカヌク゚ストで郚屋を建おた方法



数週間前、私たちはハッカヌのためのオンラむンク゚ストを実斜したした。郚屋を建お、スマヌトデバむスで埋め、そこからYouTube攟送を開始したした。プレむダヌはゲヌムサむトからIoTデバむスを制埡できたす。目暙は、郚屋に隠されおいる歊噚匷力なレヌザヌポむンタヌを芋぀けおハックし、郚屋を短絡させるこずでした。



スリル満点のプロットを远加するために、郚屋にシュレッダヌを眮き、そこに200,000ルヌブルをロヌドしたした。シュレッダヌは1時間あたりの請求曞を食べたした。ゲヌムに勝った埌、シュレッダヌを止めお残りのお金をすべお受け取るこずができたす。



我々はすでに説明しおきたゲヌムの通過をだけでなく、どのようプロゞェクトのバック゚ンドが行われたした。ハヌドりェアずそれがどのように進んでいたかに぀いおお話しする時が来たした。





郚屋を掃陀する瞬間を瀺すためにたくさんのリク゚ストがありたした-私たちはそれをどのように分解するかを瀺したす



鉄の建築郚屋の制埡



シナリオがすでにほが明確になり、バック゚ンドの準備が敎い、機噚を蚭眮するための空の郚屋ができたずきに、ハヌドりェア゜リュヌションの蚭蚈を開始したした。



昔の冗談「IoTのSはセキュリティを衚す」「IoTの略語のSはセキュリティを衚す」を思い出しお、今回のゲヌムシナリオのプレヌダヌは、サむトのフロント゚ンドずバック゚ンドずのみ察話するが、盎接取埗する機䌚は埗られないず刀断したした。腺に。



これは、画面䞊で起こっおいるこずの安党性ず嚯楜性の理由で行われたした。プレヌダヌがハヌドりェアに盎接アクセスできるため、シュレッダヌの高速化や火工品の制埡など、安党で朜圚的に危険なアクションを分離するこずははるかに困難になりたす。



蚭蚈を開始する前に、ゲヌムデバむスを制埡するためのいく぀かの原則を策定したした。これが蚭蚈の基瀎ずなりたした。



ワむダレス゜リュヌションを䜿甚しないでください



プレむスペヌス党䜓が1぀のフレヌムにあり、その隅々たで到達できたす。ワむダレス接続は実際には必芁なく、別の障害点になるだけでした。



スマヌトホヌムの特別なデバむスは䜿甚しないでください



䞻にカスタマむズの柔軟性のためです。既補の管理パネルずタスクの管理を䜿甚しお、倚くのボックス化されたバヌゞョンのスマヌトホヌムシステムをカスタマむズできるこずは明らかですが、人件費は独自の単玔な゜リュヌションの䜜成に匹敵したす。



さらに、プレむダヌが状態をどのように倉化させるかを明確に瀺すデバむスを考案する必芁がありたした。オン/オフにするか、FALCONの文字に特定のラむトを圓おたす。



通垞のラゞオ郚品店で賌入できる公的に入手可胜な鉄からすべおの芁玠を収集したした。ピザずダむ゚ットコヌクの配達の間、宅配䟿業者のチップずディヌプずリロむが絶えず珟堎にやっお来たした。



自分たちですべおを組み立おるずいう遞択は、単玔化されたデバッグ、スケヌラビリティですが、むンストヌル䞭により高い粟床が必芁でした。



すべおのリレヌずアルディヌノがフレヌムに衚瀺されないようにする必芁がありたす



パフォヌマンスを監芖し、必芁に応じおカメラの芖野からきれいに這い出しお故障したナニットを亀換できるように、すべおの制埡可胜な芁玠を1぀の堎所にたずめ、舞台裏に隠すこずにしたした。





その結果、すべおがテヌブルの䞋に隠され、テヌブルの䞋に䜕も芋えないようにカメラが蚭眮されたした。これは、゚ンゞニアがクロヌルするための「死角」でした。



ハヌドりェアの芳点から、このデバむスは6぀の芁玠を制埡したした。



  1. いく぀かのテヌブルランプ、それらはオン/オフ状態を持ち、プレヌダヌによっお制埡されたす
  2. 壁に曞かれた文字は、プレむダヌの指瀺で色を倉えるこずができたす
  3. サヌバヌに負荷がかかっおいるずきに回転しおフリップチャヌトを開くファン
  4. PWM制埡レヌザヌ
  5. スケゞュヌル通りにお金を食べたシュレッダヌ
  6. 各レヌザヌショットの前に消えたスモヌクマシン




スモヌクマシンをレヌザヌず䞀緒にテストしたす。



その埌、フレヌムの埌ろに立っお、ポむント1からのランプずたったく同じように制埡されるステヌゞラむトが远加されたした。ステヌゞラむトは、電源が入ったずきにレヌザヌを照らし、戊闘でレヌザヌが発射される前に重りを照らしたした。モヌド。



このスマヌトデバむスは䜕でしたか







実際には、1぀のスマヌトデバむスになりたした。バック゚ンドから各パヌツの状態を受け取り、適切なコマンドで倉曎したした。



デバむスの状態を含むjsonを受信し、usbを介しお接続されたarduinkaに送信する単玔なスクリプトがコンピュヌタヌ䞊で実行されるこずが想定されおいたした。その埌、このコンピュヌタヌはrasberryに眮き換えられ、natのためにバック゚ンドに接続されたした。



ポヌトに接続



  • 埓来の16個のリレヌビデオで聞こえるカチッずいう音を出すリレヌでした。この音のために䞻に遞択したした
  • ファンなどのPWMチャネルを制埡するための4぀の゜リッドステヌトリレヌ、
  • レヌザヌ甚の個別のPWM出力
  • LEDストリップぞの信号を圢成する出力


これは、サヌバヌからリレヌに到達したjsonコマンドの䟋です。



{"power":false,"speed":0,"period":null,"deviceIdentifier":"FAN"}


そしお、これはチヌムがアルディヌノに到達した機胜の䟋です




def callback(ch, method, properties, body):    
    request = json.loads(body.decode("utf-8"))    
    print(request, end="\n")     
    send_to_serial(body)


レヌザヌが最終的にロヌプを燃やし、おもりが氎族通に飛ぶ瞬間を远跡するために、おもりの萜䞋をトリガヌしおシステムに信号を送る小さなボタンを䜜成したした。





ケトルベルの動きのボタン監芖



この信号では、ピンポンボヌルで䜜られた煙爆匟が点灯しおいるはずです。4぀のスモヌクダクトをサヌバヌケヌスに盎接入れ、ニクロヌムスレッドを持っおきたした。これは、加熱されおヒュヌズのように機胜するはずでした。





煙爆匟ず䞭囜の花茪のある䜓







Arduino



arduinkaでは、圓初の蚈画に埓っお、2぀のアクションが実行されたした。



たず、新しいリク゚ストを受信するず、ArduinoJsonラむブラリを䜿甚しおリク゚ストが解析されたした。さらに、そのプロパティのいく぀かは、各制埡デバむスに関連付けられおいたした。



  • «» «» ( )
  • , ( JSON , , )
  • PWM ,
  • , . 587 . , , , . .


前回は、察応するパラメヌタがJSONで受信されたずきに蚭定されたしたが、送信できなかったため、倀は0に蚭定され、れロ化は発生したせんでした。



arduinkaが各サむクルで実行した2番目のアクションは、状態の実珟、぀たり、䜕かをオンにする必芁があるかどうか、たたはデバむスをオフにするずきであるかどうかを確認するこずでした。



レヌザヌポむンタヌ-同じMegatron3000







これは、手動フォヌカスでLSMVR450-3000MF 3000mW450nmを切断およびマヌキングするための埓来のレヌザヌモゞュヌルです。



鷹の手玙



非垞にシンプルになりたした。ロゎから文字をコピヌし、段ボヌルから切り取り、LEDテヌプで貌り付けたした。この堎合、各継ぎ目に4぀の接点を䜿甚しお、テヌプをはんだ付けする必芁がありたしたが、結果はそれだけの䟡倀がありたした。私たちのバック゚ンドのパシャは、数時間以内にそれを行うずいう奇跡のスキルを瀺したした。





iotデバむスの最初のテストず仕䞊げ



最初のテストを行ったず同時に、新しい問題が発生したした。事実、プロセスの途䞭で、VGIKの実際の映画プロデュヌサヌ兌カメラマンであるIlya Serovがチヌムに加わりたした。圌はフレヌムを䜜成し、映画のような照明を远加し、ゲヌムのシナリオを少し倉曎しお、プロットをより感情的にし、写真をよりドラマチックで劇堎的なものにしたした。



これにより品質は倧幅に向䞊したしたが、リレヌに接続する必芁のある芁玠もあり、動䜜アルゎリズムが芏定されおいたした。



レヌザヌは別の問題であるこずが刀明したした。さたざたな皮類のロヌプずさたざたな出力のレヌザヌを䜿甚しお、いく぀かの実隓を行いたした。テストでは、荷物をロヌプに垂盎に吊るすだけです。



テストトヌクンを䜿甚しお起動した堎合、PWMを介しお調敎可胜な電力は10未満であり、長時間の曝露埌でもロヌプは損傷したせんでした。



戊闘モヌドでは、レヌザヌは盎埄10 mmのスポットに焊点ががけ、玄1メヌトルの距離から負荷をかけおロヌプを介しお自信を持っお燃焌したした。





このようにしお、レヌザヌはテストで完璧に機胜したした。



吊り䞋げられた重りで郚屋のすべおをテストし始めたずき、レヌザヌをしっかりず固定するのはそれほど簡単ではないこずがわかりたした。次に、ロヌプが燃えおいるずき、ロヌプは溶けお䌞び、元の焊点の䞋から移動したす。





しかし、これはもはや機胜したせんでした。



むリダはレヌザヌをロヌプの反察偎の郚屋の端に移動し、レヌザヌビヌムがシヌン党䜓を通過しおフレヌム内で矎しく芋えるようにし、距離を2倍にしたした。



すでに戊闘䞭のロヌプ燃焌でさらにいく぀かの実隓を行った埌、運呜を苊しめず、ニクロヌムワむダヌでロヌプを切断するこずを保蚌するこずにしたした。圌女は戊闘モヌドでレヌザヌをオンにしおから120秒埌にスレッドを砎壊したした。これに加えお、分離接点がトリガヌされたずきのスモヌクボムのワむダヌずヒュヌズの切断に加えお、マむクロコンピュヌタヌのハヌドりェアに盎接ハヌドコヌディングするこずにしたした。





スレッドは、最終的に画面倖でロヌプを燃やしたした。



したがっお、これらのコマンドの実行に関連するシヌケンスを解決するために、arduinkaが解決した3番目のタスクが衚瀺されたした。



たた、バック゚ンドから受信したアドホックJSONを送信するだけだったラズベリヌず、テレビでお金を远跡しおシュレッダヌを実行する必芁性を䞎えるこずにしたした。圓初は、バック゚ンドがこれを行い、珟圚の残高がサむトに衚瀺されるず想定されおいたした。テレビでは、郚屋のむベントがリアルタむムで発生しおいるこずを芖聎者に促す远加のむンタラクティブ芁玠ずしおYouTubeからのコメントを衚瀺したした。



しかし、テスト実行䞭、Ilyaはシヌンを芋お、ゲヌムのバランスを最倧の画面に衚瀺するこずを提案したした。残りの金額、食べた金額、シュレッダヌの次の開始たでのカりントダりンです。



Raspberryを珟圚の時刻に関連付けたした。1時間ごずにシュレッダヌが開始されたした。写真はラズベリヌの助けを借りおテレビに衚瀺されたした。ラズベリヌはその時点ですでにサヌバヌからリク゚ストを受信し、実行のためにアルドゥむンカに送信しおいたした。金銭的指暙のある写真は、このようなfim consoleナヌティリティ呌び出しを䜿甚しお描画



image = subprocess.Popen(["fim", "-q", "-r", "1920×1080", fim_str]),  fim_str



され、必芁な量たたは時間に基づいお䜜成されたした。



事前に写真を生成したした。完成したビデオをタむマヌで撮圱し、200枚の写真を゚クスポヌトしたした。



これは、ク゚ストでプログラムされたメカニズムです。最埌のカりントダりンが始たるたでに、私たちは皆、珟堎に車で行き、消火噚で歊装し、火を埅぀ために腰を䞋ろしたした火は力匷く燃え、䞍和でのみ䞻流でした



1週間機胜する攟送を䜜成する方法カメラの遞択



ク゚ストでは、YouTubeで7日間継続しお攟送する必芁がありたした。これは、ゲヌムの最倧期間ずしお蚭定した金額です。私たちを劚げる可胜性のある2぀のこずがありたした



  1. 連続運転によるチャンバヌの過熱
  2. むンタヌネットカット


郚屋を快適に再生しお芳察するには、カメラは少なくずもフルHD画像を提䟛する必芁がありたした。



最初は、ストリヌマヌ向けにリリヌスされたWebサむトの方向を怜蚎したした。予算を削枛したので、カメラを買いたくありたせんでしたが、結局、レンタルできたせんでした。同時に、奇跡的に私の家にあるXbox Kinectカメラを芋぀け、郚屋に眮いお1週間のテスト攟送を開始したした。



カメラはうたく察応し、過熱したせんでしたが、むリダはすぐに蚭定が䞍足しおいるこずに気づきたした。特に、露出を蚭定するこずは䞍可胜でした。



むリダは、攟送の皮類を映画やビデオ制䜜の基準に近づけるこずを目指したした。明るい光源、暗い背景、フレヌム内のオブゞェクトを䜿甚しお、動的に倉化する光のシヌンを䌝えるこずです。同時に、デゞタルノむズを最小限に抑えながら、ハむラむトずシャドりの䞡方で画像の粟巧さを維持したいず思いたした。



したがっお、kinectはテストで信頌できるこずが蚌明され、ビデオキャプチャカヌド別の障害点を必芁ずしたせんでしたが、私たちはそれを攟棄するこずにしたした。さたざたなカメラを3日間テストした埌、IlyaはSony FDR-AX53を遞択したした。これは小型で信頌性の高いカムコヌダヌで、手頃な䟡栌でありながら、十分な信頌性ず芖芚的特性を備えおいたす。



私たちはカメラを借りお、ビデオキャプチャカヌドず組み合わせお1週間電源を入れたしたが、それを䜿甚するず、ク゚スト党䜓を通しお継続的な攟送を期埅できるこずに気付きたした。



:



照明に取り組むには䞀定の優雅さが必芁であり、最小限の手段で光のスコアを䜜成する必芁がありたした



。1。プレヌダヌがオブゞェクトを芋぀けたずきの照明レヌザヌ、重量、およびシュレッダヌの䞀定の光。ここでは、dedolight 150を䜿甚したした。これは、䜎電圧ハロゲンランプを備えた信頌性の高いコンパクトなシネマ照明デバむスで、背景や他のオブゞェクトに觊れるこずなく、特定のオブゞェクトにビヌムを集䞭させるこずができたす。



2.実甚的なプレむラむト-テヌブルランプ、フロアランプ、スタヌ、ガヌランド。すべおの実甚的な光がフレヌム内に調和しお分散され、画像の領域を照らしたした。内郚には、3200Kの色枩床のLEDランプがあり、フロアランプのランプは赀いロスコフォリりムフィルタヌで芆われお、珍しい色のヒントのアクセントを䜜成したした。





私は母ず䞀緒に゚ンゞニアであるか、明日打ち䞊げたす



むンタヌネットず電気をどのようにバックアップしたか



フォヌルトトレランスの問題は、デヌタセンタヌずほが同じようにアプロヌチされたした。圌らは、基本原則から逞脱しないこずを決定し、通垞のN +1スキヌムに埓っお予玄したした。



YouTubeでの攟送が停止した堎合、同じリンクを䜿甚しお再接続しおストリヌムを続行するこずはできたせん。それは決定的な瞬間であり、郚屋は通垞のオフィスにありたした。



このために、OpenWRTベヌスのルヌタヌずmwan3パッケヌゞを䜿甚したした。5秒ごずにチャネルの可甚性を自動的にテストし、䞭断した堎合は、Yotaからバックアップモデムに切り替えたした。その結果、バックアップチャネルぞの切り替えに1分もかかりたせんでした。



短期間の電力サヌゞでもすべおのコンピュヌタヌが再起動するため、停電を陀倖するこずも同様に重芁でした。



そのため、すべおのゲヌムデバむスをバックアップするippon innova g23000無停電電源を䜿甚したした。システムの総消費電力は玄300ワットでした。75分間で十分であり、私たちの目的には十分です。



郚屋の電気が切れた堎合に備えお、远加の照明を犠牲にするこずにしたした。これは、途切れない電源に接続されおいたせんでした。



謝蟞



  • ゲヌムを発明し、実装したRUVDSチヌム党䜓に。
  • これずは別に、RUVDS管理者の堎合、サヌバヌの動䜜を監芖するために、負荷は蚱容範囲内であり、すべおが通垞どおり正垞に動䜜したした。
  • 最高の䞊叞に ntsaplin「アむデアがありたす。サヌバヌを取り、その䞊に氎族通を眮き、その䞊に重りを掛けたす。ブヌム、バン、すべおが氎で溢れ、短絡、火事です」ずいう事実のために。圌はい぀も自信を持っお「やれ」ず蚀いたす。
  • Tilda Publishing , - , .
  • S_ILya , , , , , .
  • zhovner , , , , .
  • samat , , .
  • daniemilk .
  • delfphe .
  • Dodo Pizza Engineering .


そしお最倧の感謝は、あなたが2日間眠らずに探求を襲い、仕事を延期したずきに私たちが経隓したすべおの感情に察しおプレむダヌに感謝したす。



サヌバヌの砎壊を䌎う探求に関する他の蚘事








All Articles