Управление arduino через wifi android. Автомобиль с видеокамерой. Управление через WiFi. Приложение Blynk для разработки проектов

Земля, как и все планеты нашей Солнечной Системы, вращается вокруг Солнца. А вокруг планет вращаются их луны.

Начиная с 2006 года, когда из разряда планет и переведен в карликовые планеты, в нашей системе насчитывается 8 планет.

Расположение планет

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

Однако движущаяся модель Солнечной системы столько мелких подробностей не показывает. Из других странностей, стоит отметить то, что Уран вращается практически лежа на боку (подвижная модель Солнечной системы это тоже не показывает), его ось вращения наклонена на, примерно, 90 градусов. Связывают это с катаклизмом произошедшим очень давно и повлиявшим на наклонение его оси. Это могло быть столкновение с каким-либо крупным космическим телом, которому не посчастливилось пролетать мимо газового гиганта.

Какие существуют группы планет

Планетарная модель Солнечной системы в динамике показывает нам 8 планет, которые делятся на 2 типа: планеты Земной группы (к ним относятся: Меркурий, Венера, Земля и Марс) и планеты газовые гиганты (Юпитер, Сатурн, Уран и Нептун).

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

Пояса из астероидов и ледяных комет

Помимо планет, наша система содержит сотни спутников (у одного Юпитера их 62 штуки), миллионы астероидов и миллиарды комет. Также между орбитами Марса и Юпитера существует пояс астероидов и интерактивная модель Солнечной системы флеш его наглядно демонстрирует.

Пояс Койпера

Пояс остался со времен образования планетной системы, а после орбиты Нептуна простирается пояс Койпера, в котором до сих пор скрываются десятки ледяных тел, некоторые из которых даже больше Плутона.

И на расстоянии 1-2 светового года располагается облако Оорта, поистине гигантская сфера, опоясывающая Солнце и представляющая собой остатки строительного материала, который был выброшен после окончания формирования планетной системы. Облако Оорта столь велико что мы не в состоянии показать вам его масштаб.

Регулярно поставляет нам долгопериодические кометы, которым требуется порядка 100000 лет чтобы добраться до центра системы и радовать нас своим повелением. Однако не все кометы из облака переживают встречу с Солнцем и прошлогоднее фиаско кометы ISON яркое тому подтверждение. Жаль, что данная модель системы флеш, не отображает столь мелкие объекты как кометы.

Было бы неправильно обойти вниманием столь важную группу небесных тел, которую выделили в отдельную таксономию сравнительно недавно, после того как Международный астрономический союз (MAC) в 2006 году провел свою знаменитую сессию на которой планету Плутон.

Предыстория открытия

А предыстория началась сравнительно недавно, с вводом в начале 90-х годов современных телескопов. Вообще начало 90-х ознаменовалось рядом крупных технологических прорывов.

Во-первых , именно в это время был введен в строй орбитальный телескоп имени Эдвина Хаббла, который своим 2.4 метровым зеркалом, вынесенным за пределы земной атмосферы, открыл совершенно удивительный мир, недоступный наземным телескопам.

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

Тревожные звоночки

Благодаря этим успехам стало возможным открывать небесные тела, довольно крупных размеров, за пределами орбиты Нептуна. Это были первые “звоночки”. Ситуация сильно обострилась в начале двухтысячных именно тогда, в 2003-2004 годах были открыты Седна и Эрида, которые по предварительным расчетам имели одинаковый с Плутоном размер, а Эрида и вовсе его превосходила.

Астрономы зашли в тупик: либо признать, что они открыли 10 планету, либо с Плутоном что-то не так. А новые открытия не заставили себя долго ждать. В 2005 году была обнаружена , которая вместе в Кваваром, открытым еще в июне 2002 года, Орком и Варуной буквально заполонили транснептуновое пространство, которое за орбитой Плутона, до этого, считалось чуть ли не пустым.

Международный астрономический союз

Созванный в 2006 году Международный астрономический союз постановил что Плутон, Эрида, Хаумеа и примкнувшая к ним Церера относятся к . Объекты которые находились в орбитальном резонансе с Нептуном в соотношении 2:3 стали называться плутино, а все остальные объекты пояса Койпера – кьюбивано. С тех пор у нас с вами осталось всего 8 планет.

История становления современных астрономических взглядов

Схематическое изображение Солнечной системы и космических аппаратов покидающих ее пределы

Сегодня гелиоцентрическая модель Солнечной системы является непреложной истиной. Но так было не всегда, а до тех пор пока польский астроном Николай Коперник не предложил идею (которую высказывал еще Аристарх) о том, что не Солнце вращается вокруг Земли, а наоборот. Следует помнить, что некоторые до сих пор думают, что Галилео создал первую модель Солнечной системы. Но это заблуждение, Галилей всего лишь высказывался в защиту Коперника.

Модель Солнечной системы по Копернику не всем пришлась по вкусу и многие его последователи, например монах Джордано Бруно, были сожжены. Но модель по Птолемею не могла полностью объяснить наблюдаемых небесных явлений и зерна сомнений, в умах людей, были уже посажены. К примеру геоцентрическая модель не была в состоянии полностью объяснить неравномерность движения небесных тел, например попятные движения планет.

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

Движение планет теперь на экране монитора

Погружаясь в астрономию как науку, человеку неподготовленному бывает трудно представить себе все аспекты космического мироустройства. Для этого оптимально подходит моделирование. Модель Солнечной системы онлайн появилась благодаря развитию компьютерной техники.

Не осталась без внимания и наша планетарная система. Специалистами в области графики была разработана компьютерная модель Солнечной системы с вводом дат, которая доступна каждому. Она представляет собой интерактивное приложение, отображающее движение планет вокруг Солнца. Кроме того, она показывает, как вокруг планет вращаются наиболее крупные спутники. Также мы можем увидеть между Марсом и Юпитером и зодиакальные созвездия.

Как пользоваться схемой

Движение планет и их спутников, соответствуют их реальному суточному и годичному циклу. Также модель учитывает относительные угловые скорости и начальные условия движения космических объектов друг относительно друга. Поэтому в каждый момент времени их относительное положение соответствует реальному.

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

Некоторые допущения

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

Слева вверху расположен рычажок для изменения скорости вращения планет (в том числе отрицательная). Чуть ниже находится ссылка на HELP. Красиво подсвечивает важные моменты на этой модели. Здесь же можно включить музыку, если нужен музыкальный фон.

Слева внизу фазы Луны. Помогает в наглядности.

Справа вверху Вы можете ввести нужную дату, скажем день рождения, и получить положение планет на этот момент. Чуть ниже переключатель между месяцами и созвездиями, идущими по краю круга.

Справа внизу переключатель астрономических систем восприятия мира. Коперника и Тихо Браге. Гелиоцентрическая система мира Коперника отображает центром мира Солнце, вокруг которого вращаются остальные планеты. Геоцентрическая система Тихо Браге (16 век - датский астролог и астроном) была менее признанной, но более удобной для вычислений с точки зрения астрологии.

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

Плутон решением MAC (Международный Астрономический Союз) больше не относится к планетам Солнечной системы, а является карликовой планетой и даже уступает в диаметре другой карликовой планете Эрида. Обозначение Плутона 134340.


Солнечная система

Ученые выдвигают множество версий возникновения нашей Солнечной системы. В сороковых годах прошлого столетия Отто Шмидт выдвинут гипотезу о том, что Солнечная система возникла потому что холодные пылевые облака притянулись к Солнцу. С течением времени облака сформировали основы будущих планет. В современной науке именно теория Шмидта является основной.Солнечная система представляет собой лишь малую часть большой галактики под названием Млечный Путь. В Млечный Путь входит более ста миллиардов различных звезд. Для осознания столь простой истины человечеству понадобились тысячелетия. Открытие солнечной системы произошло не сразу, шаг за шагом, на основании побед и ошибок, формировалась система знаний. Основной базой для изучения Солнечной системы были знания о Земле.

Основы и теории

Основными вехами в изучении Солнечной системы являются современная атомарная система, гелиоцентрическая система Коперника и Птолемея. Наиболее вероятной версией происхождения системы считают теорию Большого взрыва. В соответствии с ней, формирование галактики началось с «разбегания» элементов мегасистемы. На рубеже непроглядного хауса зародилась наша Солнечная система.Основу всего составляет Солнце – 99,8% от всего объема, на долю планет приходится 0,13%, оставшиеся 0,0003% составляют различные тела нашей системы.Учеными принято деление планет на две условные группы. К первой относятся планеты типа Земля: собственно сама Земля, Венера, Меркурий. Основными отличительными характеристиками планет первой группы является относительно небольшая площадь, твердость, небольшое количество спутников. Ко второй группе относятся Уран, Нептун и Сатурн – их отличают большие размеры (планеты гиганты), их формируют газы гелия и водорода.

Помимо Солнца и планет к нашей системе относятся также планетарные спутники, кометы, метеориты и астероиды.

Особое внимание следует обратить на астероидные пояса, которые находятся между Юпитером и Марсом, и между орбитами Плутона и Нептуна. На данный момент в науки нет однозначной версии возникновения таких образований.
Какая планета не считается сейчас планетой:

Плутон со времён своего открытия и до 2006 года считался планетой, но позже во внешней части Солнечной Системы было открыто множество небесных тел, сопоставимых по размером с Плутоном и даже превышающих его. Во избежание путаницы было дано новое определение планеты. Плутон не попал под это определение, так что ему был присвоен новый «статус» — карликовая планета. Так что, Плутон может служить ответом на вопрос: раньше он считался планетой, а теперь — нет. Однако, некоторые учёные продолжают считать, что Плутон должен быть переклассифицирован обратно в планету.

Прогнозы ученых

На основании исследований ученые говорят о том, что солнце приближается к середине своего жизненного пути. Невообразимо представить себе, что будет если Солнце погаснет. Но ученые говорят, что это не только возможно, но и неизбежно. Возраст Солнца определили при помощи новейших компьютерных разработок и выяснили, что насчитывает он около пяти миллиардов лет. По астрономическим законом жизнь звезды, подобной Солнцу, длится около десяти миллиардов лет. Таким образом, наша солнечная система находится на середине жизненного цикла.Что же ученые подразумевают под словом «погаснет»? Огромная солнечная энергия представляет собой энергию водорода, который в ядре становится гелием. Каждую секунду около шестисот тонн водорода в ядре Солнца перерабатывается в гелий. По подсчетам ученых, Солнце уже израсходовало большую часть своих запасов водорода.

Если бы вместо Луны были бы планеты Солнечной системы:

> Интерактивная 2D и 3D модель Солнечной системы

Рассмотрите : реальные расстояния между планетами, подвижная карта, фазы Луны, системы Коперника и Тихо Браге, инструкция.

FLASH Модель Солнечной системы

Данная модель Солнечной системы создана разработчиками в целях получения пользователями знаний об устройстве Солнечной системы и её месте во Вселенной. С её помощью можно получить наглядное представление о том, как расположены планеты относительно Солнца и друг друга, а так же о механике их движения. Изучить все аспекты этого процесса позволяет технология Flash, на основании которой создана анимированая модель , что даёт широкие возможности пользователю приложения по исследованию планетарного движения как в абсолютной системе координат, так и в относительной.

Управление флеш-моделью простое: в левой верхней половине экрана находится рычажок регулировки скорости вращения планет, с помощью которого можно выставить даже отрицательную её величину. Немного ниже располагается ссылка на помощь – HELP. В модели хорошо реализована подсветка важных моментов устройства Солнечной системы, на которых пользователю стоит обратить внимание в процессе работы с нею, например, выделены здесь различными цветами. Кроме того, если вам предстоит длительный исследовательский процесс, то вы можете включить музыкальное сопровождение, которое прекрасно дополнит впечатление от величия Вселенной.

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

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

Нижняя правая часть экрана занята переключателем между астрономическими системами Коперника и Тихо Браге. В гелиоцентрической модели мира, созданной , её центром изображено Солнце с вращающимися вокруг неё планетами. Система же датского астролога и астронома , который жил в 16 веке, является менее известной, но она более удобна для осуществления астрологических вычислений.

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

Если модель не помещается в экран вашего монитора, вы можете уменьшить её, одновременно нажав клавиши "Ctrl" и "Минус".

Модель Солнечной системы с реальными расстояниями между планетами

Этот вариант модели Солнечной системы создан без учёта верований древних, то есть её система координат абсолютная. Расстояния здесь указанна максимально наглядно и реалистично, а вот пропорции планет переданы неверно, хотя она так же имеет право на существование. Дело в том, что в ней расстояние от земного наблюдателя до центра Солнечной системы меняется в диапазоне от 20 до 1 300 млн. километров и если вы будете постепенно изменять её в процессе изучения, вы более наглядно представите масштаб расстояний между планетами в нашей звёздной системе. А для того, что бы лучше понять относительность времени предусмотрен переключатель шага времени, размер которого составляет день, месяц или год.

3D модель Солнечной системы

Это самая впечатляющая модель Солнечной системы из представленных на странице, так как создана с помощью 3D технологий полностью реалистична. С её помощью можно изучать Солнечную систему, а так же созвездия, как схематично, так и в объёмном изображении. Здесь реализована возможность изучать строение Солнечной системы глядя с Земли, что позволит вам совершить вам приближённое к реальности увлекательное путешествие в космические миры.

Нужно сказать огромное спасибо разработчикам solarsystemscope.com которые, приложили все усилия для создания действительно необходимого и нужного всем любителям астрономии и астрологии инструмента. Убедиться в этом может каждый, перейдя по соответствующим ссылкам на необходимую ему виртуальную модель солнечной системы.

В данной статье будет подробно расписано создание небольшого приложения для мобильной операционной системы Android и скетча для Arduino. На Arduino Uno будет стоять Wireless Shield с Bluetooth-модулем. Приложение будет подключаться к Bluetooth-модулю и посылать некую команду. В свою очередь скетч по этой команде будет зажигать или гасить один из подключенных к Arduino светодиодов.

Нам понадобится

Создание приложения для Android

Заготовка

Разработка для ОС Android ведется в среде разработки ADT, Android Development Tools. Которую можно скачать с портала Google для разработчиков. После скачивания и установке ADT, смело его запускаем. Однако, еще рано приступать к разработке приложения. Надо еще скачать Android SDK нужной версии. Для этого необходимо открыть Android SDK Manager «Window → Android SDK Manager». В списке необходимо выбрать нужный нам SDK, в нашем случае Android 2.3.3 (API 10). Если телефона нет, то выбирайте 2.3.3 или выше; а если есть - версию, совпадающую с версией ОС телефона. Затем нажимаем на кнопку «Install Packages», чтобы запустить процесс установки.

После завершения скачивания и установки мы начинаем создавать приложение. Выбираем «File → New → Android Application Project». Заполним содержимое окна так, как показано на рисунке.

    Application Name - то имя приложения, которое будет показываться в Google Play Store. Но выкладывать приложение мы не собираемся, поэтому имя нам не особо важно.

    Project Name - имя проекта в ADT.

    Package Name - идентификатор приложения. Он должен быть составлен следующим образом: название Вашего сайта задом наперед, плюс какое-либо название приложения.

В выпадающих списках «Minimum Required SDK», «Target SDK», «Compile With» выбираем ту версию, которую мы скачали ранее. Более новые версии SDK поддерживают графические темы для приложений, а старые нет. Поэтому в поле «Theme» выбираем «None». Нажимаем «Next».

Снимаем галочку с «Create custom launcher icon»: в рамках данной статьи не будем заострять внимание на создании иконки приложения. Нажимаем «Next».

В появившемся окне можно выбрать вид «Activity»: вид того, что будет на экране, когда будет запущено приложение. Выбираем «Blank activity», что означает, что мы хотим начать всё с чистого листа. Нажимаем «Next».

В нашем приложении будет всего одно Activity, поэтому в появившемся окне можно ничего не менять. Поэтому просто жмем на «Finish».

Все, наше приложение создано.

Настройка эмулятора

Отладка приложений для Android производится на реальном устройстве или, если такового нет, то на эмуляторе. Сконфигурируем свой.

Для этого запустим «Window → Android Virtual Device Manager». В появившемся окне нажмем «New». Заполняем поля появившейся формы. От них зависит сколько и каких ресурсов будет предоставлять эмулятор «телефону». Выберите разумные значения и нажимайте «ОК».

В окне Android Virtual Device Manager нажимаем кнопку «Start». Это запустит эмулятор. Запуск занимает несколько минут. Так что наберитесь терпения.

В результате вы увидите окно эмулятора подобное этому:

Заполнение Activity

Activity - это то, что отображается на экране телефона после запуска приложения. На нем у нас будет две кнопки «Зажечь красный светодиод» и «Зажечь синий светодиод». Добавим их. В панели «Package Explorer» открываем res/layout/activity_main.xml . Его вид будет примерно таким же, как на скриншоте.

Перетаскиваем 2 кнопки «ToggleButton» на экранную форму. Переключаемся во вкладку «activity_main.xml» и видим следующий код:

activity_main_aiutogen.xml xmlns:tools = android:layout_width ="match_parent" android:layout_height ="match_parent" android:paddingBottom = android:paddingLeft = android:paddingRight ="@dimen/activity_horizontal_margin" android:paddingTop ="@dimen/activity_vertical_margin" tools:context =".MainActivity" > android:id ="@+id/toggleButton1" android:layout_alignParentLeft ="true" android:layout_alignParentTop ="true" android:text ="ToggleButton" /> android:id ="@+id/toggleButton2" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:layout_above ="@+id/textView1" android:layout_alignParentRight ="true" android:text ="ToggleButton" /> >

Это ни что иное, как наша Activity, которая отображается не в виде графики, а описанная в формате XML.

Сделаем имена компонентов более понятными. Изменим поля android:id следующим образом.

android:id ="@+id/toggleRedLed" ... android:id ="@+id/toggleGreenLed" ...

А еще добавим им подписи, изменим их цвет и размер текста. Результирующий код разметки будет выглядеть следующим образом.

activity_main.xml "http://schemas.android.com/apk/res/android" xmlns:tools ="http://schemas.android.com/tools" android:layout_width ="fill_parent" android:paddingBottom ="@dimen/activity_vertical_margin" android:paddingLeft ="@dimen/activity_horizontal_margin" android:paddingRight ="@dimen/activity_horizontal_margin" android:paddingTop ="@dimen/activity_vertical_margin" tools:context =".MainActivity" android:weightSum ="2" android:orientation ="horizontal" > android:id ="@+id/toggleRedLed" android:layout_width ="wrap_content" android:layout_height ="fill_parent" android:layout_weight ="1" android:background ="#FF0000" android:textOff ="OFF" android:textOn ="ON" android:textSize ="30dp" /> android:id ="@+id/toggleGreenLed" android:layout_width ="wrap_content" android:layout_height ="fill_parent" android:layout_weight ="1" android:background ="#00FF00" android:textOff ="OFF" android:textSize ="30dp" android:textOn ="ON" /> >

Эти же изменения можно сделать и в графическом режиме, воспользовавшись вкладкой «Outline/Properties».

Пробный запуск

Мы можем запустить только что созданное приложение на эмуляторе. Идем в настройки запуска «Run» → Run Configurations», в левой части нажимаем на «Android Application». Появляется новая конфигурация «New_configuration». В правой части окна выбираем вкладку «Target» и выбираем опцию «Launch on all compatible devices/AVD».

Нажимаем «Apply», а затем «Run». Приложение запустится в эмуляторе.

Можно понажимать кнопки. Но ничего происходить не будет, поскольку обработчики нажатий еще нами не написаны.

Чтобы запустить приложение на реальном устройстве, необходимо включить в его настройках опцию «Отладка USB» и подключить его к компьютеру.

На реальном устройстве приложение выглядит абсолютно аналогично.

Написание кода для Android

Правка манифеста

Каждое Android-приложение должно сообщить системе о том, какие права необходимо ему предоставить. Перечисление прав идет в так называемом файле манифеста AndroidManifest.xml . В нем мы должны указать тот факт, что хотим использовать Bluetooth в своем приложении. Для этого достаточно добавить буквально пару строк:

AndroidManifest.xml "http://schemas.android.com/apk/res/android" package ="ru.amperka.arduinobtled" android:versionCode ="1" android:versionName ="1.0" > android:minSdkVersion ="10" android:targetSdkVersion ="10" /> "android.permission.BLUETOOTH" /> "android.permission.BLUETOOTH_ADMIN" />
android:allowBackup ="true" android:icon ="@drawable/ic_launcher" android:label ="@string/app_name" android:theme ="@style/AppTheme" > android:name ="ru.amperka.arduinobtled.MainActivity" android:label ="@string/app_name" > > "android.intent.category.LAUNCHER" /> > > > >

Добавляем основной код

Пришла пора вдохнуть жизнь в наше приложение. Открываем файл MainActivity.java (src → ru.amperka.arduinobtled). Изначально он содержит следующий код:

MainActivityAutogen.java package ru.amperka.arduinobtled ; import android.os.Bundle ; import android.app.Activity ; import android.view.Menu ; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate (savedInstanceState) ; setContentView(R.layout .activity_main ) ; } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater() .inflate (R.menu .main , menu) ; return true ; } }

Дополним код в соответствии с тем, что нам нужно:

    Будем включать Bluetooth, если он выключен.

    Будем обрабатывать нажатия на кнопки

    Будем посылать информацию о том, какая кнопка была нажата.

Передавать на Arduino мы будем один байт с двузначным числом. Первая цифра числа - номер пина, к которому подключен тот или иной светодиод, вторая - состояние светодиода: 1 - включен, 0 - выключен.

Число-команда, рассчитывается очень просто: Если нажата красная кнопка, то берется число 60 (для красного светодиода мы выбрали 6-й пин Arduino) и к нему прибавляется 1 или 0 в зависимости от того, должен ли сейчас гореть светодиод или нет. Для зеленой кнопки всё аналогично, только вместо 60 берется 70 (поскольку зеленый светодиод подключен к 7 пину). В итоге, в нашем случае, возможны 4 команды: 60, 61, 70, 71.

Напишем код, который реализует всё сказанное.

MainActivity.java package ru.amperka.arduinobtled ; import java.io.IOException ; import java.io.OutputStream ; import java.lang.reflect.InvocationTargetException ; import java.lang.reflect.Method ; import android.app.Activity ; import android.bluetooth.BluetoothAdapter ; import android.bluetooth.BluetoothDevice ; import android.bluetooth.BluetoothSocket ; import android.content.Intent ; import android.os.Bundle ; import android.util.Log ; import android.view.Menu ; import android.view.View ; import android.view.View.OnClickListener ; import android.widget.Toast ; import android.widget.ToggleButton ; public class MainActivity extends Activity implements View .OnClickListener { //Экземпляры классов наших кнопок ToggleButton redButton; ToggleButton greenButton; //Сокет, с помощью которого мы будем отправлять данные на Arduino BluetoothSocket clientSocket; //Эта функция запускается автоматически при запуске приложения @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate (savedInstanceState) ; setContentView(R.layout .activity_main ) ; //"Соединям" вид кнопки в окне приложения с реализацией redButton = (ToggleButton) findViewById(R.id .toggleRedLed ) ; greenButton = (ToggleButton) findViewById(R.id .toggleGreenLed ) ; //Добавлем "слушатель нажатий" к кнопке redButton.setOnClickListener (this ) ; greenButton.setOnClickListener (this ) ; //Включаем bluetooth. Если он уже включен, то ничего не произойдет String enableBT = BluetoothAdapter.ACTION_REQUEST_ENABLE ; startActivityForResult(new Intent(enableBT) , 0 ) ; //Мы хотим использовать тот bluetooth-адаптер, который задается по умолчанию BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter () ; //Пытаемся проделать эти действия try { //Устройство с данным адресом - наш Bluetooth Bee //Адрес опредеяется следующим образом: установите соединение //между ПК и модулем (пин: 1234), а затем посмотрите в настройках //соединения адрес модуля. Скорее всего он будет аналогичным. BluetoothDevice device = bluetooth.getRemoteDevice ("00:13:02:01:00:09" ) ; //Инициируем соединение с устройством Method m = device.getClass () .getMethod ( "createRfcommSocket" , new Class { int .class } ) ; clientSocket = (BluetoothSocket) m.invoke (device, 1 ) ; clientSocket.connect () ; //В случае появления любых ошибок, выводим в лог сообщение } catch (IOException SecurityException e) { Log.d ("BLUETOOTH" , e.getMessage () ) ; } catch (NoSuchMethodException e) { Log.d ("BLUETOOTH" , e.getMessage () ) ; } catch (IllegalArgumentException e) { Log.d ("BLUETOOTH" , e.getMessage () ) ; } catch (IllegalAccessException e) { Log.d ("BLUETOOTH" , e.getMessage () ) ; } catch (InvocationTargetException e) { Log.d ("BLUETOOTH" , e.getMessage () ) ; } //Выводим сообщение об успешном подключении Toast.makeText (getApplicationContext() , "CONNECTED" , Toast.LENGTH_LONG ) .show () ; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater() .inflate (R.menu .main , menu) ; return true ; } //Как раз эта функция и будет вызываться @Override public void onClick(View v) { //Пытаемся послать данные try { //Получаем выходной поток для передачи данных OutputStream outStream = clientSocket.getOutputStream () ; int value = 0 ; //В зависимости от того, какая кнопка была нажата, //изменяем данные для посылки if (v == redButton) { value = (redButton.isChecked () ? 1 : 0 ) + 60 ; } else if (v == greenButton) { value = (greenButton.isChecked () ? 1 : 0 ) + 70 ; } //Пишем данные в выходной поток outStream.write (value) ; } catch (IOException e) { //Если есть ошибки, выводим их в лог Log.d ("BLUETOOTH" , e.getMessage (, OUTPUT) ; pinMode(7 , OUTPUT) ; } void loop() { //Если данные пришли if (Serial.available () > 0 ) { //Считываем пришедший байт byte incomingByte = Serial.read () ; //Получаем номер пина путем целочисленного деления значения принятого байта на 10 //и нужное нам действие за счет получения остатка от деления на 2: //(1 - зажечь, 0 - погасить) digitalWrite(incomingByte / 10 , incomingByte % 2 ) ; } }

Особенности заливки скетча

Для связи Bluetooth-Bee с контроллером используются те же пины (0 и 1), что и для прошивки. Поэтому при программировании контроллера переключатель «SERIAL SELECT» на «Wireless Shield» должен быть установлен в положение «USB», а после прошивки его надо вернуть в положение «MICRO».

Результат

Заключение

В данной статье мы научились создавать приложения для операционной системы Android и передавать данные по Bluetooth. Теперь при нажатии на кнопку на экране телефона на базе операционной системы Android, произойдет изменение состояния светодиода на плате.

Вы можете развить мысль и сделать более дружественный интерфейс на Android, управлять с его помощью гораздо более сложными устройствами, публиковать классные приложения в Android Market и ещё много-много всего интересного!



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: