Направьте новичка

Добрый день господа форумчане! Будьте так добры направить меня по пути изучения материалов, что бы я мог взаимодействовать с библиотекой GitHub - MHeironimus/ArduinoJoystickLibrary at version-2.0
Заранее благодарю.

Направляю: Иди с Богом и изучай!

5 лайков

Это библиотека для контроллера, непонятно как вы рассчитываете с ней взаимодействовать :slight_smile:
На самом деле, не пытайтесь говорить красиво, лучше напишите, какие у вас проблемы.

Пасиба)

А вообще надыбал в сети скетч, теперь стало чуть понятнее.

Спойлер

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,JOYSTICK_TYPE_GAMEPAD,

1, 0, // Button Count, Hat Switch Count

true, true, false, // X ,Y, no Z Axis

false, false, false, // No Rx, Ry, or Rz

true, true, // Rudder and Throttle

false, false, false); // No accelerator, brake, or steering

int button_0 = 10; // Для примера - единственная кнопка на pin10

int button_0_state = 0;

unsigned int xAxis_ = 0;

unsigned int yAxis_ = 0;

int Rudder_ = 0;

int Throttle_ = 0;

const bool initAutoSendState = true; //иначе придется обновлять состояние контроллера вручную

void setup()

{

Joystick.begin(); // инициализируем библиотеку

pinMode(button_0, INPUT); // назначаем пин 10, на котором у нас кнопка, как вход.

}

void loop()

{

button_value = digitalRead(button_0);

Joystick.setButton(0,button_value);

xAxis_ = analogRead(A0);

Joystick.setXAxis(xAxis_);

yAxis_ = analogRead(A1);

Joystick.setYAxis(yAxis_);

Throttle_ = analogRead(A2);

Joystick.setThrottle(Throttle_);

Rudder_ = analogRead(A3);

Joystick.setRudder(Rudder_);

}```

Теперь можно отключить лишнее, и добавить нужное

Спойлер
#include <Joystick.h>

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,JOYSTICK_TYPE_GAMEPAD,

4, 0, // Button Count, Hat Switch Count

false, false, false, // X ,Y, no Z Axis

false, false, false, // No Rx, Ry, or Rz

false, true, // Rudder and Throttle

false, false, false); // No accelerator, brake, or steering

int button_0 = 10; // Для примера - единственная кнопка на pin10
int button_1 = 11;
int button_2 = 12;
int button_3 = 13;

int button_0_state = 0;
int button_1_state = 0;
int button_2_state = 0;
int button_3_state = 0;

int Throttle_ = 0;

const bool initAutoSendState = true; //иначе придется обновлять состояние контроллера вручную

void setup()

{

Joystick.begin(); // инициализируем библиотеку

pinMode(button_0, INPUT); 
pinMode(button_1, INPUT);
pinMode(button_2, INPUT);
pinMode(button_3, INPUT);

}

void loop()

{

boolean button_value = digitalRead(button_0);
boolean button_value1 = digitalRead(button_1);
boolean button_value2 = digitalRead(button_2);
boolean button_value3 = digitalRead(button_3);

Joystick.setButton(0,button_value);
Joystick.setButton(0,button_value1);
Joystick.setButton(0,button_value2);
Joystick.setButton(0,button_value3);

Throttle_ = analogRead(A2);

Joystick.setThrottle(Throttle_);

}

Теперь буду ковырять как сюда подключить HAT если кто подскажет буду благодарен.

Спасибо, учту, видимо размазано задал свой вопрос.

HAT ? или NAT? к джойстику???

Хатка, если на русском, hat switch на английском. Не помню как правильно зовется модуль. Но точно не network adress translation.

Подозреваю что это он самый:

В этом я пас - впервые слышу

Если я правильно понял - просто 5 кнопок. Джойстик влево-вправо-вверх-вниз -нажатие посередине соответствует замыканию соответствующих контактов.

кнопка она и в африке кнопка, только там их аж пять на одном рычаге

нажатия посередине по факту нет. Центр нормально замкнут. (по крайней мере на игровых джойстиках.) У меня дома был какой то джойстик, разберу - посмотрю. Но при калибровке точно помню что центр без нажатия.