Სარჩევი:
- მარაგები
- ნაბიჯი 1: მასალები
- ნაბიჯი 2: კავშირის დიაგრამა
- ნაბიჯი 3: კონფიგურაცია SPI– სთვის
- ნაბიჯი 4: კოდი
- ნაბიჯი 5: შედეგი
- ნაბიჯი 6: CrowPi2- მასალების გამოყენება
- ნაბიჯი 7: CrowPi2- კავშირის დიაგრამის გამოყენება
- ნაბიჯი 8: CrowPi2– კონფიგურაცია SPI– სთვის
- ნაბიჯი 9: CrowPi2- კოდის გამოყენება
- ნაბიჯი 10: CrowPi2– შედეგი
- ნაბიჯი 11: CrowPi2– ის გამოყენება
ვიდეო: ააშენეთ Rainbow ინტერაქტიული ხიდი Minecraft Raspberry Pi გამოცემის გამოყენებით: 11 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:15
გუშინ, მე დავინახე ჩემი 8 წლის ძმისშვილი, რომელიც თამაშობდა Minecraft– ით Raspberry Pi– სთან ერთად, რომელიც მანამდე მივეცი მას, შემდეგ კი მივიღე იდეა, რომ ვიყენებ კოდს, რათა შევქმნა მორგებული და საინტერესო Minecraft-pi LED ბლოკების პროექტი. Minecraft Pi არის შესანიშნავი გზა Raspberry Pi მიკროკომპიუტერის დასაწყებად, Minecraft Pi არის Minecraft– ის სპეციალური პერსონალური ვერსია, რომელიც გვაძლევს საშუალებას ვითანამშრომლოთ თამაშთან სასიკვდილო მარტივი Python API– ს გამოყენებით, თამაშის გამოცდილებისა და ტექნიკის მორგებისთვის!
ბევრი პროექტია, რისი გაკეთებაც შეგიძლიათ Minecraft– ის სამყაროში Raspberry Pi– ით, მაგრამ კონკრეტულად ჩვენთვის ეს არ იყო საკმარისი, ჩვენ ვეძებდით რაიმე გამომწვევ და ერთდროულად მოციმციმე. ამ პროექტში ჩვენ გადავდგამთ Minecraft– ის მრავალ ბლოკს, გამოვავლენთ ბლოკის პირადობის მოწმობას და გამოვავლენთ იმ კონკრეტული ბლოკის ფერს, რომელსაც ფეხი დავადექით, ფერიდან გამომდინარე გავანათებთ ჩვენს RGB LED– ს ინტერაქტიული ნაბიჯების თამაშის შესაქმნელად!
მე ორ მეთოდს გამოვიყენებ ეფექტის მისაღწევად, პირველი არის აქსესუარების გამოყენება, რაც შეიძლება ძალიან ქაოტური იყოს …; მეორე იყენებს CrowPi2- ს (სწავლის კომპიუტერს მრავალი სენსორით, რომელიც ამჟამად დაფინანსებულია Kickstarter– ზე: CrowPi2)
დავიწყოთ და ვნახოთ, როგორ დავაარქივოთ ასეთი საოცარი პროექტი!
მარაგები
CrowPi2 ახლა პირდაპირ ეთერშია, CrowPi2 პროექტმა შეაგროვა თითქმის $ 250 ათასი.
დააჭირეთ ბმულს:
მეთოდი 1 აქსესუარების გამოყენება
ნაბიჯი 1: მასალები
● 1 x Raspberry Pi 4 მოდელი B
X 1 x TF ბარათი გამოსახულებით
● 1 x Raspberry Pi კვების ბლოკი
● 1 x 10.1 დიუმიანი მონიტორი
● 1 x კვების ბლოკი მონიტორისთვის
● 1 x HDMI კაბელი
● 1 x კლავიატურა და მაუსი
X 1 x RGB led (საერთო კათოდი)
● 4 x მხტუნავები (ქალი მდე ქალი)
ნაბიჯი 2: კავშირის დიაგრამა
RGB– ში არის სამი შუქი, რომლებიც არის წითელი, მწვანე და ლურჯი. აკონტროლეთ ეს სამი შუქი სხვადასხვა ინტენსივობის შუქის გასავრცელებლად და შერევისას მათ შეუძლიათ სხვადასხვა ფერის შუქის გამოსხივება. ოთხი შუქდიოდური შუქზე არის GND, R, G და B, შესაბამისად. RGB LED, რომელიც მე გამოვიყენე, არის საერთო კათოდი, ხოლო Raspberry Pi– სთან კავშირი ასეთია:
RaspberryPi 4B (ფუნქციის სახელით) RGB LED
GPIO0 1 წითელი
GPIO1 3 მწვანე
GPIO2 4 ცისფერი
GND 2 GND
მეორე სურათი არის აპარატურის კავშირი
ნაბიჯი 3: კონფიგურაცია SPI– სთვის
იმის გამო, რომ ჩვენ უნდა გამოვიყენოთ SPI RGB– ის გასაკონტროლებლად, ჩვენ ჯერ უნდა გავააქტიუროთ SPI ინტერფეისი, რომელიც ნაგულისხმევად გამორთულია. თქვენ შეგიძლიათ მიყევით ქვემოთ მოცემულ ნაბიჯებს SPI ინტერფეისის გასააქტიურებლად:
პირველ რიგში, თქვენ შეგიძლიათ გამოიყენოთ Desktop GUI, Pi- ს დაწყების MenupreferencesRaspberry Pi კონფიგურაციით, როგორც ეს ნაჩვენებია პირველ სურათზე.
მეორე, გადადით "ინტერფეისებში" და ჩართეთ SPI და დააწკაპუნეთ OK (მეორე სურათი).
დაბოლოს, გადატვირთეთ Pi, რათა დარწმუნდეთ, რომ ცვლილებები ძალაში შედის. დააწკაპუნეთ Pi Start MenuPreferencesShutdown. ვინაიდან ჩვენ უბრალოდ გადატვირთვა გვჭირდება, დააჭირეთ ღილაკს გადატვირთვა.
ნაბიჯი 4: კოდი
ჩვენ დავიწყებთ ჩვენი პითონის კოდის წერას, პირველ რიგში, ჩვენ დავიწყებთ რამდენიმე ბიბლიოთეკის იმპორტით, რაც დაგვჭირდება იმისათვის, რომ ჩვენი კოდი გავაერთიანოთ Minecraft სამყაროში. შემდეგ, ჩვენ შემოვიტანთ დროის ბიბლიოთეკას, კერძოდ ფუნქციას, რომელსაც ეწოდება ძილი. ძილის ფუნქცია საშუალებას მოგვცემს დაველოდოთ კონკრეტულ ინტერვალს ფუნქციის შესრულებამდე. ბოლოს და ბოლოს, ჩვენ შემოვიღებთ RPi. GPIO ბიბლიოთეკას, რომელიც საშუალებას გვაძლევს ვაკონტროლოთ GPIO Raspberry Pi– ზე.
mcpi.minecraft იმპორტი Minecraft დროიდან იმპორტი ძილის იმპორტი RPi. GPIO როგორც GPIO
და ეს არის ის, რაც ჩვენ გავაკეთეთ ბიბლიოთეკების იმპორტით, ახლა დროა გამოვიყენოთ ისინი! პირველი რაც უნდა გავაკეთოთ არის Minecraft ბიბლიოთეკის გამოყენება, ჩვენ გვინდა ჩვენი პითონის სკრიპტი დავუკავშიროთ Minecraft სამყაროს, ამის გაკეთება შეგვიძლია MCPI ბიბლიოთეკის init () ფუნქციის გამოძახებით და შემდეგ GPIO რეჟიმის დაყენება და გაფრთხილების გამორთვა.
mc = Minecraft.create () GPIO.setmode (GPIO. BCM) GPIO.setwarnings (0)
ახლა ჩვენ განვსაზღვრავთ ცისარტყელას რამდენიმე ფერს თექვსმეტობით, რათა შევცვალოთ RGB ფერები.
თეთრი = 0xFFFFFF წითელი = 0xFF0000 ნარინჯისფერი = 0xFF7F00 ყვითელი = 0xFFFF00 მწვანე = 0x00FF00 CYAN = 0x00FFFF ლურჯი = 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. ახლა ჩვენ უნდა დავაკონფიგურიროთ pin RGB led– ისთვის და დავაყენოთ მათთვის.
red_pin = 17 მწვანე_პინი = 18 ლურჯი_ pin = 27
GPIO.setup (red_pin, GPIO. OUT, initial = 1) GPIO.setup (green_pin, GPIO. OUT, initial = 1) GPIO.setup (blue_pin, GPIO. OUT, საწყისი = 1)
შემდეგ, დააყენეთ PWM თითოეული პინისთვის, გაითვალისწინეთ, რომ PWM მნიშვნელობის დიაპაზონი არის 0-100. აქ ჩვენ დავაყენეთ RGB ფერი თეთრი (100, 100, 100) ჯერ.
წითელი = GPIO. PWM (red_pin, 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 int (მნიშვნელობა * 100 /255)
def set_color (ფერი_ კოდი): # დეკოდირება red_value = color_code >> 16 & 0xFF green_value = color_code >> 8 & 0xFF blue_value = color_code >> 0 & 0xFF
# რუქის მნიშვნელობები red_value = map2hundred (red_value) green_value = map2hundred (green_value) blue_value = map2hundred (blue_value)
# Განათება! red. ChangeDutyCycle (red_value) green. ChangeDutyCycle (green_value) blue. ChangeDutyCycle (blue_value)
კარგად გააკეთე! დროა დავიწყოთ ჩვენი ძირითადი პროგრამა, დაველოდოთ, სხვა ცვლადი უნდა განისაზღვროს მატყლის ბლოკის ფერის კოდის ჩაწერა მთავარ პროგრამამდე:
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) 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) მართალია: x, y, z = mc.player.getPos () # მოთამაშის პოზიცია (x, y, z) ბლოკი = mc.getBlockWithData (x, y-1, z) # ბლოკის ID # ბეჭდვა (ბლოკი) თუ block.id == WOOL და last_data! = Block.data: if block.data == W_RED: print ("Red!") Set_color (RED) if block.data == W_ORANGE: print ("Orange!") Set_color (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) if block.data == W_WHITE: print (" White! ") Set_color (WHITE) last_data = block.data sleep (0.05) KeyboardIntruptrupt: pass GPIO.cleanup ()
როგორც მთავარი პროგრამა ნაჩვენებია ზემოთ, ჯერ უნდა გამოვიყენოთ რამდენიმე ბრძანება ფერადი ბამბის ბლოკების შესაქმნელად, შემდეგ უნდა გავარკვიოთ მოთამაშის პოზიცია, რათა მივიღოთ ბლოკების id და მისი ფერის კოდი. ბლოკის ინფორმაციის მიღების შემდეგ, ჩვენ გამოვიყენებთ განცხადებას იმის დასადგენად, არის თუ არა მოთამაშის ქვეშ არსებული ბლოკი შალის ბლოკი და აქვს თუ არა მას ფერის კოდი. თუ კი, განსაჯეთ რომელი ფერისაა მატყლის ბლოკი და გამოიძახეთ set_color () ფუნქცია RGB ფერის შესაცვლელად იგივე, რაც შალის ბლოკი.
გარდა ამისა, ჩვენ ვამატებთ try/εκτός განცხადებას, რათა დავიჭიროთ მომხმარებლის შეწყვეტის გამონაკლისი, როდესაც გვსურს პროგრამის დატოვება GPIO ქინძისთავების გამომავალი გასასუფთავებლად.
თანდართულია სრული კოდი.
კარგად გაკეთდა, ამდენი აქსესუარი და ძალიან რთული არა? არ ინერვიულოთ, მოდი ვნახოთ პროექტის მისაღწევად მეორე მეთოდი, რომელიც გაგრძნობინებს თავს უფრო მოქნილად და მოსახერხებლად, რომელიც იყენებს ჩვენს CrowPi2- ს!
ნაბიჯი 5: შედეგი
გახსენით თამაში და გაუშვით სკრიპტი, შედეგს იხილავთ ვიდეოზე ზემოთ
შემდეგ ჩვენ გამოვიყენებთ CrowPi2 Rainbow ინტერაქტიული ხიდის ასაშენებლად
ნაბიჯი 6: CrowPi2- მასალების გამოყენება
● 1 x CrowPi2
ნაბიჯი 7: CrowPi2- კავშირის დიაგრამის გამოყენება
Არ არის საჭიროება. არსებობს მრავალი სასარგებლო სენსორი და კომპონენტი (20 -ზე მეტი) CrowPi2– ზე, ეს ყველაფერი ერთი ჟოლოს ლეპტოპში და 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 ზოლის ობიექტის დასაყენებლად და ფერი, RGB ფერის ობიექტის კონფიგურაციისთვის ჩვენი RGB LED- ები
rpi_ws281x იმპორტი PixelStrip, ფერი
და ეს არის ის, რაც ჩვენ გავაკეთეთ ბიბლიოთეკების იმპორტით, ახლა დროა გამოვიყენოთ ისინი! იგივე, პირველი რაც უნდა გამოვიყენოთ Minecraft ბიბლიოთეკა, ჩვენ გვინდა ჩვენი პითონის სკრიპტი დავუკავშიროთ Minecraft სამყაროს, ამის გაკეთება შეგვიძლია MCPI ბიბლიოთეკის init ფუნქციის გამოძახებით:
mc = Minecraft.create ()
ყოველ ჯერზე, როდესაც ჩვენ გვსურს ოპერაციების შესრულება მინერატის სამყაროში, ჩვენ შეგვიძლია გამოვიყენოთ mc ობიექტი.
შემდეგი ნაბიჯი იქნება RGB LED მატრიქსის კლასის განსაზღვრა, რომელსაც ჩვენ ვიყენებთ ჩვენი RGB LED- ების გასაკონტროლებლად, ჩვენ კლასს ვიწყებთ ძირითადი კონფიგურაციით, როგორიცაა led- ების რაოდენობა, ქინძისთავები, სიკაშკაშე და ა.
ჩვენ ვქმნით ფუნქციას, რომელსაც ეწოდება სუფთა, რომელიც ნაკლებად "გაწმენდს" კონკრეტული ფერით და ასევე ფუნქციას, რომელსაც ეწოდება გაშვება, რომელიც ინიციალიზაციას უკეთებს RGB LED ობიექტს პირველად ჩვენ გვსურს მისი გამოყენება.
კლასი RGB_Matrix:
def _ დაწყება _ (საკუთარი თავი):
# LED ზოლის კონფიგურაცია:
self. LED_COUNT = 64 # LED პიქსელების რაოდენობა.
self. LED_PIN = 12 # GPIO პინი დაკავშირებულია პიქსელებთან (18 იყენებს PWM!).
self. LED_FREQ_HZ = 800000 # LED სიგნალის სიხშირე ჰერცში (ჩვეულებრივ 800 კჰც)
self. LED_DMA = 10 # DMA არხი სიგნალის შესაქმნელად (სცადეთ 10)
self. LED_BRIGHTNESS = 10 # დააყენეთ 0 მუქი და 255 ყველაზე ნათელებისთვის
self. LED_INVERT = მცდარი # ჭეშმარიტი სიგნალის ინვერსიისთვის
self. LED_CHANNEL = 0 # დაყენებულია '1' GPIO– სთვის 13, 19, 41, 45 ან 53
# განსაზღვრეთ ფუნქციები, რომლებიც აცოცხლებენ LED- ებს სხვადასხვა გზით. def სუფთა (საკუთარი თავი, ზოლები, ფერი):
# წაშალეთ ყველა LED ერთდროულად
მე დიაპაზონში (strip.numPixels ()):
strip.setPixelColor (i, ფერი)
ზოლები. ჩვენება ()
def run (თვითმმართველობის):
# შექმენით NeoPixel ობიექტი შესაბამისი კონფიგურაციით.
ზოლები = PixelStrip (თვით. LED_COUNT, თვით. LED_PIN, თვით. LED_FREQ_HZ, თვით. LED_DMA, თვით. LED_INVERT, თვით. LED_BRIGHTNESS, თვით. LED_CHANNEL)
სცადე:
დაბრუნების ზოლი
გარდა კლავიატურის უწყვეტი:
# გაწმინდეთ მატრიცის LED შეფერხებამდე
თვით. სუფთა (ზოლები)
ყოველივე ზემოთქმულის დასრულების შემდეგ, დროა გამოვიძახოთ ის კლასები და შევქმნათ ობიექტები, რომლებიც ჩვენ შეგვიძლია გამოვიყენოთ ჩვენს კოდში, ჯერ შევქმნათ RGB LED მატრიცის ობიექტი, რომელიც ჩვენ შეგვიძლია გამოვიყენოთ ადრე შექმნილი კლასის გამოყენებით:
matrixObject = RGB_Matrix ()
ახლა მოდით გამოვიყენოთ ეს ობიექტი აქტიური LED ზოლის ობიექტის შესაქმნელად, რომელსაც ჩვენ გამოვიყენებთ ჩვენი ინდივიდუალური LED- ების გასაკონტროლებლად RGB მატრიცაზე:
ზოლები = 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 და ასე შემდეგ…
#ცისარტყელას ფერები
ცისარტყელას ფერები = {
"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)
მართალია:
x, y, z = mc.player.getPos () # მოთამაშის პოზიცია (x, y, z)
blockType, data = mc.getBlockWithData (x, y-1, z) # ბლოკის ID
დაბეჭდვა (ბლოკის ტიპი)
შემდეგ ჩვენ შევამოწმებთ არის თუ არა ბლოკი მატყლის ბლოკი, ბლოკის ID ნომერი 35, თუ არის ჩვენ მივმართავთ wool_colors- ს ბლოკის ფერით ლექსიკონის ID- ს საფუძველზე და შესაბამისად გავანათებთ მარჯვენა ფერს.
თუ blockType == 35:
# მორგებული მატყლის ფერები
matrixObject.clean (strip, wool_colors [str (data)])
თუ ეს არ არის მატყლის ბლოკი, ჩვენ შევამოწმებთ არის თუ არა ბლოკი ცისარტყელას ფერთა ლექსიკონში გამონაკლისების თავიდან ასაცილებლად, თუ ასეა ჩვენ გავაგრძელებთ ფერის აღებით და RGB- ის შეცვლით.
თუ 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– ზე თამაშისთვის, როგორიცაა ჯოისტიკი მოთამაშის მოძრაობის გასაკონტროლებლად, RFID სხვადასხვა NFC ბარათებზე დაფუძნებული ბლოკების შესაქმნელად და ა.შ. გაერთეთ თქვენი თამაშით CrowPi2– ზე და იმედია შეძლებთ უფრო წარმოუდგენელი პროექტები CrowPi2– ით!
ახლა, CrowPi2 არის Kickstarter– ზე, თქვენ ასევე შეგიძლიათ ისიამოვნოთ მიმზიდველი ფასით.
მიამაგრეთ Kickstarter გვერდის ბმული CrowPi2
გირჩევთ:
Arduino Accelerometer Tutorial: გააკონტროლეთ გემის ხიდი სერვო ძრავის გამოყენებით: 5 ნაბიჯი
Arduino Accelerometer Tutorial: აკონტროლეთ გემის ხაზი სერვო ძრავის გამოყენებით: აქსელერომეტრის სენსორები არის ჩვენს სმარტფონების უმეტესობაში, რათა მათ გამოვიყენოთ მრავალფეროვანი გამოყენება და შესაძლებლობები, რომელსაც ჩვენ ყოველდღიურად ვიყენებთ, არც კი ვიცით, რომ ამაში პასუხისმგებელი არის ამაჩქარებელი. ერთ -ერთი ასეთი შესაძლებლობა არის კონტროლირებადი
Alexa თავსებადი IR ხიდი ESP8266 გამოყენებით: 3 ნაბიჯი
Alexa თავსებადი IR ხიდი ESP8266– ის გამოყენებით: მე მინდოდა ჩემი სმარტ ტელევიზიის კონტროლის საშუალება Alexa– ს საშუალებით. სამწუხაროდ ჩემი Hi-Sense 65 " სმარტ ტელევიზორს არ აქვს WiFi– ით კონტროლის შესაძლებლობა. კარგი იქნებოდა, მას ჰქონოდა რაიმე სახის API, რომელიც მე შემეძლო გამომეყენებინა მასთან ინტერფეისისთვის. ასე რომ, მე შევქმენი
Visuino ააშენეთ შეჭრის გამოვლენის სისტემა Arduino– ს გამოყენებით: 8 ნაბიჯი
Visuino ააშენეთ შეჭრის გამოვლენის სისტემა Arduino– ს გამოყენებით: ამ სახელმძღვანელოში ჩვენ გამოვიყენებთ XYC-WB-DC მიკროტალღური რადარის მოძრაობის სენსორს, რომელიც დაკავშირებულია Arduino UNO– სა და Visuino– სთან, რათა განისაზღვროს ნებისმიერი მოძრაობა რადიუსში 5 მ მანძილზე თხელი კედლების ჩათვლით. ნახეთ სადემონსტრაციო ვიდეო
Neopixel Ws2812 Rainbow LED Glow With M5stick-C - გაშვებული Rainbow ნეოპიქსელზე Ws2812 M5stack M5stick C გამოყენებით Arduino IDE: 5 ნაბიჯი
Neopixel Ws2812 Rainbow LED Glow With M5stick-C | გაშვებული Rainbow on Neopixel Ws2812 M5stack M5stick C გამოყენებით Arduino IDE: გამარჯობა ბიჭებო ამ ინსტრუქციებში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ neopixel ws2812 LED- ები ან led ზოლები ან led მატრიცა ან led ბეჭედი m5stack m5stick-C განვითარების დაფით Arduino IDE– ით და ჩვენ გავაკეთებთ მასთან ერთად ცისარტყელას ნიმუში
ააშენეთ მოტორიზებული დინოზავრი პლასტიკური ნაგვის გამოყენებით, 55 წუთში ან ნაკლებ დროში!: 11 ნაბიჯი (სურათებით)
ააშენეთ მოტორიზებული დინოზავრი პლასტიკური ნაგვის გამოყენებით, 55 წუთში ან ნაკლებ დროში!: გამარჯობა. მე მქვია მარიო და მე მიყვარს ნაგვის გამოყენებით ნივთების აშენება. ერთი კვირის წინ მე მიმიწვიეს მონაწილეობა მივიღო აზერბაიჯანის ეროვნული ტელეარხის დილის გადაცემაში, ვისაუბრო " ხელოვნების ნარჩენები " გამოფენა. ერთადერთი პირობა? მე მქონდა