Мазмуну:

Sim Racing Button Box: 8 кадам
Sim Racing Button Box: 8 кадам

Video: Sim Racing Button Box: 8 кадам

Video: Sim Racing Button Box: 8 кадам
Video: The Driver driving power tiller Skill | Difficult control of the tiller achieved by skilled drivers 2024, Ноябрь
Anonim
Sim Racing Button Box
Sim Racing Button Box

Кош келиңиз сим жарыш көз карандылар!

Машинаңыздын бардык башкаруу элементтерин картага түшүрүү үчүн клавишаларыңыз түгөнүп баратабы? Кыязы, сизге топчу куту керек! Бул Нускамада биз нөлдөн баштап бирин түзөбүз. Баскыч кутучасында 32 (!) Жеткиликтүү баскыч абалы болот. Бул баскыч кутучаны колдонуу үчүн эч кандай кошумча программа талап кылынбайт. Сиз баскыч матрицасын орнотууну жана Arduinoго жүктөө үчүн кодду жазууну (же көчүрүүнү) үйрөнөсүз.

Бул баскыч кутусу бир убакта басылган көп баскычтарды колдобой турганын билүү маанилүү.

Кел, баштайлы!

1 -кадам: даярдык

Preperation
Preperation

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

Электроника:

  • Баскычтар
  • Өчөт / өчүрөт
  • Ротари коддогучтар
  • Arduino Pro Micro
  • Mini USBден USB кабелине
  • Зымдар

Куралдар:

  • Бургулоо
  • Solder
  • Caliper
  • Бурамалар
  • Cutter
  • Wrench

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

  • Arduino IDE
  • Photoshop/Paint (милдеттүү эмес; кол менен тартса болот)

Башка:

  • Корпус (кутуча; сатып алса болот же колдонуучуну 3D басып чыгарса болот)
  • Карбон винил пленкасы (милдеттүү эмес)
  • Ротари коддогуч баскычтары
  • Капкактарды алмаштыруу (милдеттүү эмес)
  • Этикетка принтери (милдеттүү эмес)
  • Резина капкак

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

2 -кадам: Кутунун жайгашуусун иштеп чыгуу

Бул кадам үчүн керектүү шаймандар:

Photoshop/Paint (милдеттүү эмес; кол менен тартса болот)

Баскыч кутучасынын дизайны ар ким үчүн ар кандай болушу мүмкүн. Бирок, бул Нускамалык үчүн биз төмөнкүлөрдөн турган макетти колдонобуз:

  • 4x үч тараптуу которгучтар
  • 2x бир тараптуу которгучтар
  • 10x жөнөкөй баскычтар
  • Жөнөкөй баскычы бар 4x айлануучу кодер

Үч тараптуу которгучтар:

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

Бир жол менен которуштуруу:

Бул жөнөкөй баскычтар (өчүрүү/күйгүзүү) катары каралышы мүмкүн. Булар да убактылуу же алмаштыргыч болушу мүмкүн. Дагы, кайсынысын жеке тандооңузга жараша. Булар бизге эки (2) жеткиликтүү баскычты берет.

Жөнөкөй баскычтар:

Бул сыяктуу баскычтарды жөн эле басуу менен (өчүрүү/күйгүзүү) колдонсо болот. Булар бизге он (10) баскычты берет.

Жөнөкөй баскыч менен Rotary encoders:

Көпчүлүк (баары болбосо да) айлануучу коддогучтар эки тарапка тең чексиз бурулушу мүмкүн. Аларды бир багытка бурган сайын, ал баскычты басуу катары колдонулат. Бул айлануучу кодерлерди дагы бир баскычты басуу менен басса болот. Ротари коддогучтар он эки (12 = 4х3; солго буруу/оңго буруу/басуу) баскычтарын берет.

32 баскыч:

Алардын бардыгын бириктирүү бизге 32 (8+2+10+12) баскычтарды басууга мүмкүнчүлүк берет!

Орнотуу сизге жактыбы? Курууну баштоого убакыт келди!

3 -кадам: Ченөө жана бургулоо

Ченөө жана бургулоо
Ченөө жана бургулоо
Өлчөө жана бургулоо
Өлчөө жана бургулоо

Бул кадам үчүн керектүү шаймандар:

  • Caliper
  • Бургулоо
  • Электроника (баскычтар, өчүргүчтөр ж. Б.)

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

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

Сиз тешиктерди бургулап бүткөндөн кийин, биз аны чыныгы баскыч кутусуна окшоштура алабыз!

4 -кадам: Баскычтарды, Ротарийлерди жана которгучтарды тууралаңыз

Түймөлөрдү, Ротари жана Өчүргүчтөрдү тууралаңыз
Түймөлөрдү, Ротари жана Өчүргүчтөрдү тууралаңыз
Түймөлөрдү, Ротари жана Өчүргүчтөрдү тууралаңыз
Түймөлөрдү, Ротари жана Өчүргүчтөрдү тууралаңыз

Бул кадам үчүн керектүү шаймандар:

  • Электроника (баскычтар, өчүргүчтөр ж. Б.)
  • Wrench
  • Карбон винил пленкасы (милдеттүү эмес)
  • Кесүүчү (милдеттүү эмес)

Сиздин электроникаңыздын баары аны жаңыртуу үчүн гайка менен келиши керек. Эгерде жок болсо; аларды өлчөө жана туура өлчөмдөгү гайканы сатып алуу.

Эгер сиз баскыч кутуңуздун көрүнүшүн жакшырткыңыз келсе (жеке пикир), сиз көмүр буласынан жасалган винил ороону колдоно аласыз. Аны тешик бургулаган корпустун бетинин өлчөмүнө (жана бир аз чоңураак) кесип алыңыз. Винилди сүйкөп, бурчтарга артына ороп коюңуз. Бул капкак жабылганда ороонун ордунда калуусун камсыздайт. Азыр тешиктерди тосуп турган ашыкча винилдерди кескич менен алып салса болот.

Каптама (же жок) кийип, баскыч кутуңуздун маңдайын түзүү үчүн электроникага батсаңыз болот. Сизде чындыгында окшош нерсе болушу керек! Тилекке каршы, азырынча иштебей жатат…

5 -кадам: Электр өткөргүчүнүн макетин иштеп чыгуу

Электр өткөргүчүнүн макетин иштеп чыгуу
Электр өткөргүчүнүн макетин иштеп чыгуу

Бул кадам үчүн керектүү шаймандар:

Photoshop/Paint (милдеттүү эмес; кол менен тартса болот)

Матрицаны түзүү:

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

Өзүңүздүн матрицаңызды иштеп чыгыңыз же ушул Нускамадан макетти колдонуңуз. Матрицада биз беш топту колдонобуз. Топтор Arduinoдогу төмөнкү pinouts менен байланышкан:

  • 15: төрт айлануучу кодер
  • A0: беш баскыч
  • A1: эки үч жолу которуштуруу жана бир баскыч
  • A2: эки үч жолу которуштуруу жана бир баскыч
  • A3: беш баскыч

6 -кадам: ширетүү

Soldering
Soldering
Soldering
Soldering

Бул кадам үчүн керектүү шаймандар:

  • Кандооч
  • Solder
  • Электроника (корпусуна орнотулган)
  • Arduino Pro Micro
  • Зымдар

Кошумча:

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

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

Кээ бир кеңештер:

  • Бир убакта бир группа жасаңыз
  • Кээде тестирлөө үчүн Arduino'ду компьютериңизге туташтырыңыз
  • Пластикалык кнопкаларды өтө ысытпаңыз, анткени алар эрип, байланыштарды үзүп коюшу мүмкүн
  • Көп ширетүүнү колдонбоңуз, азыраак жакшы
  • Ар бир топко/жерге ар кандай түстөгү зымдарды колдонуңуз

7 -кадам: Код жазуу

Бул кадам үчүн керектүү шаймандар:

  • Arduino IDE
  • Джойстик китепканасы
  • Keypad.h (Arduino IDE> Эскиз> Китепкананы кошуу> Китепканаларды башкаруу …> Баскычтопту издеп, Марк Стэнли жана Александр Бревиг тарабынан түзүлгөн клавиатураны орнотуу)

#кошуу #кошуу

#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 {

байт пин1; байт пин2; 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

#define DIR_CW 0x20 #define R_START 0x0

#ifdef ЖАРТЫ_КАДАМ

#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 table [6] [4] RST_ST_RIN_RIN_RIN 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_START_M | DIR_CW}, // R_CCW_BEGIN_M {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW},}; #башка #аныктоо R_CW_FINAL 0x1 #аныктоо R_CW_BEGIN 0x2 #аныктоо R_CW_NEXT 0x3 #define R_CCW_BEGIN 0x4 #аныктоо R_CCW_FINAL 0x5 #аныктоо 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, жалган, жалган, жалган, жалган, жалган, жалган, жалган, жалган, жалган);

жараксыз орнотуу () {

Joystick.begin (); rotary_init ();}

void loop () {

CheckAllEncoders ();

CheckAllButtons ();

}

жараксыз CheckAllButtons (жараксыз) {

if (buttbx.getKeys ()) {for (int i = 0; i

жараксыз rotary_init () {

үчүн (int i = 0; i

белгисиз char rotary_process (int _i) {

unsigned char pinstate = (digitalRead (rotaries [_i].pin2) << 1) | digitalRead (айлануучу [_i].pin1); ротариаттар [_i].state = ttable [rotaries [_i].state & 0xf] [pinstate]; кайтуу (ротариаттар [_i].мамлекет & 0x30); }

void CheckAllEncoders (void) {for (int i = 0; i <NUMROTARIES; i ++) {

белгисиз char жыйынтыгы = rotary_process (i); if (result == DIR_CCW) {Joystick.setButton (ротариаттар .ccwchar, 1); кечиктирүү (50); Joystick.setButton (ротариаттар .ccwchar, 0); }; if (result == DIR_CW) {Joystick.setButton (ротариаттар .cwchar, 1); кечиктирүү (50); Joystick.setButton (ротариаттар .cwchar, 0); }; }}

  1. USB кабелин туташтырып Arduino Pro Microңузду компьютериңизге туташтырыңыз
  2. Кодду жүктөө үчүн Аспаптар> Тактага өтүү менен Arduino түрүн тандаңыз:…> Arduino/Genuino Micro.
  3. Туура USB портун тандоо үчүн Tools> Port:> COM x (Arduino/Genuino Micro) бөлүмүнө өтүңүз.
  4. Эскизди текшериңиз ✓ жогорку сол бурчунда (Файлдын астында)
  5. Ардуиного жүктөө үчүн анын жанындагы → басыңыз

8 -кадам: Ригге кошуңуз

Ригге кошуу
Ригге кошуу

Куттуктайм! Сиз мынча алыска келдиңиз. Эми жарышууга убакыт келди!

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