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


Это – ничего такого особенного. Как уже много раз было сказано, в отсутствие у робота пока нормального мозга, я использую его имитатор на базе Raspberry Pi 3.

На “железном” уровне, это просто одна почти голая малина, которая валяется как попало на столе и питается от общего с роботом блока питания. Одним своим концом она торчит по вайфаю к домашнему роутеру. Другим своим концом, она торчит двумя проводами по i2c – к роботу.

На “программном” уровне, на малине крутится NGINX + PHP. Зачем крутится PHP – не знаю. По привычке поставил…

На коленке, из говна и палок было очень быстро сооружено некое подобие интерфейса управления для отладки и демонстрации тех или иных одиночных функций. Просто html+css+js. Никакой СУКС и рядом не валяется. Прямо, как хомяки в “лихие 90е”: в блокноте от руки на лету, без оптимизации и “стратегического планирования”, в перерывах между перекуром и паяльником.

Например, пушка:

Или, скажем, лампочки:

Ползунки, кнопки и картинки. Все. Ах, ну еще и примитивный JS, который переводит их нажатия в команду, написанную еще в самом начале проекта. Типа:

./likedo ctrlID cmdID arg1 arg2 … argN

Это коротенькая программа на си, которая делает базовые проверки на переданные параметры и сливает их в i2c-шину. Можно вообще без нее (через jquery на странице напрямую лить команды в /dev/i2c-1). Просто команда у меня уже есть и в ней есть нужные проверки, а на js пришлось бы написать все с нуля. А мне лень. Дергать внешнюю уже готовую команду – проще.

И теперь, вся разница во взаимодействии с личинкой робота лишь в том, что раньше я эту команду набирал руками в консоли, а теперь просто мышкой по экрану возюкаю. Причем, не имеет значения, по экрану чего именно. Пока нахожусь в пределах своей домашней сетки, это может быть любой настольный компьютер, ноутбук, планшет, сотовый телефон, холодильник – что угодно, в чем сейчас есть броузер:

Станет потом этот интерфейс частью робота или нет – не берусь пока сказать. Основная цель: сделать робота “самостоятельным”. Как следствие, наличие подобного интерфейса – крайне второстепенная задача. Да, он мне очень-очень нужен сейчас, на стадии постройки и отладки. Но будет ли он нужен потом – время покажет.

А то, что он выглядит как нечто “законченное”… Ну, не знаю… Я много времени трачу на весь этот проект в целом. Почти весь свой досуг. Так, почему бы не делать все так, чтобы, это было еще и “приятно в руках подержать”. Даже, если это что-то и временное… Тем более, что мой опыт (почти четверть века!) позволяет создавать такие вещи очень быстро и почти не требует усилий или особого внимания.

Так, что, не привыкайте пока особо к этому интерфейсу – не факт, что он останется частью проекта впоследствии :-)


P.S.
Люди! Вот тут внизу есть комментарии. Под каждым постом. Мне не нужно будет на каждое письмо индивидуально отвечать. Любой ответ будет доступен сразу всем. Так же проще…


Поделиться: