Სარჩევი:

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

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

ვიდეო: სავარჯიშო მანქანა USB თამაშის კონტროლერი: 8 ნაბიჯი (სურათებით)
ვიდეო: CS50 2014 - Week 9 2024, ნოემბერი
Anonim
სავარჯიშო მანქანა USB თამაშის კონტროლერი
სავარჯიშო მანქანა USB თამაშის კონტროლერი
სავარჯიშო მანქანა USB თამაშის კონტროლერი
სავარჯიშო მანქანა USB თამაშის კონტროლერი
სავარჯიშო მანქანა USB თამაშის კონტროლერი
სავარჯიშო მანქანა USB თამაშის კონტროლერი
სავარჯიშო მანქანა USB თამაშის კონტროლერი
სავარჯიშო მანქანა USB თამაშის კონტროლერი

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

მთავარი აპარატურა არის $ 2 "შავი აბი" STM32F103C8 განვითარების დაფა stm32duino Arduino ბირთვით და USB HID ბიბლიოთეკა, რომელიც მე შევიმუშავე libarra111- ის ძირითადი ჩანგლის საფუძველზე. STM32F1 არის სწრაფი და იაფი და აქვს სრული სიჩქარით USB მხარდაჭერა, ამიტომ იდეალურია პროექტისთვის.

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

ელიფსური/ველოსიპედის ბრუნვის სიჩქარე აკონტროლებს კონტროლერის სლაიდერს. გარდა ამისა, თქვენ აერთებთ სტანდარტულ Wii Nunchuck ან Gamecube კონტროლერს ადაპტერში ჯოისტიკების მოძრაობისთვის, ღილაკებისთვის და ა.შ. არსებობს მრავალი განსხვავებული კონტროლის რეჟიმი. მაგალითად, მცირეწლოვან ბავშვებს შეიძლება სჭირდებოდეს მათი სიჩქარის გაზრდა და ზოგიერთ თამაშში შეიძლება გამოყენებულ იქნას განსხვავებული კონტროლის სქემა. პროგრამულ უზრუნველყოფაში არის მრავალი ჩამონტაჟებული კონტროლის სქემა, ხოლო სხვები ადვილად შეიძლება დაემატოს კოდს. მოწყობილობას შეუძლია მიბაძოს USB თამაშის კონტროლერს, კლავიატურას, მაუსს, XBox 360 კონტროლერს, ან პირველი სამის კომბინაციას.

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

ადაპტერი მუშაობს როგორც სტანდარტული USB კონტროლერი, ასე რომ თქვენ შეგიძლიათ გამოიყენოთ იგი Windows, Linux, OS X, Android და ა.

როგორც ბონუსი, ადაპტერს გააჩნია ამ პროექტის ყველა ფუნქცია, მუშაობს როგორც სრული ფუნქციის Gamecube ადაპტერი, გაძლევთ საშუალებას გამოიყენოთ Gamecube კონტროლერები კომპიუტერზე, მათ შორის თამაშების კონტროლი Gamecube/Wii თავსებადი Dance Dance Revolution ცეკვის საგნებით.

ღირებულება არის დაახლოებით $ 10, პლუს ქეისი (მაქვს 3D დასაბეჭდი დიზაინი), მავთულები და შესაკრავი. ნაწილები:

  • "შავი აბი" stm32f103c8 განვითარების დაფა ($ 2 ალიექსპრესზე)
  • Gamecube სოკეტი ($ 1.60 Aliexpress– ზე, Gamecube– ის გაფართოების კაბელისთვის, რომლის მოჭრაც შესაძლებელია)
  • Nunchuck სოკეტის გარღვევის დაფა ($ 0.51 Aliexpress– ზე; მოძებნეთ Wiichuck)
  • მცირე ზომის ორი პოზიციის გადამრთველი ($ 1-ზე ნაკლები ალიექსპრესზე)
  • თქვენი არჩევანი ორ გამტარი მამაკაცისა და ქალის კონექტორზე (დაახლოებით $ 1 ალიექსპრესზე, თუ თქვენ მიდიხართ 5.5 მმ სიმძლავრის ლულის კონექტორებით); თქვენ გჭირდებათ ერთი ქალი კონექტორი სავარჯიშო მანქანაზე
  • 2 ტაქტილური გადამრთველი ($ 0.50 -ზე ნაკლები ალიექსპრესზე)
  • 4 წითელი LED (ალიექსპრესზე $ 0.50 -ზე ნაკლები; ასევე შეგიძლიათ გამოიყენოთ Nokia– ს პატარა ეკრანი)
  • კონდენსატორები: 10uF ელექტროლიტური და სურვილისამებრ 100nF
  • რეზისტორები: 1 x 100K, 2 x 10K, 1 x 1K, 4 x 220ohm
  • პატარა პროტო დაფა ($ 1 -ზე ნაკლები ალიექსპრესზე).

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

თქვენ ასევე გჭირდებათ კომპიუტერი, გასაყიდი რკინა და მულტიმეტრი. თქვენ ასევე დაგჭირდებათ UART-to-USB ხიდი (მე გამოვიყენე Arduino Mega, რომელიც მე მქონდა სხვა პროექტისთვის; ან შეგიძლიათ იყიდოთ CP2102 მოდული Aliexpress– ზე დოლარად) რომ დააინსტალიროთ ჩამტვირთავი თქვენს შავ აბაზე, რომ გამოიყენოთ იგი Arduino გარემო, თორემ შეგიძლიათ დახარჯოთ კიდევ რამდენიმე დოლარი და მიიღოთ RobotDyn– ის განვითარების დაფა Arduino ჩამტვირთველით წინასწარ დატვირთული.

ნება მომეცით დავამატო, რომ მე ვიღებ მონაწილეობას Wheels კონკურსში, რადგან ეს არის გზა ვირტუალური ბორბლების დასაკავშირებლად კომპიუტერთან რბოლის თამაშებში სავარჯიშო ველოსიპედების და ელიფსური საშუალებების ფიზიკურ ბორბლებთან.

ნაბიჯი 1: შეეხეთ როტაციის სენსორს

შეეხეთ როტაციის სენსორს
შეეხეთ როტაციის სენსორს
შეეხეთ როტაციის სენსორს
შეეხეთ როტაციის სენსორს
შეეხეთ როტაციის სენსორს
შეეხეთ როტაციის სენსორს
შეეხეთ როტაციის სენსორს
შეეხეთ როტაციის სენსორს

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

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

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

თუ ფიქრობთ, რომ არსებობს რაიმე შანსი, რომ კონსოლთან დაკავშირებული მავთული იყოს AC, გირჩევთ გაჩერდეთ, სანამ ნამდვილად არ იცით რას აკეთებთ. საბედნიეროდ, ჩვენი სავარჯიშო ველოსიპედი იკვებება ბატარეით და ჩვენი ელიფსური ჩამონტაჟებულია კედლის მეჭეჭში, ასე რომ კონსოლის ირგვლივ არის მხოლოდ 12V DC.

სავარჯიშო ველოსიპედის შემთხვევაში, ეს მართლაც ადვილი იყო. მხოლოდ ოთხი მავთული იყო. ორი გულისცემის მონიტორისთვის იყო და ორი როტაციის სენსორისთვის.

ელიფსურზე გაცილებით მეტი მავთული იყო და ასე უფრო მუშაობდა. უხეში ძალის მეთოდი ასეთია. მიამაგრეთ მულტიმეტრი წყვილ მავთულს. ნელა განახორციელეთ სრული ბრუნვა (ან ცოტა მეტი ყოველი შემთხვევისთვის) პედლებზე და ნახეთ არის თუ არა ძაბვის ვარდნა ან გადახტომა. თუ კი, მიხვდი. თუ არა, გაიმეორეთ სხვა წყვილი. ეს ბევრი ცდა და შეცდომაა: 13 მავთულისთვის, ეს არის 78 ბრუნვა.

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

კიდევ ერთი ხრიკი. თქვენ შეიძლება დაადგინოთ, სად იწვევს პედლების ბრუნვას როტაციის სენსორი. მაგალითად, თქვენმა მოწყობილობამ შეიძლება ეკრანზე რაღაც აანთოს, ან განაახლონ სიჩქარის ჩვენება, გააქტიუროს ძილის რეჟიმიდან, ან აჩვენოს სიგნალი. თუ ასეა, მაშინ გადაადგილეთ პედლები ბრუნვის 1/3 მანძილზე და შემდეგ მოძებნეთ წყვილი მავთულები, რომელთა შორისაც არის 3-5 ვ, და შეამოწმეთ ისინი პედლების გადაადგილებით იმ ადგილას, სადაც სენსორი იწვევს.

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

მას შემდეგ რაც მავთულხლართებს იდენტიფიცირებთ, ჩაწერეთ ისინი. დარწმუნდით, რომ გაითვალისწინეთ:

  • მაღალი ძაბვის დონე: თუ ის 3.3 ვ-ზე მეტია, მაგრამ არა უმეტეს 5 ვ, თქვენ მოგინდებათ შეცვალოთ წრე, რომ როტაციის გამოვლენისთვის გამოიყენოთ A9 პინის ნაცვლად, რადგან პინი A9 არის 5V- ტოლერანტობა და A7 არა და შეცვალეთ ერთი სტრიქონი ჩემს ესკიზში; თუ ის 5 ვ -ზე მეტია, თქვენ უნდა დაამატოთ ძაბვის გამყოფი
  • ბრუნვის გამოვლენის პულსი დაბალია თუ მაღალი: თუ პულსი მაღალია, თქვენ უნდა შეცვალოთ ხაზი ჩემს არდუინოს ესკიზში.

თუ თქვენ გაქვთ ოსცილოსკოპი და სავარჯიშო მანქანა იკვებება ბატარეით, ასევე შეგიძლიათ გამოიყენოთ ოსცილოსკოპი მულტიმეტრის ნაცვლად. (თუ სავარჯიშო მანქანა ჩართულია AC– ში და ასევე თქვენი ოსცილოსკოპი, თქვენ უნდა იცოდეთ მიწის მარყუჟების შესახებ და როგორ აარიდოთ ისინი. ფრთხილად იყავით!)

ნაბიჯი 2: მოამზადეთ განვითარების საბჭო

მოამზადეთ განვითარების საბჭო
მოამზადეთ განვითარების საბჭო
მოამზადეთ განვითარების საბჭო
მოამზადეთ განვითარების საბჭო
მოამზადეთ განვითარების საბჭო
მოამზადეთ განვითარების საბჭო

შეაერთეთ ექვსი ცენტრალური მხტუნავის ქინძისთავი თქვენს შავ აბაზე.

თუ თქვენ გაქვთ RobotDyn დაფა Arduino ჩამტვირთველთან, დაუკავშირეთ B0- და B1- ცენტრის ქინძისთავებს და თქვენ დაასრულებთ ნაბიჯს.

წინააღმდეგ შემთხვევაში, ახლა თქვენ უნდა დააინსტალიროთ ჩამტვირთავი. თქვენ დაგჭირდებათ ან დამოუკიდებელი UART to USB ხიდი, ან შეგიძლიათ გამოიყენოთ Arduino Uno ან Mega ამ მიზნით. მიუხედავად იმისა, რომ შავი აბი მუშაობს 3.3 ვ -ზე, UART ქინძისთავები 5V ტოლერანტულია, ასე რომ არ ინერვიულოთ იმაზე, მუშაობს თუ არა თქვენი კონექტორი 3.3V ან 5V.

თუ თქვენ გაქვთ Uno ან Mega, განათავსეთ jumper კაბელი RESET და GROUND შორის. ეს არდუინოს აქცევს UART– ს USB– ის გამოყოფილ ხიდად, გარდა იმისა, რომ TX/RX ქინძისთავები საპირისპიროა, თუ როგორ არიან ისინი ჩვეულებრივ კონექტორზე.

ჩამოტვირთეთ bootloader ორობითი. გსურთ generic_boot20_pb12.bin. Windows– ზე დააინსტალირეთ ST– ის Flash Loader Demonstrator. Linux– ზე (და შესაძლოა OS X და თუნდაც Windows, თუ გირჩევნიათ ბრძანების ხაზის ინსტრუმენტები), გამოიყენეთ ეს პითონის სკრიპტი, მაგრამ ჩემი მითითებები იქნება Windows– ისთვის.

გააკეთეთ შემდეგი კავშირები:

  • PA9 to UART ხიდი RX ("TX" თუ თქვენ იყენებთ არდუინოს ხრიკს)
  • PA10 to UART ხიდი TX ("RX" თუ თქვენ იყენებთ არდუინოს ხრიკს)
  • G to UART ხიდის გრუნტი

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

შეაერთეთ თქვენი UART ხიდი თქვენს კომპიუტერთან. გააქტიურეთ შავი აბი მისი USB პორტის საშუალებით (უმჯობესია თუ მას დაუკავშირებთ დამტენს და არა კომპიუტერს, რადგან კომპიუტერი სავარაუდოდ უჩივის არაღიარებულ USB მოწყობილობას). დაიწყეთ Flash Loader Demonstrator. შეარჩიეთ COM პორტი თქვენი UART ხიდისთვის. აირჩიეთ "დაცვის მოხსნა", თუ ეს შესაძლებელია. შეარჩიეთ 64 კბაიტი ვიდრე 128 კბიტიანი ფლეშ ვერსია. და ატვირთეთ ჩატვირთვის ორობითი.

გათიშეთ ყველაფერი და შემდეგ გადაიტანეთ მხტუნავი B0+/ცენტრიდან B0-/ცენტრში. ახლა თქვენ გაქვთ ჩამტვირთავი, რომელიც შეგიძლიათ გამოიყენოთ Arduino IDE– ით.

ნაბიჯი 3: მოამზადეთ Stm32duino Arduino IDE– ში

მოამზადეთ Stm32duino Arduino IDE– ში
მოამზადეთ Stm32duino Arduino IDE– ში
მოამზადეთ Stm32duino Arduino IDE– ში
მოამზადეთ Stm32duino Arduino IDE– ში

მე ვფიქრობ, რომ თქვენ გაქვთ უახლესი Arduino IDE დაინსტალირებული.

ინსტრუმენტებში | დაფები | დაფების მენეჯერი, დააინსტალირეთ მხარდაჭერა Arduino Zero– სთვის (უბრალოდ ჩაწერეთ Zero ძიებაში, დააჭირეთ ნაპოვნი ჩანაწერს და შემდეგ დააინსტალირეთ). დიახ, თქვენ არ მუშაობთ ნულთან, მაგრამ ეს დააინსტალირებს სწორი gcc შემდგენელს.

შემდეგი, ჩამოტვირთეთ stm32duino ბირთვი. Windows– ზე, მე გირჩევთ გადმოტვირთოთ zip ფაილი, რადგან როდესაც ფაილებს ვამოწმებდი (მართალია, svn– ით), მე მქონდა გარკვეული პრობლემები Windows ინსტრუმენტების დირექტორიაში არსებულ ფაილებთან დაკავშირებით, რომელთა დაფიქსირებაც საჭირო იყო. განათავსეთ ფილიალი Arduino/Hardware/Arduino_STM32 (ასე რომ თქვენ გექნებათ საქაღალდეები, როგორიცაა Arduino/Hardware/Arduino_STM32/STM32F1 და ა.შ.) Windows- ზე დააინსტალირეთ დრაივერები დრაივერების / win / install_drivers.bat გაშვებით.

დააინსტალირეთ ჩემი USBHID ბიბლიოთეკა: გადადით ესკიზზე | ბიბლიოთეკის ჩართვა | მართეთ ბიბლიოთეკები და მოძებნეთ USBHID. დააწკაპუნეთ მასზე და დააწკაპუნეთ ინსტალაციაზე.

დააინსტალირეთ ჩემი GameControllersSTM32 ბიბლიოთეკა: გადადით ჩანახატზე | ბიბლიოთეკის ჩართვა | მართეთ ბიბლიოთეკები და მოძებნეთ GameControllers. დააწკაპუნეთ მასზე და დააწკაპუნეთ ინსტალაციაზე.

ნაბიჯი 4: წრე

წრე
წრე
წრე
წრე
წრე
წრე
წრე
წრე

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

გარდა ამისა, არის N2NC– დან I2C შეყვანა და შემაერთებელი Gamecube კონტროლერთან. თუ გსურთ მხარი დაუჭიროთ ამ ორიდან მხოლოდ ერთს, შეგიძლიათ უბრალოდ შეცვალოთ gamecube.h ესკიზში და შეინახოთ თავი შედუღებიდან.

მე გამოვიყენე მცირე ზომის პროტო დაფა ოთხი რეჟიმის LED- ის და ორი რეჟიმის გადართვის ღილაკების დასაყენებლად (ზემოთ და ქვემოთ), ასევე ერთი გამწევი რეზისტორი Gamecube– ის მონაცემებისთვის. მე გამოვიყვანე 3.3V პროტობორდში, მაგრამ მე არ მჭირდებოდა მისთვის მიწის გამოტანა, თუმცა შეგიძლია თუ გინდა. მე გამოვიყენე კიდევ ერთი პატარა პროტო დაფა ნუნჩუკის კონექტორის დასაყენებლად.

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

ახლა გააკეთეთ ეს კავშირები სქემის დიაგრამის მიხედვით:

  • 10uF კონდენსატორი 3.3 ვ და მიწას შორის (ნებისმიერი ელექტროლიტიკის მინუს მხარეზე ადგილზე). ეს მაქსიმალურად ახლოს უნდა იყოს ჩიპთან, ასე რომ, მე ის ჩავამაგრე პირდაპირ განვითარების დაფაზე და არა პროტობორდზე. კარგი ზომებისთვის, თქვენ შეგიძლიათ დაამატოთ 100nF, როგორც მე, მაგრამ დარწმუნებული არ ვარ, რომ ეს საჭიროა.
  • Gamecube სოკეტი #2 - A6 stm32 დაფაზე
  • 1Km რეზისტორი Gamecube სოკეტს შორის #2 და 3.3V შორის stm32 დაფაზე (ან პროტობორდზე)
  • Gamecube სოკეტი #3 და #4 - დაფუძნებულია stm32 დაფაზე
  • Gamecube სოკეტი #6 - 3.3V stm32 დაფაზე (ან პროტობორდზე)
  • სერია LED 220 ოჰმ (ან უფრო დიდი) რეზისტორით A0 შორის stm32 დაფაზე და 3.3V (უარყოფითი ბოლო (ბინა) PA0; დადებითი დასასრული 3.3 ვ)
  • გაიმეორეთ LED+რეზისტორით A1 და 3.3V, A2 და 3.3V და A3 და 3.3V შორის
  • მომენტალური გადართვა A5- ს შორის stm32 დაფაზე (ზრდის რეჟიმი) და 3.3V და სხვა A4- სა და 3.3V- ს შორის (შემცირების რეჟიმი); ეს გადამრთველი ზრდის რეჟიმის ნომერს
  • გადართვა გადართვა A8 და 3.3V შორის
  • სავარჯიშო მანქანა ადგილზე - stm32 ადგილზე
  • სავარჯიშო მანქანა დადებითი სიგნალი - stm32 დაფა A7 (გაითვალისწინეთ, რომ A7 კარგია მხოლოდ 3.3V– ზე; თუ თქვენი სავარჯიშო მანქანა არის 5V, გამოიყენეთ A9 და შეცვალეთ gamecube.h)
  • Nunchuck ადგილზე (იარლიყით - ჩემს ადაპტერის დაფაზე) - stm32 ადგილზე
  • Nunchuck +3.3V (მარკირებული +) - stm32 3.3V
  • Nunchuck SDA (წარწერით D) - stm32 B7
  • Nunchuck SCL (წარწერით C) - stm32 B6
  • 10Kohm რეზისტორი Nunchuck SDA და 3.3V შორის stm32 დაფაზე
  • 10Kohm რეზისტორი Nunchuck SCL და 3.3V შორის stm32 დაფაზე.

ნაბიჯი 5: დააინსტალირეთ ესკიზი

დააინსტალირეთ ესკიზი
დააინსტალირეთ ესკიზი
დააინსტალირეთ ესკიზი
დააინსტალირეთ ესკიზი

ჩამოტვირთეთ ჩემი Gamecube USB ადაპტერის ესკიზი და ჩადეთ Arduino IDE– ში. Gamecubecontroller.h– ში კონტროლის რამდენიმე ვარიანტი არსებობს:

  • წაშლა // #განსაზღვრეთ ENABLE_EXERCISE_MACHINE- ის წინ (ამის გაკეთება ყველას სჭირდება)
  • თუ თქვენ გჭირდებათ სავარჯიშო აპარატის კავშირის გადატანა A9– ზე, შეცვალეთ PA7 PA9– ში const uint32_t rotationDetector = PA7 ხაზი
  • თუ თქვენი სავარჯიშო აპარატის ბრუნვის გამოვლენის პულსი მაღალია, შეცვალეთ #განსაზღვრეთ ROTATION_DETECTOR_CHANGE_TO_MONITOR FALLING #განსაზღვრეთ ROTATION_DETECTOR_CHANGE_TO_MONITOR RISING
  • თუ არ გინდა ნუნჩუკის გამოყენება, დააყენე // წინ #განსაზღვრეთ ENABLE_NUNCHUCK
  • თუ არ გსურთ გამოიყენოთ Gamecube კონტროლერი, დააყენეთ // წინ #განსაზღვრეთ ENABLE_GAMECUBE.

Arduino IDE– ში აირჩიეთ ინსტრუმენტები | დაფა | ზოგადი STM32F103C სერია.

დააჭირეთ მარჯვენა ისრის ატვირთვის ღილაკს. გაითვალისწინეთ, რომ შეიძლება დაგჭირდეთ გადატვირთვის ღილაკის დაჭერა (ან გამორთვა/შეაერთები) დაფა საჭირო დროს, თუ მიიღებთ შეტყობინებას, რომ დაფა არ არის აღიარებული.

ნაბიჯი 6: სავარჯიშო აპარატის კავშირი

სავარჯიშო აპარატის კავშირი
სავარჯიშო აპარატის კავშირი
სავარჯიშო აპარატის კავშირი
სავარჯიშო აპარატის კავშირი
სავარჯიშო აპარატის კავშირი
სავარჯიშო აპარატის კავშირი
სავარჯიშო აპარატის კავშირი
სავარჯიშო აპარატის კავშირი

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

ნაბიჯი 7: პროექტის საქმე

პროექტის საქმე
პროექტის საქმე
პროექტის საქმე
პროექტის საქმე
პროექტის საქმე
პროექტის საქმე
პროექტის საქმე
პროექტის საქმე

თქვენ შეგიძლიათ მოათავსოთ პროექტი პატარა მუყაოს ყუთში, საამქრო კონტეინერში, ან საბაჟო 3D დაბეჭდილი დანართი. ვინაიდან მე მაქვს 3D პრინტერი, მივედი საბაჟო დანართზე. OpenSCAD და STL ფაილები აქ არის.

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

მე ასევე ცხელ-წებოვანა ზოგიერთი hook-and-loop fastener ორივე პროექტის შემთხვევაში და სავარჯიშო მანქანები.

ნაბიჯი 8: გამოიყენეთ

გამოყენება
გამოყენება
გამოყენება
გამოყენება
გამოყენება
გამოყენება
გამოყენება
გამოყენება

ორ ღილაკს შეუძლია გადართოს 16 -მდე ემულაციის სხვადასხვა რეჟიმს შორის (რეალურად შეგიძლიათ გქონდეთ მეტი, მაგრამ პროექტში არის მხოლოდ ოთხი LED, რომ აჩვენოს რეჟიმის ნომერი). ემულაციის რეჟიმები განსაზღვრულია gamecubecontroller.h ესკიზში. თამაშების უმეტესობისთვის შეგიძლიათ გამოიყენოთ რეჟიმი 1, ერთიანი სლაიდერი ჯოისტიკი 100% სიჩქარით. ემულაციურ ჯოისტიკს აქვს სლაიდერი (სინამდვილეში ორი სლაიდერი, მაგრამ ორივე ერთსა და იმავეს აკეთებს), რომელიც კონტროლდება სავარჯიშო აპარატის ბრუნვით. ღილაკებს და ჯოისტიკს თავად აკონტროლებს Gamecube კონტროლერი ან Nunchuck. Windows– ზე, ზოგიერთი თამაში მხარს უჭერს XBox 360 კონტროლერს, მაგრამ არა USB ჯოისტიკს. მათთვის გამოიყენეთ რეჟიმი 13 (დააჭირეთ ღილაკს ქვემოთ 1 რეჟიმიდან).

მე -9 და მე -10 რეჟიმები საშუალებას მოგცემთ უფრო ნელა ააწყოთ პედლები და მიიღოთ სლაიდერის სრული დეპრესია, რაც სასიამოვნოა ბავშვებისთვის, ან სავარჯიშო აპარატებისთვის უფრო მაღალი წინააღმდეგობისათვის. თქვენ ასევე შეგიძლიათ შეცვალოთ სიჩქარე exerciseisemachine.ino- ში.

არსებობს მრავალი სხვა ემულაციის რეჟიმი. დასაბეჭდი მითითება შედის modelist.pdf ესკიზთან ერთად.

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

მოძრაობის შესაცვლელად, გადაატრიალეთ ადაპტერის ყუთზე გადამრთველი.

Windows- ზე გაუშვით joy.cpl დასაკალიბრებლად და ნახეთ როგორ მუშაობს ყველაფერი. იმის გამო, რომ უსიამოვნოა უზარმაზარი პედლებირება იმიტირებული ჯოისტიკის დასადგენად, არსებობს გზა კალიბრაციის მოტყუების მიზნით. Gamecube კონტროლერზე, თუკი 10 წამი გაჩერდებით, შეგიძლიათ დაიწყოთ მხრის ღილაკების გამოყენება იმიტირებული ჯოისტიკის სლაიდერების გასაკონტროლებლად. Nunchuck– ით, სანამ გეჭირათ რეჟიმი – მინუს ღილაკზე, შეგიძლიათ გამოიყენოთ ჯოისტიკი ზემოთ/ქვემოთ, იმის ნაცვლად, რომ გააკონტროლოთ იმიტირებული სლაიდერი.

თუ გსურთ GUI ემულაციის რეჟიმების გადართვისთვის, Windows– ში ესკიზი შეიცავს mode.py, პითონის სკრიპტს GUI რეჟიმების გადართვისთვის. თქვენ ასევე შეგიძლიათ მოიძიოთ mode.py სურათების ფაილში, რომელიც იწყებს თამაშს.

ორი თამაში, რომელიც აღმოვაჩინე რომ მშვენივრად მუშაობს სავარჯიშო მანქანასთან არის Toybox Turbos და SuperTuxCart (უფასოდ).

ადაპტერი ასევე შეიცავს ემულაციის უამრავ სხვა მახასიათებელს. მაგალითად, თქვენ შეგიძლიათ გამოიყენოთ იგი როგორც პირდაპირი Nunchuck ან Gamecube Controller ადაპტერი, ემსგავსება ჯოისტიკს, კლავიატურას (მაგ. ისრები/WASD) და/ან მაუსი. ბევრი რეჟიმია ჩამოთვლილი gamecubecontroller.h. თქვენ ასევე შეგიძლიათ შეაერთოთ Dance Dance Revolution Gamecube/Wii თავსებადი ბალიში და გამოიყენოთ იგი თამაშებისთვის, რომლებიც არ არის შექმნილი მისთვის, Tetris– ის მსგავსად, დამატებითი გართობისა და ვარჯიშისათვის.

გირჩევთ: