Kazalo:

Portal 2 Turret - Glavni nadzor kupole: 9 korakov (s slikami)
Portal 2 Turret - Glavni nadzor kupole: 9 korakov (s slikami)

Video: Portal 2 Turret - Glavni nadzor kupole: 9 korakov (s slikami)

Video: Portal 2 Turret - Glavni nadzor kupole: 9 korakov (s slikami)
Video: Часть 2. Аудиокнига Зейна Грея «Последний из жителей равнин» (гл. 06–11) 2024, Julij
Anonim
Image
Image

Ta projekt je podaljšek ali remiks mojega izvirnega Portal Turret on Instructables (Portal-2-Turret-Gun). Lahko se uporablja tudi kot poceni krmilnik za nadzor vsega, kar uporablja radijski čip nRF24L01. LCD zaslon je še posebej uporaben pri prilagajanju.

(Izkazalo se je, da je zelo koristno pri preverjanju, kdaj moji radijski sprejemniki vzpostavijo in izgubijo povezave z drugimi nRF24L01 v "omrežju". Lahko se sprehodim in gledam, kako zaslon prikazuje stanje povezave radijskih postaj! Precej koristno za prilagajanje nastavitev in preverjanje doseg!)

Ko sem dokončal Portalni stolp, sem na koncu Portala 2 videl kratek video posnetek operne scene Cara Mia. Mislil sem si: "Hej, zdaj sem zgradil nekaj stolpov. To lahko naredim!" No, imel sem kupole, toda da bi lahko delovalo, bi morali zdaj komunicirati med seboj ali s kakšno drugo napravo. Potem ko sem premislil in pomislil, da bi bilo tudi ročno upravljanje kul, sem se na koncu odločil, da bom zgradil glavni krmilnik stolpov ali MTC.

V redu, kako se torej lotiti tega? No, nisem si želel preveč spreminjati stolpov, zato je bila to omejitev. Imel sem nekaj radijskih čipov nRF24L01, ki jih še nisem uporabljal, in mislil sem, da bo to v skladu z mojim ciljem uporabe poceni komponent in zanašanja na mehansko zasnovo in kodo za to delo. Moral bi zgraditi krmilnik in začeti premišljevati, kaj bo vseboval krmilnik in kaj točno lahko naredim s kupolami. Cara Mia je bila že na dnevnem redu, kaj pa drugega?

Ročno upravljanje: Ko sem odprl krila, bi rad nadzoroval višino in vrtišče. 2 osi = krmilna palica, zato krmilna ročica in nekaj gumbov. S pritiskom na gumb 1 bi se sprožil stolp, morda pa bi s pritiskom na gumb 2 izgovoril enega od svojih izrekov. Zveni dobro! Dovolj preprosto…

Klepet: Pred kratkim sem videl rutino »Kdo je prvi« - Abbott in Costello in v moji glavi je ugasnila luč! Prav tako bi naredil skico rutinske komedije z uporabo vseh izrekov z uporabo več stolpov !! V redu, ta ni bil popolnoma ugotovljen, vendar sem prepričan, da bom to uredil, ko bo moja gradnja v teku.

Želel sem tudi, da bi bil ta MTC brezžičen, zato sem se odločil za preprosto 9V baterijsko napajanje in krmilnik zasnoval tako, da ga napaja vtič mini-USB prek Nano na zadnji strani. Uporabno tudi za posodabljanje.

1. korak: Vključitev radia v stolpe

Radio sem najprej začel delati z nekaj golimi Nanosi, da sem se prepričal, da lahko deluje in pošilja podatke med več napravami. Ko je bilo to storjeno, je šlo za vključitev radia v obstoječe stolpe. Hmm, dodajanje fizičnega tiskanega vezja v stolp je bilo precej enostavno. Pravkar sem spremenil držalo za čipe, tako da vključuje nRF24L01, Nano in mp3 čip. V redu. En fizični del spremenjen, z nekaj ožičenja.

Spremenjeno držalo za žetone je zdaj že del natisnjenih kupolov. Pravkar sem izbrisal možnost brez radia iz natisnjenih delov v tej zgradbi. Ne bo pomembno, če nekdo želi zgraditi različico brez radia. Samo ne vključite radijskega čipa nRF24L01.

2. korak: (Ponovno) ožičenje kupolov

(Po) ožičenje kupolov
(Po) ožičenje kupolov
(Po) ožičenje kupolov
(Po) ožičenje kupolov
(Po) ožičenje kupolov
(Po) ožičenje kupolov
(Po) ožičenje kupolov
(Po) ožičenje kupolov

Ojoj…

To ni bilo videti dobro. Nano sem moral dodati 5 povezav, že pa sem imel premalo razpoložljivih zatičev. Ko sem to malo preučil, sem spoznal, katere povezave imajo prednost, in spoznal, da bom za to delo moral preoblikovati večino obstoječih povezav Nano.

Tistim, ki želijo narediti "radijsko kupolo" in so že zgradili prejšnjo generacijo … Oprostite …

Zdaj sem nekajkrat naredil to spremembo in izkazalo se je, da postopek ni tako slab. Vključuje vračanje, vendar sem lahko razveljavil obstoječe povezave z Nano in se nato znova povezal z ustreznimi zatiči brez prevelike žalosti. NRF24L01 (5 komunikacijskih žic, 3v in GND) sem dodal 7 žic za radijski čip, nato pa druge konce priključil na Nano.

Zdaj je tam več žic, zato je toliko pomembnejše, da so stvari urejene pri usmerjanju žic.

POMEMBNO: Pri sestavljanju pazite, da žice ne pritisnejo gumba Nano reset na plošči !! To se mi je zgodilo na eni in me spravilo v nepotrebno zanko!

Tako ima stolpnica zdaj dve shemi ožičenja: staro podedovano možnost »brez radia« in spremenjeno možnost »radijska kupola«. Če bi danes zgradil stolp brez radia, bi še vedno uporabil radijsko shemo in kodo. Samo izbrišite ali komentirajte radijske dele, če je to izbrana pot ali ne. Stolp bi moral še vedno delovati sam brez radia.

3. korak: Električne komponente MTC

Električne komponente MTC
Električne komponente MTC
Električne komponente MTC
Električne komponente MTC
Električne komponente MTC
Električne komponente MTC

Ko smo stolpe uredili, je bil čas za izdelavo MTC.

MTC uporablja naslednje komponente, vse iz Amazon, Baggood ali Ali Express itd. Prikazujem številke delov Amazon, na katere sem se skliceval, ker so ti izdelki običajno na voljo in po razumnih cenah (in ni mi bilo treba počakajte 2+ tedna, da dobim v roke, kar sem potreboval, preden sem se lahko lotil mehanskega oblikovanja!)

  • Arduino Nano 0,96”LCD, (SSD1306) Uporabil sem modro/rumeno različico
  • Majhna krmilna palica (HW-504) 5V PS modul igralne palice
  • Preklopno stikalo (dx-004) 22 mm * 13 mm
  • Radio - (nRF24L01)
  • 12-milimetrski gumbi (CLT1088 za barvne gumbe, PBS-33B za črno)
  • 2 mm vijaki (komplet samoreznih vijakov M2, izbor glav za križne pogone)
  • 5 mm LED diode po vaši izbiri za indikatorje. (Ne uporabljajte svetle LED diode !!)
  • Splošni 9V akumulatorski priključek s kosi
  • 9V baterija (uporabite dobro, ne eno od dolarjev, ki ne more vedno zagotoviti dovolj energije za te projekte!)
  • Uporabil sem silikonsko obloženo žico. Rad ga uporabljam za te projekte.

Prvotno sem uporabil nekaj svetlih LED, vendar so se mi zdele predobre. Oslepele so me! Na koncu sem uporabil nekaj starih, šibkih LED, kar je bilo za to aplikacijo bolj smiselno.

4. korak: 3D natisnjeni deli

3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli

MTC sem oblikoval z uporabo Fusion, podobno kot pri oblikovanju kupole.

Tiskani sklop potrebuje le 3 dele:

  • Zgornja plošča (različica 1 ali 2)
  • Ohišje spodaj
  • LCD pas

Čip nRF, Nano, 9V baterija, stikalo in LED so nameščeni na zgornji plošči brez pritrdilnih elementov. LED diode samo pritisnejo na ploščo in jih držijo jezički. Morali bi se samo vtakniti, vendar ne pretiravajte. Zgornja plošča je zasnovana tako, da zadrži Nano, čip nRF pa mora nežno vstopiti. Previdno z majhnim jezičkom nRF; je majhen in upognjen nazaj, da se odpre in sprosti, da zajame čip. Čeprav je potovanje omejeno, bodite tukaj nežni.

Krmilna palica in LCD -zaslon potrebujeta 2 mm vijake (dolžine 5 mm), da ju pritrdite na zgornjo ploščo. PCB krmilne palice ima velike luknje, zato se mi je zdelo, da potrebujem majhne podložke, da se prepričam, da vijaki ne potegnejo skozi.

Ugotovil sem, da se tiskani vezji LCD -jev od proizvajalca do proizvajalca nekoliko razlikujejo, zato sem se odločil za uporabo preprostega traku, da ga držim na mestu, namesto sponk ali kljuk.

Upoštevajte, da je LCD v vsakem primeru lahko fizično nameščen na zgornjo ploščo, vendar se zaslon v celoti prikaže le skozi odprtino v eni orientaciji! Zaradi tega sem pri uporabi razdeljenega rumeno/modrega zaslona vključil možnost 2. zgornje plošče. Ena različica ima rumeno na vrhu, druga pa rumeno na dnu, kot je prikazano na mojih fotografijah.

Za enobarvno različico LCD -ja ni pomembno, kateri se uporablja, saj lahko zaslon obrnete s programsko opremo.

Ker je vse ožičenje izvedeno na zgornji plošči, je spodnji del le pokrov, pritrjen na zgornjo ploščo z daljšimi 2 mm vijaki (količina: 4).

Namesto možnosti "vrat za baterijo" sem baterijo vstavil v zgornjo ploščo. To pomeni, da odstranite 4 vijake, ki držijo dno na vrhu, da zamenjate baterijo, ker pa se lahko napaja tudi prek kabla USB, ne pa konec sveta. Zgornja plošča je narejena iz 9V sistema nosilcev baterij, ki mora biti dovolj trden za večkratno uporabo, ni preveč zapleten, vendar preprečuje premikanje baterije.

Zgornjo ploščo sem natisnila v 2 barvah, kot je razvidno iz fotografij. Uporabljam Prusa i3 Mk2 brez možnosti več barv, vendar z njihovim orodjem za barvno tiskanje (https://www.prusaprinters.org/color-print/) spremenite barvo med postopkom. Preverite plast, da se besedilo ustavi in postane trdno, in naredite to prehodno plast. Voila! Barvno besedilo!

Natisnil sem dele na višini plasti 0,35 mm, ker na teh ravnih delih ni potrebe po natančnejši ločljivosti. Raje imam tudi pogled na to resolucijo. Oh, tiska se tudi zelo hitro!

5. korak: Električna montaža

Električni sklop
Električni sklop
Električni sklop
Električni sklop
Električni sklop
Električni sklop
Električni sklop
Električni sklop

Vse električne komponente so nameščene na spodnji strani zgornje plošče, vse ožičenje pa je izvedeno skupaj. Najprej je treba namestiti gumbe in preklopnike, pred namestitvijo na zgornjo ploščo pa je mogoče vnaprej priključiti LCD, Nano, Joystick in nRF radio. Priporočam ta način predhodnega ožičenja posameznih komponent, nato pa na koncu še zadnje povezave z Nano. Priporočam tudi, da skico najprej naložite v goli Nano, preden dokončate ožičenje.

Nič ni bolj zadovoljivo kot vklop naprave in opazovanje njene oživitve po pričakovanjih, ko končate!

Edina potrebna priprava električnih delov je bila odstraniti zatiče glave z igralne palice, da se prilegajo pod zgornjo ploščo. Zaslon LCD lahko kupite z nameščenimi zatiči ali brez, in bo deloval v obeh primerih. Nano je treba izbrati brez zatičev glave.

6. korak: Koda

Koda za MTC, Rdeči stolp, Beli stolp in Modri stolp zdaj pripravljena

No, to je bila izkušnja s kodiranjem! Imel sem samostojno delo kupole, vendar je bilo vključitev radia težje, kot sem sprva mislil! Prav tako sem se zabaval, da je razdelek »Klepet« deloval po želji (več o tem kasneje).

Koda MTC, ko je bila popolnoma ugotovljena, je začela obdavčevati omejitve pomnilnika Nano! Moral sem narediti prilagoditve in prihraniti kodo, da bi bil bolj pomnilniško učinkovit. Še ena dobra učna izkušnja.

V to zgradbo sem vključil ustrezno kodo »Turret w radio option«, saj delujejo skupaj. Če zgradite radijski opcijski stolp na strani za gradnjo kupole, bo pripravljen za uporabo z MTC -jem ali za vašo drugo metodo nadzora nRF24L01.

Prav tako je trajalo nekaj časa, da so zvoki delovali s to kodo, in ker so bili zvoki vzeti z drugih javno dostopnih spletnih mest, sem vse zvoke vključil, kot sem jih uporabil v nekaj datotekah ZIP; ena za običajno kupolo in ena za pokvarjeno kupolo. Dobra stvar za vas, dragi bralec, je, da lahko uporabite zvoke na svojih karticah SD s kodami, ki so zapisane, in vse bo v redu!

7. korak: Meni MTC - Navigacija

Meni MTC - Navigacija
Meni MTC - Navigacija
Meni MTC - Navigacija
Meni MTC - Navigacija
Meni MTC - Navigacija
Meni MTC - Navigacija

Koda MTC se zažene z zaslonom po meri, nato pa preveri stanje stolpov. Če ni kupolov, bo samo sedel, dokler se kupole ne povežejo!

Če je priključena vsaj ena kupola, se bo prikazal glavni meni in zasvetila bo lučka »Pripravljeno«, razen če so kupole prekinjene ali so zasedene »z nekom«. Če so zaposleni, se prikaže zaslon »Turrets are Busy«, lučka »Busy« pa zasveti.

Vse aktivno povezane kupole morajo biti v "pripravljenem načinu", preden lahko MTC nadzira kupole.

S krmilno palčko (gor in dol) se pomikajte po možnostih menija:

  • Arija
  • Klepetajte
  • Priročnik

Z gumbom 'X' ali s pritiskom na krmilno palčko izberite želeno možnost.

Način Aria - če izberete to možnost, se prikaže zaslon »Način Aria« in stolpci izvedejo prizor Aria na koncu igre Portal 2. Ko se končajo, se stolpi zaprejo in čakajo na ukaz ali nekoga, ki jih zbudi.

Način klepeta - če izberete to možnost, se prikaže zaslon »Način klepeta« in zažene zaporedje klepeta. Ko se končajo, se stolpi zaprejo in čakajo na ukaz ali nekoga, ki jih zbudi.

Ročni način - Če izberete to možnost, se prikaže zaslon »Ročni način«, zasveti LED »Ročni« in omogoči ročno upravljanje kupolov. Joystick nadzor višine in vrtenja. S pritiskom na gumb 'X' se aktivira zaporedje streljanja. S pritiskom na tipko "T" se bodo "pogovarjali", kjer stolpi govorijo naključni izrek iz svoje knjižnice.

S pritiskom gumba '<' ali nazaj boste preklicali te tri načine, zaprli stolpiče in se vrnili v glavni meni.

Če želite videti stanje povezave vašega roja kupolov (trenutno omejeno na 3), pritisnite gumb 'T' v glavnem meniju. Preusmerjeni boste na zaslon »stanje kupole«, kjer si lahko ogledate stanje povezave vsakega stolpa.

Ko ste na zaslonu "stanje stolpa", boste videli stanje vsakega stolpa.

  • Pripravljen - pripravljen za nadzor
  • Zaseden - stolp je zaposlen, "skrbi" za nekoga
  • Ni na voljo - MTC se ne more povezati s to kupolo

Za vrnitev v glavni meni pritisnite gumb ‘<’.

8. korak: prilagajanje kode

Prilagajanje kode
Prilagajanje kode

Posnetek zaslona, prikazan tukaj, prikazuje, v kaj sem gledal predolgo … 4 skice naenkrat! Kdo je rekel, da odpravljanje napak ni zabavno!

Koda ponuja nadzor in možnosti, prikazane zgoraj, kaj pa prilagoditev kode?

Seveda! Toda tukaj se dogaja precej, zato je tukaj nekaj smernic ali nasvetov.

Nasvet1 - Sprememba zaporedja »Klepet«. Ta sprememba se zgodi v kodi kupole.

Poskušal sem najti način, kako bi mi koda delovala, kjer koli bi lahko. Izboljšanje zaporedja klepeta (Je to beseda?), Da sem se lahko osredotočil na zgodbo, je zahtevalo več dela vnaprej, vendar je olajšalo prilagajanje.

Spreminjanje zaporedja klepeta s priloženo strukturo kodiranja je mogoče na precej preprost način, če upoštevate metodo, uporabljeno v kodi. Z uporabo priloženih zvočnih datotek iz igre Portal 2 bi morali spremeniti le tabelo (chatSayings ).

Izberite rek za običajno kupolo ali pokvarjeno kupolo. Rek je mp3 datoteka, ki je označena z "00XX -", čemur sledi besedilo, ki opisuje rek. Pomemben del je število. Stolp # 1 bi uporabil to vrednost XX v tabeli. Stolp # 2 bi pred vrednostjo XX označil z '1', stolp # 3 pa pred vrednostjo XX z '2'. Na primer, če ste na primer izbrali izrek »0040 - oprosti« in želite, da to pove stolpnica 3, bi v tabelo v pravilnem zaporedju vstavili »240«. Če bi to rekla kupola št. 1, bi v tabelo vstavili »40«.

Enako storite za naslednji izraz itd. Lahko je nekaj izrazov med stolpiči ali kar nekaj. (Ne poznam omejitev te metode, razen spomina).

Vrednosti drugih tabel vam ni treba spreminjati, saj so časovni razporedi, ki ustrezajo izreku v tabeli. Edino drugo vrstico za spremembo je okoli vrstice 520.

if (i> = 43) {// konec zaporedja

Vrednost i tukaj bi morala biti nastavljena na število izrekov v tabeli chatSayings.

Če želite narediti popolnoma prilagojene izreke (kjer se začne prava zabava!), Bi morali nastaviti izraze v oštevilčenih datotekah in vedeti, koliko časa je potrebno za predvajanje datoteke. Datoteko shranite v mapo »mp3« v korenskem imeniku kartice SD s štirimestno metodo (»0001«, »0002« itd.). Nato zabeležite čas v milisekundah, ki je potreben za predvajanje te datoteke. Te vrednosti vnesite v ustrezno tabelo.

Torej, za izraz, shranjen kot: "0037 - [vaš izraz]", za predvajanje katerega je potrebnih 5400 milisekund, bi dali "37" v tabelo chatSayings na ustrezno mesto (in dodali predpono, odvisno od tega, kateri stolp pravi it) in 5400 v tabeli NormaTimings na istem mestu (na primer 5. element v vsaki tabeli).

Ko se vrednost 'i' poveča, bo koda predvajala 0037 5400 milisekund.

Upoštevajte, da sem dodal spremenljivko "timeadder", ki vsakemu izreku med igranjem doda malo več časa. To daje malo razdalje med izreki, da se ne prekrivajo.

Lepota te metode je, da so izpolnjene mize popolnoma enake v vsaki kupoli! Teh miz ni treba prilagajati za vsako kupolo. Morate razvrstiti samo eno tabelo, koda pa na podlagi iste tabele ugotovi, kaj pravi vsaka kupola.

To pomeni, da se lahko namesto kodiranja osredotočite na pisanje skriptov!

Če ima kdo boljši način za to, bi to rad slišal !!

9. korak: Povzetek

Povzetek
Povzetek

Tako je trajalo več časa, kot sem mislil, vendar me rezultat precej žgečka. Nekatere rutine klepeta me še vedno nasmejejo!

Rad bi slišal druge načine dela, ki sem jih počel v svoji kodi. Prepričan sem, da obstajajo odseki, ki jih je mogoče prepisati in porabiti manj pomnilnika, kar omogoča več funkcij ali možnosti.

Prav tako bi rad videl druge ideje, vključene v MTC in nadzor nad kupolami!

Upam, da sem drugim oblikovalcem in kodirnikom zagotovil platformo za uporabo / krajo / učenje. Videl sem, da se to uporablja za pomoč ljudem pri učenju kodiranja. Odstranite del z MTC in/ali stolpa, na primer "ročni način", in učence spodbudite, da razvijejo svoj način vključitve ročnega upravljanja!

Od te skupnosti in širšega spleta na splošno sem se veliko naučil. Še vedno sem presenečen, koliko ljudi porabi veliko časa, da stvari ugotovi in jih deli s svetom. Mislim, da bi moral naučiti, kar sem se naučil, uporabiti, nato pa deliti tudi z vami!

Vso srečo in zabavo pri gradnji lastne vojske kupolov!

Priporočena: