Планшет как экран для ардуино

Обновлено: 05.07.2024


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

Теперь покажу технический минимум для связи ардуино и андроид через беспроводной интерфейс bluetooth.
Из железяк понадобятся:

1. Плата контроллера Arduino (далее по тексту МК) (в моем случае китайская версия Nano с 328 чипом на 5 В и разъёмом micro-USB)
2. Модуль связи bluetooth (далее по тексту BT) (в моём случае НС-05 распаянный на плате адаптере. Эта плата содержит стабилизатор напряжения питания, кнопку, разъём, дискретную рассыпуху)
3. Кабель для подключения к ПК (в моём случае USB — micro-USB)




Для удобства монтажа использовал макетную плату и комплект соединительных проводов "папа-папа".



Контролер BT соединяется с МК по следующей схеме.


Подключение по этой схеме имеет минус, который заключается в следующем — при заливке скетча с ПК в МК провода от выводов TX и RX придётся отключить, потому что они будут мешать процессу обмена данными. Но этот нюанс компенсируется простотой написания кода — можно пользоваться штатными возможностями класса Serial, ничего не меняя в программном коде.

На макетной плате получилось так:



Чтобы протестировать работу полученного устройства, напишем скетч, который при приёме по BT-соединению символа "1" включит встроенный в плату МК светодиод (подключен к цифровому выводу 13), а при приёме символа "0" — отключит.

В Arduino IDE написал такой скетч:


Нужно загрузить вот такую программу:


Далее нужно в неё зайти и нажать кнопку Connnect. Если ВТ на смартфоне отключен, то будет запрос на включение. В списке устройств найти свою плату. При первом соединении будет запрос пароля он "1234" или "0000".



Синий светодиод на плате ардуино загорелся:


Далее аналогичным образом отправил "0":



Всё работает правильно. Первый контакт андроида и ардуино состоялся.

Вопрос дочитавшим. Какой формат изложения интереснее и информативнее текстовой с фото (как здесь) или с заменой части фото на видео (как в прошлых частях)?

Сейчас появилась куча дешевых китайских планшетов USB хостом. Обычно с ними идет переходник USB OTG для подключения различных устройств (USB флещки, мыши, клавы и т.д) Через него также можно подключить и более полезные вещи. Итак имеем 7 дюймовый планшет MID A-13 Android 4.1 и плату-клон ARDUINO NANО на usb чипе CP2102. Делаем для примера простейшую систему контроля доступа на ключах DS1990 (те которые применяются в домофонах) Работает система так. Если ключ записан в базе то показываем фотку и открываем дверь. Так-же можно открыть дверь кнопкой с андроид или с платы ARDUINO. Программу под ARDUINO писал под WINAVR (исходники и пример с протеус в файле)

Контроль доступа

Вот как примерно это смотрится:

Видео работы: Контроль доступа ARDUINO NANO c чипом CP2102

Теперь по подключению конвертора USB<->485 к планшету с ANDROID.
Имеем платку конвертора на чипе FT232RL и MAX485 аппаратно присутствует «эхо» это удобно для проверки. На ANDROID планшет пишем программу терминал через которую отправляем данные в 485 сеть. Все теперь можем рулить устройствами на 485 сети.

Терминал

Вот как это смотрится:

Видео работы:USB485 c чипом FT232RL

Тестируем голосовые технологии Google на андроид планшете.Подключаем к аудио выходу планшета контроллер и голосом включаем нужное реле.Пока работает в online но c версии Android 4.1 Jelly Bean обещают offline распознование offline voice
Думаю может пригодится например в системах «Умный дом». Надо отметить что не все четко распознается, но у гугля есть фича позволяющаяя настроится под голос.Не знаю будет ли она работать в offline.
Пока вот что получилось:
Андроид включение голосом реле

Вывод:
Андроид становится все более привлекательным для построения интересных систем с микроконтроллерами. :)
Ссылка на файлы проекта
Файлы проекта

Не так давно Google открыл API для работы Android устройств с USB. Сегодня пришло время пощупать что же это такое и узнать какие возможности нам открываются.



Итак, у нас имеется Arduino Mega 2560, USB Host Shield и HTC Desire с прошивкой cyanogen 7.1.0 RC1 (Android 2.3.4). На всякий случай напомню, что все что будет описываться дальше — работает только начиная с Android 2.3.4 для телефонов и Android 3.1 для планшетов.

Тут стоит отметить что данный USB Host Shield не совсем удачный, особенно в сочетании с Arduino Mega 2560. Первая проблема заключалась в том что данная плата расширения сделана для Arduino UNO, а она отличается от Mega положениями контактов SPI, поэтому пришлось кидать перемычки (см. фото). Второй проблемой, хотя и вполне ожидаемой, стала потребность во внешнем источнике питания для работы этой платы расширения. Более удачной считается USB Host Shield 2.0 от Circuits@Home, но она и дороже.



Плата с перекинутыми SPI контактами

Настройка Arduino ПО

Загрузка прошивки

Google любезно предоставляет свой DemoKit скетч для Arduino. Все что нужно — это открыть его из firmware/demokit/demokit.pde , скомпилировать и залить на плату.

Тестовое Android приложение

В DemoKit пакете также находятся исходники Android приложения для демонстрации возможностей. Google предлагает нам самостоятельно создать Android проект и собрать это приложение. Для начала нам надо будет установить API Level 10. Дальше все просто — создаем Android проект и указываем путь к папке app , в Build Target указываем Google APIs (Platform 2.3.3, API Level 10). Собираем приложение и устанавливаем на телефон. Кто не хочет возится со сборкой — может скачать готовый APK.

Запуск

Просто подключаем наш телефон к USB Host Shield. Если мы все сделали правильно, то на экране появится запрос запуска DemoKit приложения.


Само приложение содержит две вкладки — In (кнопки, джойстик и сенсоры) и Out (светодиоды, реле и сервоприводы).



Я решил что для демонстрации вполне достаточно пары светодиодов и кнопки. Как это все чудо работает можно пронаблюдать на видео.

Немного кода

Arduino

Android

Выводы

Открывая такие возможности Google в первую очередь конечно же рассчитывает на появление большого числа активных Android аксессуаров, но далеко не последнее место занимает тот факт, что по сути мы получаем удобное устройство для взаимодействия с различными датчиками, сенсорами и приводами. Такое устройство запросто может стать мозгом чего-то роботизированного.

Также нельзя забывать о том, что Android устройство для Arduino может выполнять роль платы расширения, в которой есть GPS, Bluetooth, WiFi, акселерометр и многое другое.


меня вот интересует, можно ли ноунейм камеру от старого кнопочного самсунга как-то подрубить к ардуино/атмеге помощнее/стм32/малине пи/любому другому железу?

Есть дисплеи nexton, вроде это лучшее решение, на сегодня. И память ардуино экономится, и проводов не много.

а вместе с тачем можно подключать?

Я думал что расскажут про то как передаётся изображение на дисплей.

Как работает данный дисплей.

Проделана неплохая работа. Но никакой конкретики не сказано.

Автор, скажи как достать такие же переходники, или хотя бы что писать в алиэкспресс)

Автор, скажите, если я хочу на такой дисплей выводить динамическую картинку - как быстро он её отрисует? В частности, прогресс бар и прочие элементы отображения значений данных.

Есть ли кто-то, кто знает как подключить дисплей от Casio ZS100 (Giantplus 40pin) БЕЗ ТАЧСКРИНА?

Можно ли подключить несколько разных дисплеев в одну систему?

home made - про пищу

hand made - про остальное

что ж вы так то(((

В качестве самообразования класс. А вот в качестве практических действий под вопросом большим.. за 50 баксов можно купить мобилку с экраном и делать на ней что хочешь, а нужны гпио - подключай по юсб :)

Бандера-Майнкампф в действии. Всю прошлую неделю искал эту инфу.


Быстрое и красивое оформление интерфейса на дисплее Nextion

Недавно делал проект на Arduino и дисплее Nextion. В котором нужно было сделать сложный фон для оформления интерфейса управления. Реализовать теми методами про которые я рассказывал в предыдущих уроках про дисплей Nextion достаточно сложно. Поэтому появился повод снять еще одни урок по данной теме.

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

Пассивное состояние кнопки

Быстрое и красивое оформление интерфейса на дисплее Nextion Arduino, Дисплей, Lcd дисплей, Жк-Дисплей, Урок, Видео, Своими руками, Видеоблог, Длиннопост

Активное состояние кнопок.

Быстрое и красивое оформление интерфейса на дисплее Nextion Arduino, Дисплей, Lcd дисплей, Жк-Дисплей, Урок, Видео, Своими руками, Видеоблог, Длиннопост

В рамках урока реализовал вывод и скрытие текста новым методом. Для этого понадобится два дополнительных изображения.

Быстрое и красивое оформление интерфейса на дисплее Nextion Arduino, Дисплей, Lcd дисплей, Жк-Дисплей, Урок, Видео, Своими руками, Видеоблог, Длиннопост

В ближайшее время будет проект по данному уроку. Подпишитесь, чтобы не пропустить!

Быстрое и красивое оформление интерфейса на дисплее Nextion Arduino, Дисплей, Lcd дисплей, Жк-Дисплей, Урок, Видео, Своими руками, Видеоблог, Длиннопост

Исходные материалы для урока можно скачать тут.

Быстрое и красивое оформление интерфейса на дисплее Nextion Arduino, Дисплей, Lcd дисплей, Жк-Дисплей, Урок, Видео, Своими руками, Видеоблог, Длиннопост

Надеюсь моя информация будет полезной.

Спасибо! Всем добра!


Онлайн преобразование изображений по алгоритму "Floyd-Steinberg"

Онлайн преобразование изображений по алгоритму "Floyd-Steinberg" Онлайн-Сервис, Arduino, Oled LCD, Lcd дисплей, Длиннопост

Для Ардуино доступно много разных Ч/Б дисплеев.

Для того что бы получить красивое черно-белое изображение для этих дисплеев, с глубиной цвета всего 1 бит, но в тоже время с имитацией полутонов, как на представленных картинках, то для этого нужно использовать преобразование по алгоритму "Floyd-Steinberg".

Для преобразования можно использовать графические редакторы со встроенной функцией дизеринга Floyd-Steinberg, но ради одной картинки, не все хотят устанавливать тяжелое, платное ПО на свой ПК.

По этой же причине я представляю "Онлайн инструмент для конвертирования изображений по алгоритму Floyd-Steinberg dithering.

Пошаговая инструкция:

1 — Изображение может быть цветным или ч/б с любой глубиной цвета

2 — Сделайте его более контрастным(не обязательно)

3 — Измените его размер до требуемого Вам разрешения

4 — Перетяните подготовленную Вами картинку, поверх изображения на странице конвертера.

5 — Для сохранения изображения, наведите на него курсор и нажмите правую кнопку мышки.

После преобразования этим конвертером, Вы получите изображения как на скриншоте ниже

Онлайн преобразование изображений по алгоритму "Floyd-Steinberg" Онлайн-Сервис, Arduino, Oled LCD, Lcd дисплей, Длиннопост

Для тех, кому лень заниматься конвертированием картинок, есть небольшая галерея уже готовых Ч/Б изображений посмотреть можно здесь

Преобразуем в Си код для Arduino

Для того что бы преобразованное изображение вставить в компилятор с понятным ему форматом, нужно используйте онлайн BIN2HEX конвертер

Спасибо за прочтение. Если у Вас остались вопросы, то можете мне их задать


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

Шаг 1: Материалы и инструменты


Кабель USB-A – USB-B
Кабель USB-Host (OTG-кабель)
Arduino
1 светодиод (для тестирования)
Android устройство, версия ОС Android 4.0.0+ (или c поддержкой режима host)

ArduinoDroid или ArduinoCommander, которые можно загрузить из магазина Google Play

Шаг 2: Кабель USB-Host


Кабель USB-Host в основном аналогичен кабелю USB, но в разъеме micro USB установлены другие резисторы. Внутренние резисторы позволяют Android устройству активировать режим USB-Host. В этом режиме вы также можете использовать USB-флешки или другие устройства с поддержкой usb интерфейса. Это очень полезная функция, и теперь можно подключать даже usb-принтер.

Проблема состоит в том, что после подключения USB устройства, оно будет получать питание от ведущего (host) устройства, тем самым разряжая его аккумуляторную батарею.

Шаг 3: Соединения




Этот очень простой шаг и не требует особого внимания. Просто вставьте кабель USB-A – USB-B в USB разъем типа мама Host кабеля. Затем вставьте USB-B разъем в Arduino, а Micro USB в Android устройство.

Шаг 4: Включение Arduino


Все соединения должны быть выполнены как на фотографии. Далее можно включить ваш Arduino и загрузить в него последний скачанный код. На своем Arduino я использовал Blink скетч. Если Arduino не запускается, тогда проверьте правильность соединений.

Шаг 5: Приложения


Теперь Arduino уже готов к загрузке кода, но ваше Android устройство пока нет.

Давайте изменим эту ситуацию!

На данный момент существует два приложения, которые позволяют работать с нашим Arduino через режим Host.

Для их загрузки перейдите на сайт Play Store, затем в строке поиска введите "Arduino". Далее щелкните на "Apps", после этого будут отображаться только приложения. Нам нужно два приложения: "ArduinoDroid" и "ArduinoCommander". Установите их, затем запустите "ArduinoDroid". Это приложение должно обновить IDE, на что понадобится некоторое время. Приложение "ArduinoCommander" потребуется далее.

Примечание: Оба приложения использовать одновременно необязательно, просто я хочу показать работу обеих!

Шаг 6: ArduinoCommander, автор программы Антон Смирнов


Ну, что ж, начнем с приложения "ArduinoCommander". Его разработал Антон Смирнов для версии Andorid 2.2 или выше.

Данное приложение предназначено для работы с Arduino с помощью Android устройства. С его помощью вы сможете легко изменить состояние выводов (непосредственно установить высокое или низкое состояние), загрузить скетчи или считать показания на аналоговых выводах в режиме осциллографа.

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

Однако некоторые функции не работают. Надеюсь, в дальнейших версиях приложения эти баги будут исправлены. Загрузка скетча прошла успешно!

Ставлю данному приложению 4.0 из 5 звездочек.

Теперь давайте кратко рассмотрим подключение к Arduino.

Шаг 7: Часть 1


Сначала запустим приложение. Далее появится синее окно с 4 опциями. Поскольку нам необходимо подсоединиться через USB интерфейс, щелкните на "USB-Device" (на изображении на немецком языке).

Другие опции включают:
Ethernet
Bluetooth
USB-extras

Шаг 8: Часть 2



Теперь щелкните на "Autodetect". Android устройство начнет автоматический поиск Arduino, затем покажет его на экране. А сейчас выберем наш Arduino (просто щелкнем на нем).

Шаг 9: Часть 3


После выполнения предыдущего шага на экране будет показан наш Arduino. Обычно он отображается в цвете, и вы можете щелкать на выводы, чтобы изменить их режим. Однако у меня выбор режимов не работал, и эту проблему у меня не получилось устранить; возможно, у вас все будет работать без сбоев. Когда вы щелкните в нижнем правом углу, то перейдете в меню, с помощью которого сможете загрузить ваши скетчи с SD-карты. Эта функция работает очень хорошо.

Шаг 10: ArduinoDroid


Теперь перейдем к рассмотрению другого приложения, которое позволяет загружать скетчи в ваш Arduino. Это приложение называется "ArduinoDroid" и работает для версии Android 4.2.2 или выше. Автор этого приложения также Антон Смирнов!

Данное приложение представляет собой среду разработки IDE, компилятор и загрузчик для Arduino. Это приложение также использует режим host для загрузки скетчей, которые можно писать прямо в приложении.

После написания кода, его можно скомпилировать, нажав кнопку "Lightning-Button". Для компиляции потребуется некоторое время, но функция работает без сбоев.

После завершения компиляции, нажмите кнопку для загрузки (справа).

Загрузка будет длиться всего несколько секунд.

После этого мой Arduino запустит на выполнение новый код --> Он работает прекрасно!

Для тестирования я использовал "Blink" скетч.

Ниже вы можете посмотреть короткое видео компиляции в приложении и загрузки скетча

Шаг 11: Окончание!


Теперь вы сами убедились, как легко писать, компилировать и загружать скетч в Arduino с помощью Android устройств.

А теперь я хочу выразить особую БЛАГОДАРНОСТЬ Антону Смирнову, который создает такие полезные приложения для ОС Android!

Читайте также: