Სარჩევი:
- ნაბიჯი 1: როგორ ავაშენოთ თქვენი საკუთარი Arduino VGA კონსოლი
- ნაბიჯი 2: თამაშები სხვა ავტორებისგან
- ნაბიჯი 3: დანართი 1: დამატებითი დეტალები იმის შესახებ, თუ როგორ უნდა ავაშენოთ კონტროლერები
- ნაბიჯი 4: დანართი 2: ზოგიერთი მოსაზრება მეხსიერების ლიმიტებთან დაკავშირებით
ვიდეო: Arduino VGA კონსოლი ხუთი თამაშებით: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ჩემს წინა ინსტრუქციებში მე გავამრავლე ზოგიერთი ყველაზე პოპულარული კლასიკური არკადული თამაშის გამარტივებული ვერსიები, შიშველი არდუინოს და რამდენიმე სხვა კომპონენტის საშუალებით. მოგვიანებით მე შევაერთე ხუთი მათგანი ერთადერთ ესკიზში. აქ მე ვაჩვენებ, თუ როგორ შეგიძლიათ ააწყოთ მარტივი კონსოლი, რომლის საშუალებითაც შეგიძლიათ ითამაშოთ Pong, Breakout, Bomber, Tetris და Etch-a-Sketch– ის შთაგონებული სათამაშო. ეს კონსოლი შეიძლება გამოყენებულ იქნას ასევე გველის სათამაშოდ და სხვა ორი თამაშის ავტორების მიერ დაწერილი: ბიტ ნინძა სანდრო მაფიოდოს აკა "Smaffer" და სტეკერი ნიკიტა კურილევის მიერ.
მთავარი მახასიათებელია VGA სიგნალის წარმოქმნა, VGAx ბიბლიოთეკის წყალობით, ამდენად კონსოლს სჭირდება VGA მონიტორი. ჩემი მიზანია, როგორც ყოველთვის, თავიდან ავიცილოთ რაიმე "სპეციალური კომპონენტი" მის ასაშენებლად, მაშინ თქვენ არ გჭირდებათ დამხმარე IC ან ფარები! ერთადერთი კომპონენტია ორი პოტენომეტრი, ხუთი ღილაკი, რამდენიმე რეზისტორი და DSUB15 (VGA) კონექტორი. პიეზო სპიკერი არჩევითია. თქვენ ხედავთ, როგორ გამოიყურება ეს თამაშები ამ გვერდზე მოცემულ სურათებში.
VGAx ბიბლიოთეკა საშუალებას გაძლევთ გამოიყენოთ ოთხი ფერი, გარჩევადობით 120 x 60 პიქსელი, არა ბევრი, მაგრამ საკმარისი ამ რეტრო თამაშის კონსოლისთვის. გრაფიკა უხეშია, მაგრამ, პოტენომეტრების გამოყენების წყალობით, თამაშები შეუფერხებლად მიდის. ასევე ხელმისაწვდომია მარტივი ხმოვანი ეფექტები.
ნაბიჯი 1: როგორ ავაშენოთ თქვენი საკუთარი Arduino VGA კონსოლი
ჯერ გადმოწერეთ ArduinoVGAgame.ino და/ან Snake.ino კოდები ამ გვერდის ბოლოში და დააკოპირეთ ისინი თქვენს კომპიუტერში ამავე სახელწოდების დირექტორიაში. ჩამოტვირთეთ VGAx ბიბლიოთეკა ამ ბმულიდან GitHub– ზე. უმარტივესი გზაა მისი გადაწერა Arduino პროგრამული ქვესაქაღალდეში სახელწოდებით "ბიბლიოთეკები", რათა დაუყოვნებლივ აღიარდეს.
მნიშვნელოვანია: ეს ბიბლიოთეკა მუშაობს Arduno IDE 1.6.4– ზე, მაგრამ ის სრულად არ არის თავსებადი უფროს ან ახალ ვერსიებთან.
ატვირთეთ კოდი თქვენს Arduino დაფაზე (მე გამოვცადე Uno და Nano). დაბალი მეხსიერების გაფრთხილება ნორმალურია. თუ თქვენ არ გაქვთ სხვა შეცდომები, ყველაფერი წესრიგშია და შეგიძლიათ დაუყოვნებლივ დაიწყოთ საკუთარი კონსოლის შექმნა.
ამისათვის გჭირდებათ:
- Arduino Uno Rev. 3 ან Arduino Nano 3.x (ATmega328)
- DSUB15 კონექტორი, ანუ VGA ქალი კონექტორი ან VGA კაბელი, რომელიც უნდა გაიჭრას.
- რეზისტორები: 2 x 68 Ohm და 2 x 470 Ohm და 5 x 1 დან 2 kOhm
- ორი 10 კჰმ ხაზოვანი პოტენომეტრი (მსგავსი მნიშვნელობებიც კარგია)
- ხუთი ღილაკი
- კაბელის რაღაც ნაჭერი
- ერთი ან ორი ლამაზი ყუთი ყველა კომპონენტის ჩასადებად.
ფაკულტატური:
- პურის დაფა ან ზოლების დაფა
- პიეზო სპიკერი
სქემა მოცემულია ამ ნაბიჯის ზედა ნაწილში, დასრულებული "კონსოლის" მაგალითთან ერთად.
სქემატურად ნაჩვენებია როგორ დააკავშიროთ ღილაკი და პოტენომეტრი. უფრო კონკრეტულად, თქვენ უნდა დააკავშიროთ ხუთი ღილაკი, შესაბამისად, 5, 10, 11, 12 და 13 ქინძისთავებს. თითოეული ღილაკის მიერ შესრულებული მოქმედება აღწერილია სქემატურ ზედა მარჯვენა ცხრილში. მარცხნივ ნაჩვენებია, თუ როგორ უნდა დააკავშიროთ პოტენომეტრი (თქვენ გჭირდებათ ორი პოტენომეტრი, A1 და A2 ქინძისთავებისთვის). სპიკერი უნდა იყოს დაკავშირებული ანალოგურ პინთან A0.
არდუინოს დაფა VGA კონექტორით ჩავდე ხის ყუთში, სადაც ასევე არის პირველი მოთამაშის პოტენომეტრი და ოთხი ღილაკი, ხოლო მეორე მოთამაშის პოტენომეტრი და მისი დაწყების ღილაკი ცალკე და პატარა ყუთშია.
თუ მოგწონთ ეს სათამაშო და გადაწყვეტთ მის გამრავლებას, მადლობელი ვარ, თუ დაწერთ კომენტარს ან გამოგიგზავნით სურათს ქვემოთ მოცემულ კომენტარებში.
ნაბიჯი 2: თამაშები სხვა ავტორებისგან
სანდრო მაფიოდომ ცოტა ხნის წინ გამოაქვეყნა თამაში BitNinja. თქვენ შეგიძლიათ იპოვოთ მეტი ინფორმაცია აქ და ჩამოტვირთოთ კოდი აქ.
ჩემი კონსოლის გამოსაყენებლად, თქვენ უბრალოდ უნდა გადააკეთოთ ღილაკი მის კოდში შემდეგნაირად:
#განსაზღვრეთ BTN_UP 11 (13 -ის ნაცვლად)
#განსაზღვრეთ BTN_LEFT 10 (12 -ის ნაცვლად)
#განსაზღვრეთ BTN_RIGHT 12 (11 -ის ნაცვლად)
სტეკერი, ნიკიტა კურლევიდან, აქ არის შესაძლებელი. მეტი ინფორმაცია აქ.
კიდევ ერთხელ, თქვენ უნდა გადააკეთოთ ერთი ღილაკი, კოდის სხვადასხვა ნაწილში: უბრალოდ შეცვალეთ digitalRead (2) digitalRead (13)
ნაბიჯი 3: დანართი 1: დამატებითი დეტალები იმის შესახებ, თუ როგორ უნდა ავაშენოთ კონტროლერები
თქვენ შეგიძლიათ გააცნობიეროთ კონტროლერი სხვადასხვა გზით, რაც დამოკიდებულია მასალისა და თქვენი გემოვნების მიხედვით.
მე მიყვარს მათი რეალიზება ხის ყუთებით (იხილეთ სურათები ამ გვერდზე). Arduino– ს მთავარი ყუთი, VGA კონექტორი და პირველი პლეერის ღილაკები და პოტენციომეტრი; მეორე (უფრო პატარა) მხოლოდ მეორე მოთამაშის ღილაკზე და ბორბალზე (საჭიროა პონგისთვის და სახატავი სათამაშოსთვის). კიდევ ერთი შესაძლებლობა არის ყველაფერი მოათავსოთ ერთ დიდ ყუთში.
პირველ რიგში მე ვურჩევ VGA პორტის დაკავშირებას. პირველ და მეორე სურათებზე შეგიძლიათ ნახოთ ზოგიერთი დეტალი: გაითვალისწინეთ წითელი და მწვანე 470 Ohm ორი რეზისტორი, რომლებიც დაკავშირებულია შესაბამისად 6 და 7 ქინძისთავებთან, ხოლო ორი 68 Ohm პინზე 3 და 9 ჰორიზონტალური და ვერტიკალური სინქრონიზაციის სიგნალისთვის.
თქვენ შეგიძლიათ აირჩიოთ სხვადასხვა ფერის კომბინაცია იმისდა მიხედვით, თუ რომელ ქინძისთავებს აერთებთ VGA DSUB15 კონექტორზე, ქინძისთავები 1, 2 და 3 წარმოადგენს წითელს, მწვანე, ლურჯს (RGB) შესაბამისად. მე დავაკავშირე ქინძისთავები 1 და 2, შესაბამისად მაქვს შემდეგი ფერის კომბინაცია: (0, 0) = შავი; (1, 0) = წითელი; (0, 1) = მწვანე; (1, 1) = ყვითელი.
ყველა განსხვავებული შესაძლებლობისთვის, მე გირჩევთ წაიკითხოთ დეტალები გვერდზე, სადაც ჩამოტვირთავთ VGAx ბიბლიოთეკებს.
როგორც კი VGA კონექტორი მზად იქნება, შეგიძლიათ მოამზადოთ ყველა სხვა კაბელი ღილაკებისთვის, ბორბლებისთვის და დინამიკისთვის (იხ. სურათი 2).
ახლა უბრალოდ ყველაფერი ერთად შეაგროვეთ: გახსოვდეთ, რომ თითოეული ღილაკის პინი უნდა იყოს მიერთებული მიწასთან 1 ან 2 kOhm რეზისტორის საშუალებით, წინააღმდეგ შემთხვევაში, როდესაც ღილაკი ღიაა, პინის მდგომარეობა შეიძლება განუსაზღვრელი იყოს. ეს ნიშნავს, რომ თუ pin დარჩა გათიშული, შეგიძლიათ გქონდეთ შემთხვევითი (სტატიკური) ძაბვა, რომელსაც შეუძლია მისი გააქტიურება. იხილეთ მეტი დეტალური სქემა ამ ინსტრუქციის მეორე საფეხურზე.
ბოლო ნაბიჯი არის ყველაფრის ადგილზე დაფიქსირება. მე გამოვიყენე ცხელი წებოს იარაღი, მაგრამ თქვენ შეგიძლიათ გამოიყენოთ თქვენთვის სასურველი მეთოდი.
ნაბიჯი 4: დანართი 2: ზოგიერთი მოსაზრება მეხსიერების ლიმიტებთან დაკავშირებით
გასაოცარია, რომ უბრალო Arduino– ს შეუძლია შექმნას VGA სიგნალი და ყველა ეს თამაში ერთად. ბოთლის ნამდვილი კისერი არის SRAM– ის ნაკლებობა. AVR მიკროკონტროლერს აქვს მხოლოდ 2048 ბაიტი ცვლადების შესანახად და მანიპულირებისთვის, ხოლო VGAx ბიბლიოთეკა ინახავს ეკრანის ცვლადებს 120x60 პიქსელიანი ჩარჩო ბუფერში, სადაც თითოეულ პიქსელს სჭირდება 2 ბიტი (4 ფერი), სულ 1800 ბაიტი. ეს ნიშნავს, რომ ესკიზის ცვლადებისთვის დარჩენილია მხოლოდ 248 ბაიტი. გარდა ამისა, ჩემი გამოცდილებით, არასტაბილურობის თავიდან ასაცილებლად, თქვენ უნდა დატოვოთ მინიმუმ 100 ბაიტი თავისუფალი. დინამიური მეხსიერების 1950 ბაიტის ზემოთ გამოყენებით, მიკროკონტროლერი იწყებს უცნაური და არაპროგნოზირებადი ქცევის გამოვლენას.
ეს ნიშნავს, რომ ყველა ცვლადი უნდა იყოს გაზიარებული სხვადასხვა თამაშებს შორის და ეს კოდს საკმაოდ წაუკითხავსა და ძნელად გამოსწორებას ხდის. ეს არ არის მხოლოდ "ახალი თამაშის დამატება" წინა ესკიზზე, არამედ ყველა კოდი უნდა იყოს ღრმად შეცვლილი და ოპტიმიზირებული.
გარდა ამისა, მე უნდა გამოვიყენო მინიმალური შესაძლო ცვლადი ფორმატი: მაგალითად, ყველა კოორდინატისთვის მე უნდა გამოვიყენო "ბაიტი" ნაცვლად "int" ან, სხვა შემთხვევებში, მე უნდა მირჩიოს "int" ნაცვლად "float".
დაბოლოს, ჩემი ნაცნობი მიდის სანდრო მაფიოდო აკა სმაფერთან, VGAx ბიბლიოთეკის შემქმნელთან და გასაოცარ თამაშთან BitNinja. ამ ბიბლიოთეკის გარეშე ეს პროექტი ვერ განხორციელდებოდა.
ასევე დიდი მადლობა ნიკიტა კურილევს მარტივი, მაგრამ სახალისო თამაშის სტეკერისთვის.
გირჩევთ:
მაღალი ხუთი კამერა: 9 ნაბიჯი (სურათებით)
High Five კამერა: შემიძლია გითხრათ საიდუმლო? არ მიყვარს ხელის ჩამორთმევა. მე ნამდვილად არა. ხელის ჩამორთმევა მხოლოდ ბინძურს მაგრძნობინებს. ზედმეტად უპიროვნოა. ეს არის ჟესტი, რომელსაც არ აქვს სულისკვეთება და კორპორატიული სუბიექტის სუნი. რატომ უნდა შემოვიფარგლოთ ამ ერთი მოსაწყენი ურთიერთობით?
ხუთი სუფთა პროექტი: 6 ნაბიჯი
ხუთი სუფთა პროექტი: შეიყვარეთ სქემები, რომლებიც ციმციმებენ და ხმაურიან, როდესაც ახალგაზრდებს აჩვენებთ ელექტრონიკას. ეს ხუთი სქემა, რომლის აშენებას სულ რამდენიმე წუთი სჭირდება, მათი მოდიფიცირება ადვილია, რათა შეცვალოს მოციმციმე სიჩქარე ან დრო. პირველი წრე
მაღალი ხუთი! - რობოტული ხელი: 5 ნაბიჯი
მაღალი ხუთი! - რობოტული ხელი: ერთ დღეს, ჩვენი საინჟინრო პრინციპების კლასში, ჩვენ შევეწყვეთ VEX ნაწილებისგან რთული მანქანების მშენებლობას. როდესაც დავიწყეთ მექანიზმების აგება, ჩვენ ვიბრძოდით მრავალი რთული კომპონენტის მართვისთვის, რომლებიც ერთად უნდა შეგროვებულიყო. თუ ვიღაცამ
ArduBaby - ნახევარი ზომის Arduboy 500 თამაშებით სერიულ ფლეშზე: 10 ნაბიჯი
ArduBaby - ნახევარი ზომის Arduboy 500 თამაში სერიულ Flash- ზე: თქვენ შეგიძლიათ ნახოთ ეს youtube ვიდეო, რომ ნახოთ პროცესის დასასრული, თუ როგორ შევქმენი ეს პატარა ხელნაკეთი Arduboy სერიული ფლეშ მეხსიერებით, რომელსაც შეუძლია 500 -მდე თამაშის შენახვა გზაზე რა კრედიტი შემოქმედისთვის (კევინ ბეითსი), Arduboy არის ძალიან
Ardubaby Mini თამაშის კონსოლი 500 თამაშებით: 10 ნაბიჯი
Ardubaby მინი სათამაშო კონსოლი 500 თამაშებით: კრედიტი შემოქმედისთვის (კევინ ბეითსი), Arduboy არის ძალიან წარმატებული 8 ბიტიანი სათამაშო კონსოლი. იყო ათასობით თამაში დაწერილი მოყვარულის მიერ, რომელიც თავისუფლად აზიარებდა მათ Arduboy– ის საზოგადოებრივ ფორუმზე, ასე რომ უფრო მეტ ადამიანს შეუძლია ისწავლოს კოდირება