Სარჩევი:

Arduino კლავიატურა Joystick Extender Box და ხმის კონტროლერი Deej გამოყენებით: 8 ნაბიჯი
Arduino კლავიატურა Joystick Extender Box და ხმის კონტროლერი Deej გამოყენებით: 8 ნაბიჯი

ვიდეო: Arduino კლავიატურა Joystick Extender Box და ხმის კონტროლერი Deej გამოყენებით: 8 ნაბიჯი

ვიდეო: Arduino კლავიატურა Joystick Extender Box და ხმის კონტროლერი Deej გამოყენებით: 8 ნაბიჯი
ვიდეო: 10 STUPID ERRORS To AVOID in Soldering and TIPS 2024, დეკემბერი
Anonim
Arduino კლავიატურა Joystick Extender Box და ხმის კონტროლერი Deej გამოყენებით
Arduino კლავიატურა Joystick Extender Box და ხმის კონტროლერი Deej გამოყენებით

Tinkercad პროექტები »

რატომ

გარკვეული პერიოდის განმავლობაში მე მინდოდა დავამატო პატარა ჯოისტიკი ჩემს კლავიატურას ინტერფეისის ელემენტების გასაკონტროლებლად, ან სხვა მცირე ამოცანები თამაშებსა და ტრენაჟორებში (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons და სხვა).

ასევე, Elite: Dangerous– ისთვის, მე მიჭირს ხმის დონის შერევა გარე აუდიოდან (ჩამონტაჟებული მუსიკა, მიუხედავად იმისა, რომ კარგია, მეორდება შავებში მრავალი საათის შემდეგ), თამაშის აუდიოსა და გარე ხმის პაკეტის მხარდაჭერით.

Windows- ის ჩაშენებული წყაროს მიქსერი არის "კარგი", მაგრამ ტკივილია თამაშის შუაგულში ეკრანებისა და მაუსის კონტროლის სლაიდერების გადართვა. კლავიატურის გაფართოებული მართვის ყუთის არსებობა გზა იყო. Deej არის გამოსავალი მე ვიპოვე.

Როგორ

მე ახლახანს ვისწავლე Arduino– ს შესახებ და reddit– ზე წავაწყდი deej პროექტს. როგორც ჩანს, ეს ორივე პრობლემას ერთ მოსახერხებელ პაკეტში მოაგვარებდა. და ეს საშუალებას მომცემს დავამუშავო და დავბეჭდო მშვენიერი 3D ქეისი.

რა არის დეი?

(საიტიდან) deej არის ** ღია კოდის აპარატურის მოცულობის შემრევი ** Windows და Linux კომპიუტერებისთვის. ეს გაძლევთ საშუალებას გამოიყენოთ რეალურ ცხოვრებაში სლაიდერი (დიჯეის მსგავსად!) ** რომ შეუფერხებლად გააკონტროლოთ სხვადასხვა პროგრამების მოცულობა ** (მაგალითად, თქვენი მუსიკალური პლეერი, თამაში, რომელსაც თამაშობთ და თქვენი ხმოვანი ჩეთის სესია), რაიმეს შეჩერების გარეშე. თქვენ აკეთებთ.

ჩემი ვერსია

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

Deej იმუშავებს Arduino Nano– სთან, Pro Micro– სთან და Uno– თან, მაგრამ Nano და Pro Micro– ს დეველოპერი „ოფიციალურად გვირჩევს“. მე ავირჩიე Arduino Pro Micro, რადგან მინდოდა ჯოისტიკი და Arduino Joystick ბიბლიოთეკა მხარს უჭერს მას. მე ასევე შემიძლია გამოვიყენო Arduino კლავიატურის ბიბლიოთეკა, როდესაც მინდა გამოვიყენო მედია კლავიატურის დადუმების ფუნქცია (და არა "რბილი მუნჯი") ჯოისტიკის ღილაკით, მაგრამ ეს უფრო შორს არის.

ნაბიჯი 1: მარაგი

მარაგები
მარაგები
მარაგები
მარაგები
მარაგები
მარაგები

Ყუთი

ჩამოტვირთეთ STL ფაილები (შექმნილია Tinkercad– ში):

  • თანდართული ფაილები Prusa– ში (https://www.prusaprinters.org/)
  • Thingiverse (მალე)

აპარატურა (წარმოების ერთეული)

  • 1x Arduino Pro Micro
  • 4x 10k მბრუნავი (სახელური) პოტენციომეტრები (არა მბრუნავი კონტროლერები, გამოიყენეთ ქოთნები)
  • 1x Arduino KY-023 ჯოისტიკი
  • 5 ფუტიანი ჯართი cat5 ქსელის კაბელი
  • 1x USB A to USB B მიკრო კაბელი (USB A არის დიდი კვადრატული კონექტორი, USB B მიკრო არის ის, რაც Arduino Pro Micro– ზეა)
  • 1x 5 მმ წითელი LED
  • 1x 220 ohm რეზისტორი

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

  • 1x Arduino Pro Micro
  • 4x 10k მბრუნავი (სახელური) პოტენციომეტრები (არა მბრუნავი კონტროლერები, გამოიყენეთ ქოთნები)
  • 1x მომენტალური ღილაკის გადამრთველი (მყარი გადატვირთვის გადამრთველი)
  • 1x USB A to USB B მიკრო კაბელი (USB A არის დიდი კვადრატული კონექტორი, USB B მიკრო არის ის, რაც Arduino Pro Micro– ზეა)
  • მრავალფეროვანი მხტუნავი მავთულები
  • პურის დაფა
  • 1x 5 მმ წითელი LED
  • 1x 220 ohm რეზისტორი

ნაბიჯი 2: დანართი

დანართი
დანართი
დანართი
დანართი
დანართი
დანართი
დანართი
დანართი

Დიზაინი

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

  • ადვილია დიზაინი და დაბეჭდვა
  • ხელი არ შეუშალო ჩემს სხვა დესკტოპის პერიფერიულ მოწყობილობებს
  • არ გამოიყენოთ ხრახნები ან შესაკრავები, რომ დაიცვათ საფარი
  • კლავიატურის მსგავსი დიზაინის ესთეტიკა

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

მე მოკლედ დავიწყე დიზაინი Fusion360– ში, მაგრამ არ ვიცი, ისევე როგორც Tinkercad– მა ასე გადართო და იქ იმუშავა.

ვინაიდან მინდოდა ხრახნიანი დიზაინი, მე შევქმენი ბუდეების ყუთი. პირველ პროტოტიპს ჰქონდა თხელი სახურავი და ღრმა ყუთი ყველაფრისთვის. მეორე დიზაინმა შეცვალა ის ღრმა სახურავით და ზედაპირული ქვედა ყუთით. მას მხოლოდ Arduino Pro Mini უნდა ჰქონოდა, ასე რომ ნამდვილად არ იყო დიდი. ასევე შეტანილია ჭედური ხატები.

მესამე დიზაინი შეიცვალა ისე, რომ სივრცე მოერგოს ჩემს კლავიატურას.

ნაბეჭდი

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

პრობლემა

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

ნაბიჯი 3: წრე

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

გაყვანილობის ყველაზე ცუდი სამუშაო

კარგი, ეს არის ჩემი პირველი სრულფასოვანი Arduino პროექტი. დიახ, მე ადრეც ვაკეთებდი რაღაცებს დაფაზე და ვიყენებ მათ განვითარების ვერსიის შესაქმნელად, მაგრამ რაც შეეხება რეალურად გაყალბებას და შეკრებას, ეს არის ჩემი პირველი. ასე რომ, ჩემი გაყვანილობა სისულელეს ჰგავს. აი, ეს გამორიცხულია:)

განახლება: მას შემდეგ მე ავაშენე მეორე და გაყვანილობა იქ ბევრად ლამაზია. ნახეთ სურათები:)

საწარმოო განყოფილება - რა სად ხდება

Arduino Pro Micro არის პატარა დაფა და ჯდება ბაზის ჩამოსხმულ ნაწილში. სახელურები და ჯოისტიკი მოთავსებულია სახურავის შესაბამის ხვრელებში. მაგრამ ნუ დაამონტაჟებ არაფერს, სანამ არ მიიღებ შედუღების კონკურსს.

გაყვანილობა

მე არ მქონდა სათანადო მიკროსქემის მავთული, მაგრამ მქონდა ნარჩენი რულეტი მყარი ბირთვიანი cat5 ქსელის კაბელი, ასე რომ მე ვიყენებდი. ეს არის ცოტა უფრო მკაცრი და ალბათ უფრო მყიფე ვიდრე ჩამონტაჟებული წრიული მავთული, მაგრამ ის მუშაობს.

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

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

ინდივიდუალური ქოთანი. ანალოგური ხაზები (ყვითელი) მიდიოდა ქინძისთავებზე A0 - A3. ჯოისტიკის ხაზები (ნარინჯისფერი), ასევე ანალოგური, მიდიოდა I/O ქინძისთავებზე 8 და 9. ეს უნდა იყოს მითითებული როგორც ანალოგი არდუინოს კოდში, როგორც A8 და A9.

ჯოისტიკის გადამრთველის პინი (ლურჯი) გადავიდა პინზე 7. ეს იქნება ციფრული პინი კოდში.

იზოლაცია

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

მეორე ვერსია

ბოლო ორი სურათი ზემოთ აჩვენებს მომდევნო ყუთს, რომელსაც მე ვაშენებ. ამ მოწყობილობას ექნება 5 ღილაკი და ერთი მომენტალური ღილაკი მუნჯებისთვის. ჯოისტიკი არ არის. იგივე ზომის ყუთი.

ნაბიჯი 4: აპარატურის დასრულება

აპარატურის დასრულება
აპარატურის დასრულება

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

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

ქოთნების დაყენება შეფერხების გარეშე წარიმართა.

ისევ მავთულხლართებით

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

მას შემდეგ რაც ყველაფერი თავის ადგილზე დალაგდება, უბრალოდ მოათავსეთ ბაზა თავზე და დაასრულეთ ტექნიკით …

მაგრამ დაელოდე, მეტია

რასაკვირველია, რამოდენიმე კვირის გამოყენების შემდეგ, მე გადავწყვიტე, რომ მჭირდებოდა ინდიკატორი, რომ გამეგო რა არის რბილი კოდირებული MUTE ფუნქციის სტატუსი.

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

მე მეტი დრო გავატარე ხვრელის გასახსნელად საქმის ზედა ნაწილში, რადგან არ მინდოდა ზედა ფინალის გაფუჭება. მე აღვნიშნე ცენტრალური ადგილი, გავხეხე, შემდეგ ხელით დავარტყი საბურღი, რომ ხვრელი გამეკეთებინა.

დამატებით ფრთხილად შევსებამ გაწმინდა ხვრელი და უზრუნველყო კარგი მჭიდროდ დაჭერა იმის უზრუნველსაყოფად, რომ LED არ გამოდიოდა ზედა ზედაპირზე ძალიან შორს.

ნაბიჯი 5: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

მიმოხილვა

ასე რომ, ეს არის ორი ნაწილის პროცესი.

  1. მიიღეთ და გაიგეთ როგორ მუშაობს Deej და შეცვალეთ Config.yaml ფაილი
  2. შეცვალეთ Arduino კოდი სასურველი ტექნიკისა და მახასიათებლების შესაბამისად
  3. მიიღეთ Arduino Joystick ბიბლიოთეკა

ჩემს შემთხვევაში, მინდოდა ეს მახასიათებლები:

  • სახელურები, რომლებიც აკონტროლებენ დონეს (მიკროფონი და გამომავალი)
  • დადუმების გადამრთველი
  • 2 ღერძიანი ჯოისტიკი Windows- ის მიერ აღიარებულია პროგრამის გამოყენებისთვის

დონეები

Deej საკმაოდ ზრუნავს პირველ პუნქტზე, როდესაც ის მოდის. მე არ შევასწორო ეს ფუნქცია

დადუმების გადამრთველი

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

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

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

ჯოისტიკის განხორციელება

ეს მოითხოვს Arduino Joystick ბიბლიოთეკის გამოყენებას იმის უზრუნველსაყოფად, რომ ჯოისტიკი აღიარებულია როგორც HID მოწყობილობა Windows- ის მიერ და შესაბამისად ნებისმიერი თამაშის/პროგრამის მიერ.

მე ცოტა უგონო ვარ, როდესაც საქმე ეხება კოდირებას და აღმოვაჩინე, რომ ჯოისტიკის ბიბლიოთეკის დოკუმენტაცია საკმაოდ იშვიათია რეალურ განხორციელებაში - მაგრამ ცოტა ორიენტირებულმა Google– მა მიმიყვანა სხვა მაგალითებამდე, რაც დამეხმარა იმის გაგებაში, თუ რა ხდება. დეტალების სანახავად გადახედეთ ბოლოში რესურსების განყოფილებას.

ყველაფერი რაც მე უნდა გამეკეთებინა იყო X/Y ქინძისთავების ამოცნობა, მათი მდგომარეობის წაკითხვა და ჯოისტიკის ბიბლიოთეკაში გაგზავნა. Arduino გამოჩნდა როგორც ლეონარდო Windows– ში და სათანადოდ იყო კონფიგურირებული როგორც Joystick მოწყობილობა.

მე შევძელი მისი დაყენება Elite Dangerous– ში, ჩემი არსებული HOTAS– ის დაყენებასთან ერთად და ჯოისტიკმა სათანადოდ გააკონტროლოს საგნები და არა კონფლიქტში HOTAS– თან. ის ასევე კარგად მუშაობს ვარსკვლავურ ომებში: ესკადრები - მე მას ჩავდექი როგორც სწრაფი გადართვა ბრძოლის დროს ფარების დასაყენებლად.

ფაილები, რომლებიც მუშაობს ჩემი ჯოისტიკის დაყენებით

მე ავტვირთე ჩემი მიმდინარე (2020 წლის ოქტომბერი) ფაილები Codepile– ში.

  • Arduino კოდი (.ino ფაილი)
  • Deej config.yaml

ნაბიჯი 6: დასასრული

Დასასრული
Დასასრული

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

ნაბიჯი 7: დამატება.. დუმ..დიუმ

დამატება..დიდი..დიმი
დამატება..დიდი..დიმი

VLC - იმ გასაოცარ აუდიო და ვიდეო პლეერს აქვს ცოტა უცნაურობა, როდესაც ხმის დონე, გარედან კონტროლისას, 0% -დან 27% -მდე ხტება. ეს არ ხდება პროგრამის ინტერფეისის ხმის კონტროლის გამოყენებით დონის მორგებისას, მხოლოდ გარე კონტროლით, როგორიცაა Deej.

Deej დეველოპერმა სწრაფად აღმოაჩინა in-VLC გამოსავალი, რომელიც ასრულებს სამუშაოს, იხილეთ სურათი ზემოთ:

"… თუ გსურთ გამორთოთ ეს" თვალთვალის "ქცევა, ამის გაკეთება შეგიძლიათ VLC- ს აუდიო გამომავალი მოდულის შეცვლით. მე აქ გამოვიყენე DirectX. თქვენ უნდა გადატვირთოთ VLC, რომ ცვლილებები ძალაში შევიდეს. (თქვენ მაინც აქვს Windows აუდიო სესია და შეძლებს მისი გაკონტროლებას deej– ის საშუალებით, ეს მხოლოდ ხელს შეუშლის VLC მოცულობის ზოლის გადაადგილებას მასთან ერთად)”

ნაბიჯი 8: დამატებითი რესურსები

Დამატებითი რესურსები
Დამატებითი რესურსები

ნაპოვნია ძლევამოსილი გუგის საშუალებით, რომელიც არ არის ჩამოთვლილი კონკრეტული რიგის მიხედვით…

  • Arduino Joystick Library (v2) - საჭიროა ჯოისტიკის ინტეგრირებისთვის
  • Sparkfun Pro Micro დაკავშირების სახელმძღვანელო - კარგი რესურსი ამ Arduino– ს შესახებ
  • deej - პროგრამა, რომელიც მართავს ღილაკებს
  • USB კონექტორის ტიპები - ვინ იცოდა რომ ამდენი ვარიანტი იყო?
  • Arduino Pro მიკრო ანალოგური Pinouts
  • Arduino Leonardo Gaming Joystick - ლეონარდო მსგავსია Pro Micro– ს, მხოლოდ უფრო დიდი
  • Arduino Pro Micro (კლონი) პორტი არ არის გამოვლენილი (გამოსავალი) - როდესაც თქვენ აგურით თქვენი Pro Micro (მე გავაკეთე)
  • არდუინო ლეონარდო/მიკრო როგორც თამაშის კონტროლერი/ჯოისტიკი
  • მულტიმედიური გასაღების გამოყენების მაგალითი მდუმარედ - HID პროექტის ბიბლიოთეკის გამოყენებით
  • HID პროექტის ბიბლიოთეკის მაგალითი მედია პაუზის / დაკვრისთვის
  • კიდევ ერთი კოდის მაგალითი, რომელიც აჩვენებს gamepad კონტროლერს.
  • ArduinoGamingController_updated - ჯოისტიკ ბიბლიოთეკის გამოყენების კარგი კოდის აღწერა
  • LED რეზისტორის გამომთვლელი რამ - გაარკვიეთ რამდენად დიდი რეზისტორი გჭირდებათ თქვენს პროექტში
  • ხატების ბიბლიოთეკა - flaticon.com - სახელურების ზემოთ გამოყენებული სურათების წყარო
  • კიდევ ერთი რეზისტენტული ფერადი დეკოდერი - დააწკაპუნეთ ფერს და ვიოლას!

გირჩევთ: