Talaan ng mga Nilalaman:

Minecraft Creeper Detector: 6 Mga Hakbang (na may Mga Larawan)
Minecraft Creeper Detector: 6 Mga Hakbang (na may Mga Larawan)

Video: Minecraft Creeper Detector: 6 Mga Hakbang (na may Mga Larawan)

Video: Minecraft Creeper Detector: 6 Mga Hakbang (na may Mga Larawan)
Video: How To Spawn SUPER Iron Golem In Minecraft 2024, Nobyembre
Anonim
Image
Image
Minecraft Creeper Detector
Minecraft Creeper Detector
Minecraft Creeper Detector
Minecraft Creeper Detector

Sa pamamagitan ng allwinedesignsAllwine DesignsFollow Higit pa ng may-akda:

Nako-customize na Dowel Jig
Nako-customize na Dowel Jig
Nako-customize na Dowel Jig
Nako-customize na Dowel Jig
Circle ng Fifths MIDI Device
Circle ng Fifths MIDI Device
Circle ng Fifths MIDI Device
Circle ng Fifths MIDI Device
Pasadyang Mouse Wheel Bilang PocketNC Jog Wheel (o volume control dial)
Pasadyang Mouse Wheel Bilang PocketNC Jog Wheel (o volume control dial)
Pasadyang Mouse Wheel Bilang PocketNC Jog Wheel (o volume control dial)
Pasadyang Mouse Wheel Bilang PocketNC Jog Wheel (o volume control dial)

Tungkol sa: Naging isang developer ako ng software sa aking buong buhay, nag-aral ng computer science na may pagtuon sa 3D graphics sa kolehiyo, ay isang artist ng epekto para sa Dreamworks Animation at nagturo ng teknolohiya sa mga bata at matatanda dito… Higit Pa Tungkol sa allwinedesigns »

Sa loob ng ilang taon, tumulong ako sa Children's Museum ng Bozeman na bumuo ng kurikulum para sa kanilang STEAMlab. Palagi akong naghahanap ng mga nakakatuwang paraan upang makisali sa mga bata sa electronics at coding. Ang Minecraft ay isang madaling paraan upang maipasok ang mga bata sa pintuan at maraming mga mapagkukunan para sa paggamit nito sa masaya at pang-edukasyon na paraan. Gayunpaman, ang pagsasama-sama ng Minecraft at electronics. Upang matulungan na isama ang mga proyekto ng Arduino sa Minecraft, natapos ko ang pagbuo ng aking sariling Minecraft mod na pinangalanang SerialCraft. Ang ideya ay maaari mong mai-hook up ang anumang aparato na gumamit ng serial na komunikasyon at magpadala ng mga mensahe at makatanggap ng mga mensahe mula sa Minecraft gamit ang aking mod. Karamihan sa mga Arduino ay may kakayahang serial na komunikasyon sa USB, kaya't simpleng mag-wire up ng isang circuit at magpadala ng ilang data sa serial connection. Lumikha ako ng mga kit ng controller na maaaring tipunin ng mga bata at programa upang makontrol ang kanilang karakter, mag-trigger at tumugon sa mga signal ng Redstone, at upang pumikit ang mga LED upang alerto sila sa ilang mga kaganapan tulad ng mababang buhay o kung malapit na ang isang gumagapang. Nakatuon ang Instructable na ito sa pagpapaandar ng alerto ng creeper at kumukuha ito ng isang hakbang sa karagdagang paggamit ng Adafruit Neopixels at isang laser cut acrylic at playwud na enclosure. Gumagamit ang Creeper Detector ng isang 8 LED NeoPixel stick upang mabigyan ka ng mahalagang impormasyon tungkol sa pinakamalapit na gumagapang. Kapag ang lahat ng mga LED ay naka-off, nangangahulugan ito na walang mga creepers sa loob ng 32 bloke. Kapag naka-on ang lahat ng mga LEDs (magkakaroon din sila ng pag-flash), nasa loob ka ng 3 block detonation radius ng creeper (ang radius kung saan titigil ang gumagapang, sindihan ang piyus nito at sasabog). Anumang nasa pagitan ay maaaring magbigay sa iyo ng isang pagtatantya kung gaano kalayo ang isang gumagapang sa iyo. Kapag ang 4 sa 8 LEDs ay naiilawan, halos 16 na bloke mula sa isang gumagapang, na kung saan ay ang saklaw kung makikita ka ng isang gumagapang, umatake ito. Magsisimulang mag-flash ang mga LED kapag nasa loob ka ng blast radius ng gumagapang (7 bloke). Ito rin ang radius na kung lumabas ka, ititigil ng gumagapang ang piyus nito at patuloy na susunod sa iyo. Sa kaalamang ito, dapat mong maiwasan ang anumang hindi inaasahang pag-atake ng gumagapang o manghuli ng anumang kalapit na mga creepers!

Sa Instructable na ito, susuriin namin ang lahat ng kailangan mo upang lumikha ng iyong sariling Creeper Detector at kung paano i-install at gamitin ang SerialCraft mod na nagbibigay-daan sa iyo upang maiugnay ang Minecraft sa iyong mga proyekto sa Arduino. Kung gusto mo ito, mangyaring isaalang-alang ang pagboto para dito sa Minecraft Contest at Epilog Challenge. Magsimula na tayo!

Hakbang 1: Ano ang Kakailanganin Mo

Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo

Ginawa ko ang aking makakaya upang mag-link sa eksaktong mga produktong ginamit ko, ngunit kung minsan nakikita ko ang pinakamalapit na magagawa ko sa Amazon. Minsan mas mahusay na pumili ng ilang mga bagay mula sa iyong lokal na electronics shop o tindahan ng hardware upang maiwasan ang pagbili ng mas malaking dami sa online.

- Gumamit ako ng isang 8 LED RGBW NeoPixel stick, ngunit hindi ko nagamit ang puting (W) LED lahat kaya isang 8 LED RGB NeoPixel stick ang gagawin. Maaari mo itong palitan para sa anumang produktong RGB o RGBW NeoPixel, ngunit may mga pagsasaalang-alang sa kapangyarihan na tatalakayin namin sa susunod na hakbang at mga pagbabago sa code na ituturo ko pagdating namin dito. Maaaring gusto mong pumili ng isa na hindi nangangailangan ng paghihinang, ngunit ipapakita ko sa iyo kung paano ako nag-solder ng mga wire papunta sa stick.

- Isang microcontroller at ang pagtutugma nito USB cable. Ginamit ko ang Redarkard ng SparkFun na isang clone ng Arduino Uno. Gumagamit ito ng isang konektor ng Mini B USB (Hindi ako sigurado kung bakit napakamahal sa Amazon, maaari mo itong makuha nang direkta mula sa SparkFun dito, o pumunta para sa isang kahalili sa Amazon, tulad ng isang ito). Gumagamit kami ng isang Arduino library upang gawing simple ang pag-coding, ngunit gumagamit lamang ito ng pangunahing Serial na komunikasyon upang ang library ay maaaring ma-port upang gumana sa anumang microcontroller na maaaring gawin ang USB Serial. Halos anumang Arduino ang gagawa. Tiyaking mayroon itong USB Serial (karamihan gawin, ngunit ang ilan ay hindi tulad ng orihinal na Trinket).

- Mga wire, panghinang na bakal at panghinang (wire striper at isang pangatlong kamay ay madaling magamit din). Maghahihinang kami ng mga wire sa NeoPixel stick upang maaari itong mai-plug sa isang Arduino. Maaaring hindi kinakailangan ito kung pipiliin mo ang isang produktong NeoPixel na mayroon nang nakakabit na mga wire o isang microcontroller na kasama ng NeoPixels sa board (tulad ng Circuit Playground Express, kung saan isinama ko ang code para sa hinaharap na hakbang). Ang form factor ng 8 LED stick ay kung saan ko dinisenyo ang enclosure ng aking Creeper Detector, kaya kailangan mong gumawa ng mga pagbabago o pumunta nang walang isang enclosure kung pupunta ka para sa ibang form factor.

- Mga materyales sa pagkakabit. Gumamit ako ng 1/8 "frosted acrylic, 1/8" clear acrylic at 1/8 "playwud na pinutol ko ng laser at M3 machine screws at nut upang mapagsama ito. Gumamit din ako ng ilang # 2 x 1/4 "mga tornilyo ng kahoy upang i-fasten ang NeoPixel stick sa enclosure. Ang enclosure ay hindi kinakailangan, ngunit tiyak na nagdaragdag ng ilang labis na likas na gumagapang. Ang aking enclosure ay idinisenyo upang maitabi lamang ang NeoPixels, hindi ang microcontroller. Kung nais mong ganap itong mapag-isa, kakailanganin mong gumawa ng mga pagbabago!

- Isang Minecraft account, Minecraft Forge 1.7.10 at SerialCraft (ang mod at ang Arduino library). Ang Creeper Detector ay umaasa sa SerialCraft mod, na gumagana lamang sa Minecraft 1.7.10 kasama ang Minecraft Forge. Tatalakayin namin kung paano i-download ang mga ito at kung paano i-set up ang mga ito sa mga susunod na hakbang.

- Ang Arduino IDE o isang account sa Arduino Lumikha at ang Arduino Lumikha plugin (Inirerekumenda ko ang paggamit ng Arduino Lumikha bilang maaari kang direktang pumunta sa aking Arduino Lumikha ng sketch at i-compile at i-upload ito mula doon).

Hakbang 2: Ang Circuit

Ang Circuit
Ang Circuit
Ang Circuit
Ang Circuit
Ang Circuit
Ang Circuit
Ang Circuit
Ang Circuit

Ang circuit ay napaka-simple, 3 wires lamang, ang NeoPixel stick at isang Arduino. Ang lahat ng mga Adafruit NeoPixels ay may kani-kanilang controller na nagbibigay-daan sa isang solong wire ng data upang makontrol ang anumang bilang ng mga kadena na LED. Ikinonekta ko ito upang i-pin 12 sa aking Arduino.

Ang dalawa pang wires ay para sa lakas at lupa. Upang mapagana ang NeoPixels, kakailanganin namin ng isang 5V na mapagkukunan ng kuryente. Kailangan naming tiyakin na ang aming mapagkukunan ng kuryente ay may kakayahang magbigay ng sapat na kasalukuyang, bagaman. Ang bawat NeoPixel ay maaaring gumuhit ng hanggang sa 60mA (80mA na may RGBW LEDs) sa ganap na ningning. Sa 8 LEDs, nangangahulugan iyon na ang aming kasalukuyang max ay 480mA (640mA na may RGBW LEDs). Ang Arduino ay tumatagal ng ~ 40mA upang mai-on lamang. Sa unang tingin, mukhang kakailanganin naming gumamit ng isang panlabas na supply ng kuryente. Pinapayagan ng USB ang maximum na 500mA na maaari naming lumampas kung itinakda namin ang lahat ng aming mga LED sa maximum (480 + 40 = 520 na may RGB LEDs o 640 + 40 = 680 na may RGBW LEDs). Sa kabutihang palad, hindi na natin kailangang buksan ang mga LED sa kanilang buong ningning (ang buong ningning ay medyo nakakabulag), kaya't ligtas tayo gamit ang 5V rail ng aming Arduino, na naka-plug in sa pamamagitan ng USB. Sa katunayan, ang paggamit ng berdeng kulay na napili ko ay gagamit lamang ng ~ 7-8mA max per LED para sa isang kabuuang ~ 100mA max kasalukuyang gumuhit, na rin sa ilalim ng 500mA max na ipinataw ng USB.

Kaya, ang kailangan lang nating gawin ay i-hook up ang DIN pin ng NeoPixel stick upang i-pin 12 (halos anumang pin ay gagana, ngunit ito ang ginamit ko), ang 5V pin sa NeoPixel stick sa 5V sa Arduino, at isang pin ng GND sa NeoPixel stick sa GND sa Arduino. Una, kailangan naming maghinang ang aming mga wire sa NeoPixel stick.

Gupitin ang mga konektor sa isang dulo ng iyong mga wire at hubarin ang mga dulo. Tin ang bawat isa sa kanila (maglagay ng solder sa bawat dulo). Pagkatapos ay maglagay ng kaunting solder sa bawat pad. Maingat na hawakan ang bawat pad gamit ang soldering iron, ilagay ang dulo ng kaukulang wire sa pad, pagkatapos alisin ang iron.

Hakbang 3: Ang Code

I-UPDATE (2/19/2018): Nag-post ako ng isang bagong Arduino sketch sa GitHub repo na kasama ang lahat ng kinakailangang mga pagbabago para sa Creeper Detector upang gumana sa Circuit Playground Express (hindi ito gagana sa enclosure, ngunit lahat ito ang mga LED at ilang mga sensor na naka-built sa board, kaya hindi kinakailangan ng paghihinang). May kasamang ilang karagdagang pag-andar na nakasalalay sa mga pindutan nito at slide switch!

Para sa buong code, maaari kang pumunta sa aking Arduino Lumikha ng sketch o GitHub repository. Sundin ang mga tagubilin dito kung hindi ka sigurado kung paano sumulat at mag-upload ng code. Kung pinili mong gamitin ang Arduino IDE, kakailanganin mong i-install ang library ng SerialCraft Arduino. Sundin ang mga hakbang sa ilalim ng "Pag-import ng isang Zip" dito upang gawin ito. Kung gagamitin mo ang Arduino Lumikha ng Web Editor, maaari kang direktang pumunta sa aking sketch sa sandaling naka-set up ka at maaari mong maiwasan ang pag-install ng SerialCraft library.

Titingnan ko kung ano ang ginagawa ng code sa ibaba.

Ang unang dalawang linya ay may kasamang mga aklatan. Ang una, SerialCraft.h, ay isang silid-aklatan na isinulat ko na nagbibigay-daan sa madaling komunikasyon sa mod ng SerialCraft. Dadalhin kita sa mga tampok na ginagamit ko sa ibaba, ngunit maaari mong suriin ang mga halimbawa at ilang dokumentasyon na nangangailangan ng ilang trabaho sa repositoryang GitHub nito. Ang pangalawang silid-aklatan ay ang library ng NeoPixel ng Adafruit at nagbibigay ng isang API para sa pag-aayos ng mga LED sa NeoPixel strips.

# isama

# isama

Ang mga linya na 4-17 ay mga pare-pareho na maaaring magbago batay sa iyong pag-set up. Kung gumamit ka ng NeoPixel strip na may iba't ibang bilang ng mga pixel o kung na-hook up mo ang iyong NeoPixels sa ibang pin, kakailanganin mong gumawa ng mga pagbabago sa unang dalawang mga tumutukoy, NUMLEDS at PIN. Kakailanganin mong baguhin ang LED_TYPE sa uri na mayroon ka, subukang palitan ang NEO_GRBW sa NEO_RGB o NEO_RGBW kung nagkakaproblema ka. Maaari mong baguhin ang BLOCKS_PER_LED kung nais mong ayusin ang saklaw na maaari mong makita ang mga creepers.

// Baguhin ang mga variable na ito upang tumugma sa iyong pag-set up

// number of LEDs in your strip #define NUMLEDS 8 // pin that LED data pin was konektado to #define PIN 12 // number of blocks that each LED represent #define BLOCKS_PER_LED 4 // Ang uri ng LED strip na mayroon ka (kung ang iyong mga LED ay hindi nagiging berde, pagkatapos ay kakailanganin mong baguhin ang pagkakasunud-sunod ng GRBW) #define LED_TYPE (NEO_GRBW + NEO_KHZ800) // END variable

Ang mga linya ng 19-27 ay tumutukoy sa ilang mga halagang gagamitin namin sa paglaon. Ang DETONATE_DIST ay ang distansya sa Minecraft na ang isang gumagapang ay titigil sa paggalaw, isindi ang piyus nito at sasabog. Ang SAFE_DIST ay ang blast radius ng isang gumagapang. Ang pagbabago ng mga halagang ito ay makakaapekto sa pag-uugali ng mga LED, ngunit inirerekumenda kong panatilihin ang mga ito kung ano ang mga ito habang ipinapakita ang mga pag-uugali sa Minecraft. Ang MAX_DIST ay ang max na distansya na susubaybayan namin ang mga creepers, na batay sa bilang ng mga LED na mayroon ang aming NeoPixel strip at ang BLOCKS_PER_LED pare-pareho ang aming tinukoy sa itaas.

// Ito ang mga halagang gagamitin sa aming mga kalkulasyon para sa LED na ningning

// distansyang gumagapang ay magsisimulang magpaputok #define DETONATE_DIST 3 // distansya ligtas tayo mula sa isang pagsabog ng creeper (makakakuha ka ng pinsala kung nasa loob ka ng distansya na ito) #tukoy SAFE_DIST 7 // max distansya na sinusubaybayan namin ang isang gumagapang MAX_DIST (NUMLEDS * BLOCKS_PER_LED)

Ang mga linya na 29-36 ay tumutukoy sa ilang mga variable na gagamitin namin sa buong programa. Ang variable ng sc ay isang bagay na SerialCraft na nagbibigay ng isang madaling gamitin na interface upang makipag-usap sa SerialCraft Minecraft mod. Makikita mo kung paano namin ito ginagamit sa ibaba. Ang dist ay isang variable na itatakda namin sa distansya sa pinakamalapit na gumagapang kapag natanggap namin ang mensahe ng distansya ng gumagapang mula sa SerialCraft mod. Ang strip ay isang Adafruit_NeoPixel na bagay na nagbibigay ng mga pamamaraan para sa pagkontrol sa NeoPixel strips.

// Ito ang object ng SerialCraft para sa pakikipag-usap sa mod ng SerialCraft Minecraft

SerialCraft sc; // distansya mula sa gumagapang int dist = 100; // Initialize a strip of LEDs, maaaring kailanganin mong baguhin ang ika-3 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMLEDS, PIN, LED_TYPE);

Ang mga linya na 38-47 ang aming pag-andar sa pag-setup. Lahat ng mga script ng Arduino ay dapat magkaroon ng isa. Ito ay pinapatakbo ng isang beses kapag ang Arduino ay pinapagana, kaya't ito ay isang magandang lugar upang simulan ang mga variable. Tinatawag namin ang paraan ng pag-setup () sa aming object ng SerialCraft upang gawing simula ang Serial port sa parehong rate ng baud tulad ng na-configure sa SerialCraft mod (115200). Pagkatapos ay tawagan namin ang registerCreeperDistanceCallback na pamamaraan upang makatugon kami sa mga mensahe ng distansya ng creeper na ipinadala sa amin ng SerialCraft mod. Pana-panahong tatawagan namin ang pamamaraan ng sc.loop () nang medyo malayo pa. Sa pamamaraang loop, sinusuri nito upang malaman kung nakatanggap kami ng anumang mga mensahe mula sa SerialCraft mod o nagpalitaw ng anumang mga kaganapan tulad ng pagpindot sa isang pindutan, at tinawag ang kaukulang pagpapaandar na nairehistro namin upang hawakan ito. Ang ginagawa lang namin ay naghahanap para sa pinakamalapit na distansya ng creeper, kaya't ito lamang ang pagpapaandar na nirerehistro namin. Makikita mo sa ibaba, na ang lahat ng ginagawa namin sa pagpapaandar na iyon ay itinakda ang aming dist variable, na gagamitin namin kapag ina-update ang mga LED. Sa wakas, pinasimulan namin ang aming LED strip at pinapatay ang lahat ng mga LED sa pamamagitan ng paggamit ng strip.begin () at strip.show ().

void setup () {// ipasimula ang SerialCraft sc.setup (); // register a creeper distance callback upang matanggap ang distansya sa pinakamalapit na gumagapang sc.registerCreeperDistanceCallback (gumagapang); // ipasimula ang LED strip strip. simula (); strip.show (); }

Ang mga linya na 49-80 ay tumutukoy sa pagpapaandar ng loop. Ang pagpapaandar ng loop ay kung saan nangyayari ang lahat ng mahika. Ang pagpapaandar ng loop ay tinatawag na paulit-ulit. Kailan man natapos ang pagpapatakbo ng loop na tumatakbo, nagsisimula lamang ito sa tuktok muli. Sa ito, ginagamit namin ang dist variable at ang aming mga Constant sa tuktok ng file upang matukoy kung ano ang estado ng bawat LED dapat.

Sa tuktok ng pag-andar ng loop tinutukoy namin ang ilang mga variable.

// saklaw mula 0 kapag> = MAX_DIST ang layo mula sa radius ng detonation ng creeper hanggang sa NUMLEDS * BLOCKS_PER_LED kapag nasa tuktok ng creeper

int blocksFromCreeperToMax = pipilitin (MAX_DIST + DETONATE_DIST-dist, 0, MAX_DIST); int curLED = blocksFromCreeperToMax / BLOCKS_PER_LED; // saklaw mula 0 hanggang NUMLEDS-1 int curLEDLevel = (blocksFromCreeperToMax% BLOCKS_PER_LED + 1); // mula sa 1 hanggang BLOCKS_PER_LED

Dahil binibigyan namin ng ilaw ang mga LED batay sa kung gaano kami kalapit sa isang gumagapang, kailangan naming mabisa ang aming variable ng distansya. Tinutukoy namin ang mga blocksFromCreeperToMax upang kumatawan sa bilang ng mga bloke ang gumagapang ay mula sa max na distansya na nangangalaga kaming subaybayan. Kapag nasa tuktok kami ng gumagapang (o sa halip, mas mababa sa o katumbas ng DETONATE_DIST ang layo mula sa gumagapang), ang mga blocksFromCreeperToMax ay MAX_DIST. Kapag lampas kami sa MAX_DIST ang layo mula sa isang gumagapang, ang mga blocksFromCreeperToMax ay magiging 0. Ang variable na ito ay magiging kapaki-pakinabang kapag sinindihan natin ang aming mga LED na mas malaki ito, mas maraming mga LED na sinisindi natin.

ang curLED ay ang nangungunang pinaka-LED na naiilawan. Ang bawat 4 na mga bloke na lumilipat kami patungo sa isang gumagapang ay magsisindi ng isang karagdagang LED (ang numerong iyon ay maaaring mabago sa tuktok ng file na may variable na BLOCKS_PER_LED). Inaayos namin ang liwanag ng tuktok na pinaka-LED upang makita namin ang mga pagbabago sa distansya pababa sa isang solong bloke. Ang curLEDLevel ay isang variable na gagamitin namin upang makalkula ang mga pagbabago sa liwanag. Saklaw ito mula 1 hanggang 4 (o kung anuman ang BLOCKS_PER_LED na tinukoy bilang).

Gagamitin namin ang mga variable na ito kapag umikot sa bawat LED:

para sa (uint16_t i = 0; i <strip.numPixels (); i ++) {if (i <= curLED) {// pinakamaliwanag kapag nasa loob ng radius ng detonation ng creeper's, off kapag ang creeper ay NUMLEDS * BLOCKS_PER_LED layo float intensity = (float) blocksFromCreeperToMax / MAX_DIST; kung (i == curLED) {// huling LED lit / gawing mas maliwanag ang huling LED habang papalapit kami sa susunod na LED float lastIntensity = (float) curLEDLevel / BLOCKS_PER_LED; intensity * = lastIntensity; } kung (dist <SAFE_DIST) {intensity * = (millis () / 75)% 2; } intensity = pow (intensity, 2.2); // gamma curve, ginagawa ang LED brightness na magmukhang linear sa ating mata kapag ang halaga ng ningning ay hindi talaga strip.setPixelColor (i, strip. Color (10 * intensity, 70 * intensity, 10 * intensity, 0)); } iba pa {strip.setPixelColor (i, strip. Color (0, 0, 0, 0)); }}

Kung ang kasalukuyang LED na ina-update namin ay mas mababa sa o katumbas ng variable na curLED, alam namin na dapat ito ay nasa at kailangan naming kalkulahin ang ningning nito. Kung hindi man, patayin ito. Gumagamit kami ng variable ng intensity na magkakaroon ng halaga sa pagitan ng 0 at 1 upang kumatawan sa ningning ng aming LED. Kapag itinatakda ang pangwakas na kulay ng LED, magpaparami kami ng tindi sa kulay (10, 70, 10), isang berdeng kulay. Ginagamit namin ang variable ng blocksFromCreeperToMax upang makakuha ng isang porsyento sa pamamagitan ng paghahati ng MAX_DIST, kaya ang mga LED ay magiging pinakamaliwanag kapag malapit kami sa isang gumagapang. Kung kinakalkula namin ang ningning ng curLED, pagkatapos ay binabago namin ang liwanag nito para sa bawat bloke ng distansya mula sa iyo ang gumagapang hanggang sa setting ng BLOCKS_PER_LED. Ito ay isang banayad na pagbabago, ngunit maaari itong magamit upang makita kung ang isang gumagapang ay papalapit o malayo sa isang mas pinong butil kaysa sa 4 na mga bloke na kinakailangan para sa isang labis na LED upang magaan. Pagkatapos ay suriin namin kung nasa loob kami ng blast radius ng gumagapang at kumurap kung tayo ay. Ang ekspresyon (millis () / 75)% 2 ay paulit-ulit na susuriin sa 0 para sa 75 milliseconds at pagkatapos ay 1 para sa 75 milliseconds, kaya ang pag-multiply ng aming intensity ng expression na iyon ay magiging sanhi ng pagkurap ng mga LED.

Ang pangwakas na pagbabago sa intensity (intensity = pow (intensity, 2.2)), ay isang pagsasaayos na tinatawag na gamma correction. Ang mga mata ng tao ay nakikita ang ilaw sa isang hindi linya. Maaari naming makita ang higit pang mga gradation ng madilim na ilaw kaysa sa nakikita natin ng maliwanag na ilaw, kaya kapag bumaba kami ng ilaw ng isang maliwanag na ilaw ay bumababa kami nang higit pa kaysa sa ang ilaw ay malabo upang lumitaw na tulad ng pag-baba namin sa isang linear fashion sa mata ng tao. Ang isang epekto ng pagbabagong ito ay nagtatapos kami gamit ang mas kaunting enerhiya dahil ang aming mga pixel ay nagtapos sa pagkakaroon ng maraming mga gradation sa dimmer (mas mababang enerhiya) na saklaw kaysa sa mas maliwanag (mas mataas na enerhiya) na saklaw.

Ang huling dalawang linya ng aming pag-andar ng loop ay nag-a-update ng mga LED sa mga halagang itinakda lamang namin at pagkatapos ay tumawag sa anumang mga handler na kailangang tawagan ng SerialCraft (sa kasong ito ang paggana ng distansya ng gumagapang, kung nakatanggap kami ng anumang mga mensahe ng distansya na gumagapang mula sa SerialCraft mod).

strip.show ();

sc.loop ();

Ang mga huling linya ng aming script ay ang paggana ng gumagapang, kung saan itinatago namin ang distansya sa pinakamalapit na gumagapang kapag ang SerialCraft mod ay nagpapadala sa amin ng isang mensahe na may impormasyong iyon.

void creeper (int d) {dist = d; }

Ngayon ay kailangan mo lamang mag-ipon at i-upload ang code!

Hakbang 4: Enclosure

Enclosure
Enclosure
Enclosure
Enclosure
Enclosure
Enclosure

Pinutol ko ang laser ng lahat ng mga piraso ng aking enclosure, na binubuo ng isang frosted acrylic creeper, isang malinaw na acrylic creeper, 6 na piraso ng playwud, na may isang hugis-parihaba na butas na kasinglaki ng mga acrylic creepers at butas sa mga sulok para sa mga fastener at 1 piraso ng playwud para sa likod na mayroong mga butas ng fasteners at isang mas malaking butas para sa mga wire na lumabas. Idiskonekta ang mga wire mula sa NeoPixel stick upang mai-mount namin ito sa aming enclosure. Ang dalawang mga PDF file sa ibaba ay maaaring magamit upang maputol ng laser ang lahat ng mga piraso na inilarawan ko.

Ang NeoPixel stick ay naka-mount sa likod na piraso ng playwud gamit ang # 2 mga kahoy na tornilyo at nylon spacers. Ang mga acrylic creepers ay na-jam sa dalawa sa mga piraso ng playwud na may mga square hole. Bago gawin ito, tiyaking natatandaan mo kung aling kulay ng kawad ang pupunta sa aling pad sa stick.

Ang mga acrylic creepers ay may sukat na ika-isangandaan ng isang pulgada na mas malaki kaysa sa mga butas upang makapagbigay ng isang napaka-snug fit sa playwud. Ginamit ko ang hawakan ng mga striper ng kawad upang ilagay ang pokus na presyon sa bawat sulok at nagtrabaho sa paligid ng buong gumagapang upang makakuha ng pantay. Bilang kahalili, ang acrylic laser pdf ay nagsasama ng isang gumagapang na nakaukit sa isang piraso ng laki ng buong mukha ng enclosure na may mga butas ng pangkabit upang maiwasan mo ang pagkakaroon ng isang masikip na akma sa mas maliit na acrylic creeper.

Ang nagyeyelong acrylic ay namamahagi ng ilaw mula sa mga indibidwal na LED at ang malinaw na acrylic ay nagpapakita ng mas mahusay na pag-ukit ng gumagapang, kaya't kapwa pinagsama ang hitsura ng mas mahusay sa akin kaysa sa alinman sa isa-isa. Kapag ang mga creepers ay nasa lugar na, isalansan ang lahat ng iyong mga piraso ng playwud at i-fasten ang mga ito kasama ng M3 machine screws at nut. Pagkatapos ay ikonekta muli ang mga wire sa 5V, GND at i-pin 12.

Hakbang 5: Minecraft Forge at ang SerialCraft Mod

Minecraft Forge at ang SerialCraft Mod
Minecraft Forge at ang SerialCraft Mod
Minecraft Forge at ang SerialCraft Mod
Minecraft Forge at ang SerialCraft Mod
Minecraft Forge at ang SerialCraft Mod
Minecraft Forge at ang SerialCraft Mod

Magsimula sa pamamagitan ng paglikha ng isang Minecraft account, pagkatapos ay i-download at i-install ang Minecraft client.

Kakailanganin mo ang Minecraft Forge para sa bersyon 1.7.10 upang mai-install ang SerialCraft mod. Pumunta sa pahina ng pag-download ng 1.7.10 Minecraft Forge. Ang site ng Minecraft Forge ay may maraming mga ad na hinahangad na ma-click mo ang maling bagay at dalhin ka sa iba pang lugar. Sundin ang mga imahe sa itaas upang matiyak na manatili ka sa tamang track! Gusto mong i-click ang pindutang Installer sa ilalim ng inirekumendang bersyon 1.7.10 (o ang pinakabagong, hindi ko talaga sigurado ang pagkakaiba). Dadalhin ka sa isang pahina na may isang banner sa tuktok ng pahina na nagsasabing "Ang nilalaman sa ibaba ng header na ito ay isang ad. Pagkatapos ng count-down, i-click ang Laktaw na pindutan sa kanan upang simulan ang iyong pag-download ng Forge." Tiyaking hinihintay mo ang bilang ng pababa at pagkatapos ay i-click ang Laktaw na pindutan upang simulan ang pag-download.

I-double click ang installer pagkatapos nitong matapos ang pag-download. Iwanan ang mga default na naka-check (I-install ang Client at ang default na landas na tinukoy nito), pagkatapos ay i-click ang OK. I-install nito ang Minecraft Forge. Kapag natapos nito masisimulan mo ang Minecraft Launcher, ngunit magkakaroon ng dagdag na pagpipilian upang piliin ang 1.7.10 na bersyon ng Forge (tingnan ang imahe sa itaas).

Ngayon kailangan naming i-install ang SerialCraft mod sa iyong direktoryo ng mods. I-download ang pinakabagong bersyon ng SerialCraft mod dito. Kakailanganin mo rin ang jssc library. I-zip ang parehong mga file, na dapat mag-iwan sa iyo ng dalawang.jar file. Kakailanganin mong ilagay ang mga file na iyon sa iyong folder ng mods. Sa Windows, dapat kang makapunta sa Run mula sa start menu at ipasok ang% appdata% \. Minecraft / mods bago i-click ang Run. Sa isang Mac, maaari kang mag-navigate sa Home / Library / Suporta sa Application / minecraft / mods. I-drop ang dalawang.jar file sa folder na iyong binuksan. Patakbuhin ngayon ang Minecraft at ilunsad ang 1.7.10 Forge na bersyon. Dapat kang makapag-click sa Mga Mod at makita ang SerialCraft na nakalista sa kaliwang bahagi.

Hakbang 6: Paggamit ng SerialCraft Mod

Gamit ang SerialCraft Mod
Gamit ang SerialCraft Mod

Ngayon na na-install mo na ang SerialCraft mod, kakailanganin mong magpasok sa isang mundo at simulang gamitin ito. Lumikha ng isang bagong mundo o buksan ang isa sa iyong mga nai-save na mundo (kung nais mong maglaro sa isang multiplayer na mapa, kakailanganin mong tiyakin na ang server at lahat ng mga kliyente na kumonekta dito ay naka-install ang SerialCraft mod). Tiyaking nakakonekta ang iyong Creeper Detector sa iyong computer, pagkatapos ay pindutin ang K key. Dapat itong magdala ng isang dayalogo tulad ng imahe sa itaas (sa Windows, sa halip na /dev/tty.usbserial… dapat itong sabihin ng isang bagay tulad ng COM1). Kung walang ipinakita, tiyaking nakakonekta mo ang Creeper Detector. I-click ang pindutang Connect, pagkatapos ay pindutin ang Escape. Kung ang iyong code ay naipon at na-upload nang tama, ang iyong Creeper Detector ay dapat na mahusay na pumunta! Kung ang isang Creeper ay nasa loob ng 32 bloke, dapat itong ilaw. Maligayang pangangaso!

Kung nagustuhan mo ang Instructable na ito, mangyaring isaalang-alang ang pagboto para dito sa Minecraft Contest at Epliog Challenge!

Minecraft Challenge 2018
Minecraft Challenge 2018
Minecraft Challenge 2018
Minecraft Challenge 2018

Pangalawang Gantimpala sa Minecraft Challenge 2018

Inirerekumendang: