Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Пишем программу управления настольной лампой со смартфона за 5 минут.


Из прошлого выпуска рассылки Вы узнали, как написать первое приложение HelloIOIO для Android-смартфона, которое будет включать и выключать светодиод статуса на плате IOIO.

Теперь займемся подключением IOIO по bluetooth.

Для подключения нам понадобится, кроме самой платы IOIO, USB bluetooth адаптер. Если с железом не будет проблем, весь процесс переработки программы займет буквально несколько минут. К сожалению, производитель платы не гарантирует работу IOIO со всеми возможными адаптерами, в частности не стоит использовать составные устройства. У меня, например, 2 в 1 BT+флешка не заработал, а заработал девайс от Buro BT201. Список опробованных BT адаптеров с ссылками на буржуйские интернет магазины и результатами тестов есть на странице автора проекта.

IOIO Hardwarer TesterЧто бы убедиться, что Ваше android-устройство, BT адаптер и IOIO совместимы друг с другом, для начала рекомендую скачать с маркета программу IOIO Hardwarer Tester. Перед ее запуском включите BT, проведите поиск новых устройств вокруг. Ваша IOIO плата отобразится в списке в виде IOIO (xx:xx), где xx:xx – окончание МАС адреса Bluetooth адаптера. Для спаривания устройства нужен пароль «4545». Если после запуска программа IOIO Hardwarer Tester показала экран, подобный этому  с надписью Status: Connected в верхней строке и активной кнопкой теста светодиода – поздравляю, Ваше железо совместимо друг с другом и можно начинать писать программу. Если, увы, тест не прошел – рекомендую поменять BT адаптер на один из протестированных здесь.

Итак, с железом разобрались, приступаем к переработке программы для работы через BT. И здесь меня ждал приятный сюрприз – все, что нужно сделать, это добавить библиотеку IOIOLibBT и перекомпилировать проект. Архив с библиотекой и исходниками тестовой программы у Вас уже должен быть из предыдущего выпуска, если не сохранился, повторяю ссылку на библиотеки. Добавление библиотеки в проект в Eclipse делается через File>Import, после добавления надо не забыть в Project Explorer выбрать появившуюся библиотеку и проверить/установить в ее свойствах версию компилятора Java 1.6.

Второй шаг, который нужно выполнить – это добавить программе права на использование BLUETOOTH. Делается это в AndroidManifest.xml, на закладке “permissions”. Нажмите кнопку Add и выберите android.permission.BLUETOOTH.

В принципе теперь все готово к запуску программы для управления светодиодом статуса через BT. Подключите смартфон к компьютеру, проверьте , что на нем включен режим отладки по USB. Нажмите кнопку запуска программы в Eclipse. После компиляции на экране PC появится диалог выбора android устройств, на которых может быть запущена программа. Выберите свой смартфон, и через несколько секунд на его экране появится приложение. Не отключайте смартфон от компьютера, это позволит смотреть лог работы программы и разобраться в возможных проблемах.

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



Добавим эти права, как показано на картинке ниже.



После повторной компиляции проекта все заработало.

Grove - RelayНо управлять светодиодом на плате не сильно интересно. Хочется включить что то более реальное, например, настольную лампу. Для коммутации силовой нагрузки я взял готовый модуль реле с управляющим транзистором. Разумеется, сделать такой модуль самостоятельно не составит никакого труда. Для того, что бы этот модуль управлялся конкретной ножкой IOIO, нужно изменить всего одну строчку кода - в исходнике написано led_ = ioio_.openDigitalOutput(0, true); вместо 0 нужно написать номер реальной ножки.

Ниже – небольшое видео, как реально происходило программирование и запуск приложения



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

В избранное