Оглавление:
- Шаг 1. Припаяйте разъемы контактов к дополнительным портам ввода-вывода Arduino
- Шаг 2. Добавьте библиотеку джойстиков Arduino в свою среду IDE
- Шаг 3: прошейте код на Arduino
- Шаг 4: проводка
- Шаг 5: привяжите приемник
- Шаг 6: адаптируйте код к вашим обстоятельствам
- Шаг 7: откалибруйте эмулируемый джойстик
Видео: Мост R / C - USB: 7 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Преобразует сигналы PPM от радиоприемника в положения джойстика
Используйте его, чтобы играть в свои любимые игры и симуляторы полета с радиопередатчиком R / C. В этом руководстве используется Arduino от littleBits и приемник DSMX, а также простой фрагмент кода для выполнения этого преобразования.
Тебе понадобится
- Власть
- Ардуино
- USB-кабели
- штыревые заголовки
- перемычка
- радиоприемник с выходом PPM.
Шаг 1. Припаяйте разъемы контактов к дополнительным портам ввода-вывода Arduino
Чтобы запитать приемник (RX), к Arduino необходимо добавить штыревые заголовки. Это также значительно упростит проводку между битом и приемником. См. Http://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit для получения дополнительной информации.
Шаг 2. Добавьте библиотеку джойстиков Arduino в свою среду IDE
Вы можете найти библиотеку на GitHub, https://github.com/MHeironimus/ArduinoJoystickLib … Спасибо, Мэтью Хейрономус, за ее написание.
Только некоторые Arduinos могут эмулировать HID, как джойстик. Поскольку микроконтроллер littleBits - это в глубине души Arduino Leonardo, вам хорошо.
Шаг 3: прошейте код на Arduino
#include #define inputPin 16 # define каналы 4 #define lo 800 // настроить на вывод RX #define hi 1600 // настроить на вывод RX # определить фильтр 10int channel [каналы]; int previousValue [каналы]; int counter = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, true, true, false, false, false, false, true, true, false, false, false); void setup () {Joystick.setXAxisRange (lo, Привет); Joystick.setYAxisRange (lo, hi); Joystick.setThrottleRange (lo, hi); Joystick.setRudderRange (lo, hi); Joystick.begin (); Serial.begin (9600); pinMode (inputPin, ВХОД); } void loop () {if (pulseIn (inputPin, HIGH)> 3000) {для (int i = 0; i <= каналы-1; i ++) {channel = pulseIn (inputPin, HIGH); } for (int i = 0; i <= channels-1; i ++) {if ((channel > 2000) || (channel <500)) {channel = previousValue ; } еще {канал [я] = (предыдущее значение [я] + канал [я]) / 2; счетчик ++; }} Joystick.setXAxis (канал [0]); Joystick.setYAxis (канал [1]); Joystick.setThrottle (канал [2]); Joystick.setRudder (канал [3]); } если (счетчик> фильтр) {для (int я = 0; я <= каналы-1; я ++) {Serial.print ("канал"); Serial.print (i + 1); Serial.print (":"); Serial.println (канал ); previousValue = канал ; } counter = 0; }}
Имейте в виду, что код, который связывает сигнал R / C и эмулируемый USB HID, имеет простейшую форму. Используемая здесь функция - pulseIn - является функцией блокировки. Прочтите здесь и здесь, как реализовать неблокирующий подход с использованием прерываний.
Шаг 4: проводка
Подключите перемычку / кабели DuPont между битом и приемником. Разъемы на концах этих кабелей должны быть охватывающими. Мы подключаем GND (синий), VCC (коричневый) и сигнал (оранжевый) от порта PPM RX к GND, VCC и d16 на Arduino.
Шаг 5: привяжите приемник
Отключите Arduino от питания. Поместите обвязку в место разъема, помеченное BIND на приемнике. Включите радиопередатчик и переключите его в режим привязки. Затем подайте питание на Arduino. Процесс привязки был успешным, когда на приемнике загорелся светодиод.
Шаг 6: адаптируйте код к вашим обстоятельствам
Константы hi и lo в эскизе Arduino необходимо изменить, чтобы они отражали фактический выходной сигнал используемого вами приемника.
#define lo 800
#define привет 1600
Сигналы внутри импульса PPM в идеале находятся в диапазоне от 1000 до 2000 мкс. RX, используемый в этой инструкции, выдает значения примерно от 800 до 1600 и немного отличается на каждом канале. Чтобы узнать, какой диапазон имеет ваш приемник, откройте Serial Monitor в Arduino IDE, чтобы увидеть выходные данные вашего RX. Это будет выглядеть примерно так:
канал 1: 728
канал 2: 729 канал 3: 703 канал 4: 726 канал 1: 1681 канал 2: 1639 канал 3: 1613 канал 4: 1676
Как только у вас будет более четкое представление о диапазоне, который выдает ваш RX, выберите хорошие приближения для hi и lo и соответственно измените константы. Затем снова загрузите скетч в Arduino.
Шаг 7: откалибруйте эмулируемый джойстик
Подключите устройство к компьютеру и используйте функцию калибровки вашей ОС, чтобы откалибровать эмулируемый джойстик. Хороший инструмент для Linux - jstest-gtk.
Дальнейшие улучшения
- Напишите неблокирующий код (см. Шаг 3)
- Установите диапазоны для каждого канала, а не глобально (см. Шаг 6)
дальнейшее чтение
- Редкон CM703
- PPM
Рекомендуемые:
Дешевый концентратор NMEA / AIS - мост RS232 к Wi-Fi для использования на борту: 6 шагов
Дешевый концентратор NMEA / AIS - мост RS232 к Wi-Fi для использования на борту: обновление от 9 января 2021 года - добавлено дополнительное TCP-соединение и повторное использование последнего соединения, если подключается больше клиентов. Обновление 13 декабря 2020 года - добавлена версия кода без конфигурации для лодок с существующими маршрутизаторами. Мост от AIS RS232 к WiFi
Создайте интерактивный мост Rainbow с помощью Minecraft Raspberry Pi Edition: 11 шагов
Создайте интерактивный мост Rainbow с помощью Minecraft Raspberry Pi Edition: вчера я увидел, как мой 8-летний племянник играет в Minecraft с помощью Raspberry Pi, который я дал ему раньше, тогда у меня появилась идея, которая использует код для создания настраиваемого и захватывающего Minecraft- Пи светодиодные блоки проект. Minecraft Pi - отличный способ начать
Как сделать H-образный мост: 15 шагов
Как сделать H-мост: H-мост - это тип схемы, которую вы можете использовать, чтобы заставить реверсивный двигатель постоянного тока вращаться как по часовой стрелке, так и против часовой стрелки. Другими словами, эта схема позволяет вам быстро изменить направление вращения двигателя. вращение с помощью переключателя или контроллера c
Wi-Fi-мост корпоративной сети Raspberry Pi: 9 шагов
Raspberry Pi Enterprise Network WiFi Bridge: Авторы: Райли Барретт и Дилан Халланд Цель этого проекта - позволить устройству IoT, например Weemo Smart Plug, Amazon Echo, игровой консоли или любому другому устройству с поддержкой Wi-Fi, подключаться к WPA_EAP Enterprise Network с использованием Raspberry Pi Zero
Мост мерцающих свечей: 6 шагов (с изображениями)
Мерцающий свечной мост: в этом руководстве показано, как превратить простой свечной мост со статическим светом в красивый светящийся свет настроения с бесконечными вариациями мерцающих огней, мерцания, волновых узоров и многого другого. Я купил в «После Рождества» мост для свечей за 8