Мазмуну:

Arduino Keyboard Joystick Extender Box жана Deej колдонулган үн көзөмөлдөөчү нерсе: 8 кадам
Arduino Keyboard Joystick Extender Box жана Deej колдонулган үн көзөмөлдөөчү нерсе: 8 кадам

Video: Arduino Keyboard Joystick Extender Box жана Deej колдонулган үн көзөмөлдөөчү нерсе: 8 кадам

Video: Arduino Keyboard Joystick Extender Box жана Deej колдонулган үн көзөмөлдөөчү нерсе: 8 кадам
Video: Lesson 2: Getting Arduino Software and using Documentation for SunFounder Arduino Kit | SunFounder 2024, Ноябрь
Anonim
Arduino Keyboard Joystick Extender Box жана Sound Controller Thing аркылуу Deej
Arduino Keyboard Joystick Extender Box жана Sound Controller Thing аркылуу Deej

Tinkercad долбоорлору »

Неге

Бир аз убакыттан бери мен клавиатурама кичинекей джойстикти кошуп, интерфейс элементтерин, же оюндардагы жана симуляторлордогу башка кичинекей тапшырмаларды (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons ж.

Ошондой эле, Elite: Dangerous үчүн, мен тышкы аудионун көлөмүн аралаштыруу менен күрөшүп келе жатам (музыкада курулган, жакшы болсо да, кара түстө көп сааттан кийин кайталанат), оюндагы аудио жана тышкы пакет колдоосу.

Windowsтун камтылган булагы аралаштыргычы "макул", бирок оюндун ортосунда экрандарды жана чычканды башкаруу слайдерин алмаштыруу оорутат. Узартылган клавиатура башкаруу кутусуна ээ болуунун жолу көрүндү. Deej - мен тапкан чечим.

Кантип

Мен жакында Arduino жөнүндө билдим жана reddit боюнча deej долбооруна туш болдум. Бул эки көйгөйдү бир ыңгайлуу пакетте чечет окшойт. Бул мага укмуштай 3d корпусун иштеп чыгууга жана басып чыгарууга мүмкүндүк берет.

Deej деген эмне?

(сайттан) deej-бул Windows жана Linux ЖК үчүн ** ачык булак аппараттык көлөм аралаштыргыч **. Бул сизге чыныгы жашоодогу слайдерлерди колдонууга мүмкүндүк берет (ди-джей сыяктуу!) сен кылып жатасың

Менин версиям

Кутуну кичине сактап калуу үчүн, мен слайдерлерди эмес, баскычтарды (айлануучу сызыктуу потенциометрди (казандар = резисторлор)) тандадым. Функционалдык жактан алар бирдей иштейт. Учурдагы жана популярдуу дизайны дизайнында джойстик жок, андыктан бул бир аз дизайн гибриди болот. Болбосо, бул түздөн-түз түзүм.

Deej Arduino Nano, Pro Micro же Uno менен иштейт, бирок Nano жана Pro Micro иштеп чыгуучу тарабынан "расмий түрдө сунушталат". Мен джойстикти каалагандыктан Arduino Pro Microду тандадым, жана Arduino Джойстик китепканасы аны колдойт. Мен ошондой эле джойстиктин баскычы менен медиа клавиатуранын үнүн басуу функциясын ("жумшак үнсүз" эмес) колдонгум келгенде Arduino клавиатура китепканасын колдоно алам, бирок бул жолдун ары жагында.

1 -кадам: Берилиштер

Жабдуулар
Жабдуулар
Жабдуулар
Жабдуулар
Жабдуулар
Жабдуулар

Куту

STL файлдарын жүктөп алыңыз (Tinkercadда иштелип чыккан):

  • Прусада файлдарды тиркөө (https://www.prusaprinters.org/)
  • Thingiverse (жакында)

Аппаратура (өндүрүш бирдиги)

  • 1x Arduino Pro Micro
  • 4x 10k айлануучу (топчу) потенциометрлер (Ротари контроллерлери эмес, идиштерди колдонуңуз)
  • 1x Arduino KY-023 джойстик
  • 5 фут сынык cat5 тармак кабели
  • 1x USB Aдан USB B микро кабелине (USB A - чоң чарчы туташтыргычы, USB B микро - Arduino Pro Microдо эмне бар)
  • 1х 5 мм кызыл LED
  • 1х 220 Ом каршылыгы

Менде кошумча бөлүктөр бар болчу, ошондуктан мен нерселерди текшерүү үчүн өнүктүрүү бөлүмүн курам деп ойлогом. Жөн эле нерселерди нан тактасына туташтыруу акыркы нерсени элестетүүнү жеңилдетти.

  • 1x Arduino Pro Micro
  • 4x 10k айлануучу (топчу) потенциометрлер (Ротари контроллерлери эмес, идиштерди колдонуңуз)
  • 1x убактылуу баскыч баскычы (оор абалга которуу)
  • 1x USB Aдан USB B микро кабелине (USB A - чоң чарчы туташтыргычы, USB B микро - Arduino Pro Microдо эмне бар)
  • ар кандай секирүүчү зымдар
  • нан
  • 1х 5 мм кызыл LED
  • 1х 220 Ом каршылыгы

2 -кадам: Корпус

Корпус
Корпус
Корпус
Корпус
Корпус
Корпус
Корпус
Корпус

Дизайн

Мага Deej коомчулуктун галереясында профилдештирилген башка конструкциялар жакты, ошондуктан мага жаккан өзгөчөлүктөрдүн негизинде:

  • Дизайн жана басып чыгаруу оңой
  • Башка рабочий перифериялык аппараттарыма тоскоол болбо
  • Корпусту бекемдөө үчүн бурамаларды же бекиткичтерди колдонбоңуз
  • Окшош дизайн клавиатурага окшош

Мен бул акыркы дизайнды чечүүдөн мурун эки прототипти иштеп чыгып, басып чыгардым. Мен аны колдонуп жаткан мейкиндикте ойной турган физикалык версияга ээ болууну жакшы көрөм, анткени ал мага акыркы объект кандай иштээрин жакшыраак түшүнүүгө жардам берет.

Мен кыскача Fusion360та дизайн жасай баштадым, бирок аны жакшы билбейм, ошондуктан Тинкеркад которулуп, ошол жерде иштеген.

Мен бурамасыз дизайнды каалагандыктан, уя салуучу кутучаны жасадым. Биринчи прототипте ичке капкак жана бардыгы үчүн терең куту болгон. Экинчи дизайн терең капкак жана тайыз түбү менен алмаштырылган. Ал Arduino Pro Mini'ди кармап турушу керек болчу, андыктан чоң болуунун кажети жок болчу. Ошондой эле эмпирикалык иконалар камтылган.

Үчүнчү дизайн менин клавиатурамдын жанындагы орунга ылайыкташтырылып өзгөртүлдү.

Басып чыгаруу

Мен кутучаны ПЛАга басып чыгардым, жипчелердин / катмарлардын алмашуусун Кара түстөн Кызылга алмаштырып, иконкалар жаңы эле көрүнүп баштайт, ал эми капкактын калган бөлүгүнө кайра Кара түскө кайтат.

Маселе

Мунун баары аркылуу джойстикти орнотуу көйгөй жараткан. Үчүнчү дизайнда да, таяк бир жерде тоолорго урунат. Кийинки кайталоодо жакшы уруксаттар болот. Мен дизайн боюнча көбүрөөк иштесе болмок, бирок кийинки баскычка - орнотууга өтүүнү кааладым.

3 -кадам: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Эң жаман зым жумуш

Макул, бул менин биринчи толук Arduino долбоорум. Ооба, мен буга чейин нан такталарында бир нерсе кылгам жана анын Иштеп чыгуу версиясын түзүү үчүн колдонуп жатам, бирок иш жүзүндө даярдоо жана чогултуу боюнча, бул менин биринчи. Ошентип, менин зымым чаңга окшош. Мына, бул жолдон чыгып калды:)

Жаңыртуу: Мен дагы башкасын курдум, ал жерде зымдары абдан жакшы. Сүрөттөрдү көрүү:)

Өндүрүш бирдиги - Кайда баратат

Arduino Pro Micro кичинекей кичинекей такта жана базанын калыптанган бөлүмүнө туура келет. Баскычтар жана джойстик капкактын тиешелүү тешиктерине туура келет. Бирок, сиз ширетүүчү атаандаштыкка жетмейинче эч нерсе орнотпоңуз.

Электр өткөргүчтөрү

Менде эч кандай туура схема жок болчу, бирок катуу ядролук cat5 тармак кабелинин калган ролиги бар болчу, ошондуктан мен колдонгон нерсе ушул. Бул чынжырга караганда бир аз катуураак жана морттук, бирок ал иштейт.

Компоненттерди акыркы орнотуу абалынын болжолдуу түрдө жайгаштырып, мен ар бир зым үчүн аралыкты эсептеп, боштук үчүн бир аз көбүрөөк кошуп койдум, анан зымды кесип, кыркып салдым. Мен көп боштукту калтырдым.

Электр өткөргүч диаграммасына таянып, мен жалпы жерге (Кара) жана VCCге (Кызыл) көрсөтүлгөн жерде, топчолорго жана джойстикке чуркадым. Тармактык кабель бул түстөрдө болбогондуктан, мен жөн эле түс тандап, зымымды функцияга ылайыкташтырып койгом.

Жеке Pot. аналогдук линиялар (Сары) A0 - A3 төөнөгүчтөрүнө чуркады. Joystick линиялары (Orange), дагы аналогдук, I/O казыктары 8 жана 9га чуркады. Бул A8 жана A9 катары Arduino кодунда аналог катары белгилениши керек.

Джойстиктин которгуч пини (Көк) 7 -пинге чуркады. Бул коддогу санариптик пин болот.

Изоляция

Бул катуу зым кичинекей жерге тыгылып тургандыктан, мен ширетүүчү байланышымды дени сак ысык эритме клей менен жылуулоону чечтим. Анан баарын ордуна коюп, Arduino Example AnalogInput кодунун версиясын колдонуп, тактада жана казандарда жөнөкөй тестти өткөрдү - бардык казандарды окуу үчүн өзгөртүлдү.

Экинчи версия

Жогорудагы акыркы эки сүрөт мен куруп жаткан кийинки кутуну көрсөтөт. Бул 5 баскычка жана бир заматта басуу баскычына ээ болот. Джойстик жок. Бирдей өлчөмдөгү кутуча.

4 -кадам: Аппараттык жабдууну бүтүрүү

Аппараттык жабдууну бүтүрүү
Аппараттык жабдууну бүтүрүү

Мен джойстикти орноткондо, анын тактайы менен Pro Microдо калган төөнөгүчтөрдүн ортосунда анча -мынча боштук жок экенин түшүндүм.

Пиндин башын бир аз кылдат ийип, ысык эритилген клейди кайра колдонуудан кийин (изоляция үчүн), корпус туура жабылды.

Казандарды орнотуу эч кандай кыйынчылыксыз өттү.

Кайра зымдар менен

Катуу өзөктүү зымдар бир аз катуу жана өтө көп жолу ийилсе морт болуп калышы мүмкүн, ошондуктан аларды бош мейкиндикке (курч бурчтары жок) кылдаттык менен бүктөп коюңуз. Менин кээ бирлерим өтө узун болчу жана бир аз кошумча бүктөлүүнү талап кылышкан.

Баары өз ордуна келгенден кийин, базаны үстүнө орнотуп койгула, ошондо жабдыктар менен бүтүшүңөр керек ….

Бирок күтө тур, дагы бар

Албетте, бир нече жума колдонгондон кийин, мага жумшак коддуу MUTE функциясынын статусу кандай экенин билдирүү үчүн индикатор керек деп чечтим.

LED функциясын кошуу үчүн кодду түзөткөндөн кийин (кийинки бөлүмдү караңыз), мен LED / зымдарды / резисторду бат эле ширетип, тактага туташтырдым.

Мен корпустун чокусун тешүү үчүн көбүрөөк убакыт бөлдүм, анткени мен жогорку финишке чыккым келбеди. Мен борбордук жерди белгилеп, аны тешип, анан тешикти жасоо үчүн бургулоочу тетикти кол менен ийридим.

Кошумча кылдаттык менен толтуруу тешикти тазалап, жарыктын үстүнкү бетинен өтө алыс чыгып кетпешин камсыз кылуу үчүн жакшы тыгыз басууну камсыз кылды.

5 -кадам: Программалык камсыздоо

Программалык камсыздоо
Программалык камсыздоо
Программалык камсыздоо
Программалык камсыздоо
Программалык камсыздоо
Программалык камсыздоо

Обзор

Ошентип, бул эки бөлүктөн турган процесс.

  1. Deej кандай иштээрин түшүнүңүз жана Config.yaml файлын түзөтүңүз
  2. Arduino кодун керектүү жабдыктарга жана өзгөчөлүктөргө дал келтирүү үчүн түзөтүңүз
  3. Arduino Joystick китепканасын алыңыз

Менин учурда, мен бул өзгөчөлүктөрдү каалаган:

  • Деңгээлдерди көзөмөлдөгөн баскычтар (Микрофон жана чыгаруу)
  • Өчүрүү
  • Колдонмо үчүн Windows тарабынан таанылган 2 огу джойстиги

Даражалар

Deej дээрлик биринчи пунктка кам көрөт. Мен бул функцияны өзгөрткөн жокмун

Өчүрүү

Мен функционалдык үнсүз баскыч катары Джойстиктеги прессти/которуштурууну колдоно тургандыгымды эрте чечкем.

Сиз кодду текшергенде, "жумшак" үнсүздү колдонууну тандаганымды көрөсүз - баскыч басылганда, MICтин көлөмү нөлгө чейин төмөндөйт (жана LED күйөт). Кайра басылганда, MICтин көлөмү мурунку жөндөөсүнө кайтарылат жана LED өчөт.

Акыр -аягы, мен Arduino клавиатура китепканасын жайылган клавиатура кодунун топтому аркылуу Үнсүз абалын которуштуруу үчүн карап чыгам.

Джойстикти ишке ашыруу

Бул үчүн джойстик Windows тарабынан HID түзмөгү катары таанылышы үчүн Arduino Joystick китепканасын колдонууну талап кылат, демек, каалаган оюн/тиркеме.

Мен коддоого келгенде жана Joystick китепканасынын документтерин иш жүзүндө бир аз сейрек кездештиргенде, мен бир аз убара болом - бирок бир аз багытталган гуглинг мени эмне болуп жатканын түшүнүүгө жардам берген башка мисалдарга алып келди. Чоо -жайын билүү үчүн аягындагы ресурстар бөлүмүн текшериңиз.

Мага X/Y пиндерин аныктоо, алардын абалын окуу жана Joystick китепканасына жөнөтүү керек болчу. Arduino Windows үчүн Леонардо катары пайда болгон жана Joystick түзмөгү катары туура конфигурацияланган.

Мен аны учурдагы HOTAS орнотуулары менен бирге Elite Dangerous орното алдым жана джойстик нерселерди туура көзөмөлдөп, HOTAS менен карама -каршы келбеди. Ал ошондой эле жакшы иштейт Жылдыздар согушу: эскадрильялары - Мен аны согушта калканчтарды орнотуу үчүн тез алмаштыруучу кылып койдум.

Менин Joystick орнотуум менен иштеген файлдар

Мен учурдагы (октябрь 2020) файлдарымды Codepileге жүктөдүм.

  • Arduino коду (.ino файлы)
  • Deej config.yaml

6 -кадам: Аяктоо

Аяктоо
Аяктоо

Мейли, бул жасалды. Бул иштейт жана мен анын кантип чогулганына абдан ыраазымын. Мен аппараттык дизайн, интеграция жана Arduino программалоо жөнүндө бир аз көбүрөөк билдим.

7 -кадам: тиркеме..dum..dum

Кошумча.. dum..dum
Кошумча.. dum..dum

VLC - бул укмуштуудай аудио жана видео ойноткучтун бир аз кызыктай жери бар, анын көлөмү сырттан башкарылганда 0% дан 27% га чейин секирет. Колдонмодогу интерфейстин үнүн көзөмөлдөөнү колдонуп, Deej сыяктуу тышкы көзөмөл менен гана деңгээлди тууралаганда мындай болбойт.

Deej иштеп чыгуучусу бул ишти аткаруучу VLC ичиндеги чечүүнү тез эле тапты, жогорудагы сүрөттү караңыз:

"… эгер сиз бул" Көз салуу "жүрүм -турумун өчүргүңүз келсе, муну VLC аудио чыгаруу модулун өзгөртүү аркылуу кыла аласыз. Мен бул жерде аракетимде DirectXти колдондум. Өзгөртүүнүн күчүнө кириши үчүн VLC'ди өчүрүп күйгүзүшүңүз керек болот. Windowsтун аудио сеансы бар жана аны deej аркылуу башкара аласыз, бул VLC көлөм тилкесин аны менен жылышына жол бербейт)"

8 -кадам: Кошумча ресурстар

Кошумча ресурстар
Кошумча ресурстар

Белгилүү тартипте тизмеленбеген күчтүү Goog аркылуу табылган…

  • Arduino Joystick Library (v2) - джойстикти бириктирүү үчүн керек
  • Sparkfun Pro Micro туташуу боюнча көрсөтмө - бул Arduino жөнүндө жакшы булак
  • deej - баскычтарды башкаруучу программа
  • USB туташтыргычтын түрлөрү - көптөгөн варианттар бар экенин ким билген?
  • Arduino Pro Micro Analog Pinouts
  • Arduino Leonardo Gaming Joystick - Леонардо Pro Microго окшош, болгону чоңураак
  • Arduino Pro Micro (Clone) порту табылган жок (Чечим) - Pro Microңузду кирпичке салганда (мен жасадым)
  • Ардуино Леонардо/Микро Оюн Контролери/Джойстик
  • HID долбоорунун китепканасын колдонуу менен - үнүн басуу үчүн мультимедиялык ачкычты колдонуунун мисалы
  • Медианы тындыруу / ойнотуу үчүн HID Project китепканасынын мисалы коду
  • Геймпад контроллерин көрсөткөн дагы бир код мисал.
  • ArduinoGamingController_updated - Joystick китепканасынын колдонулушунун жакшы коду
  • LED Resistor эсептегич нерсе - сиздин долбоорго канчалык чоң резистор керек экенин билүү үчүн
  • Белги китепканасы - flaticon.com - баскычтардын үстүндө колдонулган сүрөттөрдүн булагы
  • Дагы бир резистордун түс декодери - түскө жана виолага чыкылдатыңыз!

Сунушталууда: