Სარჩევი:
- ნაბიჯი 1: რა გჭირდებათ?
- ნაბიჯი 2: სწრაფი პროტოტიპირება
- ნაბიჯი 3: გარსაცმის დამზადება
- ნაბიჯი 4: LED მატრიცის დამზადება
- ნაბიჯი 5: თამაშის კოდების წერა და აპარატურის გამართვა
- ნაბიჯი 6: ყველაფრის ერთად შედგენა
ვიდეო: სტეკერები არკადული თამაში: 6 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
გამარჯობა ბიჭებო, დღეს მინდა გაგიზიაროთ ეს საოცარი არკადული თამაში, რომლის გაკეთებაც შეგიძლიათ რამოდენიმე 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. შემდეგ ჩვენ ასევე ვბურღავთ 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
ერთი რაც მომწონს ამ პროექტში არის მისი მოქნილობა, თქვენ ყოველთვის შეგიძლიათ მიკროკონტროლის გადაპროგრამება, რომ ის იყოს სხვა თამაშის ნაწილი და სცადოთ ისეთი რამ, როგორიცაა ანიმაციის შექმნა ან რეაქციის თამაში. ვიმედოვნებთ, რომ თქვენ სიამოვნებით აკეთებთ ამას და ისწავლით რამეს მის შესაქმნელად. გგეზ!
გირჩევთ:
POING! - Arduino არკადული თამაში!: 3 ნაბიჯი
POING! - Arduino Arcade Game!: ჩვენ ავაშენებთ PONG სტილის არკადულ თამაშს, რომელიც იყენებს ნაწილებს " ყველაზე სრულყოფილი შემქმნელის ნაკრები UNO R3 პროექტი " ნაკრები Elegoo Inc. სრული გამჟღავნება - ამ ინსტრუქციისთვის მოწოდებული ნაწილების უმეტესობა ავტორს გადაეცა Elegoo– ს მიერ
Arduino Cyclone არკადული თამაში: 6 ნაბიჯი
Arduino Cyclone არკადული თამაში: მოციმციმე მოციმციმე შუქები! არდუინო! თამაში! მეტი რაღა უნდა ითქვას? ეს თამაში დაფუძნებულია Cyclone არკადულ თამაშზე, სადაც მოთამაშე ცდილობს შეაჩეროს led გადახვევა წრეზე კონკრეტულ ადგილას
ციკლონი LED არკადული თამაში: 4 ნაბიჯი
ციკლონი LED არკადული თამაში: ამ პროექტის მიზანია შექმნას მარტივი თამაში Arduino– ს გამოყენებით, რომელიც იქნება ინტერაქტიული და გასართობი ბავშვებისთვის. მახსოვს Cyclone არკადული თამაში იყო ჩემი ერთ -ერთი საყვარელი არკადული თამაში, როდესაც მე ვიყავი პატარა, ამიტომ გადავწყვიტე გამემეორებინა იგი. ტ
ჭკვიანი საკალათბურთო არკადული თამაში ქულების დათვლის ჩათვლით Evive- Arduino ჩადგმული პლატფორმა: 13 ნაბიჯი
ჭკვიანი საკალათბურთო არკადული თამაში ქულების დათვლის ჩათვლით Evive- Arduino ჩადგმული პლატფორმის გამოყენებით: ყველა თამაშებიდან, ყველაზე გასართობი არის არკადული თამაშები. ასე რომ, ჩვენ ვიფიქრეთ, რატომ არ გავაკეთოთ ეს საკუთარ სახლში! და აი, ჩვენ ვართ, ყველაზე გასართობი წვრილმანი თამაში, რომელიც აქამდე ოდესმე გითამაშიათ - DIY არკადული კალათბურთის თამაში! არა მხოლოდ არის
Arduino LED ლაზერული არკადული თამაში: 3 ნაბიჯი (სურათებით)
Arduino LED ლაზერული არკადული თამაში: ამ ინსტრუქციურად მე ვაჩვენებ როგორ გავაკეთოთ ლაზერული არკადული თამაში LED და მსუბუქი სენსორების გამოყენებით. კოდი შედის და მის ასაშენებლად ბევრი ნაწილი არ გჭირდებათ. მე არ გეტყვით, როგორ ვაშენებ საქმეს, თქვენ თვითონ მოგიწევთ ამის გაკეთება! T