Смартфон как плата расширения для Ардуино

lilik
Offline
Зарегистрирован: 19.10.2017

Нет ли на сегодня готовых приложений под Андроид и библиотек под Ардуино, позволяющие использовать элементы смартфона как периферию для МК платы? Желательно соединение беспроводное, через блютуз. Интересует в первую очередь экран. Большой цветной покупать отдельно накладно, а так в кармане уже лежит готовый :-) 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

RemoteXY. https://remotexy.com/ru/

Но и написать то на Java  что-то не сильно сложно.

Pyotr
Offline
Зарегистрирован: 12.03.2014

Я вот remoteXY сейчас "мучаю". Сделал суточный таймер))) на промини и RTC. Общение через блютуз. Причем разъем для блютуз модуля вывел снаружи корпуса. Установил время на RTC, момент ВКЛ и ВЫКЛ и можно выдернуть модуль блютуз. Никаких кнопок, дисплея и пропиливания отверстий под их крепления.
Если что-таймеров розеток элекронных и механических у меня с десяток. Нужен был именно такой.
Второй проект с шестью графиками, ползунком, вводом-выводом информации.
PS. Влад вон опередил. Под андроид я не писатель.

rkit
Offline
Зарегистрирован: 23.11.2016

esp32 с веб-интерфейсом решает все вопросы

lilik
Offline
Зарегистрирован: 19.10.2017

Pyotr пишет:
Я вот remoteXY сейчас "мучаю". Сделал суточный таймер))) на промини и RTC. Общение через блютуз. Причем разъем для блютуз модуля вывел снаружи корпуса. Установил время на RTC, момент ВКЛ и ВЫКЛ и можно выдернуть модуль блютуз. Никаких кнопок, дисплея и пропиливания отверстий под их крепления. Если что-таймеров розеток элекронных и механических у меня с десяток. Нужен был именно такой. Второй проект с шестью графиками, ползунком, вводом-выводом информации. PS. Влад вон опередил. Под андроид я не писатель.

Да, я тоже пробовал, потом шагнул дальше, в "мит апп инвентор 2" :-)

Но мне было бы интересно не писать в нём для "экрана с ардуино через блютуз", а писать в ардуино для экрана смартфона. Просто приложение-адаптер подходящее не нашёл, а оно по идее должно быть уже в природе. Например, рисовать те же шкалы (http://arduino.ru/forum/proekty/imitatsiya-razlichnykh-shkal-na-displee-...) в "Арде" но в цвете :-) 

lilik
Offline
Зарегистрирован: 19.10.2017

rkit пишет:

esp32 с веб-интерфейсом решает все вопросы

Пробовал такую машинку, менял надписи, цвета, кнопки.., не понравилось.

http://wikihandbk.com/wiki/ESP32:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1...

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

lilik пишет:

рисовать те же шкалы (http://arduino.ru/forum/proekty/imitatsiya-razlichnykh-shkal-na-displee-...) в "Арде" но в цвете :-) 

С коллегой Ркит-ом согласен полностью. Даже по цене МК+БлюТус модуль, не говоря про ресурсы, ESP32 куда привлекательнее. Если нет острой нужды в 5 вольтовой периферии, то ЕСП32 - "адназначна!"(с).

rkit
Offline
Зарегистрирован: 23.11.2016

lilik пишет:

Пробовал такую машинку, менял надписи, цвета, кнопки.., не понравилось.

http://wikihandbk.com/wiki/ESP32:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1...

Ну так сделай лучше.

lilik
Offline
Зарегистрирован: 19.10.2017

rkit пишет:

lilik пишет:

Пробовал такую машинку, менял надписи, цвета, кнопки.., не понравилось.

http://wikihandbk.com/wiki/ESP32:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1...

Ну так сделай лучше.

Не, машинка понравилась, вот такое рисование не понравилось :-)

// Веб-страница:        
            client.println("<p><a href=\"/forward\"><button class=\"button\" onclick=\"moveForward()\">FORWARD</button></a></p>");
            client.println("<div style=\"clear: both;\"><p><a href=\"/left\"><button class=\"button\" onclick=\"moveLeft()\">LEFT </button></a>");
            client.println("<a href=\"/stop\"><button class=\"button button2\" onclick=\"stopRobot()\">STOP</button></a>");
            client.println("<a href=\"/right\"><button class=\"button\" onclick=\"moveRight()\">RIGHT</button></a></p></div>");
            client.println("<p><a href=\"/reverse\"><button class=\"button\" onclick=\"moveReverse()\">REVERSE</button></a></p>");        
            client.println("<input type=\"range\" min=\"0\" max=\"100\" step=\"25\" id=\"motorSlider\" onchange=\"motorSpeed(this.value)\" value=\"" + valueString + "\"/>");
            
            client.println("<script> function motorSpeed(pos) { ");
            client.println("var xhr = new XMLHttpRequest();"); 
            client.println("xhr.open('GET', \"/?value=\" + pos + \"&\", true);"); 
            client.println("xhr.send(); } </script>");
           
            client.println("</html>");

 

rkit
Offline
Зарегистрирован: 23.11.2016

Это не рисование, это вывод html для инвалидов умственного труда. Не читай всякие говенные инструкции от недоучек, читай документацию.

lilik
Offline
Зарегистрирован: 19.10.2017

rkit пишет:

Это не рисование, это вывод html для инвалидов умственного труда. Не читай всякие говенные инструкции от недоучек, читай документацию.

Не знаю, написано вроде разумно, рисуются кнопки вроде.

rkit
Offline
Зарегистрирован: 23.11.2016

Нафига вообще было создавать тему с вопросами, если и так вроде вкус говна терпимый.

lilik
Offline
Зарегистрирован: 19.10.2017

rkit пишет:

Нафига вообще было создавать тему с вопросами, если и так вроде вкус говна терпимый.

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

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

lilik пишет:

rkit пишет:

Нафига вообще было создавать тему с вопросами, если и так вроде вкус говна терпимый.

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

Тут даже я вступлюсь. Ты бы советы не давал дядькам, ОК? Не нужно быть таким нежным, как кожа на залупе.

 Если ты не понимаешь, как написать на вебсокете передачу данных на сайт, а на нем, внутри, на клиенте, на JS написать всякие примитивы отображения (типа setpixel, arc, lineto, moveto, besier, etc...) то это вопрос твоей квалификации, как программиста, а не "обязанность" другого участника разжевать и в ротик положить. То есть положить-то можно, но совсем не то, что ты ожидаешь. IYNWIM.

lilik
Offline
Зарегистрирован: 19.10.2017

Я не даю советы, мне 48 и вы мне не дядьки, даже если знаете больше. Это без окей. Не хочет отвечать не надо, будет хамить, пойдёт на хуй, хотите затрите хоть все темы потом "со мной" :-). Разжевать можно было бы, действительно как трудовик ни в зуб, за подсказку спасибо.

rkit
Offline
Зарегистрирован: 23.11.2016

lilik пишет:

лучше ссылки на конкретные простенькие поделки в этом ключе если есть на примете.

Я чего не русским языком пишу, что ли? "Простенькие поделки" пишут недоучки. Это не то, с чем ты получишь результат. Профессиональная информация есть только в первоисточниках.

sadman41
Offline
Зарегистрирован: 19.10.2016

Опять на любительском форуме ЧСВ заплескало через край.

Pyotr
Offline
Зарегистрирован: 12.03.2014

Влад, спрошу как у православного - это было проявление любви к ближнему?

b707
Offline
Зарегистрирован: 26.05.2017

lilik пишет:

Не, машинка понравилась, вот такое рисование не понравилось :-)

// Веб-страница:        
            client.println("<p><a href=\"/forward\"><button class=\"button\" onclick=\"moveForward()\">FORWARD</button></a></p>");
            client.println("<div style=\"clear: both;\"><p><a href=\"/left\"><button class=\"button\" onclick=\"moveLeft()\">LEFT </button></a>");
            client.println("<a href=\"/stop\"><button class=\"button button2\" onclick=\"stopRobot()\">STOP</button></a>");
            client.println("<a href=\"/right\"><button class=\"button\" onclick=\"moveRight()\">RIGHT</button></a></p></div>");
            client.println("<p><a href=\"/reverse\"><button class=\"button\" onclick=\"moveReverse()\">REVERSE</button></a></p>");        
            client.println("<input type=\"range\" min=\"0\" max=\"100\" step=\"25\" id=\"motorSlider\" onchange=\"motorSpeed(this.value)\" value=\"" + valueString + "\"/>");
            
            client.println("<script> function motorSpeed(pos) { ");
            client.println("var xhr = new XMLHttpRequest();"); 
            client.println("xhr.open('GET', \"/?value=\" + pos + \"&\", true);"); 
            client.println("xhr.send(); } </script>");
           
            client.println("</html>");

 

фактически вступлюсь за lilik-а... хотя и не сочувствую :)

Меня тоже отталкивает в ВЕБ-интерфейсе необходимость рисовать HTML многоэтажными выводами print. То. что всякие стили и статичные картинки можно положить в файлосистему на флеш - знаю. Но ведь это все равно криво, неудобно и медленно... да и динамические странички все равно рисовать. Это неизбывно или есть какие-то иные варианты?

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

sadman41
Offline
Зарегистрирован: 19.10.2016

Во-первых - если не требуется интегрировать в HTML значения переменных, то хранить его можно одним большим куском прямо в PROGMEM. Или несколькими. И использовать динамический обмен данными - ajax, websocket, вот это всё.

Во-вторых - МК не является устройством для хостинга или узлом CDN. Придумывайте простые интерфейсы без растровых картинок. Это вполне возможно сделать. Примером можно привести интеграцию SVG, Unicode-символов, CSS-извращения и пр.

В-третьих - пока стоит цель выводить всё в HTML-браузер - без HTML не обойтись. Никак. 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Pyotr пишет:

Влад, спрошу как у православного - это было проявление любви к ближнему?

Угадал! ;))

Не ясно, про кого из диспутантов ты спросил? Хотя, я проявил любовь к обоим, ящетаю! ;))

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

b707 пишет:
Это неизбывно или есть какие-то иные варианты?

WS и  JS - вариант. Что непонятного? На твоей стороне будет просто рисовалка, как тебе нравится. Любая.

Хочешь пиксельную графику - сделай себе функции setpixel() и getpixel() и рисуй все, что нравится. Все остальное можно убрать в библиотеку.

Хотя это и программистски интересно, но бесполезно.

Правильно так: разрабатываешь интерфейс. Со всеми красивостями. АсинкВебСервер умеет удобно маршрутизировать и парсить ПОСТ запросы. Соответственно:

от интерфеса - кидаешься ПОСТами, или вообще JSON-файлами,

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

Никакие данные, никаким HTML "рисовать" не нужно. Глупость какая-то! А саму страничку, ты правильно написал, нужно положить в файловую систему. Дальше тебя HTML вообще не волнует. Ты получаешь  уже "словарь": ключ/значение, от парсера, а отдаешь данные через ВебСокет (в придуманным тобой формате, хоть в бинарном). Вообще не используя НИ ОДНОГО тэга! ;)))

Ты, могу предположить, застыл в "вебе 2000-х", с Перлом и сложным HTML? Уже давно так не пишут. На клиенте код на JS, в который кидаешься JSON-ом или XML-ем. JS формирует страницу на клиенте, адаптируясь под его размеры и особенности. Всякие напичканные данными порталы используют иную технологию (прочти про Бутстрап), но это уже совсем к нам не относится.

rkit
Offline
Зарегистрирован: 23.11.2016

rkit пишет:

"Простенькие поделки" пишут недоучки.

Ок, я не правильно сформулировал тут. УЧАТ "простыми поделками" недоучки. Писать может кто угодно.

rkit
Offline
Зарегистрирован: 23.11.2016

b707 пишет:

Меня тоже отталкивает в ВЕБ-интерфейсе необходимость рисовать HTML многоэтажными выводами print.

Потому что так никто не делает. Есть js для этого. И библиотеки делающие это фантастически удобным.

lilik
Offline
Зарегистрирован: 19.10.2017

rkit пишет:

lilik пишет:

лучше ссылки на конкретные простенькие поделки в этом ключе если есть на примете.

Я чего не русским языком пишу, что ли? "Простенькие поделки" пишут недоучки. Это не то, с чем ты получишь результат. Профессиональная информация есть только в первоисточниках.

:-)

К чему это яйцетрясение?

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

А так в целом спасибо за идею.