Управляем чем угодно откуда угодно

Веб-управлялка для v2r

Кто что сделал и кто что собирается делать

Веб-управлялка для v2r

Сообщение andrewion » 16 сен 2013, 11:03

Всем, привет!

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

Поэтому я решил сделать веб-интерфейс для управления GPIO пинами прямо из окна браузера.
В веб-интерфейс добавил следующие возможности:
  • Создавать "кнопки" и назначать им свойства
  • Управление кнопками как с помощью мышки, так и при помощи клавиатуры
  • Все настройки свойств кнопок сохраняются на виртурилке

Для общего понимания, предлагаю ознакомиться с видео:



Чтобы пример из видео, у вас наглядно заработал, советую на пин GPIO87 повесить светодиод.

Вот видео, как это работает на практике:



Скачать веб-интерфейс можно тут: https://bitbucket.org/andrewion/v2rc обновление от 29.11.2013 01:13

Для установки веб-интерфейса, нужно под руторм распаковать папку v2rc из архива в папку /var/www на виртурилке.
А затем через браузер зайти по адресу http://[IP_ВИРТУРИЛКИ]/v2rc/
Также на папку /var/www/v2rc/saves и на его содержимое, проставьте права 0777, как говорится от греха подальше :)

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

2. У каждой кнопки есть окно свойств, которое содержит следующие поля:
  • "Название" - собственно название кнопки
  • "Пин GPIO" - сам пин GPIO на виртурилке
  • "Начальное состояние" - какое состояние у указанного пина GPIO по умолчанию - включён (подаётся ток) и выключен (тока нету)
  • "Тип кнопки" - различаются следующие виды кнопок:
      "Кнопка" - просто кнопка, если кнопка зажата то её пин будет работать пока кнопку не отпустят
    • "Переключать" - это некий тумблер, кнопку нажали - пин "включился", в следующий раз кнопку нажали - пин "выключился"
    • "Сигнал" - это если нужно послать короткий сигнал на пин, причём с интервалом в миллисекундах указанных в поле "Если является сигнальным, время задержки (микросекунды)"
    • "Слайдер" - это для тех случаев, когда нужно управлять GPIO как PWM. В данный момент работает только для аппаратных PWM
  • "Назначить клавишу" - тут три выпадающих списка - это для комбинации клавиатурных клавиш, например: CTRL+ALT+DEL Это нужно, чтобы для нашей кнопки можно было задать комбинацию клавиш на клавиатуре.
  • "Иконка для кнопки" - иконка для наглядности нашей кнопки))

По планам доработки веб-интерфейса, у меня следующее:
  • Как только появится рабочая прошивка для виртурилки с поддержкой видео потока, то можно будет чёрный фон веб-интерфейса сделать как flash-видео прямо с виртурилки. Вроде, для этого будет достаточно поднять сервер видео трансляции из под ffmpeg
  • Создание большего числа профилей кнопок, с возможностью переключаться между ними. А ля сейчас управление "Танком" - тут одни кнопки, через мгновенье управление "Машиной" - тут другие кнопки


Буду рад любой критике и пожеланиям))

Всем спасибо за внимание!))
Последний раз редактировалось andrewion 29 ноя 2013, 11:21, всего редактировалось 9 раз(а).
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Веб-управлялка для v2r

Сообщение Arle » 16 сен 2013, 11:26

Спасибо! попробуем.
Аватара пользователя
Arle
 
Сообщения: 35
Зарегистрирован: 09 сен 2013, 16:42

Re: Веб-управлялка для v2r

Сообщение andrewion » 16 сен 2013, 11:27

Arle писал(а):Спасибо! попробуем.


На здоровье! Буду рад любой критике))
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Веб-управлялка для v2r

Сообщение aiess » 16 сен 2013, 11:46

Такие вещи лучше на репозиторий выкладывать, например на github.
А можете описать принцип работы? Запросы постоянно отсылаются или только по нажанию и отпусканию кнопки?
Что будет если я зажму кнопку и закрою браузер?
aiess
 
Сообщения: 15
Зарегистрирован: 11 сен 2013, 14:09

Re: Веб-управлялка для v2r

Сообщение andrewion » 16 сен 2013, 12:13

aiess писал(а):Такие вещи лучше на репозиторий выкладывать, например на github.
А можете описать принцип работы? Запросы постоянно отсылаются или только по нажанию и отпусканию кнопки?
Что будет если я зажму кнопку и закрою браузер?


На репозитарий чуть позже выложу.

Принцип работы следующий:
1. Используя систему событий браузера, есть возможность к ним "подключаться" и вешать свои обработчики. Например обработка события нажатия клавиш на клавиатуре или клика мышки и т.д.
2. Повесив обработчик событий на нажатия кнопок клавы + этот же обработчик вешается и на сами нажатия кнопок. Вообще существует два вида обработчиков событий в веб-управлялке: "кнопка нажата" и "кнопка отпущена"
3. В зависимости от того какой тип кнопки, события "кнопка нажата" и "кнопка отпущена" работаю по разному. Например, для тип кнопки "Кнопка", при событии "кнопка нажата" подаётся на нужный пин сигнал, а при событии "кнопка отпущена" с нужного пина сигнал снимается.
4. При отработки событий "кнопка нажата" и "кнопка отпущена", страница через AJAX шлёт на нужный скрипт на виртурилке нужную команду, нипример для такого-то GPIO пина подать ток или снять его.

Все работы с GPIO пинами идут напрямую через драйвер v2r_gpio (http://wiki.virt2real.ru/wiki/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_GPIO#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_GPIO_2), как через консоль, но только из под PHP.

aiess писал(а):Что будет если я зажму кнопку и закрою браузер?

Думаю что ничего хорошего)) Вы просто активируете пин, а когда закроете браузер то пин так и останется "включённым" :D
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Веб-управлялка для v2r

Сообщение aiess » 16 сен 2013, 12:19

Мне кажется это не очень правильно и нужно каждые 1-3 секунды подавать сигнал жизни, и если его нет, то выключать пин. А лучше это вообще опционально сделать, а то бегай потом за виртурилкой уехавшей за пределы действия wi-fi или просто из-за зависшего браузера :lol:
aiess
 
Сообщения: 15
Зарегистрирован: 11 сен 2013, 14:09

Re: Веб-управлялка для v2r

Сообщение andrewion » 16 сен 2013, 12:37

aiess писал(а):Мне кажется это не очень правильно и нужно каждые 1-3 секунды подавать сигнал жизни, и если его нет, то выключать пин. А лучше это вообще опционально сделать, а то бегай потом за виртурилкой уехавшей за пределы действия wi-fi или просто из-за зависшего браузера :lol:


:D Хорошо. Учту этот момент.
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Веб-управлялка для v2r

Сообщение Smit » 16 сен 2013, 20:39

Товарищи. А Вам не кажется что php на 300 mhz процессоре это как-то не очень оптимально?
Smit
 
Сообщения: 126
Зарегистрирован: 07 сен 2013, 00:53

Re: Веб-управлялка для v2r

Сообщение andrewion » 16 сен 2013, 23:14

Smit писал(а):Товарищи. А Вам не кажется что php на 300 mhz процессоре это как-то не очень оптимально?

Если вы напишите на чём-нибудь оптимальном, то и не только я буду рад этому :D
А так, что есть, то есть :D

На самом деле, можно написать, что нибудь и на Сях, будет работать по шустрее. Но на данный момент, в прошивке виртурилки уже стоит php, который вполне адекватно работает для текущих задач. А веб-интерфейс, который я предлагаю, не требует каких либо особых навыков в программировании и понимания в работе линухи. Как говорится, поставь и радуйся. :)
Аватара пользователя
andrewion
 
Сообщения: 150
Зарегистрирован: 03 сен 2013, 21:46

Re: Веб-управлялка для v2r

Сообщение Gol » 17 сен 2013, 01:06

Я для этих целей ноду юзаю (NodeJS), все что у меня было сделано управляемое виртурилкой - все на ноде. Ну и вообще браузерное управление с помощью вебсервера на борту крайне фигово. Лучше юзать сокеты, иначе сильный оверхед получается. Но тут уж смотря какая задача.
Аватара пользователя
Gol
 
Сообщения: 507
Зарегистрирован: 17 фев 2012, 01:44
Откуда: Тула-Свободный-Щёкино-Тула-Москва

След.

Вернуться в Проекты на базе Виртурилки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron