Სარჩევი:
- მარაგები
- ნაბიჯი 1: ხტომა გარშემო
- ნაბიჯი 2: ბალიშების დაკავშირება
- ნაბიჯი 3: სინათლის ფანტასტიკის ჩახშობა
- ნაბიჯი 4: კოდის დაწყება
- ნაბიჯი 5: თამაშის ადაპტირება
- ნაბიჯი 6: მოთამაშის გადახტომის კოდის შეცვლა
- ნაბიჯი 7: გამოყვანის შეცვლა
- ნაბიჯი 8: მუშაობს
- ნაბიჯი 9: ოთახის მომზადება
- ნაბიჯი 10: დასრულებულია
ვიდეო: თამაშის ფიზიკური კონტროლერის შექმნა: 10 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
როდესაც Nintendo Wii ამოქმედდა, მოთამაშეებს მოუწოდეს, დაეტოვებინათ დივანი და გადახტომოდნენ, ეცეკვებინათ და ეჩხუბათ, რათა მიეღოთ ქულები მათ მიერ არჩეულ თამაშში. მიუხედავად იმისა, რომ Wii– ს მშენებლობაში არის მკვეთრი სწავლის მრუდი, ადვილია ააწყოთ პერსონალური მოწყობილობა, რომელიც საშუალებას მოგცემთ გააკონტროლოთ თამაში ფიზიკურად ხტომა ზეწოლის ბალიშებზე შესაბამის დროს.
ეს ინსტრუქცია გვიჩვენებს, თუ როგორ მოვახერხე თამაში 'Space Bounce' (პირდაპირ ეთერში https://marquisdegeek.com/spacebounce/ წყაროსთან https://github.com/MarquisdeGeek/SpaceBounce) ფიზიკური კონტროლერის გამოსაყენებლად.
მარაგები
- არდუინო
- ორი ზეწოლის საგებები (ჩემი იყო Maplin– დან
- ორი რეზისტორი, წნევის საგნისთვის (100 K, მაგრამ უმეტესობა კარგადაა)
- ორი LED (სურვილისამებრ)
- ორი რეზისტორი, LED- ებისთვის (100 K, მაგრამ უმეტესობა კარგადაა. ასევე სურვილისამებრ)
- Ლეპტოპი
ნაბიჯი 1: ხტომა გარშემო
მე დავიწყე ხტომის ინტერფეისის დიზაინი და თამაშის განხილვისას მივხვდი, რომ ორი საგნის ქონა საუკეთესოდ გამოხატავდა მის მთავარ იდეას. ანუ, თქვენ დგახართ მარცხენა ხალიჩაზე, რათა მოახდინოთ მარცხენა კედელზე დაჭერის შეგრძნების სიმულაცია და შესაბამის მომენტში გადაახვიეთ მარჯვენა ხალიჩაზე და თქვენი ეკრანის პერსონაჟიც იგივეს გააკეთებს.
ნაბიჯი 2: ბალიშების დაკავშირება
შევიძინე ორი ხალიჩა და დავიწყე მუშაობა. აქ ნაჩვენები წნევის საგნები ყველაზე მარტივი (და იაფია!) რაც მე ვიპოვე, თითოეული 10 ფუნტად. მათ აქვთ ოთხი მავთული, რომელთაგან ორი მოქმედებს როგორც მარტივი გადამრთველი: როდესაც დგახართ ხალიჩაზე, ხდება კავშირი, ხოლო როდესაც ახტებით მაღლა ის გატეხილია. მე არდუინოში შევიტანე ეს ძირითადი წრე.
ნაბიჯი 3: სინათლის ფანტასტიკის ჩახშობა
ის მუშაობდა, მაგრამ არ იყო ძალიან შთამაგონებელი. ამრიგად, მე დავამატე რამდენიმე LED, თითოეული წნევის საგნის მდგომარეობის დასადგენად.
LED- ები არ არის საჭირო თამაშის სათამაშოდ, მაგრამ წრეში მათი დამატებით მე ადვილად ვხედავდი რას ფიქრობდა მიკროსქემის ამჟამინდელი მდგომარეობა. ამიტომ, თუ თამაში სწორად არ რეაგირებდა, მე შემეძლო განვსაზღვრო თუ პრობლემა იყო წრეში, არდუინოს პროგრამულ უზრუნველყოფაში ან თამაშის ლოგიკაში.
ნაბიჯი 4: კოდის დაწყება
იმის გათვალისწინებით, რომ ორიგინალური თამაში იყო JavaScript– ში, გადავწყვიტე დამეწერა NodeJS პროგრამა, რომელიც უსმენდა ზეწოლის მდგომარეობის ცვლილებებს და მონაცემებს უგზავნის ვებ – სოკეტების საშუალებით თამაშის კლიენტს.
პირველ რიგში, დააინსტალირეთ სტანდარტული ფირმა თქვენს Arduino– ზე ისე, რომ ჩვენ შევძლოთ Node სერვერის გაშვება კომპიუტერზე და გამოვიყენოთ Johnny Five ბიბლიოთეკა Arduino– ს მდგომარეობის ცვლილებების მოსასმენად. შემდეგ დაამატეთ ექსპრესი თამაშის შინაარსისთვის.
მთელი სერვერის კოდი ასე გამოიყურება:
const express = მოითხოვს ('გამოხატავს');
const app = express (); const http = მოითხოვს ('http'); const სერვერი = http.createServer (აპლიკაცია); const io = მოითხოვეთ ('socket.io'). მოუსმინეთ (სერვერი); const arduino = მოითხოვს ('arduino-controller'); server.listen (3000, ფუნქცია () {console.log ('ექსპრეს სერვერის მოსმენა …');}); app.use ('/', express.static ('აპლიკაცია')); const ხუთი = მოითხოვს ("johnny-five"); const board = new five. Board ({repl: false}); board.on ("მზადაა", ფუნქცია () {მწვანე მწვანე = ახალი ხუთეული. ლიდერი (5); ნება წითელი = ახალი ხუთეული. ლიდერი (6); ნება მარცხნივ = ახალი ხუთი. პინი (2); მარჯვენა მარჯვნივ = ახალი ხუთი. პინი (3); io.on ('დაკავშირება', ფუნქცია (სოკეტი) {console.log ('ჩვენ დაკავშირებულნი ვართ!'); ნება lastLeft = ყალბი; ნება lastRight = ყალბი; ხუთი. Pin.read (მარცხნივ, (err, val) => {if (val) {green.on ();} else {green.off ();} if (val! == lastLeft) {lastLeft = val; let state = {side: 'left', მდგომარეობა: val? 'down': 'up'} socket.emit ('arduino:: state', JSON.stringify (state), {for: 'everyone'});}}) five. Pin.read (მარჯვნივ, (err, val) => {if (val) {red.on ();} else {red.off ();} // if (val! == lastRight) {lastRight = val; let state = {side: 'right', state: val? 'down': 'up'} socket.emit ('arduino:: state', JSON.stringify (state), {for: 'everyone'});}})}); });
და მუშაობს:
კვანძის სერვერი. js
ნაბიჯი 5: თამაშის ადაპტირება
პირველი პრობლემა იყო ინტერფეისი; როგორ 'დააწკაპუნებ' დაკვრის ღილაკზე, როდესაც ერთადერთი რაც შეგიძლია არის ხტომა? მე გადავწყვიტე ეს ყველა სხვა ღილაკის ამოღებით! მე შემიძლია გავააქტიურო დარჩენილი ღილაკი, როდესაც მოთამაშე ხტება, მოსმენისას 'up' მოვლენისთვის.
სოკეტი = io (); socket.on ('arduino:: state', function (msg) {let data = JSON.parse (msg); if (data.state === 'up') {// ჩვენ ვხტებით!}});
აქედან შევძელი თამაშში მოხვედრა და ბალიშების გამოყენება რაღაც უფრო სახალისოდ - თავად თამაში.
ნაბიჯი 6: მოთამაშის გადახტომის კოდის შეცვლა
ამჯერად დამჭირდება თითოეულ ბალიშზე ინდივიდუალურად გამკლავება და პერსონაჟის ხტუნვა დაიწყოს, როდესაც მოთამაშის ფეხი ტოვებს ბალიშს. ეკრანის პერსონაჟის მიერ ნაღმების გადაკვეთის დრო უფრო გრძელია, ვიდრე მოთამაშის მიერ ერთი მხრიდან გვერდზე გადასვლის დრო. ეს კარგია, რადგანაც ის აძლევს მოთამაშეს შანსს დაიბრუნოს წონასწორობა, შეამოწმოს ფეხი და უყუროს მოთამაშეს ეკრანზე ნახტომის დასრულებას. ეს რომ არ ყოფილიყო, მოთამაშეს შეანელებდი.
სოკეტი = io ();
socket.on ('arduino:: state', function (msg) {
მიეცით მონაცემები = JSON.parse (msg); if (data.side === 'left' && data.state === 'up') {// ჩვენ ვხტებით მარცხნიდან}});
ნაბიჯი 7: გამოყვანის შეცვლა
შეყვანის მექანიზმის მუშაობისას, დამჭირდა გამომუშავებაზე მუშაობა. თამაში კარგად თამაშობს ტაბლეტზე ან ტელეფონზე, რადგან ავსებს ეკრანს. როდესაც ხტუნავთ, ის ძალიან პატარაა სანახავად, ამიტომ ეკრანზე სათამაშო არე უნდა გაფართოვდეს. Ბევრი!
სამწუხაროდ, ყველა გრაფიკული აქტივის გაფართოება ძალიან შრომატევადი საქმეა. ჰოდა, მოვატყუე! ვინაიდან თამაშს არ სჭირდება მაუსის დაწკაპუნების ან შეხების მოვლენის X, Y პოზიციის გაგება, შემიძლია უბრალოდ გადავაფასო მთელი ტილო!
ეს გულისხმობდა გატეხვას CSS და JavaScript– ზე ისე, რომ არსებული HTML5 ტილოების ობიექტი სრულ ეკრანზე მუშაობდეს.
გარდა ამისა, თამაში ითამაშა პორტრეტის რეჟიმში, რაც გულისხმობდა ეკრანის უძრავი ქონების მაქსიმალურ გამოყენებას, რაც გვჭირდებოდა ტილოს 90 გრადუსით გადატრიალებისთვის.
#SGXCanvas {
პოზიცია: აბსოლუტური; z- ინდექსი: 0; გარდაქმნა: როტაცია (-90 გრადუსი); გარდაქმნა-წარმოშობა: ზედა მარჯვენა; სიგანე: ავტო; }
ნაბიჯი 8: მუშაობს
ჩემი პირველი თამაშისთვის ლეპტოპი გვერდზე გადავუხვიე და ასე ვითამაშე.
ნაბიჯი 9: ოთახის მომზადება
ფიზიკური კონტროლერის აგება მხოლოდ მოგზაურობის დასაწყისია და არა დასასრული. დანარჩენი ფიზიკური სივრცე გასათვალისწინებელია.
პირველ რიგში, ზეწოლის საგებები მოძრაობდნენ იატაკზე, როდესაც მათ დაეშვებოდი. ეს ადვილად დაფიქსირდა ორმხრივი წებოვანი ბალიშებით. ისინი კარგად მუშაობენ, მაგრამ ალბათ არ გაუძლებს ბევრ ცვეთას.
შემდეგი, ლეპტოპი გამოიყურება ცოტა სულელურად, რაც ყურადღებას გააქცევს თქვენ თავად თამაშს. ასე რომ, ტელევიზია სალონიდან "ნასესხები" იყო და ადგილობრივ MakerSpace- ში გადაიყვანეს, სადაც ის კედელთან იყო განთავსებული და უკავშირდებოდა.
მომავალში კარგი იქნება, რომ დაამატოთ ნაკვალევი ზეწოლის საგნებზე (ალბათ ნილ არმსტრონგის პირველი მთვარის ანაბეჭდი!) მოთამაშის წარმართვისთვის. ასევე უკეთესი გარსაცმები და გარს ტელევიზორისთვის დაამატებენ შეგრძნებას. ალბათ თქვენ, ვისაც ბევრი დრო და სივრცე გაქვთ, შეძლოთ ქაღალდის მაჩის ქვის სახე, რომელიც მოთავსებულია საგნების ორივე მხარეს, რათა მიბაძოს ნაღმზე ჩამოვარდნის კლაუსტროფობიულ გრძნობას!
ნაბიჯი 10: დასრულებულია
და აი თქვენ გაქვთ ეს. მარტივი დღის პროექტი, რომელიც აძლიერებს ორიგინალურ თამაშს და ინარჩუნებს მორგებას თამაშის დროს!
თქვენ ასევე შეგიძლიათ გამოიყენოთ Makey Makey, რომელიც პირდაპირ ახდენს თამაშში გამოყენებული ძირითადი პრესის სიმულაციას, ამ სამუშაოს ზოგიერთი ნაწილის შესამცირებლად. მაგრამ ეს დარჩა სავარჯიშოდ მკითხველისთვის:)
ყველა კოდი სპეციალურ ფილიალშია Space Bounce repo– ში:
გირჩევთ:
Arduino MIDI კონტროლერის შექმნა: 9 ნაბიჯი (სურათებით)
Arduino MIDI კონტროლერის მშენებლობა: ეს ინსტრუქცია თავდაპირველად გამოქვეყნდა ჩემს ბლოგში, 2020 წლის 28 ივნისს. მე მსიამოვნებს ისეთი ნივთების მშენებლობა, რომელიც მოიცავს ელექტრონიკას და მე ყოველთვის მინდოდა რაიმე აეშენებინა Arduino– ს გამოყენებით. დამწყებთათვის ერთ -ერთი ყველაზე გავრცელებული ნაგებობა იყო MIDI კონტროლერი
PC თამაშის კონტროლერის რუქა (Linux და Windows): 5 ნაბიჯი
კომპიუტერის თამაშების კონტროლერის რუქა (Linux და Windows): თუ თქვენ იწყებთ თამაშს პერსონალურ კომპიუტერზე, შეიძლება რამდენიმე ნაბიჯი გადადგას იქამდე მისასვლელად. დღეს მე გაჩვენებთ თუ როგორ გამოიყენოთ USB თამაშის კონტროლერი კომპიუტერის უძველეს თამაშებთანაც კი, უფასოდ. ტექნიკური
ალტერნატიული MIDI კონტროლერის შექმნა მაკიაჟისა და წყლის გამოყენებით: 6 ნაბიჯი
ალტერნატიული MIDI კონტროლერის შექმნა Makey-Makey და წყლის გამოყენებით: Makey-Makey გამოყენება პერსონალური და შემოქმედებითი საშუალებების შესაქმნელად წარმოუდგენლად ადვილია! მიუხედავად იმისა, რომ ბევრი ადამიანი, ვინც იყენებს ტექნიკას, ქმნის საკუთარ ინსტრუმენტს მაკია-მაკიზე შეტანილი საშუალებების გამოყენებით ბგერების ან ნოტების გასააქტიურებლად, ჩვენ გადავწყვიტეთ, რომ მეტის გაკეთება შეგვეძლო
Arduino დაფუძნებული წვრილმანი თამაშის კონტროლერი - Arduino PS2 თამაშის კონტროლერი - თამაში Tekken With DIY Arduino Gamepad: 7 ნაბიჯი
Arduino დაფუძნებული წვრილმანი თამაშის კონტროლერი | Arduino PS2 თამაშის კონტროლერი | თამაში Tekken With DIY Arduino Gamepad: გამარჯობა ბიჭებო, თამაშების თამაში ყოველთვის სახალისოა, მაგრამ საკუთარი წვრილმანი თამაშით თამაში უფრო სახალისოა. ასე რომ, ჩვენ გავაკეთებთ თამაშის კონტროლერს arduino pro micro- ს ამ ინსტრუქციებში
უკაბელო თამაშის მაკონტროლებელი Arduino და NRF24L01+ (ერთი ან ორი კონტროლერის მხარდაჭერა): 3 ნაბიჯი
უკაბელო თამაშის კონტროლერი Arduino– ით და NRF24L01+-ით (ერთი ან ორი კონტროლერის მხარდაჭერა): თქვენ შეგიძლიათ იპოვოთ სრული პროექტი ჩემი ვებ – გვერდიდან (ეს არის ფინურად): https://teukka.webnode.com/l/langaton-ohjain-atmega-lla- ja-nrf24l01-radiomoduulilla/ეს მართლაც მოკლე მიმოხილვაა პროექტის შესახებ. უბრალოდ მინდოდა გამეზიარებინა თუ ვინმე იტყუებდა