Բովանդակություն:

Կառուցեք Rainbow Interactive Bridge օգտագործելով Minecraft Raspberry Pi հրատարակությունը ՝ 11 քայլ
Կառուցեք Rainbow Interactive Bridge օգտագործելով Minecraft Raspberry Pi հրատարակությունը ՝ 11 քայլ

Video: Կառուցեք Rainbow Interactive Bridge օգտագործելով Minecraft Raspberry Pi հրատարակությունը ՝ 11 քայլ

Video: Կառուցեք Rainbow Interactive Bridge օգտագործելով Minecraft Raspberry Pi հրատարակությունը ՝ 11 քայլ
Video: Стриминг данных в MongoDB: жив или нет? / Java Tech Talk 2024, Դեկտեմբեր
Anonim
Image
Image

Երեկ ես տեսա իմ 8-ամյա եղբորորդուն, ով խաղում էր Minecraft- ով նախկինում իրեն տված Raspberry Pi- ով, այնուհետև ես գաղափար ստացա, որն օգտագործում է ծածկագիրը ՝ Minecraft-pi- ի LED բլոկների հարմարեցված և հետաքրքիր նախագիծ պատրաստելու համար: Minecraft Pi- ը Raspberry Pi միկրոհամակարգչով սկսելու հիանալի միջոց է, Minecraft Pi- ն Minecraft- ի հատուկ պատվերով պատրաստված տարբերակն է, որը թույլ է տալիս մեզ փոխազդել խաղի հետ ՝ օգտագործելով մահացու պարզ Python API ՝ խաղի փորձն ու հնարքները հարմարեցնելու համար:

Կան բազմաթիվ նախագծեր, որոնք կարող եք անել Minecraft աշխարհում ՝ Raspberry Pi- ի հետ, բայց հատուկ մեզ համար դա բավարար չէր, մենք փնտրում էինք ինչ -որ դժվար և միաժամանակ թարթող ինչ -որ բան: Այս նախագծում մենք կքայլենք Minecraft- ի բազմաթիվ բլոկների վրա, կբացահայտենք բլոկի ID- ն և կբացահայտենք այն կոնկրետ բլոկի գույնը, որի վրա մենք քայլել ենք, ելնելով այն գույնից, որը մենք լուսավորելու ենք մեր RGB LED- ը ՝ ինտերակտիվ քայլերի խաղ ստեղծելու համար:

Էֆեկտի հասնելու համար ես կօգտագործեմ երկու մեթոդ, առաջինը `աքսեսուարների օգտագործումն է, որոնք կարող են շատ քաոսային լինել …; երկրորդը օգտագործում է CrowPi2- ը (սովորող համակարգիչ բազմաթիվ սենսորներով, ներկայումս Kickstarter- ում հավաքված ֆինանսավորում. CrowPi2)

եկեք սկսենք և տեսնենք, թե ինչպես արխիվացնել նման զարմանալի նախագիծը:

Պարագաներ

CrowPi2- ն այժմ ուղիղ եթերում է, CrowPi2 նախագիծը հավաքել է գրեթե $ 250 հազար:

Կտտացրեք հղմանը ՝

Մեթոդ 1 Աքսեսուարների օգտագործումը

Քայլ 1: Նյութեր

● 1 x Ազնվամորի Pi 4 մոդել B

● 1 x TF քարտ ՝ պատկերով

X 1 x Raspberry Pi սնուցման աղբյուր

● 1 x 10.1 դյույմ մոնիտոր

X 1 x Էներգամատակարարում մոնիտորի համար

● 1 x HDMI մալուխ

● 1 x Ստեղնաշար և մկնիկ

X 1 x RGB LED (ընդհանուր կաթոդ)

● 4 x թռիչք (կին էգից)

Քայլ 2: Միացման դիագրամ

Միացման դիագրամ
Միացման դիագրամ

Իրականում RGB գունավոր LED- ում կան երեք լույսեր, որոնք կարմիր լույսն են, կանաչը և կապույտը: Կառավարեք այս երեք լույսերը ՝ տարբեր ինտենսիվության լույսեր արձակելու համար, և երբ դրանք խառնվում են, նրանք կարող են տարբեր գույների լույս արձակել: LED լուսարձակի չորս կապում են համապատասխանաբար GND, R, G և B: Իմ օգտագործած RGB LED- ը սովորական կաթոդ է, և Raspberry Pi- ի հետ կապը հետևյալն է.

RaspberryPi 4B (գործառույթի անվան մեջ) RGB LED

GPIO0 1 ԿԱՐՄԻՐ

GPIO1 3 Կանաչ

GPIO2 4 Կապույտ

GND 2 GND

Երկրորդ նկարը ապարատային կապն է

Քայլ 3: Կարգավորեք SPI- ի համար

Կարգավորել SPI- ի համար
Կարգավորել SPI- ի համար
Կարգավորել SPI- ի համար
Կարգավորել SPI- ի համար
Կարգավորել SPI- ի համար
Կարգավորել SPI- ի համար
Կարգավորել SPI- ի համար
Կարգավորել SPI- ի համար

Քանի որ մենք պետք է SPI- ն օգտագործենք RGB- ը վերահսկելու համար, մենք պետք է նախ միացնենք SPI ինտերֆեյսը, որը լռելյայն անջատված է: SPI ինտերֆեյսը միացնելու համար կարող եք հետևել հետևյալ քայլերին.

Նախ, կարող եք օգտագործել աշխատասեղանի GUI- ն ՝ անցնելով Pi start MenupreferencesRaspberry Pi կազմաձևին, ինչպես ցույց է տրված առաջին նկարում:

Երկրորդ, նավարկեք «Ինտերֆեյսեր» և միացրեք SPI- ն և կտտացրեք OK (երկրորդ նկարը):

Վերջապես, վերագործարկեք ձեր Pi- ն ՝ փոփոխություններն ուժի մեջ մտնելու համար: Սեղմեք Pi Start MenuPreferencesShutdown- ի վրա: Քանի որ մեզ մնում է միայն վերագործարկել, կտտացրեք «Վերագործարկեք» կոճակին:

Քայլ 4: Կոդ

Մենք կսկսենք գրելով մեր պիթոնի ծածկագիրը, նախ ՝ կսկսենք ներմուծելով մի քանի գրադարաններ, որոնք մեզ անհրաժեշտ կլինեն մեր ծածկագիրը Minecraft աշխարհին ինտեգրելու համար: Այնուհետև մենք կներմուծենք ժամանակի գրադարանը, մասնավորապես գործառույթը, որը կոչվում է քուն: Քնի գործառույթը թույլ կտա մեզ սպասել որոշակի միջակայք, նախքան գործառույթ կատարելը: Վերջին, բայց ոչ պակաս կարևոր, մենք ներմուծում ենք RPi. GPIO գրադարանը, որը թույլ է տալիս մեզ վերահսկել GPIO- ն Raspberry Pi- ի վրա:

mcpi.minecraft ներմուծում Minecraft ժամանակից ներմուծում քնի ներմուծում RPi. GPIO որպես GPIO

Եվ վերջ, մենք ավարտեցինք գրադարանների ներմուծումը, այժմ ժամանակն է դրանք օգտագործել: Առաջին բանը ՝ օգտագործել Minecraft գրադարանը, մենք ցանկանում ենք մեր python սցենարը միացնել Minecraft աշխարհին, դա կարող ենք անել ՝ կանչելով MCPI գրադարանի init () գործառույթը, այնուհետև սահմանել GPIO ռեժիմը և անջատել նախազգուշացումը:

mc = Minecraft.create () GPIO.setmode (GPIO. BCM) GPIO.setwarnings (0)

Այժմ մենք սահմանում ենք ծիածանի որոշ գույներ տասնվեցերորդով, որպեսզի կարողանանք փոխել RGB գույները:

ՍՊԻՏԱԿ = 0xFFFFFF ԿԱՐՄԻՐ = 0xFF0000 Նարնջագույն = 0xFF7F00 ԴԵELLԻՆ = 0xFFFF00 GREEN = 0x00FF00 CYAN = 0x00FFFF BLUE = 0x0000FF PURPLE = 0xFF00FF MAGENTA = 0xFF0090

Հաջորդը, մենք պետք է որոշ փոփոխականներ սահմանենք `բուրդի բլոկի գույնը գրանցելու համար, որն արդեն սահմանված է Minecraft բլոկների ցանկում:

W_WHITE = 0 W_RED = 14 W_ORANGE = 1 W_YELLOW = 4 W_GREEN = 5 W_CYAN = 9 W_BLUE = 11 W_PURPLE = 10 W_MAGENTA = 2

Minecraft- ում բուրդ բլոկի ID- ն 35 է: Այժմ մենք պետք է կազմաձևենք RGB- ի համար նախատեսված քորոցը և տեղադրենք դրանց համար:

կարմիր_շապիկ = 17 կանաչ_փին = 18 կապույտ_պին = 27

GPIO.setup (red_pin, GPIO. OUT, initial = 1) GPIO.setup (green_pin, GPIO. OUT, նախնական = 1) GPIO.setup (blue_pin, GPIO. OUT, նախնական = 1)

Այնուհետեւ, յուրաքանչյուր PIN- ի համար տեղադրեք PWM- ը, նշեք, որ PWM արժեքի միջակայքը 0-100 է: Այստեղ մենք նախ RGB- ի գույնը սահմանեցինք սպիտակ (100, 100, 100):

կարմիր = GPIO. PWM (կարմիր_փին, 100)

կանաչ = GPIO. PWM (green_pin, 100) կապույտ = GPIO. PWM (blue_pin, 100) red.start (100) green.start (100) blue.start (100)

Հետևյալը ստեղծում է երկու գործառույթ, որոնք կարող են օգտագործվել RGB- ի առաջացած գույնը և լուսավորելու համար: Նշենք, որ map2hundred () գործառույթը 255-ից 100-ի արժեքների քարտեզագրումն է, ինչպես արդեն նշեցինք, PWM արժեքը պետք է լինի 0-100:

def map2hundred (արժեքը). վերադարձ int (արժեքը * 100 /255)

def set_color (գույնի_կոդ).

# Քարտեզի արժեքներ red_value = map2hundred (red_value) green_value = map2hundred (green_value) blue_value = map2hundred (blue_value)

# Լուսավորի կարմիր. ChangeDutyCycle (red_value) կանաչ. ChangeDutyCycle (green_value) կապույտ. ChangeDutyCycle (blue_value)

Լավ արեց: Mainամանակն է սկսել մեր հիմնական ծրագիրը, սպասել, ևս մեկ փոփոխական պետք է սահմանվի ՝ հիմնական ծրագրից առաջ բուրդ բլոկի գույնի ծածկագիրը գրանցելու համար.

last_data = 0 փորձել: x, y, z = mc.player.getPos () mc.setBlocks (x, y, z, x+1, y, z+2, 35, 14) mc.setBlocks (x+2, y+1, z, x+3, y+1, z+2, 35, 11) mc. setBlocks (x+4, y+2, z, x+5, y+2, z+2, 35, 2) mc.setBlocks (x+6, y+3, z, x+7, y+3, z+2, 35, 5) mc.setBlocks (x+8, y+4, z, x+9, y+4, z+2, 35, 4) mc. setBlocks (x+10, y+5, z, x+11, y+5, z+2, 35, 10) y+6, z, x+13, y+6, z+2, 35, 1) mc. setBlocks (x+14, y+5, z, x+15, y+5, z+2, 35, 10) mc.setBlocks (x+16, y+4, z, x+17, y+4, z+2, 35, 4) mc.setBlocks (x+18, y+3, z, x+19, y+3, z+2, 35, 5) mc. setBlocks (x+20, y+2, z, x+21, y+2, z+2, 35, 2) y+1, z, x+23, y+1, z+2, 35, 11) mc.setBlocks (x+24, y, z, x+25, y, z+2, 35, 14) իսկ ճշմարիտ: x, y, z = mc.player.getPos () # խաղացողի դիրքը (x, y, z) block = mc.getBlockWithData (x, y-1, z) # block ID #print (block) if block.id == WOOL և last_data! = Block.data: if block.data == W_RED: print ("Red!") Set_color (RED) if block.data == W_ORANGE: print ((Orange!)) block.data == W_ YELLOW: print («Yellow!») Set_color (YELLOW) եթե block.data == W_GREEN: print («Green!») Set_color (GREEN) եթե block.data == W_CYAN: print («Cyan!») Set_color (CYAN) if block.data == W_BLUE: print ("Blue!") set_color (BLUE) if block.data == W_PURPLE: print ("Purple!") set_color (PURPLE) if block.data == W_MAGENTA: print (" Կապույտ! ") Set_color (MAGENTA), եթե block.data == W_WHITE: print (" White! ")

Ինչպես ցույց է տրված հիմնական ծրագիրը վերևում, սկզբում որոշ հրամաններ օգտագործելու համար ստեղծեք գունավոր բրդյա բլոկներ, այնուհետև մենք պետք է պարզենք խաղացողի դիրքը, որպեսզի կարողանանք ստանալ բլոկների ID- ն և դրա գույնի կոդը: Արգելափակման մասին տեղեկատվությունը ստանալուց հետո մենք կօգտագործենք հայտարարությունը `որոշելու համար, թե արդյոք նվագարկիչի տակ գտնվող բլոկը բուրդ բլոկ է, և արդյոք այն ունի գունային կոդ: Եթե այո, ապա դատեք, թե որն է բրդի բլոկը և զանգահարեք set_color () գործառույթը ՝ RGB- ի գույնը փոխելու համար նույնը, ինչ բրդի բլոկը:

Բացի այդ, մենք ավելացնում ենք try/while հայտարարություն ՝ օգտվողի ընդհատման բացառությունը որսալու համար, երբ ցանկանում ենք դուրս գալ ծրագրից ՝ GPIO կապումների ելքը մաքրելու համար:

Կից ներկայացված է ամբողջական ծածկագիրը:

Լավ արված, այդքան շատ պարագաներ և չափազանց բարդ: Մի անհանգստացեք, եկեք տեսնենք նախագծին հասնելու երկրորդ մեթոդը, որը ձեզ ավելի ճկուն և հարմարավետ կդարձնի, որն օգտագործում է մեր CrowPi2- ը:

Քայլ 5: Արդյունքը

Image
Image

Բացեք խաղը և գործարկեք սցենարը, արդյունքը կտեսնեք վերևի տեսանյութում

Այնուհետեւ մենք կօգտագործենք CrowPi2- ը ՝ հաջորդը Rainbow ինտերակտիվ կամուրջ կառուցելու համար

Քայլ 6: Օգտագործելով CrowPi2- նյութեր

X 1 x CrowPi2

Քայլ 7: Օգտագործելով CrowPi2- Միացման դիագրամ

Կարիք չկա. CrowPi2- ում կան բազմաթիվ օգտակար սենսորներ և բաղադրիչներ (ավելի քան 20), դրանք բոլորը մեկ ազնվամորու նոութբուքի և STEM կրթական հարթակի մեջ են, որոնք թույլ են տալիս հեշտությամբ և առանց քրտինքի կատարել բազմաթիվ նախագծեր: Այս դեպքում մենք CrowPi2- ում կօգտագործենք գրավիչ և գունագեղ մոդուլ, որը 8x8 RGB մատրիցային մոդուլ է, որը թույլ է տալիս միաժամանակ կառավարել 64 RGB led:

Քայլ 8. Օգտագործելով CrowPi2- Կարգավորեք SPI- ի համար

Կարիք չկա. CrowPi2- ն ունի ներկառուցված պատկեր `ուսուցման համակարգով: Ամեն ինչ պատրաստ է, ինչը նշանակում է, որ դուք կարող եք ծրագրավորել և սովորել ուղղակիորեն: Բացի այդ, մեր CrowPi2- ի միջոցով այն հեշտ է և արդեն ինտեգրված է տախտակին ՝ որպես STEAM հարթակ, որը պատրաստ է գործի:

Քայլ 9: Օգտագործելով CrowPi2- ծածկագիրը

Հիմա, ժամանակն է սկսել մեր ծրագիրը: Նախ, ներմուծեք մի քանի գրադարան, օրինակ ՝ MCPI գրադարանը, որը Minecraft Pi Python գրադարանն է, որը թույլ է տալիս մեզ օգտագործել շատ պարզ API ՝ Minecraft աշխարհին ինտեգրվելու համար. ժամանակի գրադարան, որը թույլ է տալիս մեզ քնի գործառույթը սպասել որոշակի միջակայք գործառույթ կատարելուց առաջ. RPi. GPIO գրադարան, որը թույլ է տալիս մեզ վերահսկել Raspberry Pi GPIO կապում:

mcpi.minecraft ներմուծում Minecraft ժամանակից ներմուծում քնի ներմուծում RPi. GPIO որպես GPIO

Վերջապես, մենք կներմուծենք rpi_ws281x անունով գրադարան, որը RGB Matrix գրադարանն է, գրադարանի ներսում կան բազմաթիվ գործառույթներ, ինչպիսիք ենք PixelStrip- ը ՝ LED շերտի օբյեկտը կարգավորելու համար, և Color- ը ՝ RGB գույնի օբյեկտը կարգավորելու համար մեր RGB LED- ները

rpi_ws281x ներմուծել PixelStrip, Գույն

Եվ վերջ, մենք ավարտեցինք գրադարանների ներմուծումը, այժմ ժամանակն է դրանք օգտագործել: Միևնույն է, առաջինը Minecraft գրադարանից օգտվելն է, մենք ուզում ենք մեր պիթոնի սցենարը միացնել Minecraft աշխարհին: Դա կարող ենք անել `վկայակոչելով MCPI գրադարանի init գործառույթը.

mc = Minecraft.create ()

Ամեն անգամ, երբ մենք ցանկանում ենք գործողություններ կատարել ականապատ աշխարհում, կարող ենք օգտագործել mc օբյեկտը:

Հաջորդ քայլը կլինի RGB LED մատրիցային դասի սահմանումը, որը մենք կօգտագործենք մեր RGB LED- ները վերահսկելու համար, մենք դասակարգում ենք հիմնական կազմաձևով, ինչպիսիք են լուսարձակների թիվը, կապում, պայծառությունը և այլն…

մենք ստեղծում ենք մաքուր կոչվող գործառույթ, որն ավելի քիչ «կմաքրի» հատուկ տրված գույնով և նաև գործառույթ կոչվող գործառույթ, որը կսկսի սկզբնականացնել RGB LED օբյեկտը առաջին անգամ, երբ մենք ցանկանում ենք այն օգտագործել:

դաս RGB_Matrix:

def _init _ (self):

# LED շերտի կազմաձևում.

self. LED_COUNT = 64 # LED պիքսելների քանակ:

self. LED_PIN = 12 # GPIO կապ, որը միացված է պիքսելներին (18 -ը օգտագործում է PWM!):

self. LED_FREQ_HZ = 800000 # LED ազդանշանի հաճախականություն հերցում (սովորաբար 800khz)

self. LED_DMA = 10 # DMA ալիք `ազդանշան ստեղծելու համար օգտագործելու համար (փորձեք 10)

self. LED_BRIGHTNESS = 10 # Սահմանել 0 -ի համար ամենամութ և 255 ամենապայծառի համար

self. LED_INVERT = Կեղծ # Trueիշտ է ազդանշանը շրջելու համար

self. LED_CHANNEL = 0 # սահմանվել է '1' GPIO- ների համար 13, 19, 41, 45 կամ 53

# Սահմանեք գործառույթներ, որոնք տարբեր կերպ են կենդանացնում LED- ները: def clean (self, strip, color):

# սրբել միանգամից բոլոր LED- ները

միջակայքում i- ի համար (strip.numPixels ()):

strip.setPixelColor (i, գույն)

strip.show ()

def run (self):

# Ստեղծեք NeoPixel օբյեկտ `համապատասխան կազմաձևով:

շերտ = PixelStrip (ինքն. LED_COUNT, ինքն. LED_PIN, ինքն. LLE_FREQ_HZ, ինքն. LLE_DMA, ինքն. LED_INVERT, ինքն. LED_BRIGHTNESS, ինքն. LED_CHANNEL)

փորձել:

վերադարձի ժապավեն

բացառությամբ Ստեղնաշարի

# մաքրեք մատրիցային LED- ն ընդհատումից առաջ

ինքնամաքրում (շերտ)

Վերոնշյալն անելուց հետո ժամանակն է կանչել այդ դասերին և ստեղծել օբյեկտներ, որոնք կարող ենք օգտագործել մեր ծածկագրում, նախ ստեղծենք RGB LED մատրիցային օբյեկտ, որը կարող ենք օգտագործել ՝ օգտագործելով ավելի վաղ ստեղծված դասը.

matrixObject = RGB_Matrix ()

Այժմ եկեք օգտագործենք այս օբյեկտը `ստեղծելու ակտիվ LED շերտի օբյեկտ, որը մենք կօգտագործենք RGB մատրիցի վրա մեր առանձին LED- ները վերահսկելու համար.

շերտ = matrixObject.run ()

Ի վերջո, այս շերտը ակտիվացնելու համար մեզ հարկավոր է գործարկել վերջին գործառույթը.

strip.begin ()

Minecraft API- ն ներառում է բազմաթիվ բլոկներ, յուրաքանչյուր Minecraft բլոկ ունի իր սեփական ID- ն: Մեր օրինակում մենք վերցրեցինք որոշ քանակությամբ Minecraft բլոկներ և փորձեցինք կռահել, թե որ գույնն է առավել հարմար նրանց համար:

RGB- ն նշանակում է կարմիր, կանաչ և կապույտ, այնպես որ մեզ հարկավոր կլինի 3 տարբեր արժեքներ ՝ յուրաքանչյուրից 0 -ից 255 -ի սահմաններում, գույները կարող են լինել HEX կամ RGB ձևաչափ, մենք օգտագործում ենք RGB ձևաչափը մեր օրինակի համար:

Minecraft Pi աշխարհում կան նորմալ բլոկների ID- ներ և հատուկ բրդի բլոկների ID- ներ, հատուկ բուրդը գտնվում է ID համար 35 -ի ներքո, բայց ենթահամարներով ՝ տարբեր ID- ներով … Մենք այս խնդիրը կլուծենք ՝ ստեղծելով 2 առանձին ցուցակ ՝ մեկը նորմալ բլոկների համար: և մեկ ցուցակ հատուկ բրդյա բլոկների համար.

Առաջին ցուցակը սովորական բլոկների համար է, օրինակ `0 -ը ներկայացնում է Օդային բլոկը, մենք այն կդնենք 0, 0, 0 գույնը, որը դատարկ է կամ ամբողջովին սպիտակ, երբ խաղացողը ցատկելու կամ թռչելու է խաղում RGB- ն անջատվելու է, 1 տարբեր բլոկ է RGB գույնով ՝ 128, 128, 128 և այլն…

#Ainիածանի գույներ

ծիածանի_գույներ = {

"0": Գույն (0, 0, 0), "1": Գույն (128, 128, 128), "2": Գույն (0, 255, 0), "3": Գույն (160, 82, 45), «4»: Գույն (128, 128, 128), "22": Գույն (0, 0, 255)

}

Բրդյա բլոկներից մենք նույնն ենք անում, բայց կարևոր է հիշել, որ բոլոր բլոկների ID- ն 35 է, այս ցուցակում մենք սահմանում ենք բլոկի ենթատիպերը, որոնք բուրդ բլոկ են: Բուրդի տարբեր ենթատեսակներ ունեն տարբեր գույներ, բայց բոլորը բուրդ բլոկներ են:

բրդի_գույններ = {

"6": Գույն (255, 105, 180), "5": Գույն (0, 255, 0), «4»: Գույն (255, 255, 0), "14": Գույն (255, 0, 0), "2": Գույն (255, 0, 255)

}

Երբ մենք ավարտենք մեր հիմնական ծրագրի, դասերի և գործառույթների սահմանումը, ժամանակն է ինտեգրվել մեր CrowPi2 RGB LED սենսորին:

Հիմնական ծրագիրը կվերցնի այն պարամետրերը, որոնք մենք ավելի վաղ սահմանել էինք և ազդեցություն կունենար սարքավորման վրա:

Մենք պատրաստվում ենք օգտագործել CrowPi2 RGB LED- ը, որպեսզի դրանք լուսավորվեն ՝ հիմնվելով այն քայլերի վրա, որոնք մենք անում ենք Minecraft Pi- ի ներսում յուրաքանչյուր բլոկում, եկեք սկսենք:

Առաջին բանը, որ մենք պետք է անենք, հրահանգների միջոցով բուրդ բլոկներ արտադրելն է և մի քիչ օղակ ստեղծելը, որպեսզի ծրագիրը գործի այնքան ժամանակ, քանի դեռ խաղ ենք խաղում:

Մենք պետք է որոշ տվյալներ ստանանք նվագարկիչից, առաջին հերթին մենք օգտագործում ենք player.getPos () հրամանը ՝ խաղացողի դիրքը ստանալու համար, այնուհետև ՝ getBlockWithData () -ի օգնությամբ ստանում ենք այն բլոկը, որի վրա այժմ կանգնած ենք (y կոորդինատը -1 է նշանակում է խաղացողի տակ)

x, y, z = mc.player.getPos ()

mc.setBlocks (x, y, z, x+1, y, z+2, 35, 14)

mc.setBlocks (x+2, y+1, z, x+3, y+1, z+2, 35, 11)

mc.setBlocks (x+4, y+2, z, x+5, y+2, z+2, 35, 2)

mc.setBlocks (x+6, y+3, z, x+7, y+3, z+2, 35, 5)

mc.setBlocks (x+8, y+4, z, x+9, y+4, z+2, 35, 4)

mc.setBlocks (x+10, y+5, z, x+11, y+5, z+2, 35, 10)

mc.setBlocks (x+12, y+6, z, x+13, y+6, z+2, 35, 1)

mc.setBlocks (x+14, y+5, z, x+15, y+5, z+2, 35, 10)

mc.setBlocks (x+16, y+4, z, x+17, y+4, z+2, 35, 4)

mc.setBlocks (x+18, y+3, z, x+19, y+3, z+2, 35, 5)

mc.setBlocks (x+20, y+2, z, x+21, y+2, z+2, 35, 2)

mc.setBlocks (x+22, y+1, z, x+23, y+1, z+2, 35, 11)

mc.setBlocks (x+24, y, z, x+25, y, z+2, 35, 14)

իսկական True:

x, y, z = mc.player.getPos () # խաղացողի դիրքը (x, y, z)

blockType, data = mc.getBlockWithData (x, y-1, z) # բլոկի ID

տպել (blockType)

Այնուհետև մենք կստուգենք, արդյոք բլոկը բրդյա բլոկ է, բլոկի ID համարը 35, եթե դա լինի, մենք կանդրադառնանք բառարանի ID- ի հիման վրա բլոկի գույնով բուրդ_գույններին և համապատասխանաբար կբացենք համապատասխան գույնը:

եթե blockType == 35:

# բրդի յուրահատուկ գույներ

matrixObject.clean (strip, wool_colors [str (data)])

Եթե դա բրդյա բլոկ չէ, մենք կստուգենք, թե արդյոք բլոկն այս պահին գտնվում է rainbow_colors բառարանի մեջ ՝ բացառություններից խուսափելու համար, եթե այդպես է, ապա կշարունակենք ՝ վերցնելով գույնը և փոխելով RGB- ը:

if str (blockType) rainbow_colors- ում:

տպել (rainbow_colors [str (blockType)])

matrixObject.clean (strip, rainbow_colors [str (blockType)])

քուն (0.5)

Դուք միշտ կարող եք փորձել և ավելացնել ավելի շատ բլոկներ rainbow_color- ին `ավելի շատ գույներ և ավելի շատ բլոկների աջակցություն ավելացնելու համար:

Կատարյալ! Աքսեսուարների միջոցով նախագծեր իրականացնելը բարդ է, բայց CrowPi2 ինտեգրալ սխեմայի միջոցով ամեն ինչ շատ ավելի հեշտ է դառնում: Ավելին, CrowPi2- ում կան ավելի քան 20 սենսորներ և բաղադրիչներ, ինչը թույլ է տալիս հասնել ձեր իդեալական նախագծերին և նույնիսկ AI նախագծերին:

Ստորև բերված է ամբողջական ծածկագիրը.

Քայլ 10: Օգտագործելով CrowPi2- արդյունքը

Բացեք խաղը և գործարկեք սցենարը, արդյունքը կտեսնեք վերը նշված տեսանյութում.

Քայլ 11: Օգտագործելով CrowPi2- առաջ գնալը

Այժմ մենք ավարտեցինք մեր գունեղ նախագիծը Minecraft խաղում ՝ CrowPi2- ով: Ինչու՞ չփորձել օգտագործել CrowPi2- ի այլ սենսորներ և բաղադրիչներ ՝ խաղի հետ խաղալու համար, օրինակ ՝ խաղացողի շարժումը վերահսկելու ջոյսթիք, տարբեր NFC քարտերի հիման վրա բլոկներ ստեղծելու RFID և այլն: funվարճացեք ձեր խաղով CrowPi2- ով և հույս ունեք ավելի անհավանական նախագծեր CrowPi2- ի հետ:

Այժմ, CrowPi2- ը այժմ Kickstarter- ում է, դուք նույնպես կարող եք վայելել գրավիչ գինը:

Կցեք Kickstarter էջի հղումը CrowPi2

Խորհուրդ ենք տալիս: