Скетч посмотрел vorpala - длиннющий. А мне гексапод под настроение - придумалось движение, записал фрагмент. А собирать в одно большое и гармонично-красивое не получится. И железный пульт это забавно, надо попробовать, но как сделать его изменчивым для доработок? Добавить сенсорный экран? Это уже получится перебор.
Склепал пульт-макет. Скетч писать конечно быстрее чем в процессинге. Но расходовать HC-05, уно, нано или про мини на управлялку как то тяжко. Тут мысль возникла почти бредовая совместить ходуна и пульт в одно гибридное. Пульт-жук управляет жуком-пультом. Два разных внешне трансформера связанных в одно...надоело одно, поменяй не меняя на другое) вот только с дизайном чего то затык, просто коробочка и коробочка с ножками - как в одно совместить?
Добавил прозрачный колпак-голову Мозги какие то с глазками получились. Не удержался, добавил пульт со смартфона. Железный пульт на кнопках не понравился, сделал версию с джойстиком - лучше чуток. Удалось написать скетч для дистанционной заливки скетчей через блютуз, потренировался на уно и про мини 168. Теперь можно робота руками вообще не трогать. Осталось только научится дистанционно включать (выключать уже могу с наименьшим потреблением в покое.
Да научить не проблема, только скетч я отработал на стационарном компьютере с внешним блютуз модулем - таким:
А вдруг на ноутбучных не пойдёт? Проверить нет возможности. Нашёл у Дмитрия Осипова урок как снизить в 10 раз потребление тока модулем в ожидании соединения. Проверил, работает. Правда команда АТ, используемая им совсем не про энергосбережение. https://www.youtube.com/watch?v=McDeejrLgT8 Про энергосбережение в АТ командах нашёл здесь: https://www.edaboard.com/threads/sniff- ... le.267303/ ,но после не совсем (совсем не) понятного перевода, в конце всё свелось к выше указанному варианту Дмитрия. Про хитрую ножку не знал, был замысел взять сигнал с ТХ модуля и его запараллелить на RS триггер - послал, например, 121212, триггер переключился, подал питание на мк и периферию.
Это уже будет независимая робоплатформа ))), а не плата. Эту задачу можно решить так: полигон-белый, ограниченный чёрным и один оптический датчик на тележке. Как только напряжение аккумулятора упало, включаем оба мотора и катим куда нибудь до столкновения с чёрным. Тут переход на хождение по границе. Налево или направо - всё равно придёт на станцию - там датчик остановки в потолке и безконтактная зарядка (на али вроде видел - две катушки и платки). Далее выход на полигон в обратном порядке. Итого два простеньких датчика и клеёнка+зарядка. Можно разрабатывать и внедрять полностью автономного робота
Попробовал гексапода погонять в режиме квадропода - переваливается с одной пары на другую(что и ожидалось изначально). Вот же между схемой 3 через 3 ноги и 2 через 2 ноги должно что то быть ))) Нашёл пару ссылок на пентапода, как они должны ходить на самом деле ?, всегда 3 на земле, две в воздухе. В ролике, по ссылке, получается пословица "как собаке пятая нога". http://www.serva.cz/konstrukce/penta/
////////////////////// СЕНСОРНЫЙ СВЕТОДИОД // Тестовый скетч для емкостных сенсорных контактов ESP32. // byte fl=0;// флаг состояний светодиода int n=30;// переменная длительностей пауз между переключениями void setup() { //Serial.begin(115200);
} void loop() { ////////////////// pinMode(12, INPUT);//переводим выводы в режим входа pinMode(13, INPUT); int k1=0;int k0=0;int k01=0;// счётчики проверки исключающей ложные срабатывания сенсоров for(int i=0;i<3;i++){//проверяем несколько раз было ли касание вывода(ов) светодиода... if(touchRead(12)<=20&&touchRead(13)>20){k1++;}//... на включение if(touchRead(13)<=20&&touchRead(12)>20){k0++;}//... выключение if(touchRead(13)<=20&&touchRead(12)<=20){k01++;}//... или мигание } if(k1>2){fl=1;}// выставляем значение флага по результатам счётчиков if(k0>2){fl=0;} if(k01>2){fl=2;} //Serial.println(touchRead(12));// используется при отлаживании работы конкретной схемы //Serial.println(touchRead(13)); ///////////////// pinMode(12, OUTPUT);//переводим выводы в режим выхода pinMode(13, OUTPUT);//анод светодиода к 12, катод через резистор 1к к 13 if(fl==1){digitalWrite(12, HIGH);delay(n);}//включаем if(fl==0){digitalWrite(12, LOW);delay(n);}//выключаем if(fl==2){digitalWrite(12, HIGH);delay(5*n);digitalWrite(12, LOW);delay(5*n);}//мигаем }