Hit The Plane — блютуз мультиплеер
Hit The Plane — блютуз мультиплеер – главный герой явно опытный пилот. Выбрав подходящий самолет, он садится в кабину и готов лететь, покорять новые вершины! В игре множество красивых карт. Есть деревня, густой лес, бескрайние поля, пляж – что угодно. С высоты открывается прекрасный вид. Отважному пилоту по плечу любые задания, даже самые сложные! Подбить самолет противника, доставить пассажиров или груз куда нужно? Избежать шквального огня и уцелеть? Легко. Если летательное средство сломается, можно починить, используя доступные материалы. Кнопки управления располагаются на экране внизу. По ним ориентироваться несложно.
Возможности игры Hit The Plane — блютуз мультиплеер:
- мультиплеерный режим, в котором участвуют одновременно множество игроков;
- разные модели самолетов, отличающиеся не только внешним видом, но и характеристиками;
- умный ИИ – искусственный интеллект, который не даст заскучать;
- система прокачки характеристик своих самолетов, с установкой более мощных деталей;
- много красивых локаций для прохождения;
- масштабная система развития с увеличением уровней, каждый даст игровой опыт;
- игра одинаково хорошо запускается на всех устройствах – модифицирована под телефоны с маленьким экраном и планшеты.
Мод на много денег даст пользователю неограниченные финансы, которые тот может использовать для приобретения разных «плюшек». Первые задания будут простыми, впоследствии уровень сложности начнет расти. За успешное выполнение каждого полагаются очки опыта и другие бонусы. Все достижения игрока будут автоматически сохранены.
Можно ли использовать Bluetooth в самолете?
Многие путешественники задаются вопросом, разрешено ли использовать Bluetooth в самолете. Однозначного ответа на него нет, потому что каждая авиакомпания сама решает, насколько активно ограничивать пассажиров в использовании смартфонов во время взлета и посадки. Однако общие правила все же есть.
Опасно ли включать Bluetooth в самолете?
Тем, кто летает на самолете, обычно предлагается перевести смартфон и планшет в режим полета. В этом режиме отключаются все беспроводные соединения, такие как сотовая связь, Wi-Fi и Bluetooth. Однако многие все равно используют Bluetooth — например, для подключения смартфона или плеера к беспроводным наушникам.
Bluetooth — это беспроводная технология, используемая для подключения нескольких устройств друг к другу на небольшом расстоянии. Например, вы можете слушать на ноутбуке онлайн-радиостанцию и выводить звук через внешний Bluetooth-динамик. Тот же принцип обычно работает с громкой связью в автомобиле.
На борту все сигналы мобильной сети должны быть отключены, чтобы не возникало помех радиосигналам самолета. Однако серьезных инцидентов, виной которых стали смартфоны, пока не произошло — поэтому последнее время многие авиакомпании не заостряют внимание на отключении всех интерфейсов, включая Bluetooth-соединение. Главное, чтобы вы не отвлекались на телефон во время взлета и посадки.
Учитывая, что этот стандарт использует радиосигналы на коротком расстоянии, радиус действия которых составляет максимум десять метров, все больше и больше авиакомпаний делают исключение для пассажиров, которые не отключают беспроводные устройства в самолете. Главное — вынуть наушники во время взлета и посадки, чтобы слышать команды экипажа.
Как использовать Bluetooth в режиме полета
Если вы используете Bluetooth в самолете, сначала включите режим полета на смартфоне. Это, правда, отключит соединение Bluetooth. Но вы можете легко активировать его снова, не включая мобильную связь. Соответственно, ваш смартфон останется в режиме полета — за исключением функции Bluetooth.
Читайте также:
BTCP — самолет, управляемый со смартфона
В этой статье я расскажу, как мы делали передатчик из телефона, приемник из микроконтроллера, как это начиналось и чем закончилось.
Как-то раз, изучая просторы интернета, я наткнулся на страничку на кикстартере с одним интересным проектом. Это небольшой модуль, который цепляется к бумажному самолетику и управляется через блютуз со смартфона. Данная вещь меня заинтересовала, но отдавать 45$ за двухканальное нечто с управлением по типу штурвала истребителя даже с нормальным еще курсом рубля было неохота. И вот тогда созрел план: сделать свое управление с телефона с многоканальностью и прочими авиамодельными плюшками.
Тут как раз появилось название проекта:
BTCP (Bluetooth controlled plane) — самолет на bluetooth-управлении.
В качестве платформы выбрал восьмибитный микроконтроллер фирмы Atmel, а именно — Atmega88. Кстати, именно такие стоят в большинстве регуляторов для БК моторов. Главным критерием выбора было наличие как минимум 4-х ШИМ каналов (ведь как известно, сервомашинки управляются с помощью широтно-импульсной модуляции). Самое интересное то, что эти аппаратные ШИМ каналы мне в итоге и не понадабились.
В качестве приемника — китайский bluetooth-модуль HC-05.
Два типа корпусов: PDIP слева, TQFP справа (пропорции сохранены). А совсем справа — блютуз модуль
Arduino я отверг сразу же, т.к. использовать уже готовое решение — это как-то не по-нашему. Да и вообще похоже на то, что я
ардуиноненавистник.
Ход разработки:
Постигнув лазерно-утюжную технологию, наваял плату для распайки атмеги и приемника. Вот это чудовище должно было устанавливаться на самолет:
Ранние фотографии, еще видны отверстия под конденсаторы на 22пф, которые было очень трудно найти в моем ареале обитания
Итак, микроконтроллеры (далее просто мк) на столе, программатор рядом, руки так и чешутся что-нибудь туда зашить. Да хотя бы простенькую программу возврата принятого символа/числа. Прошивка проходит успешно, но мк перестает отзываться. Чешу затылок. Беру запасной мк, повторяю с ним — та же ерунда! Дело начинает пахнуть керосином. Собственно, в России любят сначала сделать, и только потом читать инструкцию. А проблема всплывает следующая: из-за путаницы во fuse-битах, не разобравшись с ситуацией, я заблокировал в кристале возможность программирования по стандартному интерфейсу. Все, приехали.
Гугл подсказывает единственный возможный вариант для моей ситуации: собрать так называемый «Avr fuse-bit doctor» — устройство для реанимации попавших в такую беду мк. Для него нужна еще одна атмега, но под рукой лишь пара дохлых регуляторов, в которых мк имеют мелкий корпус, а не тот, который применяетси в готовой разводке. Ну что же, пытаюсь собрать устройство по схеме под имеющиеся детали.
Как оказалось, несмотря на тщательные проверки всех выводов, я сумел перепутать при разводке дорожки питания, в результате чего при торжественном подключении мк нагрелся и через проплавленное в корпусе отверстие его жизненные силы улетучились вместе с синим дымком.
Исправив эту фатальную ошибку, перепаял контроллер, но почему-то ничего не заработало. Выяснив, что изобретать велосипеды — это не моя специальность, заказал у китайцев нормальные запчасти и приступил к написанию программ.
Слева — моя попытка, справа — собранное по готовому дизайну
Программирование.
Облазив интернет, нашел лишь две статьи, которые хоть как-то пересекались с моей задумкой.
Из первой стянул исходные коды для приложения. Мне повезло: автор реализовал возможность управления машинкой на arduino с помощью наэкранного стика. мне лишь оставалось добавить второй стик, поддержку сразу двух касаний экрана и передачу данных в необходимом мне формате.
Вторая статья тоже интересна: ее автор как раз делал управление для самолета, правда, не с телефона.
С выбором языка, на котором буду писать прошивку для мк, долго не колебался: низкоуровневый ассемблер показался мне более простым и понятным, чем C++. Для написания android-приложения используется Java, тут альтернатив не существует.
В начале статьи я написал, что аппаратные ШИМ каналы мне не пригодились. Дело в том, что 128 положений сервопривода мне показалось мало, а больше не получилось бы сделать на 8-ми битных таймерах (хотя сейчас я понимаю, что ошибался тогда). Поэтому я сделал программную реализация ШИМа на 16-ти битном таймере, поочередно отсчитывая на нем длины импульсов.
В ходе написания прошивки часто всплывали самые разнообразные проблеммы: то не работает; то работает в симуляторе, но не работает в железе; то вообще-то должно работать, но не хочет. Поиск таких вот мелких багов занимал достаточное количество времени, иногда даже на время отбивая желание продолжать разработку.
Процесс симуляции поведения кода в микроконтроллере
На этом участке кода я пытался прикрутить экспоненту в приложении (пока что не удалось)
Так как я не брался за углубленное изучение Java, то знающие люди наверняка сходу могут оценить изящность и продуманность моего кода примерно на 2 из 10.
Скриншоты Android — приложения:
Главный экран (настроек пока что нет. совсем нет)
Самые значимые элементы — джойстики
В работе
Ах, да чуть не забыл. Первоначальная версия платы на практике стала вести себя крайне неадекватно: в радиоэфир со стороны мк сыпались тонны мусора, хотя если извлечь микроконтроллер, и тестировать его отдельно от приемника, то все было в норме (возможно, на длинные запутанные дорожки наводились помехи и портили все, что могли).
Из-за этого плата отправилась на свалку, а заместо нее было изготовлено следующее чудо:
От обвязки было решено отказаться (все равно от BECа идет более-менее чистый сигнал), в результате чего плата оказалась в 4 раза меньше предшественника по площади и стала весить около 8 грамм.
И тот всплывает крупный баг, суть которого заключалась в следующем: при отправке команды на изменение положения сервопривода через программу-терминал все работает хорошо, точно, но при отправке ограмного потока данных, которые образуются в результате дерганья стиков, мк клинило намертво. Из-за этой заразы я забросил проект на достаточно продолжительное время.
Но вот, в конце осени мне поднадоело учиться, и я, несколько раз перечитав учебный курс по программированию мк, сел и полностью переписал процедуру приема и обработки данных. И тут свершилось долгожданное: оно заработало. Радости не было предела, я тут же бросился ставить приемник на зальный самолет и настраивать его.
Наконец, появился свободный день для облета. Вот что из этого вышло:
(еще раз о багах. в приложении существует ошибка: если завести палец со стиком в зону другого стика, то их работа парализуется с предугадываемым результатом. я знал про это, но посчитал, что в реальных условиях никто не будет уводить палец так далеко. но на практике все получилось совсем по-другому)
Но многочисленные морковки не смогли попортить радость от того, что оно наконец-то полетело.
На данном этапе управление крайне неудобное. Нет экспоненты, небольшое изменение угла наклона пальца приводит к изменению положения стика и дребезжаниям. Ну и в не меньшей степени сказывается то, что в душе я — тракторист, и привычка дергать стики туда-сюда дает о себе знать. Единственное, что спасало летательный аппарат от полного одровенения — это односекундный failsave. Хотя сейчас я понимаю, что задержку нужно уменьшать как минимум в два раза.
На этом проект не останавливается. Нужно же довести все до ума. На Ar.Drone же как-то люди летают. Идей очень много:
- исправить все, что мешает нормально летать
- добавить настройки (реверсы, экспоненту, конечные точки и т.д.)
- попробовать сделать управление наклоном телефона (просто узнать, насколько это будет удобно в реальности)
- собрать ультрамикросамолет размахом до 400мм под 1S и весом до 40г. Для этого даже уже есть набросок мини платы на с мк в корпусе размером 9 х 9 мм:
Работа вряд ли была бы завершена, если бы не помощь и поддержка моего авиамодельного тренера Вадима Голуба и моего друга Радомира.