Дистанционно управляемое транспортное средство с камерой передающей изображение на экран может иметь много применений а также это весьма интересная штука. Такую штуку можно сделать на основе модуля ESP32-CAM (http://alii.pub/69872w) для чего его нужно дополнить самим транспортным средством и драйверами для его управления через данный модуль. В простейшем случае транспортным средством может быть какая либо колесная платформа поворачивающаяся по танковой схеме. Если исключить возможность заднего хода то электрическая схема всей конструкции может быть очень простой:
Рисунок 1 - Схема радиоуправляемого автомобиля с камерой
    else if(!strcmp(variable, "left")) 
    {
      pinMode(12,OUTPUT);
      digitalWrite(12,HIGH);
      pinMode(13,OUTPUT);
      digitalWrite(13,LOW);
    } 
    else if(!strcmp(variable, "right"))
    {
      pinMode(12,OUTPUT);
      digitalWrite(12,LOW);
      pinMode(13,OUTPUT);
      digitalWrite(13,HIGH);
    }
    else if(!strcmp(variable, "forward"))
    {
      pinMode(12,OUTPUT);
      digitalWrite(12,HIGH);
      pinMode(13,OUTPUT);
      digitalWrite(13,HIGH);
    }
    else if(!strcmp(variable, "stop"))
    {
      pinMode(12,OUTPUT);
      digitalWrite(12,LOW);
      pinMode(13,OUTPUT);
      digitalWrite(13,LOW);
      pinMode(12,INPUT);
      pinMode(13,INPUT);
    }  
Теперь чтобы модуль заработал осталось поменять соответствующим образом фронтенд который накодится по вкладке camera_index.h. В коде на этой вкладке есть 2 массива для разных камер. Нужно выбрать массив с камерой которая используется и заменить его содержимое. Для этого можно например скопировать его содержимое в программу для разархивации из формата .gz в .html потом изменить html код, после чего сжать его программой архиватором в формат .gz и содержимое переместить в выбранный массив. html код который будет работать с кодом выше может выглядеть например так:
Это довольно минималистичный веб интерфейс без излишеств, только с изображением для вывода потокового видео и кнопками для управления автомобилем. Основная функция в данном коде -fetch() для отправки get запроса с командами управления моторами. А также тег img для отображения видео. В сжатом виде данный код будет выглядеть так:
Удивительно, но после сжатия размер занимаемой памяти увеличился. Возможно сжатие начнет работать нормально при больших html кодах поэтому тут можно не экономить и сделать большую и красивую веб страницу. Но конечно же в разумных пределах т.е. не стоит например подключать react или другой большой фреймворк. Модуль может этого не потянуть даже со сжатием. В результате после внесения данных поправок в стандартный скетч и загрузки его в автомобиль, получается интересная радиоуправляемая по wifi со смартфона или компьютера машинка, тест драйв которой можно посмотреть на видео:
КАРТА БЛОГА (содержание)

Комментариев нет:
Отправить комментарий