Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr
Ychydig wythnosau yn ôl fe dreulion ni ymchwil ar-lein ar gyfer hacwyr: fe wnaethon nhw adeiladu ystafell, a'i llenwi â dyfeisiau smart a lansio darllediad YouTube ohoni. Gallai chwaraewyr reoli dyfeisiau IoT o wefan y gêm; Y nod oedd dod o hyd i arf wedi'i guddio yn yr ystafell (pwyntydd laser pwerus), ei hacio ac achosi cylched byr yn yr ystafell.

I ychwanegu at y weithred, fe wnaethom osod peiriant rhwygo yn yr ystafell, ac fe wnaethom lwytho 200 rubles i mewn: bwytaodd y peiriant rhwygo un bil yr awr. Ar ôl ennill y gêm, fe allech chi atal y peiriant rhwygo a chymryd yr holl arian sy'n weddill.

Rydym eisoes wedi dweud walkthroughAc sut y gwnaed y backend prosiect. Mae'n bryd siarad am y caledwedd a sut y cafodd ei ymgynnull.


Roedd yna lawer o geisiadau i ddangos yr eiliad o lanhau ystafell - rydyn ni'n dangos sut rydyn ni'n ei dynnu ar wahân

Pensaernïaeth Caledwedd: Rheoli Ystafell

Dechreuon ni ddylunio datrysiad caledwedd pan oedd y senario eisoes wedi'i ddeall yn fras, roedd y backend yn barod, ac roedd gennym ni ystafell wag yn barod i osod yr offer.

Gan gofio'r hen jôc “Mae'r S yn IoT yn sefyll am Ddiogelwch” (“Mae'r llythyren S yn y talfyriad IoT yn sefyll am Ddiogelwch”), fe wnaethom benderfynu y tro hwn bod y chwaraewyr yn y senario gêm yn rhyngweithio â'r pen blaen a'r pen ôl yn unig o'r safle, ond nid ydynt yn cael y cyfle i gyrraedd yr haearn yn uniongyrchol.

Gwnaethpwyd hyn am resymau diogelwch a golygfa o'r hyn oedd yn digwydd ar y sgrin: gyda mynediad uniongyrchol i'r caledwedd gan chwaraewyr, byddai'n llawer anoddach ynysu gweithredoedd diogel a allai fod yn beryglus, er enghraifft, sgrolio peiriant rhwygo'n gyflym neu reoli. pyrotechneg.

Cyn dechrau ar y dyluniad, gwnaethom lunio sawl egwyddor ar gyfer rheoli dyfeisiau hapchwarae, a ddaeth yn sail i'r dyluniad:

Peidiwch â defnyddio atebion diwifr

Mae'r gofod chwarae cyfan mewn un ffrâm, a gellir cyrraedd pob cornel ohoni. Nid oedd gwir angen cysylltiadau diwifr a byddent yn dod yn bwynt arall o fethiant.

Peidiwch â defnyddio unrhyw ddyfeisiau cartref smart arbennig

Yn bennaf er mwyn hyblygrwydd addasu. Mae'n amlwg y gallwn addasu llawer o fersiynau mewn blychau o systemau cartref craff gyda gweinyddwyr a rheolaethau parod ar gyfer ein tasg, ond byddai'r costau llafur yn debyg i greu eich datrysiad syml eich hun.

Yn ogystal, roedd angen llunio dyfeisiau a fyddai'n dangos yn glir mai'r chwaraewyr a newidiodd eu cyflwr: maent yn ei droi ymlaen / i ffwrdd neu'n rhoi golau penodol ar y llythrennau FALCON.

Casglwyd yr holl elfennau o galedwedd sydd ar gael yn gyhoeddus y gellir ei brynu mewn storfeydd rhannau radio rheolaidd: rhwng dosbarthu pizza a chola diet, roedd y negeswyr Chip and Dip a Leroy yn dod i'r wefan yn gyson.

Roedd y dewis i gydosod popeth ein hunain yn symleiddio dadfygio, scalability, fodd bynnag, yn gofyn am fwy o ofal yn ystod y gosodiad.

Ni ddylai pob ras gyfnewid ac arudin fod yn weladwy yn y ffrâm

Penderfynasom ddod â'r holl elfennau y gellir eu rheoli i un lle a'u cuddio y tu ôl i'r llenni er mwyn gallu monitro eu perfformiad ac, os oes angen, cropian yn ofalus allan o olwg y camera a gosod yr uned a fethwyd yn lle'r uned.

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr
Yn y diwedd, cuddiwyd popeth o dan y bwrdd, a gosodwyd y camera fel nad oedd unrhyw beth i'w weld o dan y bwrdd. Dyma oedd ein “man dall” i’r peiriannydd ymgripio i fyny

O ganlyniad, cawsom un ddyfais smart mewn gwirionedd: derbyniodd gyflwr pob un o'i rannau o'r backend a'i newid gyda'r gorchymyn priodol.

O safbwynt gweithredu caledwedd, roedd y ddyfais hon yn rheoli 6 elfen:

  1. Sawl lamp bwrdd, mae ganddyn nhw gyflwr ymlaen / i ffwrdd ac maen nhw'n cael eu rheoli gan chwaraewyr
  2. Llythyrau ar y wal, gallant newid eu lliw ar orchymyn y chwaraewyr
  3. Cefnogwyr sy'n troelli ac yn agor y siart troi pan fydd y gweinydd dan lwyth
  4. Rheoli laser trwy PWM
  5. Peiriant rhwygo sy'n bwyta arian ar amser
  6. Peiriant mwg a ddiffoddodd cyn pob saethiad laser


Profi peiriant mwg gyda laser

Yn ddiweddarach, ychwanegwyd golau llwyfan, a oedd yn sefyll y tu ôl i'r ffrâm ac yn cael ei reoli yn union fel y lampau o bwynt 1. Roedd y golau llwyfan yn gweithio mewn dau achos: roedd yn goleuo'r laser pan gymhwyswyd pŵer iddo, ac roedd yn goleuo'r pwysau cyn y lansiwyd laser yn y modd ymladd.

Beth oedd y ddyfais smart hon?

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr

Yr holl ffordd, ceisiodd Yura, ein dyn caledwedd, beidio â chymhlethu pethau a dod o hyd i'r ateb symlaf, lleiaf posibl.

Tybiwyd y byddai'r VPS yn syml yn rhedeg sgript sy'n derbyn json gyda chyflwr y dyfeisiau ac yn ei anfon at yr Arduino wedi'i gysylltu trwy USB.

Wedi'i gysylltu â'r porthladdoedd:

  • 16 ras gyfnewid rheolaidd (nhw oedd y rhai oedd yn gwneud y sŵn clicio a glywyd yn y fideo. Fe wnaethon ni eu dewis yn bennaf oherwydd y sain yma)
  • 4 ras gyfnewid cyflwr solet ar gyfer rheoli sianeli PWM, fel cefnogwyr,
  • allbwn PWM ar wahân ar gyfer laser
  • allbwn sy'n cynhyrchu signal i'r stribed LED

Dyma enghraifft o orchymyn json a ddaeth i'r ras gyfnewid o'r gweinydd

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

Ac mae hyn yn enghraifft o swyddogaeth y mae'r gorchymyn yn cyrraedd Arudino

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

Er mwyn olrhain yr eiliad pan fydd y laser yn llosgi trwy'r rhaff o'r diwedd a'r pwysau'n hedfan i'r acwariwm, fe wnaethom ni fotwm bach a ysgogwyd pan ddisgynnodd y pwysau a rhoi signal i'r system.

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr
Botwm ar gyfer monitro symudiad y pwysau

Ar y signal hwn, roedd bomiau mwg wedi'u gwneud o beli ping-pong i fod i oleuo. Fe wnaethon ni roi 4 fflach mwg yn uniongyrchol i mewn i gas y gweinydd a'u cysylltu ag edau nichrome, a oedd i fod i gynhesu a gweithio fel taniwr.

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr
Tai gyda bomiau mwg a garland Tsieineaidd

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr

arduino

Yn ôl y cynllun gwreiddiol, cymerodd dau weithred ar yr Arduino.

Yn gyntaf, pan dderbyniwyd cais newydd, dosrannwyd y cais gan ddefnyddio llyfrgell ArduinoJson. Nesaf, cymharwyd pob dyfais a reolir â'i ddau briodwedd:

  • cyflwr pŵer "ymlaen" neu "i ffwrdd" (cyflwr safonol)
  • y cyfnod y mae'r ddyfais yn cael ei droi ymlaen - yr amser mewn microseconds o ddechrau'r bwrdd, pan mae'n bryd ei ddiffodd, hynny yw, dod â'r cyflwr i safon

Y tro diwethaf fe'i gosodwyd wrth dderbyn y paramedr cyfatebol yn JSON, ond ni ellid ei drosglwyddo, yna gosodwyd y gwerth i 0 ac ni ddigwyddodd ailosodiad.

Yr ail weithred a gyflawnodd yr Arduino bob cylch oedd diweddaru gwladwriaethau, hynny yw, gwirio a oedd angen troi rhywbeth ymlaen neu a oedd yn bryd diffodd unrhyw ddyfais.

Pwyntydd laser - yr un Megatron 3000

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr

Mae hwn yn modiwl torri a marcio laser ffocws â llaw LSMVR450-3000MF 3000mW 450nm rheolaidd.

Llythyrau Hebog

Fe'u gwnaed yn syml iawn - fe wnaethon ni gopïo'r llythyrau o'r logo, eu torri allan o gardbord, ac yna eu gorchuddio â thâp LED. Yn yr achos hwn, roedd yn rhaid i mi sodro'r darnau o dâp gyda'i gilydd, 4 cyswllt ar bob seam, ond roedd y canlyniad yn werth chweil. Dangosodd ein cefnwr Pasha wyrthiau o fedrusrwydd, gan ei wneud mewn llai nag ychydig oriau.

Profion cyntaf y ddyfais iot a gorffen

Gwnaethom y profion cyntaf ac ar yr un pryd daeth tasgau newydd atom. Y ffaith yw, yng nghanol y broses, ymunodd cynhyrchydd ffilm go iawn a dyn camera o VGIK, Ilya Serov, â'r tîm - fe adeiladodd y ffrâm, ychwanegodd oleuadau sinema ychwanegol a newidiodd ychydig ar sgript y gêm i wneud y plot yn fwy emosiynol, a y darlun yn fwy dramatig a theatraidd.

Cynyddodd hyn yr ansawdd yn sylweddol, ond roedd yn ymddangos bod angen cysylltu elfennau hefyd â'r ras gyfnewid a'r algorithm gweithredu a ragnodwyd.

Problem arall oedd y laser: gwnaethom sawl arbrawf gyda gwahanol fathau o raffau a laserau o wahanol bwerau. Ar gyfer y prawf, rydym yn syml yn hongian pwysau yn fertigol ar raff.

Wrth redeg gyda thocyn prawf, roedd y pŵer a reoleiddir trwy'r PWM yn llai na 10% ac nid oedd yn niweidio'r rhaff hyd yn oed gydag amlygiad hir.

Ar gyfer y modd ymladd, cafodd y laser ei ddadffocysu i ryw fan â diamedr o 10 mm ac fe'i llosgi'n hyderus trwy raff â llwyth o bellter o tua metr.

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr
Felly gweithiodd y laser yn berffaith mewn profion

Pan ddechreuon ni brofi popeth yn iawn yn yr ystafell ar bwysau crog, daeth i'r amlwg nad oedd mor hawdd gosod y laser yn ddiogel. Yna, pan fydd y rhaff yn llosgi, mae'n toddi, yn ymestyn ac yn symud allan o'i ffocws gwreiddiol.

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr
Ond nid oedd yn gweithio fel 'na mwyach: symudodd y rhaff

Symudodd Ilya y laser i ddiwedd yr ystafell gyferbyn â'r rhaff fel y byddai'r trawst laser yn mynd ar draws y llwyfan cyfan ac yn edrych yn hyfryd yn y ffrâm, a oedd yn dyblu'r pellter.

Ar ôl cynnal sawl arbrawf arall gyda llosgi'r rhaff eisoes mewn brwydr, fe benderfynon ni beidio ag arteithio tynged a sicrhau torri'r rhaff gan ddefnyddio gwifren nichrome. Dinistriodd yr edefyn 120 eiliad ar ôl troi'r laser ymlaen yn y modd ymladd. Fe wnaethom benderfynu codio hyn yn galed, yn ogystal â datgysylltu'r wifren a thanio bomiau mwg pan fydd y cyswllt gwahanu yn cael ei sbarduno, yn uniongyrchol i galedwedd y microreolydd.

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr
Yr edau a losgodd drwy'r rhaff oddi ar y sgrin yn y pen draw

Felly, ymddangosodd trydedd dasg a ddatrysodd yr Arduino - i weithio allan y dilyniannau sy'n gysylltiedig â gweithredu'r gorchmynion hyn.

Penderfynasom hefyd roi'r angen i'r Arduino gyfri arian ar y teledu a rhedeg y peiriant rhwygo. I ddechrau, rhagdybiwyd y byddai'r ôl-wyneb yn gwneud hyn a byddai'r balans presennol i'w weld ar y wefan, ac ar y teledu byddem yn dangos sylwadau o YouTube fel elfen ryngweithiol ychwanegol, gan ddweud wrth y gwylwyr bod y digwyddiadau yn yr ystafell yn digwydd mewn gwirionedd. amser.

Ond yn ystod y cyfnod prawf, edrychodd Ilya ar yr olygfa ac awgrymodd ddangos cydbwysedd y gêm ar y sgrin fwyaf: faint o arian sydd ar ôl o hyd, faint sydd wedi'i fwyta, a'r cyfrif i lawr i ddechrau nesaf y peiriant rhwygo.

Clymasom Arduino i'r amser presennol: bob awr lawn dechreuwyd y peiriant rhwygo. Arddangoswyd y llun ar y teledu gan ddefnyddio mafon, a oedd ar y pryd eisoes yn derbyn ceisiadau gan y gweinydd a'u hanfon at yr arduino i'w gweithredu. Tynnwyd lluniau gyda dangosyddion ariannol trwy alw'r cyfleustodau consol yn rhywbeth fel hyn

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

Ac fe'i ffurfiwyd yn seiliedig ar y swm neu'r amser gofynnol.

Fe wnaethon ni gynhyrchu'r lluniau ymlaen llaw: yn syml iawn fe wnaethon ni gymryd fideo parod gydag amserydd ac allforio 200 o luniau.

Dyma'r mecaneg a gafodd eu rhaglennu i'r groes. Erbyn i’r cyfri i lawr terfynol ddechrau, aethon ni i gyd i’r safle, arfogi ein hunain gyda diffoddwyr tân ac eistedd i lawr i aros am y tân (a oedd ond yn ei anterth yn yr anghytgord)

Sut i wneud darllediad sy'n gweithio am wythnos: dewis camera

Ar gyfer yr ymchwil, roedd angen darllediad parhaus arnom ar YouTube am 7 diwrnod - dyna'n union yr ydym wedi'i osod fel uchafswm hyd y gêm. Roedd dau beth a allai ein rhwystro:

  1. Gorboethi'r camera oherwydd gweithrediad parhaus
  2. Dirywiad rhyngrwyd

Roedd yn rhaid i'r camera ddarparu llun Llawn HD o leiaf i wneud chwarae a gwylio'r ystafell yn gyfforddus.

I ddechrau, fe wnaethom edrych tuag at we-gamerâu sy'n cael eu cynhyrchu ar gyfer ffrydiau. Roeddem yn torri ein cyllideb, felly nid oeddem am brynu camera, ond, fel y digwyddodd, nid ydynt yn eu rhentu. Ar yr un foment, fe wnaethon ni ddod o hyd i gamera Xbox Kinect yn wyrthiol yn fy nhŷ, ei osod yn fy ystafell a dechrau darllediad prawf am wythnos.

Gweithiodd y camera'n iawn ac nid oedd yn gorboethi, ond sylwodd Ilya bron ar unwaith nad oedd ganddo leoliadau, yn arbennig roedd yn amhosibl gosod yr amlygiad.

Ceisiodd Ilya ddod â'r math o ddarllediad yn nes at safonau cynhyrchu ffilm a fideo: i gyfleu golygfa olau sy'n newid yn ddeinamig gyda ffynonellau golau llachar, cefndir tywyll a gwrthrychau yn y ffrâm. Ar yr un pryd, roeddwn i eisiau cadw ymhelaethu ar y ddelwedd mewn uchafbwyntiau a chysgodion, heb fawr o sŵn digidol.

Felly, er bod y Kinect wedi profi'n ddibynadwy mewn profion ac nad oedd angen cerdyn dal fideo arno (pwynt methiant arall), penderfynasom roi'r gorau iddo. Ar ôl tri diwrnod o brofi gwahanol gamerâu, dewisodd Ilya y Sony FDR-AX53 - camcorder bach, dibynadwy sy'n rhad i'w rentu, ond ar yr un pryd mae ganddo ddigon o ddibynadwyedd a nodweddion gweledol.

Fe wnaethom rentu camera, ei droi ymlaen am wythnos ar y cyd â cherdyn dal fideo, a sylweddoli y gallem ddibynnu ar ddarlledu parhaus trwy gydol yr ymchwil gyfan.

Gwneud ffilm: llwyfannu'r llwyfan a goleuo

Roedd angen rhywfaint o ras i weithio ar y goleuo; roedd angen i ni adeiladu sgôr goleuo heb fawr o fodd:

1. Goleuo gwrthrychau pan fydd chwaraewyr yn dod o hyd iddynt (laser, pwysau), yn ogystal â golau cyson ar y peiriant rhwygo. Yma fe wnaethom ddefnyddio dedolight 150 - dyfeisiau goleuo ffilm dibynadwy a chryno gyda lampau halogen foltedd isel, sy'n eich galluogi i ganolbwyntio'r trawst ar wrthrych penodol heb effeithio ar y cefndir a gwrthrychau eraill.

2. Golau chwarae ymarferol - lamp bwrdd, lamp llawr, seren, garland. Dosbarthwyd yr holl olau ymarferol yn gytûn yn y ffrâm i oleuo'r ardal ddelwedd, roedd lampau LED gyda thymheredd lliw o 3200K y tu mewn, roedd y lamp yn y lamp llawr wedi'i orchuddio â hidlydd ffoil Rosco coch i greu acen lliw anarferol.

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr
Rwy'n beiriannydd yn mamau neu mae'r lansiad yfory

Sut y gwnaethom gadw'r rhyngrwyd a thrydan

Aethant at y mater o oddef diffygion bron fel mewn canolfan ddata: penderfynasant beidio â gwyro oddi wrth yr egwyddorion sylfaenol a chadw yn ôl y cynllun N+1 arferol.

Os bydd y darllediad ar YouTube yn dod i ben, mae hyn yn golygu y bydd yn amhosibl ailgysylltu gan ddefnyddio'r un ddolen a pharhau â'r ffrwd. Roedd yn foment dyngedfennol, ac roedd yr ystafell wedi'i lleoli mewn swyddfa arferol.

Ar gyfer hyn fe wnaethom ddefnyddio llwybrydd seiliedig ar OpenWRT a'r pecyn mwan3. Profodd yn awtomatig argaeledd y sianel bob 5 eiliad ac, rhag ofn y byddai toriad, newidiodd i'r modem wrth gefn gyda Yota. O ganlyniad, digwyddodd newid i'r sianel wrth gefn mewn llai na munud.
Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr
Roedd hefyd yr un mor bwysig dileu toriadau pŵer, oherwydd byddai hyd yn oed ymchwydd pŵer tymor byr yn achosi ailgychwyn pob cyfrifiadur.

Felly, fe wnaethom gymryd cyflenwad pŵer di-dor ippon innova g2 3000, a fyddai'n gwneud copi wrth gefn o'r holl ddyfeisiau hapchwarae: roedd cyfanswm defnydd pŵer ein system tua 300 Wat. Byddai'n para am 75 munud, digon at ein dibenion ni.

Fe benderfynon ni aberthu goleuadau ychwanegol rhag ofn i'r trydan yn yr ystafell fynd allan - nid oedd wedi'i gysylltu â chyflenwad pŵer di-dor.

Cydnabyddiaethau

  • I'r tîm cyfan RUVDS, a ddyfeisiodd a gweithredu'r gêm.
  • Ar wahân, i weinyddwyr RUVDS, ar gyfer monitro gwaith y gweinyddwyr, roedd y llwyth yn dderbyniol ac roedd popeth yn gweithio fel arfer.
  • I'r bos gorau ntsaplin am y ffaith, mewn ymateb i'r alwad, “Mae gen i syniad: byddwn ni'n cymryd gweinydd, yn rhoi acwariwm arno, ac yn hongian pwysau uwch ei ben, ffyniant, bang, mae popeth yn gorlifo â dŵr, cylched byr, tân !” mae bob amser yn dweud yn hyderus “gwnewch e!”
  • Diolch Cyhoeddi Tilda ac ar wahân i Mikhail Karpov am nid yn unig cyfarfod hanner ffordd a chaniatáu inni dorri'r Telerau Defnyddio, ond hyd yn oed yn rhoi cyfrif busnes i ni am flwyddyn pan fyddwn yn siarad am y prosiect.
  • Ilya Serov S_ILya am ymuno a dod yn gyd-gynhyrchydd y prosiect, yn barod i gropian hanner y noson, gludo stribed LED, chwilio am atebion technegol a gwneud popeth fel ein bod yn cael ffilm go iawn.
  • zhovner am fod bob amser yn barod i achub y sefyllfa pan fyddai eraill yn taflu eu dwylo, borscht, cefnogaeth foesol a sgyrsiau tan y bore.
  • samat am ein cysylltu â'r pentester goreu yn y wlad, a'n cynghorodd ac a'n cynnorthwyodd gyda gorchwylion.
  • daniemilk ar gyfer cynhyrchu fideo cŵl o'r holl fideos.
  • delphe am law gadarn a pharodrwydd i weithio hyd y diweddaf.
  • Wel Peirianneg Dodo Pizza am bron bob amser pizza cynnes.

Ac mae'r diolch mwyaf yn mynd i'r chwaraewyr am yr holl emosiynau a brofwyd gennym wrth ichi ymosod ar y cwest am ddau ddiwrnod heb gwsg a hyd yn oed oedi cyn gweithio.

Erthyglau eraill am yr ymgais i ddinistrio'r gweinydd

Caledwedd y prosiect: sut y gwnaethom adeiladu ystafell gyda chwest haciwr

Ffynhonnell: hab.com

Ychwanegu sylw