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


Это – ничего такого особенного. Как уже много раз было сказано, в отсутствие у робота пока нормального мозга, я использую его имитатор на базе 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.
Люди! Вот тут внизу есть комментарии. Под каждым постом. Мне не нужно будет на каждое письмо индивидуально отвечать. Любой ответ будет доступен сразу всем. Так же проще…