Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin
Duela pare bat aste pasa genuen hackerren lineako bilaketa: gela bat eraiki zuten, gailu adimendunez bete eta bertatik YouTube emisio bat abiarazi zuten. Jokalariek IoT gailuak kontrola ditzakete jokoaren webgunetik; Helburua gelan ezkutatuta dagoen arma bat aurkitzea zen (laser erakusle indartsua), pirateatzea eta gelan zirkuitu laburra sortzea.

Ekintza gehitzeko, birringailu bat jarri genuen gelan, eta bertan 200 errublo kargatu genituen: birringailuak orduko billete bat jaten zuen. Jokoa irabazi ondoren, birringailua gelditu eta geratzen den diru guztia hartu dezakezu.

Dagoeneko esan dugu pasabideaEta backend-a nola egin zen proiektua. Hardwareari buruz eta nola muntatu zen hitz egiteko garaia da.


Gela bat garbitzeko momentua erakusteko eskaera asko egin ziren - nola desmuntatzen dugun erakusten dugu

Hardware Arkitektura: Aretoen Kontrola

Hardware irtenbide bat diseinatzen hasi ginen eszenatokia gutxi gorabehera ulertzen zenean, backend-a prest zegoenean eta ekipamendua instalatzeko gela huts bat genuen prest.

"IoT-en S-ek segurtasuna adierazten duen" txantxa zaharra gogoratuz ("IoT laburduraren S letrak segurtasuna esan nahi du"), erabaki genuen oraingoan jokoaren eszenatokiko jokalariek frontend eta backend-ekin soilik elkarreragiten dutela. gunearen, baina ez dute zuzenean plantxara joateko aukerarik.

Pantailan gertatzen ari zenaren segurtasun eta ikusgarritasun arrazoiengatik egin zen: jokalariek hardwarera zuzeneko sarbidearekin, askoz zailagoa izango litzateke ekintza seguruak eta arriskutsuak izan daitezkeen isolatzea, adibidez, birringailu baten korritze azkarra edo kontrolatzea. piroteknia.

Diseinua hasi aurretik, joko-gailuak kontrolatzeko hainbat printzipio formulatu genituen, diseinuaren oinarri bihurtu zirenak:

Ez erabili haririk gabeko soluziorik

Jolas-espazio osoa fotograma batean dago, eta txoko guztietara irits daiteke. Ez zegoen haririk gabeko konexioen benetako beharrik eta beste hutsegite puntu bat bihurtuko ziren.

Ez erabili etxeko gailu adimendun berezirik

Batez ere pertsonalizazio malgutasunaren mesedetan. Argi dago etxeko sistema adimendunen kutxako bertsio asko pertsonaliza ditzakegula gure zereginerako prest dauden administrazio eta kontrolekin, baina lan-kostuak zure irtenbide sinpleak sortzearen parekoak izango lirateke.

Horrez gain, jokalariak izan zirela egoera aldatu zutenak argi eta garbi erakutsiko zuten gailuak asmatu behar ziren: piztu/itzaltzen zuten edo FALCON letren gainean argi zehatz bat jartzen zuten.

Irratiko piezen dendetan eros daitezkeen publikoki eskuragarri dauden hardwareko elementu guztiak bildu genituen: pizza eta dieta-kolak entregatu artean, Chip and Dip eta Leroy mezulariak etengabe etortzen ziren gunera.

Guztia geuk muntatzeko aukerak arazketa sinplifikatu zuen, eskalagarritasuna, ordea, arreta handiagoa behar zuen instalazioan.

Errele eta arudin guztiak ez dira ikusgai egon behar markoan

Kontrola daitezkeen elementu guztiak leku bakarrean ekartzea eta eszena atzean ezkutatzea erabaki genuen, haien errendimendua kontrolatu ahal izateko eta, behar izanez gero, arretaz kameraren bistatik kanpo arakatzea eta huts egin duen unitatea ordezkatzea.

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin
Azkenean, dena mahai azpian ezkutatuta zegoen, eta kamera jarri zen mahaiaren azpian ezer ikus ez zedin. Hau izan zen gure "puntu itsua" ingeniariak gora egiteko

Ondorioz, benetan gailu adimendun bat lortu genuen: bere zati bakoitzaren egoera atzealdetik jaso zuen eta dagokion komandoarekin aldatu zuen.

Hardwarearen ezarpenaren ikuspuntutik, gailu honek 6 elementu kontrolatzen zituen:

  1. Hainbat mahai-lanpara, piztu/itzaltzeko egoera dute eta jokalariek kontrolatzen dituzte
  2. Horman letrak, jokalarien aginduz kolorea alda dezakete
  3. Zerbitzaria kargapean dagoenean flipchart-a biratzen eta irekitzen duten zaleak
  4. Laser kontrolatua PWM bidez
  5. Dirua ordutegian jaten zuen birrintzailea
  6. Laser jaurtiketa bakoitzaren aurretik itzaltzen zen ke makina bat


Ke makina bat laser batekin probatzen

Geroago, eszena-argi bat gehitu zen, markoaren atzean zegoena eta 1. puntuko lanparak bezala kontrolatzen zuena. Eszenatokiaren argiak bi kasutan funtzionatzen zuen: argiztatzen zuen laserra boterea aplikatzean, eta pisua argitzen zuen aurretik. laserra borroka moduan abiarazi zen.

Zein zen gailu adimendun hau?

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin

Bide guztian, Yura, gure hardware-tipoa, gauzak ez zailtzen eta ahalik eta irtenbiderik sinpleena eta minimalista lortzen saiatu zen.

Suposatu zen VPS-ak gailuen egoerarekin json jasotzen duen script bat exekutatu eta USB bidez konektatutako Arduinora bidaltzen zuela.

Portuetara konektatuta:

  • 16 errelebo arrunt (bideoan entzuten zen klik zarata ateratzen zutenak. Batez ere soinu honengatik aukeratu genituen)
  • 4 egoera solidoko errele PWM kanalak kontrolatzeko, hala nola zaleak,
  • laserrentzako PWM irteera bereizia
  • LED tirarako seinalea sortzen duen irteera

Hona hemen zerbitzaritik erreleora iritsi den json komando baten adibidea

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

Eta hau komandoak Arudinora iritsitako funtzio baten adibidea da

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

Laserak sokatik erretzen duen eta pisua akuariora hegan egiten duen momentua jarraitzeko, pisua erortzean abiarazten zen botoi txiki bat egin genuen eta sistemari seinale bat eman genion.

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin
Pisuaren mugimendua kontrolatzeko botoia

Seinale horretan, ping-pong pilotaz egindako ke bonbak piztu behar ziren. 4 ke bengala zuzenean zerbitzariaren kaxan sartu ditugu eta nikromo hari batekin konektatu ditugu, berotu eta pizgailu baten antzera funtzionatu behar zuena.

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin
Etxebizitza ke bonbak eta txinatar girlandarekin

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin

Arduino

Jatorrizko planaren arabera, bi ekintza egin ziren Arduinoan.

Lehenik eta behin, eskaera berri bat jasotzen zenean, eskaera ArduinoJson liburutegia erabiliz analizatu zen. Ondoren, kudeatutako gailu bakoitza bere bi propietateekin alderatu zen:

  • Power egoera "aktibatuta" edo "desaktibatuta" (egoera estandarra)
  • gailua pizten den aldia - plaka hasten denetik mikrosegundotan, itzaltzeko garaia denean, hau da, egoera estandarrera eraman.

Azken aldian JSON-n dagokion parametroa jasotzean ezarri zen, baina ezin izan zen transmititu, orduan balioa 0-n ezarri zen eta ez zen berrezarri.

Arduinok ziklo bakoitzean egiten zuen bigarren ekintza egoerak eguneratzea zen, hau da, zerbait pizteko beharra zegoen edo gailuren bat itzaltzeko ordua zen egiaztatzea.

Laser erakuslea - Megatron 3000 bera

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin

Hau LSMVR450-3000MF 3000mW 450nm eskuzko foku laser bidezko ebaketa eta markatze modulua da.

Letrak Falcon

Oso erraz egin ziren: logotipoko letrak kopiatu, kartoitik moztu eta, ondoren, LED zintarekin estali genituen. Kasu honetan, zinta zatiak elkarrekin soldatu behar izan ditut, 4 kontaktu jostura bakoitzean, baina emaitzak merezi izan du. Gure backender Pasha trebetasun mirariak erakutsi zituen, ordu gutxitan egiten.

Iot gailuaren lehen probak eta akabera

Lehenengo probak egin genituen eta aldi berean zeregin berriak iritsi zitzaizkigun. Kontua da prozesuaren erdian, VGIK-ko benetako zinema ekoizle eta kameralari bat, Ilya Serov, taldean sartu zela - markoa eraiki zuen, zinemako argiztapen gehigarria gehitu zuen eta jokoaren gidoia apur bat aldatu zuen trama hunkigarriagoa izan zedin, eta irudia dramatikoagoa eta antzerkizaleagoa.

Horrek kalitatea nabarmen handitu zuen, baina erreleari eta agindutako funtzionamendu-algoritmoari ere konektatu behar ziren elementuak agertu ziren.

Beste arazo bat laserra zen: hainbat esperimentu egin genituen soka mota ezberdinekin eta potentzia ezberdineko laserrekin. Proba egiteko, pisu bat soka batean bertikalki zintzilikatu dugu.

Test token batekin exekutatzen denean, PWM bidez erregulatutako potentzia % 10 baino txikiagoa zen eta ez zuen soka kaltetu esposizio luzearekin ere.

Borroka moduan, laserra gutxi gorabehera 10 mm-ko diametroa duen leku batera desfokatu zen eta metro bateko distantziatik karga batekin soka baten bidez erre zuen konfiantzaz.

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin
Beraz, laserrak ezin hobeto funtzionatu zuen probetan

Gelan dagoen guztia probatzen hasi ginenean esekitako pisu batean, ikusi zen laserra segurtasunez bermatzea ez zela hain erraza. Orduan, soka erretzen denean, urtu, luzatu eta jatorrizko fokutik ateratzen da.

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin
Baina jada ez zuen horrela funtzionatu: soka mugitu zen

Ilyak laserra eraman zuen sokaren parean dagoen gelaren amaierara, laser izpiak eszenatoki osoan zehar joan zedin eta markoan eder itxura izan zedin, eta horrek distantzia bikoiztu zuen.

Dagoeneko borrokan soka erretzeko hainbat esperimentu gehiago egin ondoren, patua ez torturatzea eta soka moztea nikromo alanbrea erabiliz ziurtatzea erabaki genuen. Borroka moduan laserra piztu eta 120 segundora suntsitu zuen haria. Hau gogor kodetzea erabaki genuen, baita kablea deskonexioa eta ke-bonbak piztea ere, bereizketa-kontaktua abiarazten denean, zuzenean mikrokontrolagailuaren hardwarera.

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin
Azkenean pantailatik kanpo soka erre zuen haria

Horrela, hirugarren zeregin bat agertu zen Arduinok ebatzi zuena: komando horien exekuzioarekin lotutako sekuentziak lantzea.

Arduinori telebistan dirua zenbatu eta birringailua martxan jartzea ere erabaki genuen. Hasieran, atzealdeak hori egingo zuela eta egungo balantzea webgunean ikusgai egongo zela suposatzen zen, eta telebistan YouTube-ko iruzkinak elementu interaktibo gehigarri gisa erakutsiko genituzke, ikusleei esanez aretoko gertaerak errealean gertatzen zirela. denbora.

Baina proban zehar, Ilyak eszena begiratu zuen eta jokoaren balantzea pantaila handienean erakustea proposatu zuen: zenbat diru geratzen den oraindik, zenbat jan den eta birringailuaren hurrengo abiarazterako atzerako kontaketa.

Arduino uneko orduarekin lotu dugu: ordu bete guztietan birringailua martxan jartzen zen. Irudia telebistan bistaratzen zen rasberry erabiliz, momentu horretan jada zerbitzariaren eskaerak jasotzen eta arduinora bidaltzen zituen exekutatzeko. Diru-adierazleak dituzten irudiak kontsolaren erabilgarritasuna fim honelako zerbait deituz marraztu ziren

image = subprocess.Popen(["fim", "-q", "-r", "1920Γ—1080", fim_str]), Π³Π΄Π΅ fim_str

Eta behar zen zenbatekoa edo denboraren arabera eratu zen.

Irudiak aldez aurretik sortu ditugu: besterik gabe, prest egindako bideo bat atera dugu tenporizadore batekin eta 200 argazki esportatu ditugu.

Hau da gurutzean programatutako mekanika. Azken atzerako kontaketa hasi zenerako, denok gunera joan ginen, su-itzalgailuekin armatu eta suaren zain eseri ginen (discordian bakarrik zegoen pil-pilean)

Nola egin astebetez funtzionatzen duen emankizun bat: kamera aukeratzea

Bilaketa egiteko, YouTube-n 7 egunez etengabeko emisioa behar genuen; hori da jokoaren gehienezko iraupen gisa ezarri genuena. Bi gauza gelditu gaitezke:

  1. Kameraren gainberotzea etengabeko funtzionamenduaren ondorioz
  2. Interneten etenaldia

Kamerak gutxienez Full HD irudi bat eman behar zuen gela jolastea eta ikustea eroso egiteko.

Hasieran, erreproduzitzaileentzako ekoizten diren webcametara begiratu genuen. Aurrekontua murrizten ari ginen, beraz, ez genuen kamerarik erosi nahi, baina, ondorioz, ez dituzte alokatzen. Momentu berean, mirariz Xbox Kinect kamera bat aurkitu genuen nire etxean etzanda, nire gelan instalatu eta astebeteko proba-emisioa hasi genuen.

Kamerak ondo funtzionatu zuen eta ez zen gehiegi berotzen, baina Ilya ia berehala ohartu zen ezarpenak falta zitzaizkiola, bereziki ezinezkoa zela esposizioa ezartzea.

Ilyak emankizun mota zinema eta bideo ekoizpenaren estandarretara hurbiltzea bilatu zuen: dinamikoki aldatzen ari den argi-eszena bat transmititzea argi-iturri distiratsuekin, hondo ilun batekin eta markoko objektuekin. Aldi berean, irudiaren lanketa kontserbatu nahi izan dut bai argitan bai itzaletan, gutxieneko zarata digitalarekin.

Hori dela eta, Kinect-a probetan fidagarria dela frogatu eta bideoa harrapatzeko txartelik behar ez zuen arren (beste hutsegite puntu bat), bertan behera uztea erabaki genuen. Hiru egun kamera desberdinak probatu ondoren, Ilyak Sony FDR-AX53 aukeratu zuen: alokairuan merkea den kamera txiki eta fidagarria, baina, aldi berean, fidagarritasun eta ezaugarri bisual nahikoak dituena.

Kamera bat alokatu genuen, astebetez piztu genuen bideoak harrapatzeko txartel batekin batera, eta konturatu ginen horrekin etengabeko emisioa izan genezakeela bilaketa osoan zehar.

Pelikula bat egitea: eszenatokia eta argiztapena

Argiztapena lantzeak nolabaiteko grazia eskatzen zuen; gutxieneko bitartekoekin argiztapen partitura bat eraiki behar genuen:

1. Jokalariek aurkitzen dituztenean objektuen argiztapena (laserra, pisua), baita birringailuaren etengabeko argia ere. Hemen dedolight 150 erabili dugu - tentsio baxuko lanpara halogenodun pelikulen argiztapen gailu fidagarriak eta trinkoak, izpia objektu zehatz batean fokatzea ahalbidetzen duten hondoari eta beste objektuei eragin gabe.

2. Jolas-argi praktikoa - mahai-lanpara, zoruko lanpara, izarra, girlanda. Argi praktiko guztia markoan modu harmoniatsuan banatu zen irudiaren eremua argitzeko, barruan 3200K-ko kolore-tenperatura zuten LED lanparak zeuden, solairuko lanparako lanpara Rosco paperezko iragazki gorri batekin estalita zegoen kolore ezohiko azentu bat sortzeko.

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin
Nire amaren ingeniaria naiz edo inaugurazioa bihar da

Nola erreserbatu genuen internet eta elektrizitatea

Akatsen tolerantziaren gaiari ia datu-zentro batean bezala jorratu zuten: oinarrizko printzipioetatik ez desbideratzea erabaki zuten eta ohiko N+1 eskemaren arabera erreserbatu zuten.

YouTube-n igorpena gelditzen bada, horrek esan nahi du ezinezkoa izango dela esteka bera erabiliz berriro konektatu eta korrontearekin jarraitzea. Une larria izan zen, eta ohiko bulego batean zegoen gela.

Horretarako OpenWRTn oinarritutako bideratzailea eta mwan3 paketea erabili ditugu. Kanalaren erabilgarritasuna automatikoki probatu zuen 5 segunduro eta, eten bat gertatuz gero, Yotarekin backup modemera aldatzen zen. Ondorioz, ordezko kanalera aldatzea minutu bat baino gutxiagoan gertatu zen.
Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin
Era berean, garrantzitsua zen elektrizitatearen etenaldiak kentzea, epe laburreko elektrizitatearen gorakadak ere ordenagailu guztiak berrabiaraziko baitzituen.

Hori dela eta, ippon innova g2 3000 etenik gabeko hornidura bat hartu genuen, joko-gailu guztien babeskopia egingo zuena: gure sistemaren guztizko energia-kontsumoa 300 watt ingurukoa zen. 75 minutu iraungo luke, nahikoa gure helburuetarako.

Argiztapen gehigarria sakrifikatzea erabaki genuen gelako elektrizitatea itzaltzen bazen - ez zegoen etenik gabeko hornidura batera konektatuta.

Eskerrak

  • Talde osoari RUVDS, jolasa asmatu eta ezarri zuena.
  • Bereiz, RUVDSko administratzaileei, zerbitzarien lana kontrolatzeko, karga onargarria zen eta dena ohi bezala funtzionatu zuen.
  • Nagusi onenari ntsaplin izan ere, deialdiari erantzunez, β€œIdeia bat daukat: zerbitzari bat hartu, akuario bat jarriko dugu eta gainean pisu bat zintzilikatu, boom, bang, dena urez gainezka, zirkuitu laburra, suarekin. !” konfiantzaz beti esaten du "egin ezazu!"
  • Eskerrik asko Tilda argitaletxea eta banan-banan Mikhail Karpov-i erdibidean biltzeaz gain, Erabilera Baldintzak urratzen uzteagatik, baita proiektuari buruz hitz egin genuenean urtebeteko negozio kontu bat emateagatik ere.
  • Ilya Serov S_ILya proiektuaren batu eta koekoizle izateagatik, gau erdia arakatzeko prest, LED tira itsatsi, irtenbide teknikoak bilatu eta dena egiteagatik benetako pelikula bat lortu ahal izateko.
  • zhovner besteek eskuak, bortxak, laguntza moralak eta elkarrizketak goizera arte beti salbatzeko prest egoteagatik.
  • samat Herriko pentester onenarekin konektatzeagatik, aholkatu eta zereginetan lagundu gintuenarekin.
  • danieesnea bideo guztien bideo ekoizpen freskorako.
  • delphe esku irmoagatik eta azkenera arte lan egiteko gogoagatik.
  • ondo Dodo Pizza Ingeniaritza ia beti pizza epelerako.

Eta esker on handiena jokalariei dagokie bi egunez lo egin gabe eta baita lana utzi ere egin zenuen bitartean bizi izan genituen emozio guztiengatik.

Zerbitzaria suntsitzeko bilaketari buruzko beste artikulu batzuk

Proiektuaren hardwarea: nola eraiki genuen gela bat hacker bilaketa batekin

Iturria: www.habr.com

Gehitu iruzkin berria