Мазмуну:

Minecraft Creeper детектору: 6 кадам (сүрөттөр менен)
Minecraft Creeper детектору: 6 кадам (сүрөттөр менен)

Video: Minecraft Creeper детектору: 6 кадам (сүрөттөр менен)

Video: Minecraft Creeper детектору: 6 кадам (сүрөттөр менен)
Video: ПОЧЕМУ КРИПЕР ВЫГЛЯДЕЛ ТАК В СТАРОЙ ВЕРСИИ МАЙНКРАФТА? Компот #shorts 2024, Ноябрь
Anonim
Image
Image
Minecraft Creeper детектору
Minecraft Creeper детектору
Minecraft Creeper детектору
Minecraft Creeper детектору

Allwinedesigns тарабынан

Ыңгайлаштырылуучу Dowel Jig
Ыңгайлаштырылуучу Dowel Jig
Ыңгайлаштырылуучу Dowel Jig
Ыңгайлаштырылуучу Dowel Jig
Бешинчи чөйрө MIDI түзмөгү
Бешинчи чөйрө MIDI түзмөгү
Бешинчи чөйрө MIDI түзмөгү
Бешинчи чөйрө MIDI түзмөгү
Колдонулган чычкан дөңгөлөгү PocketNC Jog Wheel катары (же үн көзөмөлдөө тергичи)
Колдонулган чычкан дөңгөлөгү PocketNC Jog Wheel катары (же үн көзөмөлдөө тергичи)
Колдонулган чычкан дөңгөлөгү PocketNC Jog Wheel катары (же үн көзөмөлдөө тергичи)
Колдонулган чычкан дөңгөлөгү PocketNC Jog Wheel катары (же үн көзөмөлдөө тергичи)

Жөнүндө: Мен өмүр бою программалык камсыздоону иштеп чыктым, колледжде 3D графикага басым жасоо менен информатиканы үйрөндүм, Dreamworks Animation үчүн эффект сүрөтчүсү болдум жана бул жерде балдарга жана чоңдорго технологияны үйрөткөм … Кененирээк Allwinedesigns »

Бир нече жыл бою мен Боземандын Балдар Музейине STEAMlab үчүн окуу программасын иштеп чыгууга жардам бердим. Мен ар дайым балдарды электроника жана коддоо менен кызыктыруунун кызыктуу жолдорун издеп жүрдүм. Minecraft - бул балдарды эшикке чыгаруунун оңой жолу жана аны кызыктуу жана билим берүүчү жолдордо колдонуу үчүн көптөгөн ресурстар бар. Майнкрафт менен электрониканы айкалыштыруу кыйын болгон. Arduino долбоорлорун Minecraft менен интеграциялоого жардам берүү үчүн, мен өзүмдүн Minecraft Mod SerialCraftту иштеп чыгууну аяктадым. Идея сиз сериялык байланышты колдонгон каалаган түзмөктү туташтырып, менин режимимди колдонуу менен Minecraftка билдирүүлөрдү жөнөтүп, билдирүүлөрдү ала аласыз. Ардуинолордун көпчүлүгү USB аркылуу сериялык байланышка жөндөмдүү, андыктан бир схеманы туташтыруу жана сериялык туташуу аркылуу айрым маалыматтарды жөнөтүү оңой. Мен балдар чогултуп, алардын мүнөзүн көзөмөлдөөгө, Redstone сигналдарын иштетүүгө жана жооп берүүгө, ошондой эле жашоосу төмөн же сойлоп жүрүүчү сыяктуу кээ бир окуялар жөнүндө эскертүү үчүн LEDлерди жаркырата турган контроллерлорду түздүм. Бул Instructable сойлоп жүрүүчүлөрдүн функционалдуулугуна багытталган жана Adafruit Neopixels жана лазер менен кесилген акрил жана фанера корпусун колдонуу менен бир кадам алдыга жылат. Creeper Detector 8 LED NeoPixel таякчасын колдонуп, сизге эң жакын сойлоп жүрүүчү жөнүндө баалуу маалымат берет. Бардык светодиоддор өчкөндө, бул 32 блоктун ичинде эч кандай сойлоочулар жок экенин билдирет. Бардык светодиоддор күйүп турганда (алар да жаркырайт), сиз сойлоп жүрүүчүнүн 3 блоктуу детонациялык радиусунда турасыз (сойлоочу токтоп турган радиусту, анын эритмесин күйгүзүп, жарылып кетет). Арасында болгон нерсе сизге сойлоп жүрүүчү сизден канчалык алыс экенин болжоп бере алат. 8 светодиоддун 4ү күйгөндө, сиз сойлоп жүрүүчүдөн 16 блоктой болосуз, эгер сизди сойлоочу көрүп калса, ал кол салат. Жарык диоддору жардыруучу радиуста (7 блок) болгондо жаркырай баштайт. Бул ошондой эле радиус, эгер сиз чыгып кетсеңиз, сойлукчу анын эритмесин токтотуп, артыңыздан келе берет. Бул билим менен, сиз күтүлбөгөн сойлоп жүрүүчү чабуулдардан оолак болуңуз же жакын жердеги сойлоп жүрүүчүлөрдү аңдай билиңиз!

Бул Нускамада, биз өзүңүздүн сойлоочу детекторун түзүү үчүн жана Arduino долбоорлоруңуз менен Minecraft менен иштешүүгө мүмкүндүк берген SerialCraft модун кантип орнотуу жана колдонуу керектигин карап чыгабыз. Эгер сизге жакса, анда Minecraft конкурсунда жана Epilog Challengeде ага добуш берүүнү карап көрүңүз. Кел, баштайлы!

1 -кадам: Сизге эмне керек

Сизге эмне керек
Сизге эмне керек
Сизге эмне керек
Сизге эмне керек
Сизге эмне керек
Сизге эмне керек
Сизге эмне керек
Сизге эмне керек

Мен колдонгон так продукцияларга шилтеме кылуу үчүн колумдан келгендин баарын кылдым, бирок кээде Амазонкадан эң жакын нерсени таба алам. Кээде интернетте көп көлөмдө сатып албоо үчүн жергиликтүү электроника дүкөнүнөн же аппараттык дүкөндөн бир нече нерсени тандап алуу жакшы.

- Мен 8 LED RGBW NeoPixel таякчасын колдондум, бирок ак (W) LEDди такыр колдонгон жокмун, ошондуктан 8 LED RGB NeoPixel таякчасы жасайт. Сиз муну каалаган RGB же RGBW NeoPixel продуктуна алмаштыра аласыз, бирок биз кийинки этапта талкуулай турган күчкө байланыштуу ойлор бар жана биз бул жерге келгенде көрсөтөм, коддун өзгөрүшү. Сиз ширетүүнү талап кылбай турган бирин тандап алгыңыз келиши мүмкүн, бирок мен сизге зымдарды таякка кантип ширеткенимди көрсөтөм.

- Микроконтроллер жана анын дал келген USB кабели. Мен Arduino Uno клону болгон SparkFun RedBoard колдондум. Бул Mini B USB туташтыргычын колдонот (Амазонкада эмне үчүн кымбат экенин так билбейм, аны SparkFun'дан түздөн -түз бул жерден алсаңыз болот, же Amazon сыяктуу альтернативага өтсөңүз болот). Биз коддоону жөнөкөйлөтүү үчүн Arduino китепканасын колдонобуз, бирок ал негизги сериялык байланышты гана колдонот, андыктан китепкананы USB сериясын жасай турган ар кандай микроконтроллерде иштөөгө көчүрүү мүмкүн. Дээрлик бардык Arduino жасайт. Анын USB сериясы бар экенин текшериңиз (көбү жасашат, бирок айрымдары түпнуска Trinket сыяктуу эмес).

- Зымдар, ширетүүчү жана ширетүүчү (зым чечүүчү аппараттар жана үчүнчү кол дагы жардамга келет). Биз зымдарды NeoPixel таякчасына ширетебиз, андыктан аны Arduinoго туташтырууга болот. Эгер сиз буга чейин зымдары бар NeoPixel өнүмүн же бортунда NeoPixels менен келген микроконтроллерди тандасаңыз, бул керексиз болуп калышы мүмкүн (мисалы, мен кийинки кадамга кодду киргизген Circuit Playground Express сыяктуу). 8 LED таякчасынын форма фактору - бул менин сойлоочу детекторунун корпусун ойлоп тапкан нерсе, андыктан сиз башка форма факторуна өтсөңүз, өзгөртүүлөрдү киргизишиңиз же корпусуз жүрүшүңүз керек болот.

- Каптоочу материалдар. Мен 1/8 "тоңгон акрил, 1/8" тунук акрил жана 1/8 "фанераны лазер менен кескем жана M3 станоктун бурамалары менен гайкаларын колдонгом. Мен дагы NeoPixel таякчасын корпуска бекитүү үчүн #2 x 1/4 "жыгач бурамаларын колдондум. Короо керексиз, бирок, албетте, кошумча сойлук жөндөмүн кошот. Менин корпусум микроконтроллерди эмес, NeoPixelsти жайгаштырууга арналган. сиз толугу менен өзүнчө болушун кааласаңыз, өзгөртүүлөрдү киргизишиңиз керек!

- Minecraft эсеби, Minecraft Forge 1.7.10 жана SerialCraft (мод жана Arduino китепканасы). Creeper Detector Minecraft Forge менен Minecraft 1.7.10до гана иштеген SerialCraft модуна таянат. Буларды кантип жүктөө керектигин жана аларды кийинки кадамдарда кантип орнотууну талкуулайбыз.

- Arduino IDE же Arduino Create жана Arduino Create плагининдеги каттоо эсеби (мен Arduino Create колдонууну сунуштайм, анткени сиз менин Arduino Create эскизиме түздөн -түз кирип, аны ошол жерден жүктөп жана жүктөй аласыз).

2 -кадам: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Район абдан жөнөкөй, болгону 3 зым, NeoPixel таякчасы жана Arduino. Бардык Adafruit NeoPixelsтин өз контроллери бар, ал бир эле маалымат зымына чынжырлуу LEDдин каалаган санын башкарууга мүмкүндүк берет. Мен аны Arduinoдогу 12 -пинге туташтырдым.

Калган эки зым электр жана жер үчүн. NeoPixelsти иштетүү үчүн бизге 5В кубат булагы керек болот. Биздин энергия булагыбыз жетиштүү токту бере алаарына ынануубуз керек. Ар бир NeoPixel толук жарыктыкта 60mA (RGBW LED менен 80мА) чейин тарта алат. 8 светодиод менен, бул биздин эң жогорку ток 480mA (640mA RGBW светодиоддору) экенин билдирет. Arduino күйгүзүү үчүн ~ 40mA алат. Бир караганда, бул тышкы электр булагын колдонуубуз керек окшойт. USB, эгерде биз бардык светодиоддорубузду максимумга койсок, ашып кете турган 500mAга мүмкүндүк берет (480+40 = 520 RGB LED же 640+40 = 680 RGBW LED менен). Бактыга жараша, биз эч качан светодиоддорду толук жарыктыгына буруунун кажети жок (толук жарыктык абдан сокур), андыктан биз USB аркылуу туташтырылган Arduino 5V темир жолун колдонуп коопсуз болобуз. Чынында, мен тандаган жашыл түстү колдонуу ~ 7-8mA максималдуу светодиод үчүн ~ 100mA максималдуу ток тартуу үчүн, ошондой эле USB тарабынан киргизилген 500mA макс астында болот.

Ошентип, биз эмне кылышыбыз керек, NeoPixel таякчасынын DIN пинин 12 -пинге илишибиз керек (дээрлик бардык пин иштейт, бирок бул мен колдонгон), NeoPixelдеги 5V пин 5D Arduinoдогу NeoPixelдеги GND пини Arduinoдогу GNDге жабышат. Биринчиден, биз зымдарыбызды NeoPixel таякчасына ширетишибиз керек.

Коннекторлорду зымдарыңыздын бир четинен кесип, учтарын сыйрып алыңыз. Алардын ар бирин калай (учтарынын ар бирине ширеткич коюңуз). Андан кийин ар бир блокко бир аз ширетүү керек. Этияттык менен ар бир жаздыкка ширетүүчү темирди тийгизип, тийиштүү зымдын учун төшөккө коюп, андан кийин үтүктү алып салыңыз.

3 -кадам: Кодекс

UPDATE (2/19/2018): Мен GitHub репога жаңы Arduino эскизин жайгаштырдым, анда Creeper Detector Circuit Playground Expressте иштеши үчүн бардык зарыл болгон өзгөртүүлөр камтылган (ал корпус менен иштебейт, бирок анын баары бар LED жана кээ бир сенсорлор тактага орнотулган, андыктан эч кандай ширетүү талап кылынбайт). Бул анын баскычтарына жана слайд которгучуна байланган кошумча функцияларды камтыйт!

Толук код үчүн сиз менин Arduino Create эскизине же GitHub репозиторийине кире аласыз. Эгерде кодду кантип чогултуу жана жүктөө керек экенин билбесеңиз, бул жердеги нускамаларды аткарыңыз. Эгерде сиз Arduino IDE колдонууну тандасаңыз, SerialCraft Arduino китепканасын орнотушуңуз керек болот. Бул үчүн "Zipти импорттоо" астындагы кадамдарды аткарыңыз. Эгерде сиз Arduino Create Web Editor колдонсоңуз, анда сиз орноткондон кийин менин эскизиме түз кире аласыз жана SerialCraft китепканасын орнотуунун кажети жок.

Мен коддун төмөндө эмне кылып жатканын карап чыгам.

Биринчи эки сапка китепканалар кирет. Биринчиси, SerialCraft.h, мен жазган китепкана, ал SerialCraft моду менен оңой байланышууга мүмкүнчүлүк берет. Мен сизди төмөндө колдонгон өзгөчөлүктөр менен тааныштырам, бирок сиз анын GitHub репозиторийинде кандайдыр бир жумушка муктаж болгон мисалдарды жана кээ бир документтерди текшере аласыз. Экинчи китепкана Adafruit's NeoPixel китепканасы жана NeoPixel тилкелериндеги LEDди тууралоо үчүн API менен камсыз кылат.

#кошуу

#кошуу

4-17-саптар сиздин орнотууларга жараша өзгөрүшү мүмкүн болгон константалар. Эгерде сиз башка пикселдик саны бар NeoPixel тилкесин колдонгон болсоңуз же NeoPixels'иңизди башка пинге туташтырсаңыз, алгачкы эки аныктамага, NUMLEDS жана PINге өзгөртүүлөрдү киргизишиңиз керек болот. Сизде LED_TYPEди өзүңүздүн түрүңүзгө алмаштырышыңыз керек, эгер кыйынчылыкка туш болсоңуз, NEO_GRBWти NEO_RGB же NEO_RGBW деп өзгөртүп көрүңүз. Эгерде сиз сойлоп жүрүүчүлөрдү аныктай турган диапазонду тууралоону кааласаңыз, BLOCKS_PER_LEDди өзгөртө аласыз.

// Орнотууңузга дал келүү үчүн бул өзгөрмөлөрдү өзгөртүңүз

// тилкеңиздеги светодиоддордун саны #аныктоо NUMLEDS 8 // LED маалымат пини #define PIN 12ге туташкан пин // ар бир светодиоддун блокторунун саны #define BLOCKS_PER_LED 4 // сиздеги LED тилкесинин түрү (эгер Сиздин светодиоддорңуз жашыл түскө боёлбойт, анда сиз GRBW тартибин өзгөртүшүңүз керек) #define LED_TYPE (NEO_GRBW+NEO_KHZ800) // END өзгөрмөлөрү

19-27-саптар кийинчерээк колдоно турган кээ бир баалуулуктарды аныктайт. DETONATE_DIST - бул Майнкрафттагы сойлоочу кыймылын токтотуп, анын эритмесин күйгүзүп, жарылып кете турган аралык. SAFE_DIST - сойлоп жүрүүчүнүн жарылуу радиусу. Бул баалуулуктарды өзгөртүү LEDдин жүрүм -турумуна таасирин тийгизет, бирок мен аларды Minecraftта жүрүм -турумду чагылдырган бойдон сактоону сунуштайм. MAX_DIST - бул биз сойлоочуларды көзөмөлдөп турган максималдуу аралык, бул биздин NeoPixel тилкесибиздеги диоддордун санына жана биз жогоруда аныктаган BLOCKS_PER_LED константасына негизделген.

// Бул LED жарыктыгын эсептөөдө колдонула турган баалуулуктар

// расстояние детонациялоону баштайт #аныктоо DETONATE_DIST 3 // биз сойлоп жүрүүчүлөрдүн жарылуусунан коопсузбуз (эгер сиз бул аралыкта болсоңуз зыян тартасыз) #define SAFE_DIST 7 // биз сойлоп жүрүүчү максималдуу аралыкты #аныктоо MAX_DIST (NUMLEDS*BLOCKS_PER_LED)

29-36-саптар программада колдонула турган кээ бир өзгөрмөлөрдү аныктайт. Sc өзгөрмөсү SerialCraft объектиси болуп саналат, ал SerialCraft Minecraft мод менен байланышуу үчүн колдонууга оңой камсыз кылат. Аны кантип колдоноорубузду төмөндө көрөсүз. dist - бул SerialCraft режиминен сойлоп жүрүүчүнүн алыстыгы тууралуу кабарды алганда, биз эң жакын сойлоп жүрүүчүгө чейинки аралыкты орното турган өзгөрмө. strip - бул Adafruit_NeoPixel объектиси, ал NeoPixel тилкелерин башкаруу ыкмаларын камсыз кылат.

// Бул SerialCraft Minecraft мод менен байланышуу үчүн SerialCraft объектиси

SerialCraft sc; // сойлоп жүрүүчүдөн аралык dist int = 100; // Светодиоддордун тилкесин баштоо үчүн, 3 -Adafruit_NeoPixel тилкесин = Adafruit_NeoPixel (NUMLEDS, PIN, LED_TYPE) өзгөртүү керек болушу мүмкүн;

38-47-саптар биздин орнотуу милдетибиз. Бардык Arduino скрипттеринин бири болушу керек. Бул Arduino күйгүзүлгөндө бир жолу иштейт, ошондуктан бул өзгөрмөлөрдү инициализациялоо үчүн эң сонун жер. Биз SerialCraft объектисиндеги setup () методун чакырып, SerialCraft модулунда (115200) конфигурацияланган баанын ылдамдыгына сериялык портту баштапкы абалга келтиребиз. Андан кийин биз RegisterCreeperDistanceCallback ыкмасын чакырабыз, андыктан SerialCraft моду тарабынан бизге жөнөтүлгөн алыстан келген билдирүүлөргө жооп бере алабыз. Биз мезгил -мезгили менен sc.loop () ыкмасын бир аз ылдыйыраак чакырабыз. Укурук ыкмасында, биз SerialCraft модунан кандайдыр бир билдирүүлөрдү алганыбызды же кандайдыр бир окуяны, мисалы, баскычты басуубузду текшерип, аны иштетүү үчүн каттаган тиешелүү функцияны чакырабыз. Биздин жасап жаткан ишибиз эң жакын сойлоп жүрүүчү аралыкты издөө, андыктан биз каттап жаткан жалгыз функция. Төмөндө сиз бул функцияда кылгандарыбыздын баары, биздин LED өзгөрмөлөрүбүз экенин, аларды LEDди жаңыртууда колдонобуз. Акыр -аягы, биз LED тилкесибизди инициализациялайбыз жана strip.begin () жана strip.show () колдонуу менен бардык светодиоддорду өчүрөбүз.

void setup () {// SerialCraft sc.setup () баштоо; // эң жакын сойлоп жүрүүчүгө чейинки аралыкты алуу үчүн сойлоочу аралыкка кайра чалуу катталыңыз sc.registerCreeperDistanceCallback (сойлоп жүрүүчү); // LED тилкесинин тилкесин баштоо.begin (); strip.show (); }

49-80-саптар циклдин функциясын аныктайт. Укурук функциясы - бул жерде бардык сыйкырлар болот. Цикл функциясы кайра -кайра чакырылат. Цикл функциясы иштей баштаганда, ал кайра эле жогору жактан башталат. Анда биз dist өзгөрмөсүн жана файлдын жогору жагындагы константаларыбызды колдонуп, ар бир LEDдин абалы кандай болорун аныктайбыз.

Цикл функциясынын үстү жагында биз бир нече өзгөрмөлөрдү аныктайбыз.

// диапазону 0дөн>> MAX_DIST сойлоп жүрүүчүнүн жарылуу радиусунан NUMLEDS*BLOCKS_PER_LEDге чейин, сойлоп үстүндө

int blockFromCreeperToMax = чектөө (MAX_DIST+DETONATE_DIST-dist, 0, MAX_DIST); int curLED = blockFromCreeperToMax/BLOCKS_PER_LED; // диапазону 0дөн NUMLEDS-1ге чейин int curLEDLevel = (blockFromCreeperToMax%BLOCKS_PER_LED+1); // 1ден BLOCKS_PER_LEDге чейин

Биз светодиодго канчалык жакын экенибизге негизделген жарык диоддорун күйгүзүп жаткандыктан, аралыктын өзгөрмөсүн эффективдүү бурушубуз керек. Биз blockFromCreeperToMaxти аныктайбыз, сойлоп жүрүүчү биз көзөмөлдөгөн эң алыс аралыктан турган блоктордун санын билдирет. Биз сойлоп жүрүүчүнүн үстүндө болгондо (тагыраак айтканда, сойлоп жүрүүчүдөн DETONATE_DISTке аз же барабар), blockFromCreeperToMax MAX_DIST болот. Качан биз MAX_DIST чегинен алыс болсок, blockFromCreeperToMax 0 болот. Бул өзгөрмөлүү, биз LEDлерибизди канчалык чоң болсо, ошончолук көп жарык кылабыз.

curLED - бул эң көп күйүүчү LED. Биз сойлоп жүрүүчү ар бир 4 блок кошумча LEDди күйгүзөт (бул номер BLOCKS_PER_LED өзгөрмөсү менен файлдын жогору жагында өзгөртүлүшү мүмкүн). Биз эң жогорку LEDдын жарыктыгын жөндөйбүз, ошондо биз бир блокко чейинки аралыктын өзгөрүшүн көрө алабыз. curLEDLevel - бул жарыктын өзгөрүүсүн эсептөө үчүн колдонула турган өзгөрмө. Бул 1ден 4кө чейин (же BLOCKS_PER_LED катары аныкталса дагы).

Биз бул өзгөрмөлөрдү ар бир светодиоддун айланасында колдонобуз:

for (uint16_t i = 0; i <strip.numPixels (); i ++) {if (i <= curLED) {// creeper's detonation radius ичинде эң жарык, сойлоп жүргөндө NUMLEDS*BLOCKS_PER_LED сүзүү интенсивдүүлүгү = (float) блокторуFromCreeperToMax /MAX_DIST; if (i == curLED) {// акыркы LED күйгөн // биз кийинки LED float lastIntensity = жакындаганда акыркы светодиодду жарык кылабыз = (float) curLEDLevel/BLOCKS_PER_LED; интенсивдүүлүк *= lastIntensity; } if (dist <SAFE_DIST) {intensity *= (millis ()/75)%2; } интенсивдүүлүк = pow (интенсивдүүлүк, 2.2); // гамма ийри сызыгы, чынында, жарыктын мааниси strip.setPixelColor болбогондо LED жарыктыгын көзүбүзгө сызыктуу кылып көрсөтөт (i, strip. Color (10*интенсивдүүлүк, 70*интенсивдүүлүк, 10*интенсивдүүлүк, 0)); } башка {strip.setPixelColor (i, strip. Color (0, 0, 0, 0)); }}

Эгерде биз жаңыртып жаткан учурдагы светодиод curLED өзгөрмөсүнөн аз же ага барабар болсо, анда биз анын күйүп турганын билебиз жана анын жарыктыгын эсептешибиз керек. Болбосо, аны өчүрүңүз. Биз интенсивдүүлүктүн өзгөрмөсүн колдонобуз, ал LEDдин жарыгын чагылдыруу үчүн 0дөн 1ге чейин мааниге ээ болот. Светодиоддун акыркы түсүн коюп жатканда, биз интенсивдүүлүктү жашыл түскө (10, 70, 10) көбөйтөбүз. Биз MAX_DISTке бөлүү менен пайызды алуу үчүн blockFromCreeperToMax өзгөрмөсүн колдонобуз, андыктан биз сойлоп жүрүүчүлөргө жакындап калганыбызда светодиоддор жаркырайт. Эгерде биз curLEDдин жарыктыгын эсептеп жаткан болсок, анда анын жарыктыгын аралыктагы блок үчүн сизден BLOCKS_PER_LED жөндөөсүнө чейин өзгөртөбүз. Бул тымызын өзгөрүү, бирок аны кошумча светодиоддун жарыгы үчүн талап кылынган 4 блокко караганда дандын жакшыраак жакындап баратканын көрүү үчүн колдонсо болот. Андан кийин биз сойлоп жүрүүчүнүн жарылуу радиусунда экенибизди текшеребиз жана биз болсок көзүбүздү ирмештиребиз. (Millis ()/75)%2 туюнтмасы 75 миллисекунд үчүн 0, андан кийин 75 миллисекунд үчүн 0гө чейин кайра -кайра бааланат, андыктан биздин интенсивдүүлүгүбүздү бул сөзгө көбөйтүү LEDдин жаркырашына алып келет.

Интенсивдүүлүктүн акыркы өзгөрүшү (интенсивдүүлүк = пов (интенсивдүүлүк, 2.2)), гамма -коррекция деп аталган тууралоо. Адамдын көзү жарыкты сызыктуу эмес түрдө кабылдайт. Биз жаркыраган жарыкка караганда күңүрт жарыктын градациясын көрө алабыз, андыктан биз жарыктын жарыгын төмөндөткөндө, сызыктуу түшүп бараткандай көрүнүү үчүн, жарык күңүрттөнгөнгө караганда көбүрөөк басаңдайбыз. мода адамдын көз алдында. Бул өзгөрүүнүн терс таасири - биз аз энергия колдонобуз, анткени биздин пикселдер жарык (жогорку энергия) диапазонуна караганда күңүрт (төмөн энергия) диапазондо көбүрөөк градацияга ээ болот.

Биздин цикл функциябыздын акыркы эки сабы LEDди биз жөнгө салган баалуулуктарга чейин жаңыртып, андан кийин SerialCraft тарабынан чакырылышы керек болгон иштетүүчүлөргө чалат (бул учурда, эгер биз SerialCraft мододон кандайдыр бир сойлоп жүрүүчү аралыктан кабар алсак).

strip.show ();

sc.loop ();

Биздин сценарийдин акыркы саптары - бул сойлоп жүрүү функциясы, биз SerialCraft моду бизге ошол маалымат менен билдирүү жөнөткөндө, жакынкы сойлоп жүрүүчүгө чейинки аралыкты сактайбыз.

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

Эми сиз жөн гана кодду түзүп, жүктөшүңүз керек!

4 -кадам: Каптоо

Корпус
Корпус
Корпус
Корпус
Корпус
Корпус

Мен муздак акрил сойлоп жүрүүчү, бир тунук акрил сойлоп жүрүүчү, 6 даана фанерадан турган, корпусумдун бардык бөлүктөрүн лазер менен кесип алдым, акрил сойлоп жүрүүчүлөрдүн чоңдугуна окшош төрт бурчтуу тешиги бар жана бекиткичтер үчүн бурчтардагы тешиктер жана 1 даана фанера Бекитүүчү тешиктери бар арт жагында жана зымдардын чыгып кетиши үчүн бир чоңураак тешикте. Зымдарды NeoPixel таякчасынан ажыратыңыз, ошондо биз аны корпусубузга орнотуп алабыз. Төмөндөгү эки PDF файлын мен сүрөттөгөн бардык бөлүктөрдү лазер менен кесүү үчүн колдонсо болот.

NeoPixel таякчасы фанеранын арткы бөлүгүнө #2 жыгач бурамалар менен нейлон бөлгүчтөрдү орнотулган. Акрил сойлоочулары фанеранын эки бөлүгүнө төрт бурчтуу тешиктери менен тыгылган. Муну жасоодон мурун, зымдын түсү таякчадагы кайсы жаздыкка бараарын унутпаңыз.

Акрил сойлоп жүрүүчүлөр фанерага абдан ыңгайлуу камсыз кылуу үчүн тешиктерден 1 дюймдун чоңдугунан чоңураак. Мен ар бир бурчка басым жасоо үчүн зым суургучтардын туткасын колдондум жана бир калыпка келүү үчүн бүт сойлоп жүрүүчүлөрдүн айланасында иштедим. Же болбосо, акрил лазердик pdf, кичинекей акрил сойлоп жүрүүчү менен тыгыз байланышта болуудан сактануу үчүн, бекиткич тешиктери бар корпустун толук бетинин өлчөмүндө чегилген сойлукту камтыйт.

Тоңгон акрил жеке светодиоддордон жарыкты бөлүштүрөт жана тунук акрил сойлоп жүрүүчүнү жакшыраак чагылдырганын көрсөтөт, андыктан экөө тең жекече караганда мага жакшы көрүнөт. Сойлоп жүрүүчүлөр жайгашкандан кийин, фанераңыздын бардык бөлүктөрүн чогултуп, M3 машинасынын бурамалары жана гайкалары менен бекиңиз. Андан кийин зымдарды 5V, GND жана pin 12ге кайра туташтырыңыз.

5 -кадам: Minecraft Forge жана SerialCraft Mod

Minecraft Forge жана SerialCraft Mod
Minecraft Forge жана SerialCraft Mod
Minecraft Forge жана SerialCraft Mod
Minecraft Forge жана SerialCraft Mod
Minecraft Forge жана SerialCraft Mod
Minecraft Forge жана SerialCraft Mod

Minecraft эсебин түзүүдөн баштаңыз, андан кийин Minecraft кардарын жүктөп алып орнотуңуз.

SerialCraft режимин орнотуу үчүн 1.7.10 версиясы үчүн Minecraft Forge керек болот. 1.7.10 Minecraft Forge жүктөө барагына өтүңүз. Minecraft Forge сайтында сизди туура эмес нерсени басып, башка жакка алып барууну көздөгөн көптөгөн жарнактар бар. Туура жолдо калуу үчүн жогорудагы сүрөттөрдү ээрчиңиз! Сиз Сунушталган 1.7.10 версиясынын астындагы Орнотуучу баскычын чыкылдатууну каалайсыз (же акыркы, мен айырманы так билбейм). Сиз барактын жогору жагында баннери бар баракка өтөсүз "Бул аталыштын астындагы мазмун-бул жарнама. Эсептөө аяктагандан кийин Forge жүктөмөсүн баштоо үчүн оңго өтүү баскычын чыкылдатыңыз." Жүктөөнү баштоо үчүн кайра эсептөөнү күтүп турганыңызды текшерип, Өткөрүп жиберүү баскычын басыңыз.

Жүктөө аяктагандан кийин орнотуучуну эки жолу чыкылдатыңыз. Демейки шарттарды текшерип коюңуз (Кардарды жана ал көрсөткөн демейки жолду орнотуңуз), анан ОК басыңыз. Бул Minecraft Forge орнотот. Ал бүткөндөн кийин, сиз Minecraft Ишке киргизгичти баштай аласыз, бирок Forge 1.7.10 версиясын тандоо үчүн кошумча мүмкүнчүлүк болот (жогорудагы сүрөттү караңыз).

Эми биз SerialCraft модун сиздин mods каталогуна орнотушубуз керек. SerialCraft модунун акыркы версиясын бул жерден жүктөп алыңыз. Сизге ошондой эле jssc китепканасы керек болот. Эки файлды ачыңыз, бул сизге эки.jar файлын калтырышы керек. Сиз бул файлдарды mods папкаңызга салышыңыз керек. Windowsто, Старт менюсунан Run'ке өтүп, Run дегенди басуудан мурун %appdata %\. Minecraft / mods киргизиңиз. Macта сиз Home/Library/Application Support/minecraft/mods баракчасына өтсөңүз болот. Жаңы ачылган папкага эки.jar файлын түшүрүңүз. Эми Minecraftти иштетип, 1.7.10 Forge версиясын ишке киргизиңиз. Сиз Mods баскычын чыкылдатып, сол жагында тизмеленген SerialCraftты көрө алышыңыз керек.

6 -кадам: SerialCraft Mod колдонуу

SerialCraft Mod колдонуу
SerialCraft Mod колдонуу

Эми сиз SerialCraft модун орноткондон кийин, сиз дүйнөгө кирип, аны колдоно башташыңыз керек болот. Жаңы дүйнө түзүңүз же сакталган дүйнөңүздүн бирин ачыңыз (эгер сиз көп оюнчу картада ойногуңуз келсе, анда серверге жана ага туташкан бардык кардарларга SerialCraft моду орнотулганын камсыз кылууңуз керек). Сиздин Creeper детекторуңуз компьютериңизге туташып турганын текшериңиз, анан K баскычын басыңыз. Бул жогорудагы сүрөттөгүдөй диалогду алып келиши керек (Windowsто, /dev/tty.usbserialдин ордуна COM1 сыяктуу бир нерсе айтыш керек). Эгерде эч нерсе көрсөтүлбөсө, Creeper Detectorду туташтырганыңызды текшериңиз. Байланыш баскычын чыкылдатыңыз, андан кийин Escape баскычын басыңыз. Эгерде кодуңуз туура түзүлүп, жүктөлгөн болсо, анда сойлоочу детекторуңуз жакшы болушу керек! Эгерде Creeper 32 блоктун ичинде болсо, анда ал күйүп кетиши керек. Бактылуу аңчылык!

Эгерде сизге бул Нускамалык материал жаккан болсо, анда Minecraft конкурсунда жана Epliog Challengeде ага добуш берүүнү ойлонуп көрүңүз!

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

Minecraft Challenge 2018 экинчи сыйлыгы

Сунушталууда: