Оглавление:

Управляйте своим радиоуправляемым самолетом с помощью акклерометра вашего телефона: 15 шагов (с изображениями)
Управляйте своим радиоуправляемым самолетом с помощью акклерометра вашего телефона: 15 шагов (с изображениями)

Видео: Управляйте своим радиоуправляемым самолетом с помощью акклерометра вашего телефона: 15 шагов (с изображениями)

Видео: Управляйте своим радиоуправляемым самолетом с помощью акклерометра вашего телефона: 15 шагов (с изображениями)
Видео: УДИВИТЕЛЬНЫЕ игрушки нового поколения для детей и взрослых 2024, Июль
Anonim
Image
Image
Управляйте своим радиоуправляемым самолетом с помощью акселерометра вашего телефона
Управляйте своим радиоуправляемым самолетом с помощью акселерометра вашего телефона

Вы когда-нибудь хотели управлять своим радиоуправляемым самолетом, наклоняя объект? У меня всегда была идея в голове, но я никогда не реализовывал ее до прошлой недели. Первоначально я думал использовать трехосный акселерометр, но потом у меня появилась идея…

У большинства из вас есть смартфоны, верно? И еще одно подавляющее большинство из вас, электронщиков, использует Android из-за его гибкости. Я имею в виду, что мне нравится iPhone, но он не так универсален в том, что касается подключения его через Bluetooth или провод к Arduino или другому микроконтроллеру. Так почему не только акселерометр телефона? Так что я взял идею и реализовал ее. Через две недели представляю вам этот проект!

Извините, пользователи iOS, этот проект предназначен только для пользователей Android.

Теперь в этом проекте нет контроля над рулем направления или дроссельной заслонкой. Если вы заметите, я добавил код для использования потенциометра на контакте A1 для управления дроссельной заслонкой, хотя сам я не буду его использовать. Я просто воспользуюсь дроссельной заслонкой своего передатчика.

Если вы хотите завершить этот проект, я предлагаю вам просмотреть все видео, прежде чем приступить к работе. Электронные навыки, необходимые для этого проекта, минимальны, но самая сложная часть - это работа с кодом. Так что берите паяльник и Arduino и приступайте.

Стоимость проекта: (бесплатно, низкая, средняя, наверху, серьезно?)

Сложность проекта: (легкий, легкий, средний, сложный, эксперт, мастер)

Время проекта: (За чашкой кофе, средний, за чашкой кофе, несколько дней)

Ниже представлен быстрый полет, который у меня был ранее, когда было немного ветрено!

Шаг 1. Посмотрите полное видео

Image
Image

Видео и текст охватывают практически одно и то же, за исключением того, что текст не включает пошаговый процесс создания корпуса проекта и подключения всего остального. В тексте содержится немного больше информации о некоторых аспектах кодирования.

Шаг 2. ВАЖНОЕ ОБНОВЛЕНИЕ [16.07.18]

Я действительно начал делать этот проект несколько лет спустя, и мне пришлось вернуться к нему, чтобы получить некоторую информацию: D

В любом случае я обнаружил, что в коде есть небольшая ошибка, и я покажу вам, как исправить это всего за несколько секунд. Если вы загрузите код, он не будет компилироваться. Вы должны войти и изменить небольшую строчку.

Когда вы компилируете, строка 20 выдает ошибку.

int ppm [chanAmount];

Просто измените его на:

int ppm [2];

И вот так! Наслаждайтесь остальной частью урока, и если вам довелось сделать этот проект, прокрутите вниз до нижней части i'ble, нажмите кнопку «Я сделал это» и загрузите изображение!

Шаг 3: Ингредиенты:

Загрузки
Загрузки

Что нужно каждому хорошему рецепту? Ингредиенты. К сожалению, вам может потребоваться пойти куда-нибудь, кроме продуктового магазина на углу.

Ингредиенты:

  • Телефон на Андроиде
  • Arduino (Uno, Nano, Micro, на самом деле не имеет значения)
  • Источник питания для Arduino. Я собираюсь использовать небольшой двухэлементный литий-полимерный аккумулятор емкостью 500 мАч.
  • Модуль Bluetooth HC-05 или HC-06
  • Плата FTDI Breakout Board (можно сделать с Arduino, но я не буду показывать вам, как)
  • 3,5-мм моно штекер аудио. Стереоразъем НЕ БУДЕТ работать! Я пробовал!
  • 2x светодиода и соответствующие резисторы
  • Приложение к проекту
  • 2-жильный провод (отлично подойдет провод динамика, или длинный USB-кабель)
  • Термоусадочная или изолента
  • Женский контактный разъем (для щита Arduino, если вы решите его сделать)
  • Плата Perf (для Arduino Shield, если вы решите ее сделать.

Инструменты:

  • Паяльник
  • Инструмент для зачистки проводов
  • Ножницы
  • Сверло с различными сверлами
  • Пистолет для горячего клея

Шаг 4. Загрузки

Если вы хотите загрузить ZIP-файл со всем, что вам понадобится для этого i'ble, вы можете найти его здесь. В противном случае читайте ниже.

Сначала вам нужно загрузить приложение Amarino и Amarino Toolkit и установить их на свой телефон. Вы можете сделать это с помощью micro SD или просто использовать свой любимый веб-сайт с файловым хостингом, например Google Drive.

Во-вторых, вам необходимо загрузить библиотеку MeetAndroid для Arduino IDE. Чтобы установить библиотеку, внимательно следуйте инструкциям.

ДЛЯ ПК:

  1. Закройте IDE Arduino.
  2. Разархивируйте папку MeetAndroid. Теперь у вас должна быть распакованная папка MeetAndroid_4. Откройте эту папку и вырежьте внутри папку под названием MeetAndroid.
  3. Перейдите в C: / Program Files (x86) Arduino / libraries и вставьте файл MeetAndroid. Если вы все сделали правильно, он должен выглядеть как первая картинка.
  4. Снова откройте Arduino IDE, и вы должны увидеть в библиотеках в разделе «Contributed» библиотеку MeetAndroid.

ДЛЯ MAC

  1. Закройте IDE Arduino.
  2. Разархивируйте папку MeetAndroid. Теперь вы должны разархивировать папку MeetAndroid_4. Откройте эту папку и скопируйте внутри папку под названием MeetAndroid.
  3. Перейдите к приложению Arduino, щелкните правой кнопкой мыши, чтобы отобразить содержимое пакета, затем Contents / Java / libraries и вставьте в папку MeetAndroid.
  4. Снова откройте Arduino IDE, и вы должны увидеть в библиотеках в разделе «Contributed» библиотеку MeetAndroid.

Наконец, загрузите оба моих эскиза Arduino, которые прикреплены к нижней части этого шага (включены в.zip).

Шаг 5: Настройка HC-06

Настройка HC-06
Настройка HC-06
Настройка HC-06
Настройка HC-06
Настройка HC-06
Настройка HC-06

Ваш модуль Bluetooth HC-06 не сразу готов к использованию в этом проекте. Нам нужно изменить всего одну простую вещь: скорость передачи данных. В зависимости от того, у кого вы покупаете свой, скорость передачи данных может быть разной. Я получил два HC-06 от двух разных продавцов, и каждый работал с разной скоростью передачи данных. Нам нужно изменить его на 115200 бит в секунду. Сделайте следующие подключения:

HC-06 ------- Коммутационная плата FTDI

| -------------- |

ЗЕМЛЯ ----- ЗЕМЛЯ

VCC ------ 3,3 В

TX -------- RX (или DRX)

RX -------- TX (или DTX)

  1. Подключите коммутационную плату FTDI к компьютеру.
  2. Откройте IDE Arduino. Выберите любой доступный com-порт. (убедитесь, что к компьютеру не подключены Arduino или что-либо еще).
  3. Откройте Serial Monitor (код не нужен!)
  4. Выберите 9600 для скорости передачи в правом нижнем углу окна связи. Наберите "AT" (это ДОЛЖНО быть заглавными буквами) и нажмите "Отправить". Если ничего не вернешь, ничего страшного. Это означает, что ваше устройство настроено на другую скорость передачи данных. Попробуйте установить скорость 115200 бод и введите "AT". Если вы по-прежнему ничего не получаете, попробуйте каждую скорость передачи и набирайте «AT» на всех, пока не получите ответ. Если вы не получили ответа, скорее всего, вы неправильно подключили HC-06. Проверить соединения.
  5. Если вы все же получите ответ «ОК», тогда отлично! Если вы получили этот ответ на любой другой скорости передачи, кроме 115200, вам необходимо изменить ее на 115200. Для этого введите «AT + BUAD8». Вы получите ответ «OK115200». Вам нужно будет изменить скорость передачи данных на 115200, чтобы продолжить разговор с Bluetooth. Затем вы можете делать такие вещи, как изменение имени, вводя случайное «AT + NAMERANDOM» в качестве имени, которое вы хотите. Теперь вы можете закрыть монитор последовательного порта.

Шаг 6: Неполная схема для тестирования

Схема эта довольно простая. Вам нужно запитать Arduino (через USB, так как нам нужно будет загрузить на него кое-что), а затем подключить HC-06. Просто подключитесь, следуя инструкциям ниже.

HC-05/6 --------- Arduino

|=============|

ЗЕМЛЯ ------------ ЗЕМЛЯ

VCC ------------- 5 В

TX -------------- RX

RX -------------- TX

Шаг 7: Установка Amarino и Amarino Toolkit

Установка Amarino и Amarino Toolkit
Установка Amarino и Amarino Toolkit
Установка Amarino и Amarino Toolkit
Установка Amarino и Amarino Toolkit
Установка Amarino и Amarino Toolkit
Установка Amarino и Amarino Toolkit

К настоящему времени вы должны были загрузить и перенести приложение и инструментарий Amarino на свой телефон. Но перед установкой вам нужно изменить настройки на вашем телефоне. Сначала ваш телефон не позволит вам установить приложение, потому что это не сертифицированное приложение из игрового магазина Android. Поэтому нам нужно будет разрешить телефону устанавливать несертифицированные приложения. Это очень просто.

  1. Перейдите в Настройки / Безопасность и прокрутите вниз. Вы должны увидеть окошко с надписью "Неизвестные источники" и маленькое окошко рядом с ним. Нажмите на поле и включите. Появится диалоговое окно с сообщением о том, насколько это рискованно; звучит хорошо, правда? Так что нажмите эту кнопку ОК. См. Рисунки 1, 2 и 3.
  2. Теперь вы можете открыть приложение Amarino и следовать инструкциям на экране. Не так уж и сложно, просто нажмите «Да».
  3. Установите Amarino Toolkit. Не так уж и сложно.

Шаг 8: настройка Bluetooth

Настройка Bluetooth
Настройка Bluetooth
Настройка Bluetooth
Настройка Bluetooth
Настройка Bluetooth
Настройка Bluetooth

Когда ваш проект включен (чип Bluetooth включен), найдите настройки Bluetooth вашего телефона. Вам необходимо выполнить сопряжение телефона с чипом Bluetooth. Коснитесь поиска устройств, и ваше устройство должно отображаться как HC-05 или HC-06, если вы не назвали его ранее. Он запросит пин-код, и это будет 1234. (Я знаю, что я гений в взломе устройства и поиске сверхсекретного пароля). См. Рисунки 1, 2 и 3. Убедитесь, что вы подключены к устройству и готовы к следующему шагу. ПРИМЕЧАНИЕ. Индикатор на устройстве Bluetooth не будет гореть непрерывно при подключении к телефону! Я обнаружил, что на моем телефоне мне пришлось перезапустить его после этого процесса, чтобы он появился в приложении Amarino, так что продолжайте и перезагружайте свой телефон.

Шаг 9: Амарино

Амарино
Амарино
Амарино
Амарино
Амарино
Амарино

Пора открыть Амарино. Вам будут представлены примечания к выпуску и нажмите OK. Спасибо Бонифазу Кауфману за создание этого замечательного приложения. Цифры ниже соответствуют номеру изображения, например. шаг 1 = изображение 1.

  1. Экран приветствия. Нажмите на «Добавить устройство».
  2. Теперь ваше устройство должно быть в списке; нажмите на него. Если он не появляется, попробуйте перезагрузить телефон и убедитесь, что устройство Bluetooth подключено к телефону.
  3. Теперь вы должны перейти к этому экрану. Нажмите на «Подключиться». Это может занять несколько секунд.
  4. Если он подключается, то индикатор на устройстве Bluetooth загорится, и вы увидите вверху «Активные подключения»: 1. Теперь нажмите на имя устройства и НЕ отключайтесь.
  5. Нажмите на «Показать события».
  6. Никаких событий быть не должно. Нажмите на «Добавить событие».
  7. Появится список, в котором вы захотите выбрать акселерометр. Помните об этих других датчиках, которые встроены в ваш телефон. Однажды они могут пригодиться для более позднего проекта!
  8. Вот лишь несколько настроек акселерометра. Убедитесь, что ползунок установлен на «очень быстро», а визуализатор данных - на «Текст». Затем нажмите «Сохранить».
  9. Если вы видите цифры справа от «Датчик акселерометра», значит, все в порядке. Теперь вы можете оставить свой телефон в покое. Если вы не видите цифр, нажмите и удерживайте серую область, чтобы открыть меню.
  10. Выберите «Принудительное включение».
  11. Бинго! Цифры! Наклоните телефон и почувствуйте, как числа соответствуют акселерометру.
  12. Теперь вы можете положить телефон на плоскую поверхность и приготовиться к написанию кода!

Шаг 10: пропуск кода

Пропуск кода
Пропуск кода

Так что, если вы не хотите пачкать руки с кодом, а просто хотите загрузить и начать, у вас могут возникнуть небольшие проблемы. Я пока использовал только свой телефон, поэтому не знаю, такие же ли телефоны у других людей. Если вы загрузите приложение SensoDuino и щелкните вкладку «Встроенные датчики», вы сможете найти свой акселерометр. Если у вас акселерометр MPU6050, то это тот же датчик, что и у меня, и вам, вероятно, не нужно редактировать код. Если у вас такой же датчик, просто попробуйте код, загруженный на этот шаг.

В противном случае вам, вероятно, придется выполнить следующие шаги.

Шаг 11: Назначение данных акселерометра

Назначение данных акселерометра
Назначение данных акселерометра
Назначение данных акселерометра
Назначение данных акселерометра
Назначение данных акселерометра
Назначение данных акселерометра
Назначение данных акселерометра
Назначение данных акселерометра

Теперь мы переходим к самому интересному - возимся с эскизом Arduino! Если ваш скетч не компилируется, см. Последний шаг этой инструкции.

На этом этапе ваш Arduino должен быть правильно подключен к HC-06, а Amarino должен передавать числа на ваш Arduino через Bluetooth. Дважды проверьте, что HC-06 все еще привязан, и загрузите следующий эскиз в Arduino. (Прилагается к этому шагу).

ПРИМЕЧАНИЕ. При загрузке эскизов в Arduino вам необходимо отключить TX и RX HC-06 от Arduino. Arduino не может быть загружен, пока RX и TX к чему-то подключены.

После загрузки этого скетча в Arduino откройте последовательный монитор. Вы должны увидеть три перемешанных вместе числа, разделенных прямоугольником (□). Пример: [0,01 □ 0,02 □□ 9,21] Первые два числа - это крен и тангаж. Я даже не пытался понять, что это за третий: D. Ваш телефон может быть похожим, а может и не быть похожим на этот. Чтобы узнать, какие числа набираются, а какие - шага, для вашего телефона, выполните следующие действия.

  1. Положите телефон на ровную поверхность. Сориентируйте телефон так, чтобы камера / динамик были направлены влево, а микрофон - вправо. (рисунок 2).
  2. Наклоните левую сторону телефона вверх (рисунок 3) (по оси Z, см. Рисунок 1 для оси) на 45 градусов. Обратите внимание, какой номер в последовательном мониторе сильно меняется. Это число будет вашим списком.
  3. Наклоните телефон к себе (рисунок 4) (по оси X, см. Рисунок 1 для оси) на 45 градусов.. Какое бы число ни резко не изменилось, это высота тона. Запишите это.

Теперь, когда мы знаем, какие два набора чисел представляют собой крен и тангаж, мы можем изменить код. Мы рассмотрим раздел 2.

шаг = данные [0];

ролл = данные [1];

Если вы просмотрели код ранее, вы заметите, что данные акселерометра помещены в массив. В массиве «data» есть три «точки», называемые «индексами» для чисел: индекс 0, индекс 1 и индекс 2. Теперь, когда вы знаете, какие числа представляют шаг и крен, вы можете присвоить целочисленные «тангаж» и «крен». правильные числа в массиве. Пример: если третий набор цифр изменился, когда вы наклонили телефон влево / вправо, что является вращением, тогда мы изменим код на этот:

ролл = данные [2];

И это так просто. Если ваш телефон похож на мой, то первое число будет иметь вид, второе число будет вращаться, а третье число будет каким-то другим аспектом трех измерений.

Шаг 12: Отображение данных акселерометра

Отображение данных акселерометра
Отображение данных акселерометра

После того, как вы назначили «крен и тангаж» правильным числам в данных массива, мы можем двигаться дальше. Посмотрите на рисунок 1 полностью слева. Это необработанные данные с вашего акселерометра. Но мы не можем использовать эти числа напрямую, нам нужно переназначить их на значение от 1000 до 2000 со средней точкой 1500. Чтобы увеличить числа, мы умножим "roll" и "pitch" на 1000. Это избавит от всех десятичных знаков, и это приведет к дайте нам приличное разрешение. Теперь, если вы посмотрите на числа во втором столбце, вы увидите «новые» числа. Давайте установим некоторые точки входа и выхода!

  1. Наклоните телефон влево на 45 градусов (поверните) и запишите это число.
  2. Наклоните телефон вправо на 45 градусов (поверните) и запишите это число.
  3. Наклоните телефон вперед на 45 градусов (наклон) и запишите это число.
  4. Наклоните телефон назад на 45 градусов (наклон) и запишите это число.

Если два числа примерно одинаковы, когда вы наклонили телефон на 45 градусов в обоих направлениях, вы можете отказаться от второго числа и просто использовать первое. Создайте второе число, взяв отрицательное значение первого числа.

Пример: наклоните телефон на 45 градусов вправо. Показанное число для рулона - 5500. Для второго числа просто используйте -5500. Это будут наши точки входа и выхода. Мы не хотим, чтобы наш TX регистрировал что-либо большее, чем эти точки. Затем нам нужно переназначить эти значения на 1000–2000. В моем случае от -5500 до 5500 были числами, которые я получил при наклоне телефона на 45 градусов и при повороте телефона на 45 градусов. Поэтому я использовал следующий код: ПРИМЕЧАНИЕ. Теперь пора удалить / * и * / в разделе 4, чтобы включить этот код. Также удалите весь раздел 3.

pitchval = map (pitch, -5500, 5500, 1000, 2000) -12;

rollval = map (roll, -5500, 5500, 1000, 2000) + 7;

Теперь -12 и +7 - это настройки, позволяющие приблизить "угол наклона" и "угол поворота" к центру 1500. При выполнении этих регулировок убедитесь, что ваш телефон находится на ровной поверхности. Если ваш центр находится не на отметке 1500, ваш самолет может отклониться от курса, даже если у вас есть уровень телефона.

Нам нужно ограничить угол поворота и угол наклона. Мы не хотим, чтобы у них было больше 2000 или меньше 1000, иначе все начнется плохо! Итак, мы набираем это…

pitchval = ограничение (pitchval, 1000, 2000);

rollval = ограничение (rollval, 1000, 2000);

Последнее, что нам нужно сделать с этими числами, - это убедиться, что они правильно соответствуют тому, как мы наклоняем телефон. Убедитесь, что ваш телефон находится лицом вверх, камера слева и микрофон справа.

  • Когда вы поворачиваете телефон влево, rollval должен уменьшиться до 1000.
  • Когда вы катитесь вправо, оно должно увеличиться до 2000.
  • Когда вы наклоняете телефон назад, значение угла наклона должно уменьшиться до 1000.
  • Когда вы продвигаете свой телефон вперед, он должен увеличиться до 2000.
  • Оба центра должны быть на уровне 1500, когда вы кладете телефон на плоскую поверхность.

Если, когда вы поворачиваете телефон влево, и Rollval увеличивается, а не уменьшается, измените 1000, которую вы умножили на «roll», на -1000 (в разделе 2). То же самое касается "высоты тона", если числа поменять местами.

Пример кода для фиксации рулона в приведенном выше примере.

шаг = (шаг * -1000); // умножаем на 1000, чтобы избавиться от десятичных знаков

ролл = (ролл * -1000);

Так что, если все работает нормально, мы можем добавить это в окончательный код!

  1. Откройте скетч ReadRawAccel. Скопируйте все, что находится под создателем page1.
  2. Откройте скетч TiltTX_Final. Прокрутите вниз, где написано «Вставьте страницу 1 сюда», и замените весь код под ней.
  3. Загрузите скетч TiltTX_Final на свой Arduino.

Шаг 13: Время схем

Время схемотехники!
Время схемотехники!
Время схемотехники!
Время схемотехники!
Время схемотехники!
Время схемотехники!
Время схемотехники!
Время схемотехники!

Теперь, когда мы закончили с самой сложной частью, пришло время сделать схему. Вы можете не делать щит, чтобы сэкономить время и детали, но мне всегда нравится делать свои проекты с щитами на случай, если мне понадобится использовать этот Arduino с другим проектом. В этом проекте я буду использовать свой Arduino Nano, потому что я хочу, чтобы все это поместилось в небольшой коробке. Но вы можете использовать любой другой Arduino, от Mega до LilyPad. Так что изучайте схему, смотрите видео и приступайте к пайке! Я не буду размещать здесь всю картинку, потому что я покажу вам шаг за шагом, как сделать это в видео.

Шаг 14: Настройка трейнера

Теперь, когда вы закончили со схемой, включите ее, подключите к телефону и вставьте моно-разъем в тренировочный порт на задней панели радио. Установите множитель на 1,3 и положите телефон на ровную поверхность. Затем откалибруйте.

Обратите внимание: канал 0 - это дроссель, канал 1 - крен, а канал 2 - шаг.

Если вы хотите изменить их, введите код здесь:

ppm [0] = дроссельная заслонка;

ppm [1] = прокатка; ppm [2] = значение угла наклона;

Шаг 15: Заключение

У некоторых людей возникала проблема, из-за которой код не компилировался. Почему я не знаю, потому что он отлично работает для меня на обеих моих платформах, но если вы получаете сообщение об ошибке (ошибка не определена в этой области), вам нужно поместить строку 1 после цикла void error.

1. MeetAndroid meetAndroid (ошибка); // Bluetooth для Android. Не трогайте this.void error (флаг uint8_t, значения uint8_t) // еще кое-что о bluetooth. {Serial.print ("Ошибка:"); Serial.println (флаг); }

Когда вы закончите, это должно выглядеть так:

void error (uint8_t flag, uint8_t values) // еще кое-что о bluetooth.

{Serial.print ("Ошибка:"); Serial.println (флаг); } MeetAndroid meetAndroid (ошибка); // Bluetooth для Android. Не трогай это.

Я очень надеюсь, что вы нашли этот поучительный материал интересным и свежим. Я постарался сделать так, чтобы за ним было легко следить. Если вас что-то смущает, в видео более подробно рассказывается, чем в инструкциях. Если у вас возникнут проблемы, свяжитесь со мной, и я буду рад помочь, если ваш вопрос актуален. Пожалуйста, проголосуйте за этого инструктора и опубликуйте картинку ниже для своей репликации, а если вы сделали видео, опубликуйте ссылку! Обязательно оставьте отзыв ниже!

HavocRC, ~ AJ

Рекомендуемые: