Turinys:

Portalo 2 bokštelis - pagrindinis bokštelio valdymas: 9 žingsniai (su nuotraukomis)
Portalo 2 bokštelis - pagrindinis bokštelio valdymas: 9 žingsniai (su nuotraukomis)

Video: Portalo 2 bokštelis - pagrindinis bokštelio valdymas: 9 žingsniai (su nuotraukomis)

Video: Portalo 2 bokštelis - pagrindinis bokštelio valdymas: 9 žingsniai (su nuotraukomis)
Video: Полное прохождение Portal 2 - без HUD и комментариев 2024, Liepa
Anonim
Image
Image

Šis projektas yra mano originalaus „Portal Turret on Instructables“(„Portal-2-Turret-Gun“) pratęsimas arba remiksas. Jis taip pat gali būti naudojamas kaip pigus valdiklis, skirtas valdyti viską, kas naudoja nRF24L01 radijo lustą. LCD ekranas yra ypač naudingas pritaikant.

(Pasirodo, labai naudinga patikrinti, kada mano radijas užmezga ir praranda ryšius su kitais „tinklo“nRF24L01. Galiu vaikščioti ir žiūrėti, kaip ekrano ekrane rodoma radijo ryšio būsena! Labai naudinga koreguoti nustatymus ir patikrinti diapazonas!)

Baigęs portalo bokštelį, 2 portalo pabaigoje pamačiau trumpą vaizdo įrašą apie „Cara Mia“operos sceną. Pagalvojau: „Ei, dabar aš pastatiau keletą bokštelių. Aš galiu tai padaryti! Na, aš turėjau bokštelius, bet kad jie veiktų, jiems dabar reikės bendrauti tarpusavyje arba su kitu prietaisu. Pagalvojęs ir pagalvojęs, kad rankinis valdymas taip pat būtų šaunus, galiausiai nusprendžiau, kad pastatysiu pagrindinį bokštelio valdiklį arba MTC.

Gerai, tai kaip elgtis šiuo klausimu? Na, aš nenorėjau per daug keisti bokštelių, todėl tai buvo suvaržymas. Turėjau keletą nRF24L01 radijo lustų, kurių dar nenaudojau, ir maniau, kad tai atitiks mano tikslą naudoti nebrangius komponentus ir pasikliauti mechaniniu dizainu bei kodu. Aš turėčiau sukurti valdiklį ir pradėjau svarstyti, ką valdiklyje būtų ir ką tiksliai galėčiau padaryti su bokšteliais. Cara Mia jau buvo įtraukta į darbotvarkę, bet kas dar?

Rankinis valdymas: Taigi, kai sparnai bus atidaryti, norėčiau valdyti žingsnį ir pasukimą. 2 ašys = vairasvirtė, taigi vairasvirtės valdymas ir kai kurie mygtukai. 1 mygtukas paleis bokštelį, o galbūt 2 mygtukas privers jį pasakyti vieną iš savo posakių. Skamba gerai! Pakankamai paprasta…

Pokalbis: Neseniai vėl pamačiau „Kas pirmas“- Abbott ir Costello rutiną, ir mano galvoje užgeso šviesa! Aš taip pat sudarysiu eskizų komedijos rutiną, naudodamas visus posakius, naudodamas kelis bokštelius !! Gerai, šis nebuvo visiškai suprastas, bet esu tikras, kad jį sutvarkysiu, kai tik pradėsiu statyti.

Aš taip pat norėjau, kad šis MTC būtų belaidis, todėl pasirinkau paprastą 9 V baterijos maitinimo variantą ir suprojektavau, kad valdiklis būtų maitinamas iš mini USB kištuko per „Nano“gale. Taip pat naudinga atnaujinti.

1 žingsnis: radijo įtraukimas į bokštelius

Pirmą kartą radijas pradėjo veikti su keliais plikais „Nanos“, kad įsitikinčiau, jog galiu veikti ir siųsti informaciją iš kelių įrenginių. Kai tai buvo padaryta, reikėjo įtraukti radiją į esamus bokštelius. Hmm, pridėti fizinę PCB į bokštą buvo gana paprasta. Aš ką tik pakeičiau lusto laikiklį, kad jame būtų nRF24L01, „Nano“ir mp3 lustas. Gerai. Viena fizinė dalis modifikuota su kai kuriais laidais.

Modifikuotas lusto laikiklis jau yra bokštelio spausdintų dalių dalis. Aš tiesiog ištryniau ne radijo parinktį iš spausdintų dalių toje konstrukcijoje. Nesvarbu, ar kas nors nori sukurti ne radijo variantą. Tiesiog neįtraukite radijo lusto nRF24L01.

2 žingsnis: bokštelių prijungimas (iš naujo)

Bokštelių (pakartotinis) laidų sujungimas
Bokštelių (pakartotinis) laidų sujungimas
Bokštelių (pakartotinis) laidų sujungimas
Bokštelių (pakartotinis) laidų sujungimas
Bokštelių (pakartotinis) laidų sujungimas
Bokštelių (pakartotinis) laidų sujungimas
Bokštelių (pakartotinis) laidų sujungimas
Bokštelių (pakartotinis) laidų sujungimas

Uh Oh…

Tai neatrodė gerai. Man reikėjo pridėti 5 jungtis prie „Nano“, ir man jau buvo mažai turimų kaiščių. Šiek tiek panagrinėjęs tai supratau, kurie ryšiai yra svarbesni, ir supratau, kad norėdamas atlikti šį darbą turėčiau iš naujo sukurti daugumą esamų „Nano“jungčių.

Tiems, kurie nori sukurti „Radijo bokštą“ir jau sukūrė ankstesnį geną… Atsiprašau …

Dabar keletą kartų padariau šį pakeitimą ir paaiškėjo, kad procesas nėra labai blogas. Tai apima grįžimą atgal, tačiau man pavyko anuliuoti esamus ryšius su „Nano“ir vėl prisijungti prie atitinkamų kaiščių be didelio sielvarto. Prie nRF24L01 pridėjau 7 radijo lusto laidus (5 komun. Laidai, 3v ir GND), tada kitus galus prijungiau prie „Nano“.

Vis dėlto dabar yra daugiau laidų, todėl kur kas svarbiau yra tvarkyti laidus.

SVARBU: Surinkdami įsitikinkite, kad laidai nespaudžia plokštės Nano atstatymo mygtuko !! Tai atsitiko man viena ir metė mane už nereikalingą kilpą!

Taigi bokštelio konstrukcijoje dabar yra 2 laidų schemos: senoji palikimo „ne radijo“parinktis ir pataisyta „radijo bokšto“parinktis. Jei šiandien statyčiau „ne radijo“bokštelį, vis tiek naudočiau radijo schemą ir kodą. Tiesiog ištrinkite arba pakomentuokite radijo dalis, jei tai pasirinktas maršrutas, ar ne. Bokštelis vis tiek turėtų veikti savarankiškai be radijo.

3 žingsnis: MTC elektriniai komponentai

MTC elektriniai komponentai
MTC elektriniai komponentai
MTC elektriniai komponentai
MTC elektriniai komponentai
MTC elektriniai komponentai
MTC elektriniai komponentai

Išsiaiškinus bokštelius, atėjo laikas sukurti MTC.

MTC naudoja šiuos komponentus, kurie yra įsigyti iš „Amazon“, „Baggood“ar „Ali Express“ir tt palaukite daugiau nei 2 savaites, kad suprastumėte, ko man reikėjo, kad galėčiau pradėti mechaninį dizainą!)

  • „Arduino Nano“0,96 colių skystųjų kristalų ekranas (SSD1306) Aš naudojau mėlyną/geltoną versiją
  • Mažos vairasvirtės (HW-504) 5V PS vairasvirtės modulis
  • Perjungimo jungiklis (dx-004) 22 mm * 13 mm
  • Radijas - (nRF24L01)
  • 12 mm mygtukai (CLT1088-spalvoti mygtukai, PBS-33B-juoda)
  • 2 mm varžtai (M2 savisriegių varžtų komplektas, kryžminės pavaros galvutės asortimentas)
  • 5 mm jūsų pasirinkti šviesos diodai indikatoriams. (Nenaudokite ryškių šviesos diodų !!)
  • Bendra 9 V baterijos jungtis su kaiščiais
  • 9 V baterija (naudokite gerą, o ne vieną iš dolerių parduotuvių, kurios ne visada gali tiekti pakankamai energijos šiems projektams!)
  • Aš naudoju silikono apvalkalo vielą. Man patinka jį naudoti šiems projektams.

Iš pradžių naudojau keletą ryškių šviesos diodų, tačiau pastebėjau, kad jie yra per geri. Jie mane apakino! Aš galiausiai naudojau kai kuriuos senus, silpnus šviesos diodus, ir tai buvo prasmingiau šiai programai.

4 žingsnis: 3D spausdintos dalys

3D spausdintos dalys
3D spausdintos dalys
3D spausdintos dalys
3D spausdintos dalys
3D spausdintos dalys
3D spausdintos dalys

Aš sukūriau MTC naudodamas „Fusion“, panašiai kaip ir bokšto dizainą.

Spausdintam surinkimui reikia tik 3 dalių:

  • Viršutinis skydelis (1 arba 2 versija)
  • Apatinis korpusas
  • LCD dirželis

„NRF“mikroschema, „Nano“, 9 V baterija, perjungimo jungiklis ir šviesos diodai yra sumontuoti viršutinėje plokštėje be tvirtinimo elementų. Šviesos diodai tiesiog spaudžia plokštelę ir yra laikomi skirtukų. Jie turėtų tiesiog užsifiksuoti, bet nepersistengti. Viršutinė plokštė sukurta taip, kad laikytų „Nano“, o „nRF“mikroschema turėtų švelniai įeiti. Atsargiai su nRF mažu skirtuku; jis yra mažas ir yra sulenktas atgal, kad atsivertų, ir atleistas, kad užfiksuotų mikroschemą. Nors jo kelionės ribotos, būkite švelnus čia.

Vairasvirtei ir LCD reikia 2 mm varžtų (5 mm ilgio), kad jie būtų pritvirtinti prie viršutinės plokštės. Joystick PCB yra didelės skylės, todėl maniau, kad man reikia mažų poveržlių, kad įsitikintumėte, jog varžtai neišsiveržia.

Pastebėjau, kad PCB skystųjų kristalų ekranai skiriasi priklausomai nuo gamintojo, todėl vietoj raištelių ar kabliukų nusprendžiau naudoti paprastą dirželį.

Atkreipkite dėmesį, kad skystųjų kristalų ekranas gali būti fiziškai įmontuotas į viršutinę plokštę bet kuriuo atveju, tačiau ekranas visiškai rodomas tik per angą viena kryptimi! Dėl šios priežasties aš įtraukiau antrą viršutinės plokštės parinktį, kai naudojate padalintą geltoną/mėlyną ekraną. Vienos versijos viršuje yra geltona spalva, o kitos apačioje bus parodyta geltona spalva, kaip parodyta mano nuotraukose.

Naudojant vienos spalvos LCD ekraną, nesvarbu, kuris iš jų naudojamas, nes galite apversti ekraną naudodami programinę įrangą.

Kadangi visi laidai yra prijungti prie viršutinės plokštės, apačia iš tikrųjų yra tik dangtelis, pritvirtintas prie viršutinės plokštės su ilgesniais 2 mm varžtais (ketvirtis).

Vietoj „akumuliatoriaus durelių“parinkties aš ką tik įdėjau bateriją į viršutinę plokštę. Tai reiškia, kad reikia nuimti 4 varžtus, laikančius apačią į viršų, kad būtų pakeista baterija, tačiau kadangi ji taip pat gali būti maitinama USB kabeliu, o ne pasaulio pabaiga. Viršutinė plokštė pagaminta iš 9 V baterijos laikiklio sistemos, kuri turėtų būti pakankamai tvirta pakartotiniam naudojimui, nėra pernelyg sudėtinga, tačiau neleidžia akumuliatoriui judėti.

Viršutinę plokštę atspausdinau 2 spalvomis, kaip matyti nuotraukose. Aš naudoju „Prusa i3 Mk2“be kelių spalvų parinkties, tačiau naudoju jų spalvoto spausdinimo įrankį (https://www.prusaprinters.org/color-print/), kad pakeistumėte spalvą proceso metu. Patikrinkite sluoksnį, kuriame tekstas sustoja ir tampa vientisas, ir nustatykite tą pereinamąjį sluoksnį. Voila! Spalvotas tekstas!

Aš atspausdinau dalis 0,35 mm sluoksnio aukštyje, nes šioms plokščioms dalims nereikia didesnės skiriamosios gebos. Man taip pat labiau patinka, kaip jis žiūri į šią rezoliuciją. O, ir spausdina gana greitai!

5 žingsnis: elektros surinkimas

Elektros surinkimas
Elektros surinkimas
Elektros surinkimas
Elektros surinkimas
Elektros surinkimas
Elektros surinkimas
Elektros surinkimas
Elektros surinkimas

Visi elektros komponentai sumontuoti apatinėje viršutinės plokštės pusėje, o visi laidai atliekami kartu. Pirmiausia reikia įdiegti mygtukus ir jungiklį, o LCD, „Nano“, vairasvirtę, „nRF“radiją galima iš anksto prijungti prieš montuojant į viršutinę plokštę. Aš rekomenduoju šį metodą iš anksto prijungti atskirus komponentus, o tada galutinai prijungti prie „Nano“. Taip pat rekomenduoju įkelti eskizą į pliką „Nano“, prieš užbaigiant laidų sujungimą.

Nėra nieko malonesnio, kaip įjungti įrenginį ir žiūrėti, kaip jis baigiasi, kaip tikėtasi!

Vienintelis reikalingas elektrinės dalies paruošimas buvo nuimti kaiščius nuo kreiptuko, kad jis tilptų po viršutine plokšte. Skystųjų kristalų ekraną galima įsigyti su įmontuotais kaiščiais arba be jų ir jis veiks bet kuriuo atveju. „Nano“reikia pasirinkti be kaiščių.

6 žingsnis: kodas

MTC, raudonojo bokšto, balto ir mėlyno bokštelio kodas dabar paskelbtas

Na, tai buvo kodavimo patirtis! Turėjau bokštelį dirbdamas savarankiškai, tačiau radijo prijungimas buvo sunkesnis, nei maniau iš pradžių! Man taip pat buvo smagu, kad skyrius „Pokalbiai“veiktų taip, kaip norima (daugiau apie tai vėliau).

MTC kodas, visiškai išsiaiškinęs, pradėjo apmokestinti „Nano“atminties ribas! Turėjau koreguoti ir taupyti kodą, kad būtų efektyviau atminties. Dar viena gera mokymosi patirtis.

Į šį kūrinį įtraukiau atitinkamą „Turret w radio option“kodą, nes jie veikia kartu. Sukūrę radijo parinkties bokštelį pagal bokšto kūrimo puslapį, jis bus paruoštas naudoti su MTC arba kitu jūsų nRF24L01 valdymo metodu.

Be to, norint, kad garsai veiktų su šiuo kodu, prireikė šiek tiek laiko, ir kadangi garsai buvo paimti iš kitų viešai prieinamų svetainių, visus garsus įtraukiau į porą ZIP failų; vienas skirtas įprastam bokšteliui, o kitas - sugedusiam bokšteliui. Geras dalykas jums, mielas skaitytojau, yra tai, kad galite naudoti SD kortelių garsus su kodu, kaip parašyta, ir jums bus gerai!

7 žingsnis: MTC meniu - navigacija

MTC meniu - navigacija
MTC meniu - navigacija
MTC meniu - navigacija
MTC meniu - navigacija
MTC meniu - navigacija
MTC meniu - navigacija

MTC kodas paleidžiamas pasirinktiniu „Splash“ekranu, tada patikrinama bokštelių būsena. Jei nėra bokštelių, jis tiesiog sėdės ten, kol bokštai prisijungs!

Jei prijungtas bent vienas bokštelis, bus parodytas pagrindinis meniu ir užsidegs „Ready“šviesos diodas, nebent bokšteliai būtų pertraukti arba būtų užsiėmę „bendrauti su kuo nors“. Jei jie užimti, bus rodomas ekranas „Bokšteliai yra užimti“ir užsidegs šviesos diodas „Užimta“.

Visi aktyviai prijungti bokšteliai turi būti parengties režime, kad MTC galėtų valdyti bokštelius.

Naudokite vairasvirtę (aukštyn ir žemyn), norėdami pereiti prie meniu pasirinkimų:

  • Arija
  • Pokalbis
  • Rankinis

Pasirinkite norimą parinktį naudodami mygtuką „X“arba paspausdami vairasvirtę.

Arijos režimas - pasirinkus šią parinktį bus rodomas ekranas „Aria Mode“ir priversti bokštelius atlikti „Aria“sceną „Portal 2“žaidimo pabaigoje. Užbaigus bokštelius, jie užsidarys ir laukia komandos ar kas nors juos pažadins.

Pokalbio režimas - pasirinkus šią parinktį bus rodomas ekranas „Pokalbio režimas“ir prasidės pokalbių seka. Užbaigus bokštelius, jie užsidarys ir laukia komandos ar kas nors juos pažadins.

Rankinis režimas - pasirinkus šią parinktį bus rodomas ekranas „Rankinis režimas“, užsidegs „Rankinis“šviesos diodas ir bus galima rankiniu būdu valdyti bokštelius. Žingsnio ir pasukimo valdymas vairasvirte. Paspaudus „X“mygtuką, bus suaktyvinta šaudymo seka. Paspaudus mygtuką „T“, jie „kalbės“, kai bokšteliai pasakys atsitiktinį posakį iš savo bibliotekos.

Paspaudus mygtuką „<“arba atgal, šie trys režimai bus atšaukti, uždaryti bokšteliai ir grįžti į pagrindinį meniu.

Jei norite pamatyti savo būrio būrio prisijungimo būseną (šiuo metu apribota iki 3), pagrindiniame meniu paspauskite mygtuką „T“. Būsite nukreipti į „bokšto būsenos“ekraną, kuriame galėsite pamatyti kiekvieno bokšto prijungimo būseną.

Kai būsite „bokšto būsenos“ekrane, pamatysite kiekvieno bokšto būseną.

  • Paruošta - paruošta valdymui
  • Užimtas - bokštelis yra užsiėmęs kažkieno „priežiūra“
  • Nėra - MTC negali prisijungti prie šio bokštelio

Norėdami grįžti į pagrindinį meniu, paspauskite mygtuką „<“.

8 veiksmas: kodo pritaikymas

Kodo pritaikymas
Kodo pritaikymas

Čia parodyta ekrano kopija rodo tai, į ką aš žiūrėjau per ilgai … 4 eskizai vienu metu! Kas sakė, kad derinimas nėra įdomus!

Kodas suteikia aukščiau nurodytą valdymą ir parinktis, bet kaip su tinkinti kodą?

Žinoma! Tačiau čia vyksta gana daug, todėl čia yra keletas gairių ar patarimų.

1 patarimas - „Pokalbių“sekos keitimas. Šis pakeitimas vyksta bokšto kode.

Bandžiau sugalvoti būdą, kaip priversti kodą dirbti visur, kur tik galiu. Pokalbių sekos redagavimas (ar tai žodis?), Kad galėčiau sutelkti dėmesį į istoriją, iš pradžių padėjo daugiau darbo, tačiau vėliau lengviau pritaikyti.

Pokalbių seką pakeisti naudojant pateiktą kodavimo struktūrą galima gana paprastai, jei laikysitės kode naudojamo metodo. Naudodami pateiktus garso failus iš „Portal 2“žaidimo, turėsite pakeisti tik (chatSayings ) lentelę.

Pasirinkite posakį įprastam arba sugedusiam bokšteliui. Posakis yra mp3 failas, identifikuojamas „00XX -“, po kurio eina posakį apibūdinantis tekstas. Tai skaičius yra svarbi dalis. 1 bokštelis naudotų šią XX reikšmę lentelėje. Bokštelis Nr. 2 prieš XX reikšmę nurodytų „1“, o bokštelis Nr. 3 - prieš XX reikšmę su „2“. Taigi, pavyzdžiui, jei pasirinktumėte posakį „0040 - atsiprašau“ir norėtumėte, kad bokštelis Nr. 3 jį pasakytų, įterpkite „240“į lentelę teisinga seka. Jei bokštelis Nr. 1 tai pasakytų, į lentelę įterptumėte „40“.

Atlikite tą patį su kita išraiška ir pan. Tai gali būti keletas išraiškų tarp bokštelių arba gana daug. (Aš nežinau šio metodo apribojimų, išskyrus atmintį).

Jums nereikės keisti kitų lentelių reikšmių, nes jos yra laikas, atitinkantis lentelės posakį. Vienintelė kita linija, kurią reikia pakeisti, yra apie 520 liniją.

if (i> = 43) {// sekos pabaiga

I reikšmė čia turėtų būti nustatyta kaip „chatSayings lentelės posakių skaičius.

Jei norite pasakyti visiškai pritaikytus posakius (kur prasideda tikros linksmybės!), Turėsite nustatyti išraiškas sunumeruotuose failuose ir žinoti, kiek laiko reikia failui paleisti. Išsaugokite failą „mp3“aplanke, esančiame SD kortelės šakniniame kataloge, naudodami keturių skaitmenų metodą („0001“, „0002“ir kt.). Tada registruokite laiką milisekundėmis, per kurį šis failas paleidžiamas. Įrašykite šias vertes į atitinkamą lentelę.

Taigi, jei išraiška išsaugota kaip „0037 - [jūsų išraiška]“, kuriai paleisti reikia 5400 milisekundžių, į „chatSayings lentelę atitinkamoje vietoje įrašykite„ 37 “(ir pridėkite priešdėlį, priklausomai nuo to, koks bokštelis sako) it) ir 5400 toje pačioje vietoje esančioje lentelėje „NormaTimings (pvz., 5 -as elementas kiekvienoje lentelėje).

Dabar, kai padidinama „i“vertė, kodas groja 0037 5400 milisekundžių.

Atminkite, kad pridėjau kintamąjį „timeadder“, kuris kiekvienam pasakymui žaidimo metu suteikia šiek tiek daugiau laiko. Tai suteikia šiek tiek atstumo tarp posakių, kad neatrodytų, kad jie sutampa.

Šio metodo grožis yra tas, kad užpildytos lentelės yra vienodos kiekviename bokšte! Nereikia pritaikyti šių lentelių kiekvienam bokšteliui. Jums reikia sutvarkyti tik vieną lentelę, o kodas išsiaiškina, ką kiekvienas bokštelis sako pagal tą pačią lentelę.

Tai reiškia, kad galite sutelkti dėmesį į scenarijaus rašymą, o ne kodavimą!

Jei kas nors turi geresnį būdą tai padaryti, aš norėčiau tai išgirsti !!

9 žingsnis: santrauka

Santrauka
Santrauka

Taigi tai užtruko daugiau laiko, nei maniau, bet mane labai kutena rezultatas. Kai kurios pokalbių procedūros man vis dar kelia juoką!

Norėčiau išgirsti kitus metodus, kaip daryti tai, ką padariau pagal savo kodą. Esu tikras, kad yra skyrių, kuriuos būtų galima perrašyti ir sunaudoti mažiau atminties, kad būtų galima naudoti daugiau funkcijų ar parinkčių.

Taip pat norėčiau pamatyti kitas idėjas, įtrauktas į MTC ir bokštelių valdymą!

Tikiuosi, kad sukūriau platformą kitiems dizaineriams ir koduotojams, kuriais jie galėtų naudotis / vogti / mokytis. Matau, kad tai naudojama siekiant padėti žmonėms išmokti koduoti. Pašalinkite skyrių iš MTC ir (arba) bokštelio, pvz., „Rankinis režimas“, ir leiskite mokiniams susikurti savo būdą, kaip įtraukti rankinį valdymą!

Aš daug išmokau iš šios bendruomenės ir apskritai platesnio žiniatinklio. Aš vis dar stebiuosi, kiek žmonių praleidžia daug laiko, kad išsiaiškintų dalykus ir pasidalytų jais su pasauliu. Manau, kad turėčiau imtis to, ką išmokau, pritaikyti, tada pasidalinti ir su jumis!

Sėkmės ir smagiai kurkite savo bokštelių armiją!

Rekomenduojamas: