Дисплей на основе Android для Duinos

Арпрос
Вторник 22 мая 2018 г. 2:37
Я делаю две части программного обеспечения, которые работают вместе, приложение для Android и библиотека Arduino, которые позволяют использовать устройство Android в качестве сенсорного экрана с высоким разрешением для MCU. Экран поддерживает подмножество команд библиотеки Adafruit GFX.

Более того, вы можете вспомнить список кнопок на экране, которые отправляют команды обратно в MCU.

API все еще может измениться, и приложение Android еще не очень дружелюбное, и, без сомнения, есть много ошибок.

Устройство Android не должно быть очень мощным. Он отлично работает с моим Kindle Fire за 30 долларов. Я тестировал как черную таблетку F103C, так и Franken Blue Pill F303c как MCU.

Приложение для Android: http: // GitHub.com/arpruss/vectordisplay
Библиотека Arduino: https: // github.com/arpruss/vectordisplayarduino
#include VectorDisplayMessage msg; SerialDisplayClass Display; void setup() { Display.begin(); Display.addButton('c', "Circle"); Display.addButton('o', "Color"); } void loop() { if (Display.readMessage(&msg) && msg.what == MESSAGE_BUTTON) { if (msg.data.button == 'c') { Display.fillCircle(random(240),random(320),random(50)); } else if (msg.data.button == 'o') { Display.foreColor(0xFF000000 | (random(256)<<16) | (random(256)<<8) | random(256)); } } }

Rogerclark
Вторник 22 мая 2018 г., 3:29
Интересный...

Арпрос
Ср 23 мая 2018 г., 4:04
Вот быстрый и грязный (и не совсем работает) порт Pigscope на этом дисплее: https: // github.com/arpruss/pigscope_mod

Изображение

Арпрос
Чт 24 мая 2018 г. 18:11
Много исправлений ошибок включено. Пигоскоп теперь работает более или менее нормально.

Мадиас
Чт 24 мая 2018 г., 21:03
Это помнит меня о Uecide - https: // uecide.орг/
Я много использовал его с PIC32 (Duino), а также есть серийная функция дисплея в самой IDE.
Но отличная идея принести его в систему на основе Android; Большинство из нас используют такие телефоны, и даже самый дешевый имеет лучший дисплей, чем у нас <15 модулей Eur aliexpress/ebay Display.

Арпрос
Пт 25 мая 2018 г., 17:26
Андоидная часть выпускается в Google Play: https: // игра.Google.com/store/apps/deta ... Tordisplay

Мадиас
Сб 26 мая 2018 г., 19:52
Я еще не пробовал, но это на вершине моего списка Todo!
Дальнейшее размышление: ESP8266 WLAN DISPLAY для STM32DUINO....

Zoomx
Солнце 27 мая 2018 г. 8:09
Более дальнейшее размышление о приложении Android: вход из Bluetooth или Wi -Fi

Арпрос
Солнце 27 мая 2018 г. 14:59
[Zoomx - Солнце 27 мая 2018 г. 8:09] - Более дальнейшее размышление о приложении Android: вход из Bluetooth или Wi -Fi
Блестящая идея. Я только что абстрагировал слой соединения, так что сейчас его следует легко добавить.

Арпрос
Пн 28 мая 2018 г., 14:13
Я добавил поддержку Wi -Fi. Я еще не пробовал это с ESP8266 (вместо этого я проверил сценарий Python на ПК), но вы сможете просто сделать: WiFiDisplayClass Display; ... Display.begin("hostIP");

Zoomx
Пн 28 мая 2018 г. 16:47
Протестирован.
Старый Samsung S7500 с CyanogenMod 11 и ESP-01
Приложение показывает IP 87.1.168.192 Вместо этого системы информации о системе 192.168.1.97 и так мой роутер
Пример circle_esp8266 имеет небольшую ошибку
Отображать.начинать(); вместо отображения.начать (хост);
Я использовал 192.168.1.97 как хозяин.

После печати «подключен» нет, отчет приложения о том, что устройства не подключены.
Я добавил несколько принтов после отображения.begin () и отображать.addbutton in setup () и они были напечатаны.

Но я обнаружил, что S7500 не отвечает ни на Ping, ни на Telnet на порту 7788
Тогда Sony Xperia Z2. Приложение показывает тот же IP 87.1.168.192 вместо 192.168.1.87
Первый раз не получил никакого соединения, как раньше, но на этот раз Telnet работал.
Затем я снова отключил и протестировал ESP8266, и на этот раз замолчать экран и две кнопки.

Арпрос
Пн 28 мая 2018 г., 19:01
Спасибо за отчеты!

Я исправил обратный IP -адрес в приложении.
Я исправил строку begin () в примере.
Я добавил еще несколько вещей в библиотеку Vector Display для лучшей совместимости Adafruit GFX.

Я протестировал быстро Эскиз для моего устройства предупреждения о погоде ESP8266, и он правильно отображается на моем телефоне, а не на его встроенном экране. Я должен был убедиться, что инициатор Wi -Fi произошел до экрана, конечно, конечно.

Zoomx
Вторник 29 мая 2018 г., 7:46 утра
Ваш проект очень интересный, потому что разрешите переработку старого аппаратного обеспечения Android!

Если у вас есть примеры Python, поместите их на GitHub, подумайте о Raspberrypi!

Я должен понять, почему Old Samsung S7500 не работает, кажется, что соединение Wi -Fi не является надежным.


Я обновил приложение Android на Sony Xperia Z2 (Android 6.0.1) и теперь IP правильный.

Арпрос
Вторник 29 мая 2018 г. 14:04
Я только что обновил приложение Android, чтобы включить поддержку Bluetooth. На стороне Arduino вы должны просто сделать что -то вроде: #include SerialDisplayClass BTScreen(BTSerial); ... BTSerial.begin(); BTScreen.begin();

Арпрос
Чт 31 мая 2018 г. 15:37
Я обновил как приложение, так и библиотеку, чтобы сделать рукопожатие при изменении разрешения экрана. Если вы используете приложение и библиотеку, вам следует обновить оба.

граф
Чт 31 мая 2018 г., 19:31
Очень крутой проект! Образец сценарии Python работают нормально.

Я попробовал свинед.Ино с этим на «чертепе». Я должен был измениться:

Определите tft serialdisplay
к
Serialdisplayclass tft;

Для того, чтобы он собирал.

Экран на моем Samsung Galaxy S5 не обновляется, хотя. Нет «непрерывного» графика. Я вижу изменение только тогда, когда я неоднократно нажимаю «держать». Что -то еще что -то не так с эскизом или приложением?

Арпрос
Чт 31 мая 2018 г. 22:50
[граф - Чт 31 мая 2018 г., 19:31] - Определите tft serialdisplay
к
Serialdisplayclass tft;
Хороший улов. Я немного изменил API и забыл это.
Экран на моем Samsung Galaxy S5 не обновляется, хотя. Нет «непрерывного» графика. Я вижу изменение только тогда, когда я неоднократно нажимаю «держать». Что -то еще что -то не так с эскизом или приложением? Я не знаю. Я только что попробовал это на своем HTC A9 с последним эскизом и библиотекой и последним приложением, и оно работает нормально. Вы используете текущую библиотеку Vectordisplay от GitHub (я внес изменения сегодня утром) и текущее приложение (0.30)?

Если у вас есть ADB на вашем компьюте. Напишите мне на arpruss@gmail.компонент Если интересно.

Также возможно, что есть проблема с скоростью связи, и устройство слишком быстро отправляет данные, и вызовы обновлений пропускаются. Вы можете попробовать две вещи:
1. Прокомментируйте tft.непрерывный.Вызовы Update () в эскизе Pigscope.
2. Добавить tft.SetDelay (2) до или после TFT.начинать()

граф
Пт, 01 июня 2018 12:49
Да, я использую самый последний эскиз, библиотеку и APK. Я попробовал это на нескольких других телефонах Android и получил те же результаты.

Затем я попробовал эти две вещи:

1. Прокомментируйте tft.непрерывный.Вызовы Update () в эскизе Pigscope.
2. Добавить tft.SetDelay (2) до или после TFT.начинать()

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

Я отправил вам электронное письмо, чтобы получить версию отладки. Спасибо!

Арпрос
Пт, 01 июня 2018 г., 14:15
Я не получил вашу электронную почту, но вы можете забрать отладку APK от https: // github.com/arpruss/vectordispla ... -отлаживать.апк

Вы можете получить журнал с: adb logcat > log.txt

граф
Пт, 01 июня 2018 г., 16:31
Моя электронная почта, вероятно, находится в вашей папке спама :) (Gmail делает это со мной из моего домена)

Один комментарий о свиньи.INI, который я упомянул в электронном письме, является этой строкой в ​​конце функции Setup ():

DigitalWrite (PB12,1);

Разве это не должно быть:

DigitalWrite (board_led, High);

В любом случае, я получил версию отладки и протестирую ее сегодня вечером. (Забыл сегодня взять с собой USB -кабель моего телефона.)

граф
SAT 02 июня 2018 12:48
Получил трассировку (прикреплено)

Он показывает эти строки:

Vectordisplay: кормление класса Mobi.Omegacentauri.Vectordisplay.команды.Полилин

Арпрос
SAT 02 июня 2018 г., 4:47
Я не знаю, почему это не появляется. Мне кажется, что это должно работать очень хорошо в зависимости от журнала. Может быть, ваша доска подключена таким образом, что трассировка вышла из диапазона дисплеев? Вы можете попробовать использовать кнопку увеличения.

граф
SAT 02 июня 2018 г., 18:05
Я тоже в недоумении. График отображается после нажатия удержания несколько раз. Нажатие Zoom- показывает график (меньше), но только после нажатия удерживает несколько раз.


Наверное что -то несовместимое с тем, что я использую. (Однако я попробовал, два разных чертежа, три разных USB/серийных адаптера и три разных телефона.)

В любом случае, спасибо, что изучили это.

граф
Солнце 03 июня 2018 18:37
Не желая сдаваться.. :)

Я посмотрел на ваши фотографии вашей установки в магазине Play. Я заметил, что вы, вероятно, используете загрузчик STM32.. и подключение через USB -порт. Мое соединение через USB/серийный адаптер.

Так.. Я попробовал это с загрузчиком (должен был понять это, так как я никогда не использовал его)..

Vectordisplay отлично работает при подключении через USB -порт (с загрузчиком)!!!!

Однако использование USB/серийного адаптера не работает. Я попробовал несколько разных. Не уверен, почему.. Как другие вещи (загрузка сценариев, коммунируемые с другими приложениями) отлично работают.

Спасибо за это полезное приложение!

Арпрос
Солнце 03 июня 2018 11:10
Сделайте примеры, включенные в библиотечную работу с серийным адаптером USB? Может быть, это просто несовместимость с PigScope?

граф
Пн июня 04, 2018, 16:08
Да.. Примеры отлично работают с USB/серийным адаптером.

Pigscope работает тоже, но только после нескольких прессов «удержания». Так что это, вероятно, связано с тем, что сразу же отправляется сразу. Обратите внимание на пославление, которое я отправил:

Иногда плохие данные:

Vectordisplay: плохая проверка класса Mobi.Omegacentauri.Vectordisplay.команды.Полилин

а иногда хорошие данные:

Vectordisplay: кормление класса Mobi.Omegacentauri.Vectordisplay.команды.Полилина

Так ясно, что где -то есть проблема..

граф
Пн июня 04, 2018, 19:54
В loop (), если вы не покинули моргнуть (); и изменить задержку (10); задержать (100); В функции LinkLed (), затем, используя последовательный/USB -адаптер тоже работает (хотя немного медленно).

Я замечаю, что если вы сохраняете задержку (10); и неудобно моргнуть (); В цикле дисплей более гладкий, даже используя прямое USB -соединение.

Изменение настроек в приложении, похоже, не имеет большого значения.

Арпрос
Пн июня 04, 2018, 22:01
Попробуйте последнюю APK в каталоге GitHub приложения и посмотрите, работает ли оно лучше для вас. Это было значительно оптимизировано, я думаю.

Вы также захотите скачать новую версию библиотеки Vectordisplay для Arduino Side.

граф
Вт, 05 июня 2018 г., 13:59
Я попробовал новую версию (с новой Libary).

Эта новая версия работает как для USB (загрузчик), так и для USB/серийный адаптер. Мне все еще нужна задержка мигания на 100 мс для USB/серийного адаптера.

Кажется, работает нормально (за исключением изменения настройки).

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

Арпрос
Вт, 05 июня, 2018, 16:18
Какие настройки вы имеете в виду?

граф
Вт, 05 июня, 2018, 16:26
У вашего приложения есть меню. Вращать, очистить, сбросить, настройки, лицензия... Не уверен, что они все делают, но я попробовал «настройки» и изменил значения, которые выделили график.

Арпрос
Вт, 05 июня 2018 г., 11:51 вечера
[граф - Вторник 05 июня 2018 г., 16:26] - У вашего приложения есть меню. Вращать, очистить, сбросить, настройки, лицензия... Не уверен, что они все делают, но я попробовал «настройки» и изменил значения, которые выделили график.
Да, после настройки вам, вероятно, нужно повторно подключиться. Я посмотрю, смогу ли я что -нибудь с этим сделать. ** ОБНОВЛЕНИЕ: ** Я изменил настройки в простой всплывающий целевой FPS выбор.

Прямо сейчас я работаю над поддержкой растровой карты.

Арпрос
Солнце 17 июня 2018 г., 22:03
Поддержка растровой карты в. Почти вся библиотека GFX поддерживается. Все еще необходимо: поддержка дополнительных шрифтов.

Blue Pill Breakout Board ?

3.97 Большой дисплей 240x400 ST7793