Სარჩევი:

Arduino VGA კონსოლი ხუთი თამაშებით: 4 ნაბიჯი
Arduino VGA კონსოლი ხუთი თამაშებით: 4 ნაბიჯი

ვიდეო: Arduino VGA კონსოლი ხუთი თამაშებით: 4 ნაბიჯი

ვიდეო: Arduino VGA კონსოლი ხუთი თამაშებით: 4 ნაბიჯი
ვიდეო: Подключение Arduino к VGA монитора. Ардуино проекты. 2024, ნოემბერი
Anonim
Image
Image
Arduino VGA კონსოლი ხუთი თამაშებით
Arduino VGA კონსოლი ხუთი თამაშებით
Arduino VGA კონსოლი ხუთი თამაშებით
Arduino VGA კონსოლი ხუთი თამაშებით

ჩემს წინა ინსტრუქციებში მე გავამრავლე ზოგიერთი ყველაზე პოპულარული კლასიკური არკადული თამაშის გამარტივებული ვერსიები, შიშველი არდუინოს და რამდენიმე სხვა კომპონენტის საშუალებით. მოგვიანებით მე შევაერთე ხუთი მათგანი ერთადერთ ესკიზში. აქ მე ვაჩვენებ, თუ როგორ შეგიძლიათ ააწყოთ მარტივი კონსოლი, რომლის საშუალებითაც შეგიძლიათ ითამაშოთ Pong, Breakout, Bomber, Tetris და Etch-a-Sketch– ის შთაგონებული სათამაშო. ეს კონსოლი შეიძლება გამოყენებულ იქნას ასევე გველის სათამაშოდ და სხვა ორი თამაშის ავტორების მიერ დაწერილი: ბიტ ნინძა სანდრო მაფიოდოს აკა "Smaffer" და სტეკერი ნიკიტა კურილევის მიერ.

მთავარი მახასიათებელია VGA სიგნალის წარმოქმნა, VGAx ბიბლიოთეკის წყალობით, ამდენად კონსოლს სჭირდება VGA მონიტორი. ჩემი მიზანია, როგორც ყოველთვის, თავიდან ავიცილოთ რაიმე "სპეციალური კომპონენტი" მის ასაშენებლად, მაშინ თქვენ არ გჭირდებათ დამხმარე IC ან ფარები! ერთადერთი კომპონენტია ორი პოტენომეტრი, ხუთი ღილაკი, რამდენიმე რეზისტორი და DSUB15 (VGA) კონექტორი. პიეზო სპიკერი არჩევითია. თქვენ ხედავთ, როგორ გამოიყურება ეს თამაშები ამ გვერდზე მოცემულ სურათებში.

VGAx ბიბლიოთეკა საშუალებას გაძლევთ გამოიყენოთ ოთხი ფერი, გარჩევადობით 120 x 60 პიქსელი, არა ბევრი, მაგრამ საკმარისი ამ რეტრო თამაშის კონსოლისთვის. გრაფიკა უხეშია, მაგრამ, პოტენომეტრების გამოყენების წყალობით, თამაშები შეუფერხებლად მიდის. ასევე ხელმისაწვდომია მარტივი ხმოვანი ეფექტები.

ნაბიჯი 1: როგორ ავაშენოთ თქვენი საკუთარი Arduino VGA კონსოლი

როგორ ავაშენოთ თქვენი საკუთარი Arduino VGA კონსოლი
როგორ ავაშენოთ თქვენი საკუთარი Arduino VGA კონსოლი
როგორ ავაშენოთ თქვენი საკუთარი Arduino VGA კონსოლი
როგორ ავაშენოთ თქვენი საკუთარი 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: დამატებითი დეტალები იმის შესახებ, თუ როგორ უნდა ავაშენოთ კონტროლერები

დანართი 1: დამატებითი დეტალები იმის შესახებ, თუ როგორ უნდა ავაშენოთ კონტროლერები
დანართი 1: დამატებითი დეტალები იმის შესახებ, თუ როგორ უნდა ავაშენოთ კონტროლერები
დანართი 1: დამატებითი დეტალები იმის შესახებ, თუ როგორ უნდა ავაშენოთ კონტროლერები
დანართი 1: დამატებითი დეტალები იმის შესახებ, თუ როგორ უნდა ავაშენოთ კონტროლერები
დანართი 1: დამატებითი დეტალები იმის შესახებ, თუ როგორ უნდა ავაშენოთ კონტროლერები
დანართი 1: დამატებითი დეტალები იმის შესახებ, თუ როგორ უნდა ავაშენოთ კონტროლერები
დანართი 1: დამატებითი დეტალები იმის შესახებ, თუ როგორ უნდა ავაშენოთ კონტროლერები
დანართი 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. ამ ბიბლიოთეკის გარეშე ეს პროექტი ვერ განხორციელდებოდა.

ასევე დიდი მადლობა ნიკიტა კურილევს მარტივი, მაგრამ სახალისო თამაშის სტეკერისთვის.

გირჩევთ: