Სარჩევი:

სტეკერები არკადული თამაში: 6 ნაბიჯი (სურათებით)
სტეკერები არკადული თამაში: 6 ნაბიჯი (სურათებით)

ვიდეო: სტეკერები არკადული თამაში: 6 ნაბიჯი (სურათებით)

ვიდეო: სტეკერები არკადული თამაში: 6 ნაბიჯი (სურათებით)
ვიდეო: 🎦 Это за ГРАНЬЮ военного преступления! Цель САМАЯ неочевидная - Чаплыга. Сценарий отравленной земли 2024, ივლისი
Anonim
სტეკერები არკადული თამაში
სტეკერები არკადული თამაში

გამარჯობა ბიჭებო, დღეს მინდა გაგიზიაროთ ეს საოცარი არკადული თამაში, რომლის გაკეთებაც შეგიძლიათ რამოდენიმე Ws2812b LED- ებით და მიკროკონტროლერებით/FPGA. აჰა Stack Overflow - კლასიკური არკადული თამაშის ჩვენი ტექნიკური განხორციელება. ის, რაც დაიწყო როგორც სასკოლო პროექტი, სწრაფად გახდა სიყვარულის შრომა, რადგან ჩვენ დავიწყეთ უფრო და უფრო მეტი დროის დახარჯვა ჩვენი თამაშის განვითარებაში და მისგან მეტის სწავლაში (და სწავლის უგულებელყოფა xD პროცესში). საბოლოო ჯამში, ჩვენი თამაში იმდენად კარგად იყო აგებული და კარგად მიღებული ჩვენი სკოლის მიერ, რომ კონფისკაცი იქნა (როგორც დემო მასალა მოსწავლეთა შემდეგი პარტიისათვის). ჩვენ ყოველთვის შეგვიძლია ავაშენოთ მეორე. Დავიწყოთ!

თამაშის ონლაინ ვერსია:

ნაბიჯი 1: რა გჭირდებათ?

Რა გჭირდება?
Რა გჭირდება?
Რა გჭირდება?
Რა გჭირდება?
Რა გჭირდება?
Რა გჭირდება?
Რა გჭირდება?
Რა გჭირდება?

მასალები:

1. მიკროკონტროლერი/მიკროკომპიუტერი/FPGA - FPGA გამოიყენება ჩვენი თამაშის ლოგიკის განსახორციელებლად. აარჩიეთ დაფა, ჩვენი პროექტისთვის ჩვენ მოვითხოვთ გამოვიყენოთ Mojo FPGA დაფა. უცნობი ადამიანებისთვის ეს არის დაფის ტიპი, რომელიც იყენებს ტექნიკას თავისი ფუნქციების განსახორციელებლად და არა კოდების. აქედან გამომდინარე, მე ვიტყოდი, რომ ის საკმაოდ დაბალი დონეა და სრულიად განსხვავებული, ვიდრე არდუინოს ან პიის გამოყენებისას. თუ სხვა დაფებს იყენებთ, თქვენ უნდა დაწეროთ თქვენი საკუთარი კოდი, მაგრამ ეს თამაში საკმაოდ ადვილია კოდირებისთვის და ჰეი! ახლა თქვენ ასევე შეგიძლიათ ისწავლოთ კოდირება!

2. Ws2812b LED- ები - აქ ჩვენ ვიყენებთ LED- ებს ჩვენი თამაშის ჩვენების შესაქმნელად. არ შეიძლება იყოს შემქმნელი, თუ არ შეეხოთ Ws2812b– ს xD– მდე. ეს არის ერთჯერადი მისამართი, რაც იმას ნიშნავს, რომ თქვენ შეგიძლიათ გათიშოთ ერთი LED- ები და ჩასვათ ისინი თქვენთვის სასურველ ფორმირებაში. და ეს არის RGB, რაც იმას ნიშნავს, რომ თქვენ შეგიძლიათ გამოაქვეყნოთ ნებისმიერი ფერი, რომელიც მოგწონთ. გარდა ამისა, FastLED - Arduino ბიბლიოთეკა Ws2812b კონტროლისთვის ძალიან კარგად არის განვითარებული. მე ვურჩევ ადამიანებს გამოიყენონ არდუინო FPGA- ს ნაცვლად, თუ არ გაქვთ. თქვენ შეგიძლიათ შეიძინოთ LED- ები Taobao/Amazon– დან, მაგრამ ჩვენ შევიძინეთ ჩვენი სიმ სიმ ლიმის კოშკიდან სინგაპურში.

3. ხე-გარე გარსაცმისთვის გამოვიყენეთ 1 სმ სისქის პლაივუდი და LED მატრიცისთვის 0,3 სმ სისქის პლაივუდი. ჩვენ აღმოვაჩინეთ ჩვენი სკოლის ქსოვილის ლაბორატორიის ჯართის მარაგი.

4. სინათლის გამავრცელებელი აკრილი - ჩვენი ეკრანისთვის ჩვენ ვცადეთ სხვადასხვა სახის აკრილი და აღმოვაჩინეთ ეს ყინვაგამძლე აკრილი, სახელწოდებით PL -422, რომელიც მართლაც კარგია სინათლის გამავრცელებლად. თუ თქვენ ვერ პოულობთ ზუსტ მოდელს, ეძებეთ ყინვაგამძლე აკრილები. ჩვენ შევიძინეთ სინგაპურში Dama Plastics– ში.

5. ქაფის დაფა - სინათლის თითოეული პიქსელის გამოყოფის მიზნით, ჩვენ გვჭირდებოდა ბადის სტრუქტურა და ეს ქაფი იდეალური მასალაა ამისათვის. ჩვენ შევიძინეთ 0.5 სმ სისქის ქაფის დაფა ჩვენი სკოლის წიგნის მაღაზიაში.

6. დიდი წითელი ღილაკი - კარგი, არ არის აუცილებელი, რომ გვქონდეს ასეთი დიდი წითელი ღილაკი, მაგრამ ყოველთვის კარგია, რომ გქონდეს ღილაკი ხალხის დასარტყმელად! xD ჩვენ შევიძინეთ ის სინ ლიმ კოშკში სინგაპურში.

ინსტრუმენტები:

1. ხის წებო

2. შესადუღებელი რკინა

3. შემდუღებელი

4. მავთულები. უმჯობესია, თუ თქვენ გაქვთ რბილი მავთულები უფრო მკაცრებთან შედარებით. და ერთი ბირთვი შედარებით მრავალ ბირთვს.

5. მავთულის სტრიპტიზიორი

6. მავთულის საჭრელი

7. საბურღი 1 მმ საბურღი ბით

8. გადახვევის ხერხი

9. ბენდის ხერხი

გამართვა:

1. ცვლადი კვების ბლოკი

2. ოსცილოსკოპი

ნაბიჯი 2: სწრაფი პროტოტიპირება

სწრაფი პროტოტიპირება
სწრაფი პროტოტიპირება
სწრაფი პროტოტიპირება
სწრაფი პროტოტიპირება
სწრაფი პროტოტიპირება
სწრაფი პროტოტიპირება
სწრაფი პროტოტიპირება
სწრაფი პროტოტიპირება

ჩვენი პროექტისთვის, ჩვენ გამოვიყენეთ სწრაფი პროტოტიპი, სანამ შევქმენით ჩვენი LED მატრიცა და დავპროგრამებთ ჩვენს თამაშს. ამის მიზეზი ის არის, რომ ჩვენ არ გვინდა LED მატრიცის აგება მხოლოდ იმის გასაგებად, რომ ჩვენი კოდები არ მუშაობს ან ჩვენი თამაშის ლოგიკა რაღაცნაირად გაუმართავია.

აპარატურის მხრივ, პირველ ეტაპზე ჩვენ უბრალოდ შევამოწმეთ ჩვენი ლოგიკა სინათლის შაბლონების გადატანაზე ჩვენს უბრალო LED მატრიცაზე. მას შემდეგ რაც ჩვენ შევამოწმეთ, რომ ლოგიკა კარგად მუშაობს, ჩვენ გამოვედით 5 Ws2812b LED- ების ზოლების ამოსაღებად, რათა შევამოწმოთ ჩვენი თამაშის ლოგიკა სხვადასხვა რიგებით. როგორც კი ეს გამოდგება, ჩვენ ვაგრძელებთ LED მატრიცის დამზადებას სრული მასშტაბით.

ჩვენ ასევე გამოვცადეთ სხვადასხვა აკრილის ნიმუშები LED– ით, სანამ PL-422– ზე დავსახავდით, როგორც საუკეთესო სინათლის დიფუზორს. გამყოფი სტრუქტურისთვის ჩვენ ასევე გამოვცადეთ სხვადასხვა სიმაღლე LED- ის სრულად გავრცელებისთვის. საბოლოო ჯამში ჩვენ მივხვდით 3 სმ*3 სმ კვადრატს 4 სმ სიმაღლით, რომელიც საუკეთესოა დიფუზიისათვის. ამ ოპტიმალური ზომიდან გამომდინარე, ჩვენ ასევე გადავწყვიტეთ, რა არის პლაივუდის ზომა 5 x 11 LED მატრიცისთვის, 0,5 სმ უფსკრული დავტოვოთ ქაფს კვადრატებს შორის.

პროგრამული თვალსაზრისით, ჩვენ ვცდილობთ ვიყოთ მაქსიმალურად მოდულური - ჩვენ ჯერ ვამოწმებთ შესაძლებელია თუ არა LED- ების განათება ცვლის ფუნქციის დამატებამდე და შემდეგ სხვა. შედეგები შეიძლება კატასტროფული იყოს, თუ ამას არ გააკეთებთ. ჩვენ ეს რთულად ვისწავლეთ, რადგან ჩვენ ვცდილობთ მთელი თამაშის კოდირება დიდ ნაწილად, სანამ მივხვდით, რომ მისი გამართვა არ შეგვეძლო. ოჰ!

ნაბიჯი 3: გარსაცმის დამზადება

გარსაცმის დამზადება
გარსაცმის დამზადება
გარსაცმის დამზადება
გარსაცმის დამზადება
გარსაცმის დამზადება
გარსაცმის დამზადება
გარსაცმის დამზადება
გარსაცმის დამზადება

ჩვენი გარსაცმისთვის, ჩვენ წავედით კლასიკური არკადული მანქანების შეგრძნებებითა და გარეგნობით. პირველი, ჩვენ დავჭრათ თხელი პლაივუდი, რომ სწრაფად გამოვიყენოთ ფორმა, რადგან უფრო ადვილი და სწრაფია თხელი პლაივუდის მოჭრა და გამოცდა. მას შემდეგ რაც კმაყოფილი ვიყავით ჩვენი ზომებითა და ფორმით, ჩვენ დავიწყეთ სქელი პლაივუდის გამოყენება გარსაცმის ასაშენებლად. ჩვენ გამოვიყენეთ სამაჯურის ხერხი სქელი პლაივუდის გასავლელად და გადახვევის ხერხი თხელით. ამის შემდეგ, ჩვენ გამოვიყენეთ ხის წებო მათ ერთმანეთთან დასაწებებლად.

პლაივუდის უკანა ნაწილისთვის, ჩვენ გვსურდა ადვილად შევსულიყავით ელექტრონიკაში, აქედან გამომდინარე, ჩვენ გადავიღეთ ის საკეტი, რომლის ამოღებაც ნებისმიერ დროს შეგიძლიათ.

ღილაკის დასამაგრებლად, ჩვენ პირველად დავხატეთ ღილაკი მიკროსქემის დიამეტრის ზომის (ღილაკის ქვედა გრძელი ნაწილი). შემდეგ ჩვენ გავაღეთ ხვრელი კიდესთან ახლოს და გრაგნილით დავინახეთ, რომ წრე დაენახა. შემდეგ ჩვენ დავაყენეთ ღილაკი და დავაკაკუნეთ.

ჩვენ ასევე დავჭრათ პლაივუდის თხელი ნაჭერი, როგორც ჩვენი LED მატრიცის საფუძველი იმ ზომის მიხედვით, რაც ჩვენ ადრე გამოვთვალეთ.

შენიშვნა: ბოდიშს გიხდით ნაბიჯ-ნაბიჯ პროცესის არარსებობისთვის. ჩვენ არ გვაქვს დოკუმენტირებული ნაბიჯები მთელი გზა და იმ დროისთვის მივხვდით, რომ ჩვენ გვჭირდება ნაბიჯების დოკუმენტირება, გარსაცმები უკვე გაკეთებული იყო. დიაგრამა ასევე არ არის საბოლოო ზომები.

ნაბიჯი 4: LED მატრიცის დამზადება

LED მატრიცის დამზადება
LED მატრიცის დამზადება
LED მატრიცის დამზადება
LED მატრიცის დამზადება

თხელი ნაჭრის გამოყენებით, რომელიც ჩვენ ადრე ამოვიღეთ, ჩვენ პირველად აღვნიშნავთ თითოეული LED- ის პოზიციას, ვიღებთ კვადრატს ჩვენს ქაფის სტრუქტურაზე დაყრდნობით და ვხატავთ ჯვარს კვადრატის შუაგულში, როგორც ადგილს, სადაც ჩვენ უნდა ჩავდოთ LED. შემდეგ ჩვენ ასევე ვბურღავთ 3 პატარა ხვრელს LED- ის თითოეულ მხარეს მავთულხლართების გასავლელად და ვამაგრებთ მათ თითოეულ LED- ზე.

ჩვენ ვამყარებთ ჯაჭვს LED- ის თითოეულ სტრიქონს მათი მონაცემების და მონაცემთა გამოყოფის ქინძისთავებით და თითოეულ GND და VCC ვასხამთ საერთო მავთულს. წამყვანი Data In გამოიმუშავებს სინათლის შაბლონებს თითოეული სტრიქონისთვის და ჩვენ მას ვუკავშირდებით მიკროკონტროლერის/FPGA პინუსს. თქვენ ასევე შეგიძლიათ შეაერთოთ ბოლო მონაცემები ერთი სტრიქონიდან მეორე რიგის წამყვან მონაცემებში. Ws2812b LED- ის მუშაობის პრინციპი არის ის, რომ თითოეული LED შეიცავს IC- ს, რომელიც მიიღებს საჭირო მონაცემებს მავთულიდან და დანარჩენს გადასცემს ჯაჭვს. ჩვენ დავამყარეთ ჩვენი LED სხვა ფანტასტიკურ ინსტრუქციებზე (ფაქტობრივად, ჩვენ ზუსტად დავაკოპირეთ! XD)

აქ ჩვენ ასევე გვინდა ხაზი გავუსვა რბილი მავთულის გამოყენების მნიშვნელობას. თუ თქვენ იყენებთ მყარ, მყარ მავთულხლართებს წამყვანი Data In pin– ისთვის, რა ხდება ყოველ ჯერზე, როდესაც მავთულხლართზე მიდიხართ, მას შეუძლია ამოიღოს სპილენძის საფენები თქვენს Ws2812b– ზე, რაც გაანადგურებს მას. ამ პროექტში, სანამ რბილი მავთულები გადავიტანეთ, ჩვენ განადგურდა სულ 40 LED, რაც არის ჩვენი პროექტისათვის საჭირო LED- ების 1/3.

გასაგები:

ნაბიჯი 5: თამაშის კოდების წერა და აპარატურის გამართვა

თამაშის კოდების წერა და აპარატურის გამართვა
თამაშის კოდების წერა და აპარატურის გამართვა
თამაშის კოდების წერა და აპარატურის გამართვა
თამაშის კოდების წერა და აპარატურის გამართვა
თამაშის კოდების წერა და აპარატურის გამართვა
თამაშის კოდების წერა და აპარატურის გამართვა

Mojo მუშაობს Lucid HDL– ზე, რომელიც არ არის ყველაზე პოპულარული ენა იქ. ჩვენ ვერ ვპოულობთ Ws2812b LED ბიბლიოთეკას Lucid– ში, ამიტომ ჩვენ მივმართეთ ჩვენი ბიბლიოთეკის წერას, რაც ძალიან საინტერესო გამოცდილებაა. ამისათვის ჩვენ ჯერ გავაანალიზეთ სიგნალი, რომელიც გადადის Arduino– ს FastLED ბიბლიოთეკის გამოყენებით და დავწერეთ კოდები ამის გამეორებისთვის. აქ არის ტექნიკის გამართვის ხერხი, ოსცილოსკოპი ძალიან, ძალიან სასარგებლოა სიგნალების გასაანალიზებლად, იქნება ეს საკუთარი სიგნალის გამართვა, რომელშიც არ ხართ დარწმუნებული, ან სხვა სიგნალების შემოწმება და კოპირება.

Ws2812b- სთვის ბიბლიოთეკის დაწერის შემდეგ, ჩვენ ვაგრძელებთ თამაშის კოდს, ჩვენ ვიყენებთ Bit shift ფუნქციებს თითოეული ბლოკის მარცხნივ და მარჯვნივ გადასატანად და ვიყენებთ Bitwise AND to AND კვადრატებს თითოეული რიგის წინა რიგზე. თქვენ ასევე შეგიძლიათ იფიქროთ ამის განხორციელებაზე Arduino– ში, რაც არ უნდა იყოს ისეთი რთული. ჩვენ კი ვაფორმებდით თამაშის ეკრანებს გასართობად!

ჩვენს თამაშს ჰქონდა 2 დონე, რაც არის ხილული დაწყობის თამაში (მწვანე) და მეორე დონის უხილავი დაწყობის თამაში (ცისფერი).

მაშინაც კი, მას შემდეგ რაც ჩვენ გვქონდა სამუშაო კოდები და სამუშაო LED მატრიცა, ზოგჯერ ჩვენ კვლავ ვხვდებით პრობლემებს, როგორიცაა განათება ციმციმებს ან ანათებს, როცა არ უნდა. პრობლემა, როგორც წესი, გამოწვეულია არასათანადო დამიწებით, ელექტრომომარაგების დონით ან ჩარევით. ეს არის ის, სადაც დაგჭირდებათ ტექნიკის გამართვის სხვა ინსტრუმენტები, როგორიცაა ცვლადი კვების ბლოკი, რათა შეამოწმოთ არის თუ არა Mojo/Arduino- ს ელექტრომომარაგება საკმარისი ან ძალიან მაღალი. ჩემი გამოცდილებით, Ws2812b– ს აქვს სამუშაო ძაბვის საკმაოდ ფართო სპექტრი 2.8v - 5v– დან. აქ მაქვს ვიდეო, რომელიც აჩვენებს, რომ განათება გიჟდება მას შემდეგ, რაც ძალას ვმატებ.

თუმცა, შემდგომმა შემოწმებამ გამოავლინა, რომ ჩვენ გვქონდა არასათანადო შედუღება, მათი ხელახალი შედუღების შემდეგ კიდევ ერთხელ, ჩვენი პრობლემა მოგვარდა. ასევე შეიძლება არსებობდეს ჩარევის ან ჯვარედინი საუბრის პრობლემა, მაგრამ საბედნიეროდ, ჩვენ არცერთ მათგანს არ შევხვედრილვართ.

Github კოდები:

Arduino Bitwise Shift:

Arduino Bitwise და:

ნაბიჯი 6: ყველაფრის ერთად შედგენა

ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა

თქვენ გაქვთ გარსაცმები და LED მატრიცა. ახლა დროა ყველაფერი ერთად გავაერთიანოთ. პირველ რიგში ჩვენ ვათავსებთ ქაფს წინა მხარეს და LED მატრიცას მის უკან და ვარეგულირებთ პოზიციას. იმის გამო, რომ ქაფს აქვს ძალიან მაღალი ხახუნი, ის მხოლოდ ხახუნის საშუალებით იყო დამონტაჟებული, ხოლო LED მატრიცა ადგილზე ცხელდება. ამის შემდეგ ჩვენ მოვათავსეთ ეკრანი ქსელის წინ. ჩვენ ყოველი რიგის ბუდე შევაერთეთ მიკროკონტროლერთან და დავიწყეთ თამაში!: D

ერთი რაც მომწონს ამ პროექტში არის მისი მოქნილობა, თქვენ ყოველთვის შეგიძლიათ მიკროკონტროლის გადაპროგრამება, რომ ის იყოს სხვა თამაშის ნაწილი და სცადოთ ისეთი რამ, როგორიცაა ანიმაციის შექმნა ან რეაქციის თამაში. ვიმედოვნებთ, რომ თქვენ სიამოვნებით აკეთებთ ამას და ისწავლით რამეს მის შესაქმნელად. გგეზ!

გირჩევთ: