Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem
Pirms pāris nedēļām pavadÄ«jām tieÅ”saistes meklējumi hakeriem: viņi uzcēla istabu, kuru piepildÄ«ja ar viedierÄ«cēm un no tās uzsāka YouTube pārraidi. Spēlētāji varēja kontrolēt IoT ierÄ«ces no spēles vietnes; MērÄ·is bija atrast telpā paslēptu ieroci (jaudÄ«gu lāzera rādÄ«tāju), uzlauzt to un izraisÄ«t telpā Ä«ssavienojumu.

Lai papildinātu darbÄ«bu, mēs ievietojām telpā smalcinātāju, kurā ievietojām 200 000 rubļu: smalcinātājs ēda vienu rēķinu stundā. Pēc spēles uzvaras jÅ«s varētu apturēt smalcinātāju un paņemt visu atlikuÅ”o naudu.

Mēs jau esam stāstÄ«juÅ”i iziet cauriun kā tika izveidots aizmugure projektu. Ir pienācis laiks runāt par aparatÅ«ru un to, kā tā tika samontēta.


Bija ļoti daudz lūgumu parādīt telpas uzkopŔanas brīdi - rādām, kā izjaucam

Aparatūras arhitektūra: telpas kontrole

Mēs sākām izstrādāt aparatÅ«ras risinājumu, kad scenārijs jau bija aptuveni izprasts, aizmugure bija gatava un mums bija tukÅ”a telpa, kas bija gatava aprÄ«kojuma uzstādÄ«Å”anai.

Atceroties veco joku ā€œThe S in IoT nozÄ«mē Securityā€ (ā€œBurts S in the IoT abreviaration apzÄ«mē Securityā€), nolēmām, ka Å”oreiz spēles scenārija spēlētāji mijiedarbojas tikai ar priekÅ”galu un aizmuguri. no vietnes, bet nesaņem iespēju nokļūt tieÅ”i pie gludekļa.

Tas tika darÄ«ts droŔības un ekrānā notiekoŔā skata dēļ: ja spēlētājiem bÅ«tu tieÅ”a piekļuve aparatÅ«rai, bÅ«tu daudz grÅ«tāk izolēt droÅ”as un potenciāli bÄ«stamas darbÄ«bas, piemēram, ātru smalcinātāja ritināŔanu vai kontroli. pirotehnika.

Pirms dizaina uzsākÅ”anas mēs formulējām vairākus spēļu ierīču vadÄ«bas principus, kas kļuva par dizaina pamatu:

Neizmantojiet bezvadu risinājumus

Visa spēles telpa ir vienā kadrā, kura katrs stÅ«ris ir sasniedzams. Nebija reālas vajadzÄ«bas pēc bezvadu savienojumiem, un tie vienkārÅ”i kļūtu par vēl vienu neveiksmes punktu.

Neizmantojiet nekādas īpaŔas viedās mājas ierīces

Galvenokārt pielāgoÅ”anas elastÄ«bas labad. Ir skaidrs, ka mēs varam pielāgot daudzas viedās mājas sistēmu kastes versijas ar gatavu administratoru un kontroli mÅ«su uzdevumam, taču darbaspēka izmaksas bÅ«tu salÄ«dzināmas ar sava vienkārŔā risinājuma izveidi.

Turklāt bija jāizdomā ierÄ«ces, kas skaidri parādÄ«tu, ka tieÅ”i spēlētāji mainÄ«ja tā stāvokli: ieslēdza/izslēdza vai uzlika konkrētu gaismiņu uz burtiem FALCON.

Mēs apkopojām visus elementus no publiski pieejamās aparatūras, ko var iegādāties parastajos radio detaļu veikalos: starp picas un diētiskās kolas piegādi vietnei pastāvīgi ieradās kurjeri Chip and Dip un Leroy.

Izvēle visu salikt paÅ”iem vienkārÅ”oja atkļūdoÅ”anu, mērogojamÄ«bu, tomēr prasÄ«ja lielāku piesardzÄ«bu instalÄ“Å”anas laikā.

Visiem relejiem un arudīnam nevajadzētu būt redzamiem kadrā

Nolēmām visus vadāmos elementus salikt vienuviet un paslēpt aizkulisēs, lai varētu sekot lÄ«dzi to darbÄ«bai un nepiecieÅ”amÄ«bas gadÄ«jumā uzmanÄ«gi izrāpot no kameras redzesloka un nomainÄ«t bojāto bloku.

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem
Galu galā viss tika paslēpts zem galda, un kamera tika uzstādÄ«ta tā, ka zem galda nekas nebija redzams. Å Ä« bija mÅ«su ā€œaklā vietaā€, lai inženieris varētu piezagties

Rezultātā mēs faktiski ieguvām vienu viedierÄ«ci: tā saņēma katras savas daļas stāvokli no aizmugursistēmas un mainÄ«ja to ar atbilstoÅ”u komandu.

No aparatÅ«ras ievieÅ”anas viedokļa Ŕī ierÄ«ce kontrolēja 6 elementus:

  1. Vairākas galda lampas, tām ir ieslēgts/izslēgts stāvoklis un tās kontrolē spēlētāji
  2. Burti uz sienas, tie var mainīt savu krāsu pēc spēlētāju pavēles
  3. Ventilatori, kas griežas un atver tāfeli, kad serveris ir noslogots
  4. Lāzera vadība caur PWM
  5. Smalcinātājs, kurÅ” ēda naudu pēc grafika
  6. DÅ«mu maŔīna, kas noslēdzās pirms katra lāzera Ŕāviena


Dūmu maŔīnas pārbaude ar lāzeru

Vēlāk tika pievienota skatuves gaisma, kas stāvēja aiz rāmja un tika vadÄ«ta tieÅ”i tāpat kā lampas no punkta 1. Skatuves gaisma darbojās divos gadÄ«jumos: tā apgaismoja lāzeru, kad tam tika pieslēgta jauda, ā€‹ā€‹un tas apgaismoja svaru pirms lāzers tika palaists kaujas režīmā.

Kas bija Ŕī viedierīce?

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem

Visu ceļu Yura, mÅ«su aparatÅ«ras puisis, centās nesarežģīt lietas un izdomāt vienkārŔāko, minimālistiskāko iespējamo risinājumu.

Tika pieņemts, ka VPS vienkārÅ”i palaist skriptu, kas saņem json ar ierīču stāvokli un nosÅ«ta to uz Arduino, kas savienots, izmantojot USB.

Savienots ar portiem:

  • 16 parastie stafeti (tie bija tie, kas radÄ«ja klikŔķu troksni, kas bija dzirdams video. Tos galvenokārt izvēlējāmies Ŕīs skaņas dēļ)
  • 4 cietvielu releji PWM kanālu, piemēram, ventilatoru, vadÄ«bai,
  • atseviŔķa PWM izeja lāzeram
  • izeja, kas Ä£enerē signālu uz LED lenti

Šeit ir piemērs json komandai, kas relejam tika nosūtīta no servera

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

Un Å”is ir funkcijas piemērs, ar kuru komanda nokļuva Arudino

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

Lai izsekotu brīdim, kad lāzers beidzot izdeg cauri virvei un svars uzlido uz akvāriju, mēs izveidojām nelielu pogu, kas nostrādāja, kad svars kritās un deva signālu sistēmai.

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem
Poga svara kustības uzraudzībai

Pēc Ŕī signāla vajadzēja iedegties dÅ«mu bumbām, kas izgatavotas no galda tenisa bumbiņām. Ielikām 4 dÅ«mu lāpas tieÅ”i servera korpusā un savienojām ar nihroma vÄ«tni, kam vajadzēja uzkarst un darboties kā aizdedzei.

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem
Mājoklis ar dūmu bumbām un ķīnieŔu vītni

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem

Arduino

Saskaņā ar sākotnējo plānu Arduino notika divas darbības.

Pirmkārt, kad tika saņemts jauns pieprasījums, pieprasījums tika parsēts, izmantojot ArduinoJson bibliotēku. Pēc tam katra pārvaldītā ierīce tika saskaņota ar diviem tās rekvizītiem.

  • baroÅ”anas stāvoklis "ieslēgts" vai "izslēgts" (standarta stāvoklis)
  • periods, uz kuru ierÄ«ce ir ieslēgta - laiks mikrosekundēs no tāfeles sākuma, kad ir pienācis laiks to izslēgt, tas ir, panākt stāvokli lÄ«dz standartam

Pēdējo reizi tas tika iestatÄ«ts, saņemot atbilstoÅ”o parametru JSON, bet to nevarēja pārsÅ«tÄ«t, tad vērtÄ«ba tika iestatÄ«ta uz 0 un atiestatÄ«Å”ana nenotika.

Otrā darbÄ«ba, ko Arduino veica katrā ciklā, bija stāvokļu atjaunināŔana, tas ir, pārbaude, vai ir nepiecieÅ”ams kaut ko ieslēgt, vai ir pienācis laiks izslēgt kādu ierÄ«ci.

Lāzera rādītājs - tas pats Megatron 3000

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem

Å is ir parasts LSMVR450-3000MF 3000mW 450nm manuālā fokusa lāzergrieÅ”anas un marÄ·Ä“Å”anas modulis.

Burti Falcon

Tie tika izgatavoti ļoti vienkārÅ”i - mēs vienkārÅ”i nokopējām burtus no logotipa, izgriezām tos no kartona un pēc tam pārklājām ar LED lenti. Å ajā gadÄ«jumā nācās salodēt kopā lentes gabaliņus, uz katras Å”uves 4 kontakti, bet rezultāts bija tā vērts. MÅ«su aizmugure Pasha parādÄ«ja meistarÄ«bas brÄ«numus, paveicot to mazāk nekā dažu stundu laikā.

Pirmie iot ierīces testi un apdare

Veicām pirmos testus un pie mums pienāca jauni uzdevumi. Fakts ir tāds, ka procesa vidÅ« komandai pievienojās Ä«sts filmu producents un operators no VGIK Iļja Serovs - viņŔ uzbÅ«vēja kadru, pievienoja papildu kinoteātra apgaismojumu un nedaudz mainÄ«ja spēles scenāriju, lai padarÄ«tu sižetu emocionālāku, un aina dramatiskāka un teatrālāka.

Tas būtiski paaugstināja kvalitāti, bet parādījās elementi, kas arī bija jāpievieno relejam un noteiktajam darbības algoritmam.

Vēl viena problēma bija lāzers: mēs veicām vairākus eksperimentus ar dažāda veida virvēm un dažādu jaudu lāzeriem. Pārbaudei mēs vienkārÅ”i pakarinājām svaru vertikāli uz virves.

Skrienot ar testa marķieri, caur PWM regulētā jauda bija mazāka par 10% un nesabojāja virvi pat ar ilgu ekspozīciju.

Cīņas režīmā lāzers tika defokusēts lÄ«dz aptuveni 10 mm diametra vietai un pārliecinoÅ”i izdegās cauri virvei ar slodzi no aptuveni metra attāluma.

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem
Tātad lāzers testos strādāja perfekti

Kad sākām visu pārbaudÄ«t tieÅ”i telpā uz piekārta svara, izrādÄ«jās, ka droÅ”i nostiprināt lāzeru nav nemaz tik vienkārÅ”i. Tad, kad virve deg, tā kÅ«st, izstiepjas un iziet no sākotnējā fokusa.

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem
Bet tas vairs nedarbojās tā: virve nobīdījās

Iļja pārvietoja lāzeru telpas galā pretī virvei, lai lāzera stars iet pāri visai skatuvei un skaisti izskatītos kadrā, kas dubultoja attālumu.

Veicot vēl vairākus eksperimentus ar virves dedzināŔanu jau kaujā, nolēmām nespÄ«dināt likteni un nodroÅ”ināt virves nogrieÅ”anu, izmantojot nihroma stiepli. Tas iznÄ«cināja pavedienu 120 sekundes pēc lāzera ieslēgÅ”anas kaujas režīmā. Mēs nolēmām to kodēt, kā arÄ« vadu atvienoÅ”anu un dÅ«mu bumbu aizdegÅ”anos, kad tiek aktivizēts atdalÄ«Å”anas kontakts, tieÅ”i mikrokontrollera aparatÅ«rā.

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem
Vītne, kas galu galā izdega cauri virvei ārpus ekrāna

Tādējādi parādÄ«jās treÅ”ais uzdevums, ko Arduino atrisināja - izstrādāt secÄ«bas, kas saistÄ«tas ar Å”o komandu izpildi.

Mēs arÄ« nolēmām dot Arduino vajadzÄ«bu skaitÄ«t naudu televizorā un palaist smalcinātāju. Sākotnēji tika pieņemts, ka to darÄ«s aizmugure un mājaslapā bÅ«s redzams paÅ”reizējais atlikums, un televizorā kā papildu interaktÄ«vu elementu rādÄ«sim komentārus no YouTube, stāstot skatÄ«tājiem, ka notikumi telpā notiek pa Ä«stam. laiks.

Bet testa laikā Iļja aplūkoja ainu un ieteica parādīt spēles bilanci lielākajā ekrānā: cik daudz naudas vēl ir palicis, cik daudz ir apēsts un laika atskaiti līdz nākamajam smalcinātāja startam.

Mēs saistÄ«jām Arduino ar paÅ”reizējo laiku: katru pilnu stundu tika iedarbināts smalcinātājs. Attēls tika parādÄ«ts televizorā, izmantojot rasberry, kas tajā brÄ«dÄ« jau saņēma pieprasÄ«jumus no servera un nosÅ«tÄ«ja tos uz arduino izpildei. Attēli ar naudas rādÄ«tājiem tika uzzÄ«mēti, nosaucot konsoles utilÄ«tu fim kaut ko lÄ«dzÄ«gu Å”im

image = subprocess.Popen(["fim", "-q", "-r", "1920Ɨ1080", fim_str]), Š³Š“Šµ fim_str

Un tas tika veidots, pamatojoties uz nepiecieŔamo daudzumu vai laiku.

Bildes Ä£enerējām iepriekÅ”: vienkārÅ”i uzņēmām gatavu video ar taimeri un eksportējām 200 bildes.

Å Ä« ir mehānika, kas tika ieprogrammēta krustā. BrÄ«dÄ«, kad sākās pēdējā laika atskaite, mēs visi devāmies uz vietu, bruņojāmies ar ugunsdzÄ“Å”amajiem aparātiem un apsēdāmies, lai gaidÄ«tu ugunsgrēku (kas nesaskaņās ritēja tikai pilnā sparā)

Kā izveidot raidījumu, kas darbojas nedēļu: kameras izvēle

Lai veiktu uzdevumu, mums bija nepiecieÅ”ama nepārtraukta apraide pakalpojumā YouTube 7 dienas ā€” tieÅ”i tādu mēs noteicām kā maksimālo spēles ilgumu. Bija divas lietas, kas mÅ«s varēja apturēt:

  1. Kameras pārkarÅ”ana nepārtrauktas darbÄ«bas dēļ
  2. Interneta pārtraukums

Kamerai bija jānodroÅ”ina vismaz Full HD attēls, lai telpā bÅ«tu ērti spēlēt un skatÄ«ties.

Sākotnēji mēs skatÄ«jāmies uz tÄ«mekļa kamerām, kas tiek ražotas straumētājiem. Mēs samazinājām savu budžetu, tāpēc negribējām pirkt kameru, bet, kā izrādÄ«jās, viņi to nenomā. Tajā paŔā brÄ«dÄ« mēs brÄ«numainā kārtā atradām manā mājā guļoÅ”u Xbox Kinect kameru, uzstādÄ«jām to manā istabā un uzsākām testa pārraidi nedēļas garumā.

Kamera darbojās labi un nepārkarsa, taču Iļja gandrÄ«z uzreiz pamanÄ«ja, ka tai trÅ«kst iestatÄ«jumu, jo Ä«paÅ”i nebija iespējams iestatÄ«t ekspozÄ«ciju.

Iļja centās tuvināt apraides veidu filmu un video producÄ“Å”anas standartiem: nodot dinamiski mainÄ«gu gaismas ainu ar spilgtiem gaismas avotiem, aptumÅ”otu fonu un objektiem kadrā. Tajā paŔā laikā vēlējos saglabāt attēla izsmalcinātÄ«bu gan izgaismotajos, gan ēnās, ar minimālu digitālo troksni.

Tāpēc, lai gan Kinect testos izrādÄ«jās uzticams un tam nebija nepiecieÅ”ama video uzņemÅ”anas karte (vēl viens neveiksmes punkts), mēs nolēmām no tā atteikties. Pēc trÄ«s dienu ilgas dažādu kameru testÄ“Å”anas Iļja izvēlējās Sony FDR-AX53 ā€“ mazu, uzticamu videokameru, kuru ir lēti Ä«rēt, taču tajā paŔā laikā tai ir pietiekama uzticamÄ«ba un vizuālās Ä«paŔības.

Mēs noÄ«rējām kameru, ieslēdzām to uz nedēļu kopā ar video uzņemÅ”anas karti un sapratām, ka ar to mēs varam paļauties uz nepārtrauktu apraidi visu uzdevumu laikā.

Filmas veidoŔana: skatuves iestudēŔana un apgaismojums

Darbs pie apgaismojuma prasīja zināmu pieklājību; mums vajadzēja izveidot apgaismojuma partitūru ar minimāliem līdzekļiem:

1. Objektu apgaismojums, kad spēlētāji tos atrod (lāzers, svars), kā arÄ« pastāvÄ«ga smalcinātāja gaisma. Å eit izmantojām dedolight 150 ā€“ uzticamas un kompaktas plēves apgaismes ierÄ«ces ar zemsprieguma halogēna lampām, kas ļauj fokusēt staru uz konkrētu objektu, neietekmējot fonu un citus objektus.

2. Praktiska rotaļu gaisma - galda lampa, stāvlampa, zvaigzne, vÄ«tne. Visa praktiskā gaisma tika harmoniski sadalÄ«ta kadrā, lai apgaismotu attēla laukumu, iekŔā bija LED lampas ar krāsu temperatÅ«ru 3200K, lampa stāvlampā bija pārklāta ar sarkanu Rosco folijas filtru, lai radÄ«tu neparastu krāsu akcentu.

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem
Es esmu inženieris pie savas mammas, vai arī palaiŔana notiks rīt

Kā mēs rezervējām internetu un elektrību

Kļūmju tolerances jautājumam viņi piegāja gandrīz kā datu centrā: nolēma neatkāpties no pamatprincipiem un rezervēja pēc ierastās N+1 shēmas.

Ja apraide pakalpojumā YouTube tiek pārtraukta, tas nozÄ«mē, ka nebÅ«s iespējams atkārtoti izveidot savienojumu, izmantojot to paÅ”u saiti, un turpināt straumi. Tas bija kritisks brÄ«dis, un telpa atradās parastajā birojā.

Å im nolÅ«kam mēs izmantojām uz OpenWRT balstÄ«tu marÅ”rutētāju un mwan3 pakotni. Tas automātiski pārbaudÄ«ja kanāla pieejamÄ«bu ik pēc 5 sekundēm un pārtraukuma gadÄ«jumā pārslēdzās uz rezerves modemu ar Yota. Rezultātā pārslēgÅ”anās uz rezerves kanālu notika mazāk nekā minÅ«tes laikā.
Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem
Tikpat svarÄ«gi bija arÄ« novērst strāvas padeves pārtraukumus, jo pat Ä«slaicÄ«gs elektroenerÄ£ijas pārspriegums izraisÄ«tu visu datoru pārstartÄ“Å”anu.

Tāpēc mēs izmantojām ippon innova g2 3000 nepārtrauktās baroÅ”anas avotu, kas dublētu visas spēļu ierÄ«ces: mÅ«su sistēmas kopējais enerÄ£ijas patēriņŔ bija aptuveni 300 vati. Tas ilgtu 75 minÅ«tes, mÅ«su mērÄ·iem pilnÄ«gi pietiekami.

Nolēmām upurēt papildu apgaismojumu gadÄ«jumam, ja telpā pazustu elektrÄ«ba ā€“ tā nebija pieslēgta pie nepārtrauktās baroÅ”anas avota.

Pateicības

  • Visai komandai RUVDS, kurÅ” izgudroja un ieviesa spēli.
  • AtseviŔķi RUVDS administratoriem par serveru darba uzraudzÄ«bu slodze bija pieņemama un viss darbojās kā parasti.
  • Labākajam priekÅ”niekam ntsaplin par to, ka atbildot uz aicinājumu ā€œman ir ideja: paņemsim serveri, uzliksim akvāriju un pakarināsim virs tā atsvaru, bums, blÄ«kŔķis, viss ir pārpludināts ar Å«deni, Ä«ssavienojums, uguns. !ā€ viņŔ vienmēr pārliecinoÅ”i saka "dari to!"
  • Paldies Apgāds Tilda un atseviŔķi Mihailam Karpovam par to, ka ne tikai sanāca pusceļā un ļāva mums pārkāpt LietoÅ”anas noteikumus, bet pat iedeva mums biznesa kontu uz gadu, kad runājām par projektu.
  • Iļja Serovs S_ILya par pievienoÅ”anos un kļūŔanu par projekta lÄ«dzproducentu, gatavs pusnakts rāpot, lÄ«mēt LED lenti, meklēt tehniskos risinājumus un darÄ«t visu, lai mēs iegÅ«tu Ä«stu filmu.
  • zhovner par vienmēr gatavÄ«bu glābt situāciju, kad citi atmet rokas, borŔču, morālo atbalstu un sarunas lÄ«dz rÄ«tam.
  • samat par mÅ«su saikni ar valsts labāko pentesteri, kurÅ” mÅ«s konsultēja un palÄ«dzēja veikt uzdevumus.
  • daniemilk visu video forÅ”ai video veidoÅ”anai.
  • Delphe par stingru roku un vēlmi strādāt lÄ«dz pēdējam.
  • Nu labi Dodo picu inženierija gandrÄ«z vienmēr siltai picai.

Un vislielākā pateicÄ«ba ir spēlētājiem par visām emocijām, kuras mēs piedzÄ«vojām, kamēr jÅ«s divas dienas bez miega un pat darbu atlikÅ”anas uzbrukāt meklējumos.

Citi raksti par servera iznÄ«cināŔanas meklējumiem

Projekta aparatūra: kā mēs izveidojām istabu ar hakeru meklējumiem

Avots: www.habr.com

Pievieno komentāru