Как создать собственное приложение Android для проекта Arduino с помощью MIT App Inventor


В этой статье мы научимся создавать собственные приложения Android для управления Arduino с помощью онлайн-приложения MIT App Inventor. Для этого урока у нас есть два примера. Первый пример — управление простым светодиодом, а второй — управление шаговым двигателем с помощью смартфона.Как создать собственное приложение Android для проекта Arduino с помощью MIT App Inventor

Вы можете посмотреть следующее видео, демонстрирующее данный процесс, или прочитать полный текст статьи.

Код Ардуино

Вот краткий обзор этого кода. Итак, через последовательный порт мы получаем входящие данные со смартфона и сохраняем их в переменной state. Если мы получим символ «0», который отправляется со смартфона при нажатии кнопки «LED: OFF», мы выключим светодиод и отправим обратно на смартфон строку «LED: OFF». С другой стороны, если мы получим символ «1», мы включим светодиод и отправим обратно строку «LED: ON».

Итак, теперь нам нужно создать наше собственное приложение для Android, которое будет отправлять эти символы «0» и «1» при нажатии определенной кнопки, а также получать входящие строки от Arduino.

Разработчик приложений MIT

На веб-сайте MIT App Inventor нам нужно войти в онлайн-приложение и нажать кнопку “Create apps!” («Создать приложения!»). Для входа в систему нам необходимо иметь учетную запись Gmail. После входа в систему мы можем создать наш первый проект. На рисунке ниже показан внешний вид окна дизайна, и теперь мы можем приступить к созданию нашего приложения.

Окно дизайна для создания приложения

Но прежде чем сделать это, мы можем подключить наш смартфон к этому проекту, чтобы увидеть, как приложение обретает форму, прямо на нашем смартфоне в режиме реального времени. Для этого сначала нам нужно загрузить приложение MIT AI2 Companion из Play Store и установить его на наш смартфон. Затем в меню «Подключиться» (Connect menu) онлайн-редактора мы выберем AI Companion, и появится штрих-код, который нам просто нужно отсканировать или вставить код в приложение для смартфона, и соединение между онлайн-редактором и приложением для смартфона будет установлено.

Подключение нашего смартфона к проекту создания приложения в реальном времени

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

Создание приложения – пример 1

Теперь мы готовы построить первый пример. Начнем с макета программы. Сначала мы добавим несколько HorizontalArrangements из палитры макетов и установим их свойства, такие как высота, ширина и выравнивание, чтобы они соответствовали желаемому виду нашей программы. Затем из палитры UserInterface мы добавим ListPicker и прикрепим к нему изображение. ListPicker будет использоваться для выбора устройства Bluetooth, к которому будет подключаться наш смартфон.

Начало создания нашего первого приложения

Далее мы добавим еще один HorizontalArrangements, в котором разместим метку. Эта метка будет указывать, подключен ли смартфон к модулю Bluetooth или нет, поэтому мы установим первоначальный текст этой метки “Not Connected” («Не подключен»). Следующая метка будет использоваться для отображения состояния светодиода, выключен он или включен. Исходное состояние будет “LED: OFF” («Светодиод: ВЫКЛ»). Далее мы добавим две кнопки: ‘Turn On’ («Включить») и ‘Turn Off’ («Выключить») для управления светодиодом. На этом этапе полезно переименовать компоненты, чтобы их было легче распознавать и использовать позже в редакторе блоков. Теперь осталось добавить BluetoothClient, который является невидимым компонентом, а также часы, которые будут использоваться для индикации состояния соединения в реальном времени.

Редактор блоков

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

Редактор блоков в MIT App Inventor

Мы начнем с BluetoothList ListPicker. Сначала мы добавим блок «BeforePicking» и прикрепим к нему блок ‘set Bluetooth Elements’ («Установить элементы Bluetooth»). Затем из блоков BluetoothClient добавим блок BluetoothClient AddressesAndNames. Этот набор блоков будет устанавливать список устройств Bluetooth, которые уже сопряжены с нашим телефоном, поэтому, когда мы нажмем кнопку «Подключиться» (“Connect Button”) в ListPicker, отобразится список всех сопряженных устройств.

Добавление в редакторе блоков блока «BeforePicking»

Далее нам нужно установить, что произойдет после того, как мы выберем наш конкретный модуль Bluetooth. Из блока BluetoothClient мы добавим блок ‘call BluetoothClient .Connect address’ («вызов BluetoothClient.Connect адрес») и добавим к нему блок ‘BluetoothList Selection’ («Выбор BluetoothList»), что означает, что наш телефон будет подключаться к адресу Bluetooth, который мы выбрали ранее.

Установка действий после выбора конкретного модуля Bluetooth

Следующим из блоков Clock («Часы») добавим блок «.Timer». В этом блоке мы будем указывать в режиме реального времени, подключен ли телефон к модулю Bluetooth, используя блок “set Text” («Установить текст») метки “Connected” («Подключено»).

Добавление блока таймера

Далее нам нужно оживить две кнопки. Поэтому, когда будет нажата кнопка «TurnOn_Button», мы будем использовать клиентскую функцию Bluetooth «Send1ByteNumber» для отправки номера в модуль Arduino Bluetooth. В нашем случае это число 49, которое соответствует символу «1» в соответствии с таблицей ASCII и включает светодиод. Сразу после этого мы воспользуемся функцией BluetoothClient «ReceiveText» для получения входящей строки, которая отправляется обратно с Arduino на телефон. Эта строка имеет значение метки «LED_Status».

Добавление кнопок в редакторе блоков

Та же процедура применяется для «TurnOff_Button», где номер отправки должен быть изменен на 48, что соответствует символу «0». Теперь осталось скачать и установить программу на наш смартфон. Мы можем сделать это из меню «Создать», либо сохранив его на нашем компьютере, а затем перенеся на телефон, либо отсканировав QR-код для загрузки программы онлайн.

Вот загружаемый файл вышеупомянутого проекта MIT App Inventor.

Пример управления шаговым двигателем

Теперь давайте рассмотрим второй пример - управления шаговым двигателем. В верхней части экрана у нас есть те же компоненты для подключения Bluetooth, что и в предыдущем примере. Далее у нас есть компонент Canvas, который используется для рисования и вставки изображений. Я вставил два прозрачных изображения, которые ранее нарисовал. Первый — это изображение датчика, который будет зафиксирован на месте, а второй — изображение указателя, который будет вращаться. Далее у нас есть кнопка «Проверка» для переключения между ручным и автоматическим режимами или режимом непрерывной работы, а также кнопка для изменения направления вращения. У кнопки у нас есть ползунок изменения скорости вращения шагового двигателя.

Пример приложения для управления шаговым двигателем

Вот блоки и код Arduino, лежащие в основе этого примера. Итак, в редакторе блоков у нас снова те же блоки для Bluetooth-соединения, что и в предыдущем примере.

Блоки в MIT App Inventor для приложения управления шаговым двигателем

Теперь для поворота изображения указателя мы используем функцию ImageSprite «.PointInDirection», которая поворачивает изображение от положения 0 ° до координат X и Y, в которых было затронуто Canvas. В то же время мы устанавливаем повернутый заголовок ImageSprite на текстовую метку выше. После этого мы вызываем специальную процедуру или функцию, которая на самом деле имеет задержку в 10 минут.

Наконец, мы отправляем значение заголовка в виде текста на Arduino с помощью функции Bluetooth «SendText». Это значение будет принято Arduino и соответствующим образом будет вращать шаговый двигатель.

Настройка в MIT App Inventor передаваемого текста

Далее идет блок CheckBox. Поэтому, если флажок установлен, мы отправим текст “Auto” («Авто») на Arduino, который активирует постоянное вращение шагового двигателя. Находясь в этом режиме, если мы нажмем кнопку “Reverse” («Реверс»), мы отправим текст “Reverse” («Реверс») на Arduino, который изменит направление вращения двигателя. Также, находясь в этом режиме, мы можем менять скорость вращения. Если мы изменим положение ползунка, текущее значение положения ползунка будет отправлено на Arduino, что изменит скорость вращения шагового двигателя. Если мы снимем флажок с флажка, мы вернемся в ручной режим. Вот демонстрация примера.

Настройка флажка

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

Вот код Arduino для примера с шаговым двигателем:

Источник статьи

(Проголосуй первым!)
Загрузка...
331 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *