Съдържание:
- Стъпка 1: Консумативи
- Стъпка 2: Приложението
- Стъпка 3: Веригата
- Стъпка 4: Завършване на хардуера
- Стъпка 5: Софтуерът
- Стъпка 6: Край
- Стъпка 7: Допълнение..дум..дум
- Стъпка 8: Допълнителни ресурси
Видео: Arduino Keyboard Joystick Extender Box и Sound Controller Thing Using Deej: 8 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:49
Проекти на Tinkercad »
Защо
От известно време искам да добавя малък джойстик към клавиатурата си, за да контролирам елементи на интерфейса или други по -малки задачи в игри и симулатори (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons и др.).
Също така, за Elite: Dangerous, се борих със смесването на нивата на силата на звука от външно аудио (вградената музика, макар и добра, се повтаря след много часове в черно), аудио в играта и поддръжка на външен гласов пакет.
Вграденият в Windows миксер за източници е „добре“, но е мъчно да превключвате екрани и плъзгачи за управление на мишката в средата на игра. Наличието на разширена кутия за управление на клавиатурата изглеждаше начин. Deej е решението, което намерих.
Как
Наскоро научих за Arduino и попаднах на проекта deej на reddit. Изглеждаше, че това ще реши двата проблема в един удобен пакет. И това ще ми позволи да проектирам и отпечатам изящен 3d калъф.
Какво е deej?
(от сайта) deej е ** хардуерен миксер с отворен код ** за компютри с Windows и Linux. Позволява ви да използвате плъзгачи в реалния живот (като диджей!), За да ** контролирате безпроблемно силата на звука на различни приложения ** (като вашия музикален плейър, играта, която играете и сесията ви за гласов чат), без да се налага да спирате какво правиш.
Моята версия
За да поддържам кутията малка, предпочетох копчета (ротационен линеен потенциометър (тенджери = резистори)), а не плъзгачи. Функционално те работят еднакво. Текущите и популярни дизайни на deej не включват джойстик, така че това ще бъде малко дизайнерски хибрид. В противен случай това е доста проста конструкция.
Deej ще работи с Arduino Nano, Pro Micro или Uno, но Nano и Pro Micro са „официално препоръчани“от разработчика. Избрах Arduino Pro Micro, защото исках джойстика, а библиотеката с джойстици Arduino го поддържа. Мога също да използвам библиотеката с клавиатура 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 към USB B микро кабел (USB A е големият квадратен конектор, USB B micro е това, което е на Arduino Pro Micro)
- 1x 5 мм червен светодиод
- 1x 220 ома резистор
Имах някои допълнителни части наоколо, затова реших да направя единица за разработка, за да тествам нещата. Само свързването на нещата към макет направи по -лесно визуализирането на крайното нещо.
- 1x Arduino Pro Micro
- 4x 10k въртящи се (копчета) потенциометри (не ротационни контролери, използвайте саксии)
- 1x краткотраен превключвател с бутон (превключвател за твърдо нулиране)
- 1x USB A към USB B микро кабел (USB A е големият квадратен конектор, USB B micro е това, което е на Arduino Pro Micro)
- различни джъмперни проводници
- макет
- 1x 5 мм червен светодиод
-
1x 220 ома резистор
Стъпка 2: Приложението
Дизайнът
Харесах някои от другите дизайни, профилирани в галерията на общността на deej, така че на базата на моите характеристики, които ми харесаха:
- Лесен за проектиране и печат
- Не пречи на другите ми настолни периферни устройства
- Не използвайте винтове или крепежни елементи за закрепване на корпуса
- Подобен дизайн на клавиатурата
Проектирах и отпечатах два прототипа, преди да се спра на този окончателен дизайн. Харесва ми да имам физическа версия, с която да играя в пространството, в което го използвам, тъй като ми дава по -добро усещане за това как ще работи крайният обект.
Започнах за кратко да проектирам във Fusion360, но не го познавам толкова добре, колкото Tinkercad, така че превключих и работех там.
Тъй като исках безвинтов дизайн, създадох кутия за гнездене. Първият прототип имаше тънък капак и дълбока кутия за всичко. Вторият дизайн го размени с дълбок капак и кутия с плитко дъно. Трябваше само да държи Arduino Pro Mini, така че наистина не трябваше да е голям. Включени също релефни икони.
Третият дизайн беше преоразмерен, за да пасне на мястото до клавиатурата ми.
Печатът
Отпечатах кутията в PLA, програмирайки смяна на нишки / слоеве от черно на червено за капака, където иконите просто ще започнат да се виждат, и отново обратно на черно за останалата част от капака.
Проблем
През цялото това време монтирането на джойстика беше проблем. Дори в третия дизайн, пръчката се удря в стойките на едно място. Следващата итерация ще има по -добри хлабини. Можех да работя повече върху дизайна, но исках да премина към следващата фаза, инсталация.
Стъпка 3: Веригата
Най -лошата работа с окабеляване досега
Добре, това е първият ми пълен проект на Arduino. Да, правел съм неща на макети и преди и използвам такъв за изграждане на версията за развитие на това, но що се отнася до всъщност изработката и сглобяването, това е първото ми. Така че окабеляването ми изглежда като глупост. Ето, това не е на пътя:)
Актуализация: Оттогава изградих още една и окабеляването там е много по -хубаво. Вижте снимките:)
Производствена единица - Какво отива къде
Arduino Pro Micro е малка дъска и ще се побере в формованата секция в основата. Копчетата и джойстика се вписват в съответните им отвори в капака. Но не монтирайте нищо, докато не получите конкуренцията за запояване.
Електрически инсталации
Нямах подходящ проводник, но имах остатъчен ролка от твърдо-ядрен мрежов кабел cat5, така че използвах това. Той е малко по -твърд и може би по -чуплив от многожилния проводник, но работи.
Поставяйки компонентите приблизително на тяхното крайно положение за монтиране, изчислих разстоянието за всеки проводник, добавих още малко за отпускане и т.н., след което отрязах и подрязах жицата. Оставих много хлабаво.
Позовавайки се на схемата на свързване, проверих общите точки (черно) и VCC (червено) до копчетата и джойстика, където е посочено. Тъй като мрежовият кабел не се предлага в тези цветове, аз просто избрах цвят и запазих кабелите си в съответствие с функцията.
Индивидуалният пот. аналогови линии (жълто) преминават към пинове A0 - A3. Линиите на джойстика (оранжево), също аналогови, преминаха към I/O пинове 8 и 9. Те ще трябва да бъдат обозначени като аналогови в кода на Arduino като A8 и A9.
Щифтът за превключване на джойстика (син) премина към щифт 7. Това ще бъде цифров извод в кода.
Изолация
Тъй като тази твърда жица ще бъде натъпкана в малко пространство, реших да изолирам връзките си за спойка със здравословна капка топло лепило. След това поставих всичко на място и пуснах прост тест на дъската и саксиите, използвайки версията на примерния код на Arduino AnalogInput - променен, за да прочете всички тенджери.
Втора версия
Последните две изображения по -горе показват следващата кутия, която изграждам. Този ще има 5 копчета и един моментен бутон за заглушаване. Без джойстик. Кутия със същия размер.
Стъпка 4: Завършване на хардуера
Когато инсталирах джойстика, осъзнах, че няма много свободно пространство между дъската и щифтовете, останали на Pro Micro.
След малко внимателно огъване на щифтовете и повторно нанасяне на топло лепило (за изолация), корпусът се затвори правилно.
Инсталирането на саксиите мина без проблеми.
Отново с проводниците
Твърдите жици са малко твърди и могат да бъдат крехки, ако се огъват твърде много пъти, така че внимателно ги сгънете (без остри ъгли) в наличното пространство. Някои от моите бяха твърде дълги и изискваха допълнително сгъване.
След като всичко е прибрано на място, просто поставете основата върху горната част и трябва да приключите с хардуера….
Но чакайте, има още
Разбира се, след няколко седмици употреба реших, че имам нужда от индикатор, който да ме уведоми какво е състоянието на функцията MUTE с меко кодиране.
След редактиране на кода за добавяне на LED функционалност (вижте следващия раздел), бързо запоявах LED / проводниците / резистора и ги свързах към платката.
Прекарах повече време за пробиване на дупката през горната част на кутията, тъй като не исках да помрача горния завършек. Маркирах централно място, напуках го, след това ръчно завъртях свредло, за да направя дупката.
Допълнително внимателно изпиляване почисти дупката и осигури хубаво плътно притискане, за да се гарантира, че светодиодът не стърчи твърде далеч над горната повърхност.
Стъпка 5: Софтуерът
Общ преглед
Така че, това е процес от две части.
- Разберете и разберете как работи Deej и редактирайте файла Config.yaml
- Редактирайте кода на Arduino, за да съответства на желания хардуер и функции
- Вземете библиотеката на джойстика Arduino
В моя случай исках тези функции:
- Копчета, които контролират нивата (микрофон и изход)
- Превключвател за изключване на звука
- 2 -осен джойстик, разпознат от Windows за използване от приложения
Нива
Deej почти се грижи за първата точка, която идва. Не оправих тази функционалност
Превключвател за изключване на звука
Рано бях решил, че ще използвам натискането/превключвателя в джойстика като функционален бутон за изключване на звука.
Когато разгледате кода, ще видите, че съм избрал (първоначално) да използвам „меко“заглушаване - когато бутонът е натиснат, силата на звука на MIC се намалява до нула (и светодиодът свети). Когато се натисне отново, силата на звука на MIC се връща към предишната си настройка и светодиодът изгасва.
В крайна сметка ще гледам да внедря библиотеката на клавиатурата Arduino, за да превключвам състоянието на заглушаване чрез набора от кодове на клавиатурата с разширена медия.
Изпълнение на джойстика
Това изисква използването на библиотеката на джойстика Arduino, за да се гарантира, че джойстикът е разпознат като HID устройство от Windows и следователно от всяка игра/приложение.
Аз съм малко лош, когато става въпрос за кодиране и открих, че документацията на библиотеката на джойстика е малко оскъдна от действителната страна на внедряване - но малко съсредоточено гугъл ме доведе до други примери, които ми помогнаха да разбера какво се случва. Проверете раздела ресурси в края за подробности.
Всичко, което трябваше да направя, е да идентифицирам X/Y щифтовете, да прочета състоянието им и да изпратя това в библиотеката на джойстика. Arduino се появи като Леонардо за Windows и беше правилно конфигуриран като устройство с джойстик.
Успях да го настроя в Elite Dangerous, заедно със съществуващата си настройка на HOTAS и да накарам джойстика правилно да контролира нещата и да не противоречи на HOTAS. Той също така работи добре в Star Wars: Squadrons - Имам го зададен като бърз превключвател за настройка на щитовете по време на битка.
Файловете, които работят с моята настройка на джойстика
Качих текущите си файлове (октомври 2020 г.) в Codepile.
- Код на Arduino (.ino файл)
- Deej config.yaml
Стъпка 6: Край
Е, този е свършен. Работи и съм доста доволен от това как се събра. И научих малко повече за хардуерния дизайн, интеграцията и програмирането на Arduino.
Стъпка 7: Допълнение..дум..дум
VLC - този страхотен аудио и видео плейър има малка странност, при която нивото на силата на звука, когато се управлява отвън, скача от 0% на 27%. Това не се случва, когато регулирате нивото с помощта на контрола за силата на звука в интерфейса на приложението, само с външни контроли като Deej.
Разработчикът на Deej бързо намери in-VLC заобиколно решение, което върши работата, вижте изображението по-горе:
"… ако искате да деактивирате това" проследяване ", можете да го направите, като промените аудио изходния модул на VLC. Използвах DirectX в опитите си тук. Ще трябва да рестартирате VLC, за да влезе в сила промяната. да имате аудио сесия на windows и да можете да я контролирате чрез deej, това просто ще попречи на лентата за сила на звука на VLC да се движи с нея)"
Стъпка 8: Допълнителни ресурси
Намерено чрез могъщия Goog, изброено в неподходящ ред …
- Arduino Joystick Library (v2) - необходимо за интегриране на джойстика
- Ръководство за свързване на Sparkfun Pro Micro - добър ресурс за този Arduino
- deej - софтуерът, който задвижва копчетата
- Видове USB конектори - кой знаеше, че има толкова много варианти?
- Микро аналогови изводи Arduino Pro
- Arduino Leonardo Gaming Joystick - Leonardo е подобен на Pro Micro, само по -голям
- Arduino Pro Micro (Clone) порт не е открит (решение) - когато тухлите вашия Pro Micro (аз го направих)
- Arduino Leonardo/Micro като игрален контролер/джойстик
- Пример за използване на мултимедиен ключ за заглушаване - използване на библиотеката HID Project
- Примерен код на библиотека HID Project за пауза / възпроизвеждане на медия
- Друг пример за код, показващ контролера на геймпада.
- ArduinoGamingController_updated - добро кодово описание на използването на библиотеката с джойстик
- LED Resistor калкулатор нещо - за да разберете колко голям резистор ще ви трябва във вашия проект
- Библиотека с икони - flaticon.com - източник на изображенията, използвани над копчетата
- Друг резисторен цветен декодер - кликнете върху цвят и виола!
Препоръчано:
Deej Box - 5 плъзгача: 8 стъпки (със снимки)
Deej Box - 5 плъзгача: Това е моето възприемане на проекта Deej, който ви позволява да контролирате индивидуално обемите на компютърните програми и се конфигурира напълно лесно за индивидуалните нужди. Моят дизайн включва 5 плъзгача с магнитни, сменяеми значки за идентифициране на всеки плъзгач. Това е кон
Sonoff Basic Wifi Extender - MQTT реле за сух контакт - 5v DC ниско напрежение: 6 стъпки
Sonoff Basic Wifi Extender - MQTT Dry Contact Relay - 5v DC Low Voltage: Добре, имах първо поколение базови устройства Sonoff и не искам да ги използвам с 220v, тъй като още не бяха наистина безопасни в тази версия. Те бяха лежали известно време и чакаха да направят нещо с тях, така че попаднах на мартин-гер
Играчка Microbit Gun Light Sound Thing Toy: 5 стъпки
Играчка Microbit Gun Light Sound Thing Toy: Това е просто играчка, направена, за да опитам да използвам моите компоненти и материал, както и да играя и да надраскам сърбежа си, че трябва да направя нещо. Тъй като е предназначена за играчка, не направих така, че да изглежда реалистично, а направих просто, за да имам общото
Soundtastic MP3 Sound Box: 5 стъпки
Soundtastic MP3 Sound Box: Това устройство ще ви позволи да възпроизвеждате няколко MP3 файла с натискане на бутон. Огнището на системата е Lilypad MP3 платка с вграден контролер Atmel и чип за MP3 декодер Устройството има 5 бутона и кодиращ номер за да изберете между severa
3.5mm 5.1 Surround Sound Switch / Splitter Box: 5 стъпки
3.5mm 5.1 Surround Sound Switch / Splitter Box: Имах проблем, който се нуждаеше от решаване. Току -що си купих монитор Dell 2709w, който приема DVI и има 5.1 изход, използвайки стандартното PC решение от три 3.5 мм жака, оцветени в зелено, оранжево и Черен. Бях свързал моя Xbox 360 през HDMI към монитора