INHOUDSOPGAWE:

Portal 2 Turret - Master Turret Control: 9 stappe (met foto's)
Portal 2 Turret - Master Turret Control: 9 stappe (met foto's)

Video: Portal 2 Turret - Master Turret Control: 9 stappe (met foto's)

Video: Portal 2 Turret - Master Turret Control: 9 stappe (met foto's)
Video: Mimi-Sentry Moment. 2024, Julie
Anonim
Image
Image

Hierdie projek is 'n uitbreiding of remix van my oorspronklike Portal Turret on Instructables (Portal-2-Turret-Gun). Dit kan ook gebruik word as 'n goedkoop kontroleerder om enigiets wat die nRF24L01 radioskyfie gebruik, te beheer. Die LCD -skerm is veral handig om aan te pas.

(Dit blyk baie handig te wees om te kyk wanneer my radio's verbindings met ander nRF24L01's op die "netwerk" maak en verloor. Ek kan rondloop en kyk hoe die skerm die verbindingstatus van die radio's wys! Baie nuttig om die instellings aan te pas en te verifieer reeks!)

Nadat ek die Portal Turret voltooi het, het ek 'n kort videogreep van die Cara Mia operatoneel gesien aan die einde van Portal 2. Ek het gedink: 'Haai, ek het nou 'n paar torings gebou. Ek kan dit doen! Wel, ek het die torings gehad, maar om dit te laat werk, moet hulle nou met mekaar of met 'n ander toestel kommunikeer. Nadat ek daaroor gedink het en gedink het dat handbediening ook gaaf sou wees, het ek besluit dat ek 'n Master Turret Controller, of 'n MTC, sou bou.

Ok, hoe gaan ek hiermee te werk? Ek het nie te veel lus gehad om die torings te verander nie, so dit was 'n beperking. Ek het 'n paar nRF24L01 radioskyfies gehad wat ek nog nie gebruik het nie, en ek het gedink dit sal in lyn wees met my doel om goedkoop komponente te gebruik en op meganiese ontwerp en kode te vertrou om dit te laat werk. Ek sou 'n kontroleerder moes bou en begin nadink oor wat die kontroleerder sou bevat en wat ek presies aan die torings kon doen. Cara Mia was reeds op die agenda, maar wat nog?

Handbediening: Sodra die vlerke oop is, wil ek die toonhoogte en die spilpunt beheer. 2 asse = 'n joystick, dus joystick -beheer en 'n paar drukknoppies. Drukknop 1 sal die rewolwer afskakel, en miskien sal druk op knoppie 2 dit een van sy woorde laat sê. Klink goed! Eenvoudig genoeg…

Chat: Ek het onlangs weer die roetine "Who's on First" - Abbott en Costello gesien, en 'n lig het in my kop afgegaan! Ek sou ook 'n sketskomedie -roetine maak met al die gesegdes, met behulp van verskeie torings !! Oké, hierdie een is nie heeltemal uitgevind nie, maar ek is seker ek sou dit regkry sodra my bouwerk aan die gang was.

Ek wou ook hê dat hierdie MTC draadloos sou wees, so ek het gekies vir 'n eenvoudige 9V-battery-aangedrewe opsie en het die kontroleerder ontwerp om deur die mini-USB-prop deur die Nano aan die agterkant aangedryf te word. Dit is ook handig om by te werk.

Stap 1: Om die radio in die torings op te neem

Ek het die radio eers met 'n paar kaal Nanos laat werk, om seker te maak dat ek dit kan laat werk en inligting tussen verskeie toestelle kan stuur. Sodra dit klaar was, was dit 'n kwessie om die radio in die bestaande torings op te neem. Hmm, dit was redelik maklik om die fisiese PCB in die rewolwer te voeg. Ek het pas die chiphouer aangepas om die nRF24L01, die Nano en die mp3 -chip in te sluit. Ok. Een fisiese deel aangepas, met 'n paar bedrading.

Die gemodifiseerde chiphouer is nou reeds deel van die gedrukte dele van die rewolwer. Ek het so pas die nie-radio-opsie uit die gedrukte dele in die gebou verwyder. Dit sal geen verskil maak as iemand die nie-radio-variant wil bou nie. Moet net nie die nRF24L01 radioskyfie insluit nie.

Stap 2: (Her) bedrading van die torings

(Her) bedrading van die torings
(Her) bedrading van die torings
(Her) bedrading van die torings
(Her) bedrading van die torings
(Her) bedrading van die torings
(Her) bedrading van die torings
(Her) bedrading van die torings
(Her) bedrading van die torings

Uh Oh…

Dit het nie goed gelyk nie. Ek moes 5 verbindings by die Nano voeg, en ek het al min beskikbare penne. Nadat ek 'n bietjie hieroor gekyk het, het ek besef watter verbindings voorrang geniet, en het ek besef dat ek die meeste bestaande Nano -verbindings om hierdie werk sou moes maak.

Vir diegene wat 'n 'radio -rewolwer' wil maak en die vorige generasie reeds gebou het … Jammer …

Ek het hierdie verandering 'n paar keer gedoen en dit blyk dat die proses nie te erg is nie. Dit behels wel om weer in te gaan, maar ek kon die bestaande verbindings met die Nano ongedaan maak en dan weer te veel kontak maak met die toepaslike penne. Ek het die 7 drade vir die radioskyfie by die nRF24L01 gevoeg (5 kabels, 3v en GND), en dan die ander ente met die Nano verbind.

Daar is egter nou meer drade, dus dit is baie belangriker om dinge netjies te hou wanneer u die drade lei.

BELANGRIK: tydens die montering, maak seker dat die drade nie op die Nano -reset -knoppie op die bord druk nie !! Dit het met my gebeur en my gegooi vir 'n onnodige lus!

Die toring het dus twee bedradingskemas: die ou "nie-radio" opsie en die hersiene "radio-rewolwer" opsie. As ek vandag 'n "nie-radio" rewolwer bou, sou ek steeds die radioskema en kode gebruik. Vee net die radiogedeeltes uit of lewer kommentaar op dit as die gekose roete, al dan nie. Die rewolwer moet steeds op sy eie werk sonder die radio.

Stap 3: MTC -elektriese komponente

MTC elektriese komponente
MTC elektriese komponente
MTC elektriese komponente
MTC elektriese komponente
MTC elektriese komponente
MTC elektriese komponente

Nadat die torings uitgesorteer is, was dit tyd om 'n MTC te maak.

Die MTC gebruik die volgende komponente, alles verkrygbaar via Amazon of Baggood of Ali Express, ens. Ek wys die Amazon -onderdeelnommers waarna ek verwys het as verwysing, aangesien hierdie items algemeen beskikbaar is en redelik geprys is (en ek hoef nie Wag nog meer as 2 weke voordat ek met die meganiese ontwerp begin het!)

  • Arduino Nano 0.96”LCD, (SSD1306) Ek het die blou/geel weergawe gebruik
  • Klein joystick (HW-504) 5V PS joystick module
  • Wisselskakelaar (dx-004) 22 mm * 13 mm
  • Radio - (nRF24L01)
  • 12 mm drukknoppies (CLT1088 vir gekleurde knoppies, PBS-33B vir swart)
  • 2 mm skroewe (M2 self -tappende skroewe stel, Cross Drive Pan Head -assortiment)
  • 5 mm LED's van u keuse vir aanwysers. (Moenie helder LED's gebruik nie!)
  • Generiese 9V -batteryaansluiting met varkstertjies
  • 9V -battery (gebruik 'n goeie een, nie een van die dollarwinkels wat nie altyd genoeg krag vir hierdie projekte kan lewer nie!)
  • Ek het silikoon omhulde draad gebruik. Ek hou daarvan om dit vir hierdie projekte te gebruik.

Ek het oorspronklik 'n paar helder LED's gebruik, maar dit was te goed. Hulle verblind my! Uiteindelik het ek 'n paar ou, swak LED's gebruik, en dit was meer sinvol vir hierdie toepassing.

Stap 4: Onderdele met 3D -druk

3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele

Ek het die MTC ontwerp met behulp van Fusion, soortgelyk aan die manier waarop ek die ontwerp van die rewolwer gedoen het.

Die gedrukte samestelling benodig slegs 3 dele:

  • Bovenste paneel (weergawe 1 of 2)
  • Onderste behuising
  • LCD band

Die nRF -chip, die Nano, die 9V -battery, die skakelaar en die LED's word sonder bevestigingsmiddels in die boonste plaat geïnstalleer. Die LED's druk net op die bord en word vasgehou deur die oortjies. Hulle moet net inkom, maar moenie dit oordryf nie. Die boonste plaat is ontwerp om die Nano vas te hou, en die nRF-chip moet saggies ingaan. Wees versigtig met die nRF -klein oortjie; dit is klein en buig terug om oop te maak en word vrygelaat om die skyfie vas te vang. Alhoewel die reis beperk is, moet u versigtig wees hier.

Die joystick en die LCD benodig 2 mm skroewe (5 mm lank) om dit aan die boonste plaat vas te hou. Die joystick PCB het groot gate, so ek het gevoel dat ek klein ringe nodig het om seker te maak dat die skroewe nie deurtrek nie.

Ek het agtergekom dat die PCB's wat die LCD -skerms kry, effens dimensioneel verskil van vervaardiger tot vervaardiger, so ek het besluit om 'n eenvoudige band te gebruik om dit vas te hou in plaas van klampe of hake.

Let daarop dat die LCD in beide rigtings fisies op die boonste plaat geïnstalleer kan word, maar die skerm verskyn slegs volledig in een rigting deur die opening! Om hierdie rede het ek 'n 2de boonste bordopsie ingesluit by die gebruik van die gesplete geel/blou skerm. Een weergawe het die geel aan die bokant, en die ander sal die geel aan die onderkant vertoon, soos op my foto's.

Vir die enkelkleur weergawe LCD maak dit nie saak watter een gebruik word nie, aangesien u die skerm met sagteware kan omdraai.

Aangesien al die bedrading op die boonste plaat gedoen word, is die onderkant eintlik net 'n deksel wat met langer 2 mm skroewe aan die boonste plaat vasgehou word (aantal: 4).

In plaas van 'n "batteryleur" -opsie, het ek die battery net in die boonste plaat ingebou. Dit beteken dat u die 4 skroewe wat die onderkant bo -op hou, verwyder om 'n battery te verander, maar omdat dit ook deur 'n USB -kabel aangedryf kan word, nie die einde van die wêreld nie. Die boonste plaat is vervaardig met 'n 9V -batteryhouerstelsel wat stewig genoeg moet wees vir herhaaldelike gebruik, nie te ingewikkeld is nie, maar voorkom dat die battery rondbeweeg.

Ek het die boonste bord in 2 kleure gedruk, soos op die foto's. Ek gebruik 'n Prusa i3 Mk2 sonder die veelkleur-opsie, maar gebruik hul kleurafdrukhulpmiddel (https://www.prusaprinters.org/color-print/) om die kleur deur die proses te verander. Kontroleer die laag waarmee die teks stop en solied word, en maak die oorganglaag. Voila! Gekleurde teks!

Ek het die dele op 'n laaghoogte van 0,35 mm gedruk, aangesien daar geen fynere resolusie oor hierdie plat dele nodig is nie. Ek verkies ook die manier waarop dit na hierdie resolusie kyk. O, en dit word ook redelik vinnig gedruk!

Stap 5: Elektriese samestelling

Elektriese samestelling
Elektriese samestelling
Elektriese samestelling
Elektriese samestelling
Elektriese samestelling
Elektriese samestelling
Elektriese samestelling
Elektriese samestelling

Die elektriese komponente word almal aan die onderkant van die boonste plaat geïnstalleer, en alle bedrading word saam gedoen. Drukknoppies en skakelaars moet eers geïnstalleer word, en die LCD-, Nano-, Joystick-, nRF-radio kan almal vooraf bedraad wees voordat dit in die boonste plaat geïnstalleer word. Ek beveel hierdie metode aan om die individuele komponente vooraf aan te sluit, en dan die finale verbindings met die Nano aan die einde te maak. Ek beveel ook aan dat u die skets eers na 'n kaal Nano oplaai voordat u die bedrading voltooi.

Daar is niks meer bevredigend as om die toestel aan te skakel en te sien hoe dit na verwagting lewendig word as dit klaar is nie!

Die enigste voorbereiding vir elektriese onderdele was om die koppenne van die joystick te verwyder sodat dit onder die boonste plaat pas. Die LCD -skerm kan gekoop word met of sonder penne geïnstalleer, en werk in elk geval. Die Nano moet gekies word sonder kopstukke.

Stap 6: Kode

Kode vir MTC, rooi rewolwer, wit rewolwer en blou rewolwer nou op

Dit was 'n ervaring in kodering! Ek het die rewolwer onafhanklik laat werk, maar dit was moeiliker om die radio in te sluit as wat ek aanvanklik gedink het! Ek het ook 'n plesier gehad om die afdeling "Chat" na wense te laat werk (meer hieroor later).

Die MTC -kode, nadat dit eers uitgepluis is, het die geheue perke van die Nano begin belas! Ek moes aanpassings maak en die kode spaar om meer geheue doeltreffender te maak. Nog 'n goeie leerervaring.

Ek het die ooreenstemmende 'Turret w radio option' -kode by hierdie build ingesluit, terwyl hulle saamwerk. Deur die radio -opsie -rewolwer te bou volgens die gebou van die rewolwer -bladsy, is dit gereed vir gebruik met die MTC of vir u ander nRF24L01 -beheermetode.

Dit het ook 'n geruime tyd geneem om die geluide met hierdie kode te laat werk, en aangesien die geluide van ander publiek toeganklike webwerwe afkomstig is, het ek alle klanke opgeneem soos ek dit in 'n paar zip -lêers gebruik het; een vir die gewone rewolwer en een vir defektiewe rewolwer. Die goeie ding vir u, liewe leser, is dat u die geluide op u SD -kaarte kan gebruik met die kodes soos dit is geskryf, en u sal klaar wees!

Stap 7: MTC -spyskaart - navigasie

MTC -spyskaart - navigasie
MTC -spyskaart - navigasie
MTC -spyskaart - navigasie
MTC -spyskaart - navigasie
MTC -spyskaart - navigasie
MTC -spyskaart - navigasie

Die MTC -kode begin met 'n pasgemaakte Splash -skerm en kyk dan na die status van die torings. As daar geen torings teenwoordig is nie, sal dit net daar bly totdat die torings aansluit!

As ten minste een rewolwer gekoppel is, sal die hoofkieslys verskyn en die "Gereed" -lampie sal brand, tensy die torings onderbreek word of besig is om met iemand te doen. As hulle besig is, sal 'n "Turrets is Busy screen" vertoon word en die "Busy" LED sal brand.

Alle aktief gekoppelde torings moet in die "gereedmodus" wees voordat die MTC die torings kan beheer.

Gebruik die joystick (op en af) om deur die kieslyskeuses te blaai:

  • Aria
  • Gesels
  • Handleiding

Kies die gewenste opsie met die 'X' -knoppie, of deur op die joystick te druk.

Aria Mode - as u hierdie opsie kies, sal die skerm "Aria Mode" vertoon word en die torings die Aria -toneel laat speel aan die einde van die Portal 2 -spel. Sodra dit voltooi is, sal die torings toemaak en wag totdat 'n bevel of iemand hulle wakker maak.

Kletsmodus - As u hierdie opsie kies, verskyn die skerm "Kletsmodus" en begin die kletsreeks. Sodra dit voltooi is, sal die torings toemaak en wag totdat 'n bevel of iemand hulle wakker maak.

Handmatige modus - As u hierdie opsie kies, sal die skerm "Handmatige modus" vertoon word, die "Handmatige" LED verlig en die torings met die hand kan laat werk. Joystick -beheer van toonhoogte en spil. Deur op die 'X' -knoppie te druk, word die skietvolgorde geaktiveer. Deur op die 'T' -knoppie te druk, sal hulle' praat ', waar die torings 'n lukrake gesegde uit hul biblioteek spreek.

Deur op die '<' of terug knoppie te druk, word hierdie drie modusse gekanselleer, die torings toegemaak en teruggekeer na die hoofkieslys.

As u die verbindingstatus van u swerm torings (tans beperk tot 3) wil sien, druk op die 'T' -knoppie in die hoofkieslys. U word na die skerm "rewolwerstatus" geneem, waar u die verbindingstatus van elke rewolwer kan sien.

As u op die skerm "rewolwerstatus" is, sien u die status van elke rewolwer.

  • Gereed - gereed vir beheer
  • Besig - rewolwer is besig om na iemand te kyk
  • Nie beskikbaar nie - MTC kan nie met hierdie rewolwer skakel nie

Druk die '<' knoppie om terug te keer na die hoofkieslys.

Stap 8: Pas die kode aan

Pas die kode aan
Pas die kode aan

Die skermkiekie wat hier gewys word, wys waarna ek te lank gestaar het … 4 sketse op 'n slag! Wie het gesê dat ontfouting nie lekker is nie!

Die kode bied die beheer en opsies wat hierbo getoon word, maar hoe gaan dit met die aanpassing van die kode?

Natuurlik! Maar hier is 'n redelike hoeveelheid aan die gang, so hier is 'n paar riglyne of wenke.

Wenk 1 - Die aanpassing van die “klets” -volgorde. Hierdie wysiging vind plaas in die rewolwerkode.

Ek het probeer om 'n manier te vind om die kode vir my te laat werk, waar ek kon. Om die kletsvolgorde meer bewerkbaar te maak (is dit 'n woord?), Sodat ek op die verhaal kon fokus, het ek meer werk nodig gehad, maar dit is makliker om daarna aan te pas.

U kan die kletsvolgorde verander met behulp van die koderingstruktuur op 'n redelike eenvoudige manier, mits u die metode in die kode volg. As u die klanklêers van die Portal 2 -speletjie gebruik, hoef u slegs die (chatSayings ) -tabel te verander.

Kies die gesegde vir die gewone rewolwer of die gebrekkige rewolwer. Die gesegde is die mp3 -lêer wat met '00XX' geïdentifiseer word, gevolg deur 'n teks wat die gesegde beskryf. Dit is die getal wat die belangrikste deel is. Toring # 1 sal hierdie XX -waarde in die tabel gebruik. Toring # 2 sou die XX -waarde voor 'n '1' voorvoeg, en rewolwer # 3 sou die XX -waarde 'n '2' voorvoeg. Byvoorbeeld, as u die spreekwoord "0040 - sorry" sou kies, en wou hê dat toring # 3 dit sou sê, sou u "240" in die regte volgorde in die tabel invoeg. As rewolwer # 1 dit sou sê, sou u '40' in die tabel plaas.

Doen dieselfde vir die volgende uitdrukking, ensovoorts. Dit kan 'n paar uitdrukkings tussen die torings wees, of heelwat. (Ek is nie bewus van die beperkings van hierdie metode nie, behalwe geheue).

U hoef nie die waardes van die ander tabelle te verander nie, aangesien dit die tydsberekening is wat ooreenstem met die spreekwoord in die tabel. Die enigste ander reël wat verander moet word, is rondom lyn 520.

as (i> = 43) {// einde van die volgorde

Die waarde van i hier moet ingestel word op die aantal woorde in die chatSayings -tabel.

Om 'n volledig aangepaste uitspraak te maak (waar die regte pret begin!), Moet u die uitdrukkings in genommerde lêers opstel en weet hoe lank dit nodig is om die lêer te speel. Stoor die lêer in die "mp3" -map in die wortelgids van die SD -kaart met behulp van die viersyfermetode ("0001", "0002", ens.). Teken dan die tyd in millisekondes wat die lêer nodig het om te speel. Voeg hierdie waardes in die toepaslike tabel in.

Dus, vir 'n uitdrukking wat gestoor is as '0037 - [u uitdrukking]', wat 5400 millisekondes neem om te speel, plaas u '37' in die chatSayings -tabel op die toepaslike plek (en voeg die voorvoegsel by, afhangende van watter rewolwer dit sê dit) en 5400 in die NormaTimings -tabel op dieselfde plek (soos die vyfde item in elke tabel).

As die waarde van 'i' toegeneem word, speel die kode 0037 vir 5400 millisekondes.

Let daarop dat ek 'n 'tydleser' veranderlike bygevoeg het wat 'n bietjie ekstra tyd by elke gesegde voeg wanneer ek speel. Dit gee 'n bietjie afstand tussen die woorde, sodat dit nie oorvleuel nie.

Die mooi van hierdie metode is dat die voltooide tabelle presies dieselfde is in elke rewolwer! U hoef nie hierdie tafels vir elke rewolwer aan te pas nie. U hoef slegs een tabel uit te sorteer, en die kode bepaal wat elke rewolwer sê op grond van dieselfde tabel.

Dit beteken dat u kan fokus op die skryf van skrifte in plaas van die kodering!

As iemand 'n beter manier het om dit te doen, hoor ek dit graag !!

Stap 9: Opsomming

Opsomming
Opsomming

Dit het dus meer tyd geneem as wat ek gedink het, maar ek is nogal gekiel deur die resultaat. Sommige van die Chat -roetines laat my nog steeds lag!

Ek hoor graag ander metodes om die dinge wat ek in my kode gedoen het, te doen. Ek is seker daar is afdelings wat herskryf kan word en minder geheue kan gebruik, wat meer funksies of opsies moontlik maak.

Ek sal ook graag ander idees in die MTC en beheer van die torings wil sien!

Ek hoop ek het 'n platform gebied vir ander ontwerpers en kodeerders om van te gebruik / steel / leer. Ek kon sien dat dit gebruik word om mense te help om te kodeer. Verwyder 'n gedeelte van die MTC en/of rewolwer, soos byvoorbeeld 'Handmatige modus', en laat studente hul eie manier ontwikkel om handmatige beheer in te sluit!

Ek het baie geleer uit hierdie gemeenskap en die breër web in die algemeen. Ek is nog steeds verbaas oor hoeveel mense baie tyd spandeer om dinge uit te vind en dit met die wêreld te deel. Ek dink ek moet neem wat ek geleer het, dit toepas en dit ook met jou deel!

Sterkte en om pret te hê met die bou van jou eie leër van torings!

Aanbeveel: