Jump to content

eversman0078

Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by eversman0078

  1. Maybe this new thread can be helpful for everyone who wants to build the ICP for the Viper and doesn’t have a lot of knowledge, like me, for writing code and it is a really cheap solution. This is my first thread on any forum whatsoever, so if I made some mistakes, please forgive me. Last month I bought an ICP for the Viper from Hispapanels for assembling the first part of my ‘desktop’ cockpit. In other words, I will only have the most important panels on my desk so I can cut back on the use of the mouse and keyboard. For the ICP, I followed the thread from Tekkx and Hansolo for building a matrix and using DCS-Bios, so you can spare some pins on your Arduino board. This was a really helpful thread for getting started. https://forums.eagle.ru/showthread.php?t=195285 I got all my buttons and switches working, exept the ‘dobber’ or DCS switch gave me a lot of headaches. After looking up and reading a lot of instructables, I endend up with MHeironymus joystick library. So I bought an analoge joystick (1€ in China), an Arduino pro micro(32u4 chip, 6€ for a clone) because I thought it was the easiest way of making a ‘dobber’ switch. After a lot of trial and error, I have found a quite simple solution thanks to Aldrinos for asking and MorganS for providing a working code on the Arduino forum. If you use the Arduino micro with the joystick library it will show up in windows as a game controller and you can assign any key you want for 'up-down-rtn-seq' in the controls menu in DCS. So basically it adds an extra input device, besides the keyboard and Hotas in DCS. https://forum.arduino.cc/index.php?topic=643880.0 https://github.com/MHeironimus/ArduinoJoystickLibrary I’ve added the first 4 lines myself. I believe they are necessary for the Arduino to show up in windows 10. The letters ‘h’, ’d’, …. in Keyboard.press('h'); is one of the keys I assigned in DCS control menu. This is my working code: #include <Joystick.h> #include <Keyboard.h> // Create Joystick Joystick_ Joystick; const int pinXAxis = A0; const int pinYAxis = A2; const int middleX = 512; const int middleY = 512; const int leftThreshold = middleX - 256; const int rightThreshold = middleX + 256; const int upThreshold = middleY - 256; const int downThreshold = middleY + 256; const int hysteresis = 32; void setup() { } void loop() { int rawX, rawY; rawX = analogRead(pinXAxis); rawY = analogRead(pinYAxis); if(rawX < leftThreshold - hysteresis) Keyboard.press('h'); if(rawX > leftThreshold + hysteresis) Keyboard.release('h'); if(rawX > rightThreshold + hysteresis) Keyboard.press('d'); if(rawX < rightThreshold - hysteresis) Keyboard.release('d'); if(rawY < upThreshold - hysteresis) Keyboard.press('y'); if(rawY > upThreshold + hysteresis) Keyboard.release('y'); if(rawY > downThreshold + hysteresis) Keyboard.press('r'); if(rawY < downThreshold - hysteresis) Keyboard.release('r'); }
      • 2
      • Like
      • Thanks
×
×
  • Create New...