Съдържание:
- Стъпка 1: Подготовка
- Стъпка 2: Проектирайте оформлението на кутията
- Стъпка 3: Измерете и пробийте
- Стъпка 4: Поставете бутоните, ротарите и превключвателите
- Стъпка 5: Проектирайте схемата на окабеляване
- Стъпка 6: Запояване
- Стъпка 7: Написване на кода
- Стъпка 8: Добавете към вашата платформа
Видео: Sim Racing Button Box: 8 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Добре дошли наркомани от sim racing!
Изчерпвате ли ключови връзки, за да картографирате всички контроли на колата си? Вероятно имате нужда от кутия за копчета! В този Instructable ще създадем такъв от нулата. Кутията с бутони ще има 32 (!) Налични състояния на бутони. Не се изисква допълнителен софтуер, за да използвате това поле с бутони. Ще научите как да настроите матрица с бутони и да напишете (или копирате) код, който да качите на вашия Arduino.
Важно е да знаете, че полето с бутони не поддържа много едновременно натиснати бутони.
Да започваме!
Стъпка 1: Подготовка
Ще ви трябват някои инструменти, бутони и още елементи, за да създадете полето с бутони. Чувствайте се свободни да създадете полето с бутони по ваше желание.
Електроника:
- Бутони
- Превключва
- Ротационни енкодери
- Arduino Pro Micro
- Мини USB към USB кабел
- Проводници
Инструменти:
- Пробивна машина
- Припой
- Дебеломер
- Отвертки
- Фреза
- Гаечен ключ
Софтуер:
- Arduino IDE
- Photoshop/Paint (по избор; може да се рисува на ръка)
Други:
- Корпус (кутия; може да бъде закупен или персонализиран 3D отпечатан)
- Въглеродна винилова обвивка (по избор)
- Копчета за въртящ се енкодер
- Капаци на превключвателите (по избор)
- Принтер за етикети (по избор)
- Гумена втулка
След като имате всички (или достатъчно, за да започнете) елементи, можем да започнем да проектираме оформлението на полето с бутони.
Стъпка 2: Проектирайте оформлението на кутията
Инструменти, необходими за тази стъпка:
Photoshop/Paint (по избор; може да се рисува на ръка)
Дизайнът на кутия с бутони може да бъде различен за всеки. Въпреки това, за този Instructable ще използваме оформление, което се състои от:
- 4x трипътни превключватели
- 2x еднопосочни превключватели
- 10x прости бутони
- 4x въртящ се енкодер с прост бутон
Трипътни превключватели:
Има много видове превключватели. Някои са моментни, а други остават на място, докато не се върнат обратно. От вас зависи кой тип да използвате, но съветвам да използвате моментни превключватели, тъй като това поле с бутони не може да има много активни бутони едновременно. Тъй като превключвателите са трипътни (включване/изключване/включване), имаме осем (4x2) бутона на разположение.
Еднопосочни превключватели:
Те могат да се разглеждат като прости бутони (изключване/включване). Те също могат да бъдат моментни или превключващи. Отново, до лични предпочитания кой да изберем. Те ни дават два (2) налични бутона.
Прости бутони:
Бутони като тези могат да се използват, като просто ги натиснете (изключване/включване). Това ще ни даде десет (10) бутона.
Ротационни енкодери с прост бутон:
Повечето (ако не всички) въртящи се енкодери могат да се обръщат безкрайно в двете посоки. Всеки път, когато ги завъртите в посока, тя се използва като натискане на бутон. Тези въртящи се енкодери също могат да бъдат натиснати, като им се даде друг бутон. Ротационните енкодери дават дванадесет (12 = 4x3; завъртане наляво/завъртане надясно/натискане) бутони.
32 бутона:
Като ги съберем заедно, получаваме 32 (8+2+10+12) натискания на бутони!
Доволни ли сте от оформлението? Време е да започнете строителството!
Стъпка 3: Измерете и пробийте
Инструменти, необходими за тази стъпка:
- Дебеломер
- Пробивна машина
- Електроника (бутони, ключове и др.)
Измерете всички бутони, които искате да добавите към полето за бутони. Ако имате проблеми с намирането на размерите на вашата електроника, използвайте (цифров) шублер, за да получите диаметъра им.
Маркирайте централните точки на електрониката на лицевата страна на вашия корпус и пробийте дупки с правилните размери. Искате ли да направите заграждението малко по -естетично? Изчакайте с поставянето на бутоните!
След като приключите с пробиването на дупките, можем да го направим да изглежда като истинска кутия с копчета!
Стъпка 4: Поставете бутоните, ротарите и превключвателите
Инструменти, необходими за тази стъпка:
- Електроника (бутони, ключове и др.)
- Гаечен ключ
- Въглеродна винилова обвивка (по избор)
- Фреза (по избор)
Цялата ви електроника трябва да идва с гайка, която да я завинтва на място. Ако не; измерете ги и закупете гайката с правилния размер.
Ако искате да подобрите (лично мнение) външния вид на кутията с копчета, можете да използвате винилова обвивка от въглеродни влакна. Изрежете го до размера (и малко по -голям) на лицето на заграждението, в което сте пробили отворите. Нанесете винила и го увийте около ъглите към гърба. Това ще гарантира, че обвивката остава на място, когато заграждението е затворено. Излишният винил, който сега блокира отворите, може да бъде отстранен с помощта на фреза.
След като сте сложили обвивката (или не), можете да се поберете в електрониката, за да създадете предната част на кутията с бутони. Вече трябва да имате нещо, което вече наистина прилича на такова! За съжаление все още не работи …
Стъпка 5: Проектирайте схемата на окабеляване
Инструменти, необходими за тази стъпка:
Photoshop/Paint (по избор; може да се рисува на ръка)
Създаване на матрица:
Използването на матрица ще ни спести време и много ненужно окабеляване и запояване. Аз самият няма да навлизам в подробности, но ще ви предложа да разгледате тази статия, ако не сте запознати с концепцията за матрица.
Проектирайте своя собствена матрица или използвайте оформлението от тази инструкция. В матрицата ще използваме пет групи. Групите са свързани със следните пинаути на Arduino:
- 15: четири въртящи се енкодера
- A0: пет бутона
- A1: два трипосочни превключвателя и един бутон
- A2: два трипосочни превключвателя и един бутон
- A3: пет бутона за натискане
Стъпка 6: Запояване
Инструменти, необходими за тази стъпка:
- Поялник
- Припой
- Електроника (монтирана на вашия корпус)
- Arduino Pro Micro
- Проводници
По избор:
Качете първо кода от следващата стъпка, ако се притеснявате за запояване. Това ще ви позволи да проверите връзките си
Искаме да приложим матрицата, проектирана в предишната стъпка, към действителната кутия с бутони. Отделете малко време за това, особено ако за първи път запоявате.
Някои съвети:
- Направете една група навреме
- Свържете Arduino към компютъра си, за да тествате от време на време
- Не загрявайте твърде много пластмасовите бутони, тъй като те могат да се стопят и да прекъснат връзките
- Не използвайте твърде много спойка, по -малко е по -добре
- Използвайте различни цветни проводници за всяка група/маса
Стъпка 7: Написване на кода
Инструменти, необходими за тази стъпка:
- Arduino IDE
- Библиотека с джойстик
- Keypad.h (Arduino IDE> Sketch> Include Library> Manage Libraries …> Search for Keypad and install the one that is created by Mark Stanley and Alexander Brevig)
#включи #включи
#define ENABLE_PULLUPS
#дефинирайте NUMROTARIES 4 #дефинирайте NUMBUTTONS 24 #дефинирайте NUMROWS 5 #дефинирайте NUMCOLS 5
байтови бутони [NUMROWS] [NUMCOLS] = {
{0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}, {10, 11, 12, 13, 14}, {15, 16, 17, 18, 19}, {20, 21, 22, 23}, };
struct rotariesdef {
байт pin1; байт pin2; int ccwchar; int cwchar; променливо неподписано char състояние; };
rotariesdef ротари [NUMROTARIES] {
{0, 1, 24, 25, 0}, {2, 3, 26, 27, 0}, {4, 5, 28, 29, 0}, {6, 7, 30, 31, 0}, };
#дефинирайте DIR_CCW 0x10
#дефинирайте DIR_CW 0x20 #дефинирайте R_START 0x0
#ifdef HALF_STEP
#define R_CCW_BEGIN 0x1 #define R_CW_BEGIN 0x2 #define R_START_M 0x3 #define R_CW_BEGIN_M 0x4 #define R_CCW_BEGIN_M 0x5 const unsigned char ttable [6] [4_ RC, RG, RG, R_CCW_BEGIN {R_START_M | DIR_CCW, R_START, R_CCW_BEGIN, R_START}, // R_CW_BEGIN {R_START_M | DIR_CW, R_CW_BEGIN, R_START, R_START}, // R_START_M (11) {R_START_M, R_CCW_BEGIN_M, R_CW_BEGIN_M, R_START}, // R_CW_BEGIN_M {R_START_M, R_ST_M DIR_CW}, // R_CCW_BEGIN_M {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW},}; #else #define R_CW_FINAL 0x1 #define R_CW_BEGIN 0x2 #define R_CW_NEXT 0x3 #define R_CCW_BEGIN 0x4 #define R_CCW_FINAL 0x5 #define R_CCW_NEXT 0x6
const unsigned char ttable [7] [4] = {
// R_START {R_START, R_CW_BEGIN, R_CCW_BEGIN, R_START}, // R_CW_FINAL {R_CW_NEXT, R_START, R_CW_FINAL, R_START | DIR_CW} // R_CW_BEGIN {R_CW_NEXT, R_CW_BEGIN, R_START, R_START} // R_CW_NEXT {R_CW_NEXT, R_CW_BEGIN, R_CW_FINAL, R_START} // R_CCW_BEGIN {R_CCW_NEXT, R_START, R_CCW_BEGIN, R_START} // R_CCW_FINAL {R_CCW_NEXT, R_CCW_FINAL, R_START, R_START | DIR_CCW}, // R_CCW_NEXT {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START},}; #endif
байт rowPins [NUMROWS] = {21, 20, 19, 18, 15};
байт colPins [NUMCOLS] = {14, 16, 10, 9, 8};
Клавиатура buttbx = клавиатура (makeKeymap (бутони), rowPins, colPins, NUMROWS, NUMCOLS);
Джойстик_ Джойстик (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, false, false, false, false, false, false, false, false, false, false, false);
void setup () {
Joystick.begin (); rotary_init ();}
void loop () {
CheckAllEncoders ();
CheckAllButtons ();
}
void CheckAllButtons (void) {
if (buttbx.getKeys ()) {for (int i = 0; i
void rotary_init () {
за (int i = 0; i
unsigned char rotary_process (int _i) {
unsigned char pinstate = (digitalRead (ротарии [_i].pin2) << 1) | digitalRead (ротари [_i].pin1); rotaries [_i].state = ttable [rotaries [_i].state & 0xf] [pinstate]; return (ротари [_i].state & 0x30); }
void CheckAllEncoders (void) {for (int i = 0; i <NUMROTARIES; i ++) {
неподписан знак резултат = ротационен_процес (i); if (резултат == DIR_CCW) {Joystick.setButton (ротации .ccwchar, 1); забавяне (50); Joystick.setButton (ротари .ccwchar, 0); }; if (резултат == DIR_CW) {Joystick.setButton (ротации .cwchar, 1); забавяне (50); Joystick.setButton (ротари .cwchar, 0); }; }}
- Свържете вашия Arduino Pro Micro към компютъра, като включите USB кабела
- За да качите кода, изберете типа Arduino, като отидете в Tools> Board:…> Arduino/Genuino Micro.
- За да изберете правилния USB порт, отидете на Инструменти> Порт:> COM x (Arduino/Genuino Micro)
- Проверете скицата, като щракнете върху ✓ в горния ляв ъгъл (под Файл)
- Натиснете → до него, за да го качите в Arduino
Стъпка 8: Добавете към вашата платформа
Честито! Стигнахте толкова далеч. Сега е време да се състезавате!
Препоръчано:
Първи стъпки във FPV Drone Racing: 11 стъпки
Първи стъпки във FPV Drone Racing: FPV Drone Racing има много различни видове. Има закрит, известен също като Tiny Whoop racing, който използва четворки, които са под 50 грама, не са по -големи от 50 мм подпори, имат канали и почти винаги се изпълняват на 1 секунди на закрито. След това има по -големият клас, който
DIY Sim Racing Display Arduino: 3 стъпки
DIY Sim Racing Display Arduino: Ето как да изградите много лесен и евтин USB дисплей Sim Racing с Arduino UNO и 3,5 " TFT дисплей. Той има API за Assetto Corsa, който взема данните от споделената памет на играта, програмирана в C# във Visual Studio, след което изпраща
Sim Racing Button Box: 7 стъпки (със снимки)
Sim Racing Button Box: Бутонът с бутони е устройство, използвано в Sim Racing, което ви позволява да присвоявате бутони, превключватели и копчета към различни контроли на автомобила. Обичайните назначения на бутони са неща като бутон за стартиране, PTT, заявка и т.н. Превключвателите за превключване работят чудесно за чистачки, headl
Juke Box за много младите Aka Raspi-Music-Box: 5 стъпки
Juke Box за много младите … Aka Raspi-Music-Box: Вдъхновен от инструктирания " Raspberry-Pi-based-RFID-Music-Robot " описвайки музикален плейър, изграден от ROALDH за неговото 3-годишно дете, реших да построя джук кутия за още по-малките си деца. Това е основно кутия с 16 бутона и Raspi 2 i
Box Box Aux в Mod: 5 стъпки (със снимки)
Boom Box Aux в режим Mod: Ще модифицираме стара бум кутия (AM/FM/CD/Tape), за да добавим aux в кабел, за да можем да свържем iPod или телефон към него. Използвам бум кутия Koss HG835, която намерих в магазин за спестявания за 15 долара. Когато приключим, той ще може да играе от aux в