Фотокубики 2012Программы для пультов дистанционного управленияПродолжаю сериал 2012 года. В предыдущей статье описана схема дополнительного модуля для конструктора Arduino и программа управления моторами на микросхемах L-298 и общения с камерой Casio с помощью последовательного протокола для спуска затвора и изменения фокусного расстояния объектива. В данной статье рассматривается программное обеспечение для устройств, выступающих в роли пультов дистанционного управления установкой для съемки панорам. Чтобы передавать команды, устройство должно либо иметь встроенный передатчик Bluetooth, либо иметь возможность его подключить, например, через USB. У меня таковыми оказались ноутбук Dell Vostro, настольный компьютер с внешним USB-Bluetooth и коммуникатор HTC Desire HD. Идеология управления крайне простая. Устройство Bluetooth используется как последовательный порт. Все команды представляют собой символьные переменные, начинающиеся с буквы латинского алфавита передаваемого числа. Передаваемые установке данные начинаются с маленькой буквы, а принимаемые - с большой. Перед символьной переменной передается служебный ASCII символ с десятеричным кодом 27, а после с кодом 19. Этот способ записи команд взят из проекта Amarino и сохранен для преемственности с программой, описанной в статье Управление съемкой с помощью телефона. Все мои программы, описанные в этой статье, распространяется под лицензией, совпадающей с русским переводом GENERAL PUBLIC LICENSE GNU (О причинах подобного лицензирования я подробно писал здесь). Программы для устройств под управлением ОС AndroidПервая программа является модернизацией старой программы. Изменения коснулись практически только внешнего вида. Как и ранее, программирование велось в среде разработки Eclipse с установленным пакетом Android SDK Tools. Причем именно в той среде, что была и два года назад. Оболочка Eclipse и ее модуль Android SDK Tools за последнее время обновились. А используемая библиотека AmarinoLibrary_v0_55.jar нет. В результате для модернизации программы мне пришлось искусственным образом откатиться с 20 версии на 14 для Android SDK Tools. В результате получилась следующая программа PanAm_0.6. Архив с исходным кодом проекта можно скачать здесь. Так она выглядит на виртуальном устройстве
А так на коммуникаторе
Кнопка «Круг» запускает съемку круговой панорамы камерой Sony NEX-5. Если галочка в графе «Конвертер» отсутствует, то предполагается, что установлен объектив с фокусным расстоянием 16 мм, и при нажатии кнопки телефон передает команду: начать съемку панорамы в 3 ряда по 10 кадров в каждом. При наличии галочки производится съемка объективом с конвертером в два ряда по пять кадров в каждом. В процессе съемки установка передает телефону информацию о положении камеры, которое отображается телефоном. Слева горизонтальный угол в градусах, справа - вертикальный. Кнопки «Лево» и «Право» передают команду повернуть камеру на угол, указанный в текстовом поле, расположенном между ними. Аналогичные функции и у кнопок «Верх» и «Низ». Текстовые поля «Число шагов» задают, сколько раз камера будет повернута при съемке частичной панорамы, запускаемой кнопкой «Панорама» в правом верхнем углу. Левое поле задает число шагов по горизонтали, а правое по вертикали. В вертикальной плоскости возможны следующие значения для числа шагов: Поле «Задержка» задает временной промежуток между окончанием движения и спуском затвора. Поле «Пауза» задает время после спуска затвора до начала движения. Кнопка «Затвор» передает команду на съемку с заданной задержкой и паузой. Кнопки «W» и «T» управляют изменением фокусного расстояния камеры Casio QV-4000. Программа очень простая и основные сложности ни в ее написании, а в установке среды разработки. Поэтому я предпринял попытку реализации управления минимальными средствами. Следующая программа может быть написана прямо на телефоне. Для этого необходимо только установить на него De Re BASIC!, являющийся диалектом Darmouth Basic образца 1963 года. Эту программу, распространяемую под лицензией GNU GPL v3, написал Paul Laughton. Далее набираем текст программы и запускаем его на исполнение. Кодировка комментариев в программе - UTF-8. Процесс написания можно ускорить, если воспользоваться примером f35_bluetooth.bas, поставляемым в комплекте. Готовой программе можно присвоить значок на рабочем столе и запускать ее одним движением.
Программа на Бейсике выглядит более аскетично, но чувствительные к нажатию строки позволяют управлять установкой не менее эффективно, чем графический интерфейс. Можно написать и более красивую программу, используя графический режим в BASIC, но комфортной подобную работу уже назвать будет трудно :-) Работоспособность программ проверена на коммуникаторе HTC Desire HD под управлением ОС Android 2.3.5 LeeDrOiD_HD_V5.1.1_GB. Программа для компьютеров под управлением ОС LinuxПерсональные компьютеры поддерживают программирование на множестве языков, и столь простую программу, как нам нужна, можно написать на многих из них. Нижеприведенный пример написан на языке Gambas, который похож на Visual Basic, но не является его клоном. Тем не менее, любители Windows, полагаю, смогут без особых проблем написать по аналогии программу на Visual Basic. Архив с исходным кодом проекта можно скачать здесь. Интерфейс программы очень близок к тому, что был реализован на Android SDK Tools. Однако поскольку места на экране компьютера много и мышью попасть на маленькие кнопки легче, чем пальцем, то он был немного дополнен. Добавлена строка ввода команд. Это сделано на случай, если программа для Arduino будет изменена и возникнет необходимость отдавать редко используемые команды, не создавая для них кнопок. Для этих же целей, а также для удобства отладки выводятся и ответы Arduino, передаваемые компьютеру. Также добавлена возможность изменять временной интервал, на который включаются моторы, управляющие изменением фокусного расстояния камеры Casio. При 100 мс весь диапазон фокусных расстояний от 7 до 21 мм может быть пройден за 15 нажатий кнопки изменения фокусного расстояния. Работоспособность программы проверена на настольном компьютере под управлением ОС Slackware 13.37 и на ноутбуке под управлением ОС Slackware 14. 29.11.2012
Установите проигрыватель Flash
|
Облако тегов:
...
|