Управление трактором с помощью джойстика

Всем привет!
Пока испытания на начал поэтому ничего не выкладываю.
Не думайте что забыл про то что обещал.
Кратко:
Сейчас заказал клапан аварийного сброса давления в гидросистеме, как раз по вашим рекомендациям.
Сначала хотел только электрическими ограничениями обойтись. Но подумал что если не электрика даст сбой. На такие случаи решил ещё гидравлику задействовать. Опять же как в самолёте :slight_smile:
Вот жду когда прийдёт.
Пока жду заканчиваю разного рода мелочи.

1 лайк

Вот это правильно!

Электроника для авто специально проектируется. В теме было обсуждение только по управлению, но в первую очередь в авто решается вопрос с питанием, поскольку в сети 12-24 В могут возникать существенные помехи на которые обычная ардуина совсем не рассчитана. Тема неоднократно обсуждалась на тут.

Не знаю как трактор с черепашьей скоростью, но я бы помимо управления добавил бы ещё одну систему, которая следила бы и не допускала аварийных ситуаций. Например, не допускать остановки одной стороны, когда другая набрала скорость выше некоторого предела и т.п. Где-то в др.теме уже писал об этом. Про ABS, ESP и прочее не буду. Это уже фантазии)
Джойстик может “залипнуть”, заклинить, обломать вконец) На него может упасть посторонний предмет, зацепится лямка сумки.
Плюс стандартная гидросхема со всеми предохранителями, клапанами. Тут придумывать вообще не надо- всё изобретено до нас.

что плавно подводит нас к мысли об установке и подключении датчиков оборотов полуосей)))

На барабане “Приз”!!!))) Ну типа того)
В идеале “мозги” должны располагать исчерпывающей информацией: температура воздуха, масла, скорости каждого колеса, наклон, ускорение, напряжение в бортсети, наличие человека на сиденье и т.д. и т.п.. Тут много не бывает.
Ну и дублирование критичных мест. Но это уже совсем серъёзный уровень. Практически уровень мирового автопроизводителя.

1 лайк

Всем доброго времени суток!
Вчера проводил первые ходовые испытания.
Сразу скажу первый блин комом.
Начнем с того что гидрораспределитель нужно настраивать т к. Рабочее давление очень низкое. Но это не самое главное. Проехав круг примерно размером с маленький стадион у меня срезало 3 из 4 полуосей. Буду переделывать конструкцию. Просто они были сварные, не пойдут. Пришлось поменять колеса на жигулёвские уазовские большие и тяжёлые на месте трудно разворачиваться.
Но все равно временно заварил обратно полуоси и с жигулёвские и колесами уже покатался. Даже начал понимать что где не хватает. Даже понравилось.
Что касается Ардуино ведёт себя хорошо. Правда бывает начинает глючит и перестает реагировать на отклонения. Решается полным выключением минуты хватает чтобы все восстановилось. Скорости не большие поэтому даже резкое отклонение из края в край не приводит к каким-то сложностям. Просто резко останавливается.

Хотел выложить видео но не знаю как.

1 лайк

Расскажите как выложу

Приветствую! Очень странная ситуация, надо разобраться. Часами подобное работало без перезагрузок. В первую очередь, что по питанию самой ардуины и джойстика?
Желательно добавить на ардуину мигание светодиодом в loop() чтобы можно было отследить ее зависание: digitalWrite(пин_светодиода, (millis() / 1000) % 2); вот такое вписать вначале или в конце loop(), заменив пин_светодиода на номер конкретного пина

Вроде бы единственный вариант на рутуб или другой видеохостинг загрузить и тут ссылку на видео вставить

Да нужно будет сделать.
Ещё подумал при нейтральном положении джойстика чтобы включались стоп сигналы.

Вот после таких советов ардуинка и начинает вести себя непредсказуемо. Есть годами отработанные методы использования millis(), зачем подсказывать хню?

1 лайк

озвучьте конкретные аргументы против предложенного метода мигания светодиодом

Озвучьте логику работы вашего метода. Подробно.

1 лайк

Не спорьте, а лучше прислушайтесь.

целочисленное количество микросекунд, прошедших со старта, делится нацело на 1000 - получается целочисленное количество секунд, от которого берется остаток от деления на 2, что равно либо 0 для четных секунд, либо 1 для нечетных. Это значение используется в качестве второго аргумента функции цифрового вывода. Что плохого для заглушки на время отладки?

я не спорю, я прошу аргументы против

Что произойдет в момент переполнения миллис?

Плохого здесь то, что этот метод потом начнет использоваться для всего и вся. Запнувшийся-то светодиод - не страшно, а если не светодиод? Человек таки средство повышенной опасности проектирует, не надо учить его плохому

uint32_t максимальное значение 4 294 967 295, соответственно на значении равном или большем чем 4 294 967 000 будет последнее переключение порта до переполнения - причем на HIGH. потом спустя менее 300мс счетчик millis() обнулится и случится переключение на LOW, а далее будет работать как прежде: одну секунду горит, одну секунду не горит.

И согласен, и нет. Для чего-то ответственного ТС, я надеюсь, попросит помощи здесь, и ему дадут совет согласно конкретных условий задачи. В данном случае речь про светодиод для отладки, чтобы заметить зависание, я не вижу смысла расписывать для него код с использованием глобальных переменных (хотя можно и static) и логикой на несколько строк - в рамках задачи это мусор, засоряющий код самого устройства. А одно мигание в 300мс вместо 1с раз в 50дн уж точно не навредит в данном случае

1 лайк

Надежды юношей питают. Не надо учить новичков плохому

По мне отличный контрольный блинк. 0 лишней памяти. Возьму на заметку.