Прикормочный кораблик, автоматизация на ардуино
- Войдите на сайт для отправки комментариев
Добрый день форумчане!
Попросил приятель помочь автоматизировать процесс сброса прикормки на его прикормочной кораблике.
Для привода двигателя использовать модуль L298N от него же запитать и arduino nano. Датчики начального и конечного бункера - безконтактные V191028 -TCST2103.
Ссылки на комплектующие с Алиэкспрева приведу позднее.
Код, по мере реализации проекта буду выкладывать в следующем посте, прошу не цитировать!
Что должна уметь делать программа?
1. Принимать сигнал PWM от приемника и если значение выше порогового произвести однократный сброс
прикормки, выдержать некоторую паузу на опустошение бункера и вернуть его в исходное положение.
2. После сброса прикормки не зависимо от входного сигнала ничего не делать, с повторной зарядкой бункера ТС не определился, я предложить поставить кнопку для приведения системы в исходное состояние готовности.
А можно чертёж (рисунок) кинематики мехнизма выгрузки?
А можно чертёж (рисунок) кинематики мехнизма выгрузки?
Наверное можно, кораблик работает, в настоящий момент двигатель переменного тока запитан от контроллера, принимающего шигнал по PWM, реверс организован переключателем на самом бункере, переключающегося двумя ограничителями.
ТС не нравится, что периодически забывает вернуть тумблер на аппаратуре в исходное состояние и шёркат бункер туда-сюда до возвращения кораблика к берегу.
Попрошу отфотографировать, устроит?
Да, кстати, всё работет на ура, за 300 метров вытягивает зеркальных карпов от 7 до 15 килограмм )))
Будьте так добры. А то мой отец попросил нас с внуком сделать ему, а мы что-то никак не можем толковый механизм выгрузки придумать.
Начало кода:
1. Реализация обработчика сигнала PWM с приёмника радиоуправления или контроллера APM-2.6 (на 6-й канал, так как 7-й канал завязывается на стик отмечающий координаты сброса прикормки, для возврата кораблика и последующего заброса снасти)
Вчерне заработало )))
В пианиста не стрелять, играет как может...
Будьте так добры. А то мой отец попросил нас с внуком сделать ему, а мы что-то никак не можем толковый механизм выгрузки придумать.
Завтра отзвоню товарищу!
По коду посмотрите пожалуйста, вот не нравится мне принцип замера длительности импульса
(код не мой, нашел на просторах инета, переработал немного под себя)
А что за сдвиг в строке 53? Опечатка? Или что он там означает?
О каких вообще длительностях идёт речь? Есть оценка? Тогда и посмотрим как лучше измерять.
О каких вообще длительностях идёт речь? Есть оценка? Тогда и посмотрим как лучше измерять.
Есть, аппаратура управления выдает ШИМ сигнал с длительностью П импульса от 800 до 2300 микросекунд, общую тау импульса не подскажу, да и не суть, отслеживаем именно по длительности П импульса
А про сдвиг?
А про сдвиг?
там сравнение на меньше
А можно чертёж (рисунок) кинематики мехнизма выгрузки?
Да, кстати, всё работет на ура, за 300 метров вытягивает зеркальных карпов от 7 до 15 килограмм )))
а что он фидер кидает на такое расстояние 300 метров?Ну как приманку доставить на такое расстояние???
А можно чертёж (рисунок) кинематики мехнизма выгрузки?
Да, кстати, всё работет на ура, за 300 метров вытягивает зеркальных карпов от 7 до 15 килограмм )))
а что он фидер кидает на такое расстояние 300 метров?Ну как приманку доставить на такое расстояние???
да, кораблик и завозит
обалдеть,я своим только прикармливаю,надо бы попробовать )) но я уже все убрал до весны-закрыл летний сезон и жду первый лед...
Так, про 800 - 2300 микросекунд я понял.Точность какая устравивает. например, у микрос точность 4 мкс.Нормально? Может и погрубее можно? нет?
Так, про 800 - 2300 микросекунд я понял.Точность какая устравивает. например, у микрос точность 4 мкс.Нормально? Может и погрубее можно? нет?
В рамках той функции, что реализова, ПОКАЗЫВАЕТ при нулях 1000 и иногда 1004 )))
В принципе, надо только два состояния 0 и 1 на момент принятия решения...
Но если есть возможность сделать измерение в функции с точностью с 0,1 мксек было бы неплохо
есть идеи куда применить ещё )))
Код поправил немного, накидал и пробных строк на обработку двигателя
Так, про 800 - 2300 микросекунд я понял.
Евгений Петрович! ТС в отъезде, смогу скинуть фотографии только на следующей неделе.
А если есть желание сделать такой девайс на серьёзном уровне, то могу перечислить, что для полного счастья надо.
Выйдет однозначно дешевле, чем покупать готовый.
(я об автоматике, во что обойдётся кораблик водоизмещением в 30-40 килограмм - не знаю)
Да, собственно, всё есть - восьмой GPS, компас, движки, драйверы к ним, винты правые и левые, лора для связи, шаговики для механизмов выгрузки подкорма и сброса снасти. Всё по отдельности опробовано. Проблема с механикой выгрузки. Вернее с собственной криворукостью и криворукостью доступных токарей (заказывал работу - погрешность в миллиметр!). Вот всё думаю над простым механизмом выгрузки, таким. чтобы позволял такие огромные допуски и при этом нормально работал (в общем, типа револьвера Нагана).
И как вам LoRa в сравнении с остальными доступными простому человеку каналами управления?
У ардуины кварц 16МГц, т.е. такт - 1/16 мкс. 0,1 - не кратно. Есть возможность поставить кварц на 20МГц? Тогда можно и на 0,1 мкс замахнуться, т.к. это будет ровно два такта.
У ардуины кварц 16МГц, т.е. такт - 1/16 мкс. 0,1 - не кратно. Есть возможность поставить кварц на 20МГц? Тогда можно и на 0,1 мкс замахнуться, т.к. это будет ровно два такта.
в Греции всё есть, там кроме кварца еще что-то перешить придётся видимо...
Можно делать на максимально возможную на стандартном кварце...для это проекта это излишне,
но мне нравятся "красивые женщины"...
По кораблику, ТС всё делал сам, выгрузка через корму, лоток стоит сверху широкой стороной к корме, при доезде лотка при выгрузке до максимальной точки опрокидывается через корму на 90 градусов, потом задержка на 1-2 секунды, и возврат на исходное место...
А телеметрия у Вас как планируется, и какой программой будете запоминать точки сброса, для повторного завоза прикормки и снастей?
GPS годный, из личной практики имеют достаточно большой разброс по чувствительности, мой модуль берёт 15 спутников, но этот, оставшийся грубоват по чуйке, утерянный был раза в два чувствительнее, брал 5-7 спутников в помещении квартиры в метре от окна, модуль четырёхсистемный GPS, Глонасс, Байду и Европейская
ТС использует модули телеметрии на 900 Mhz, я на 430, антенны у него были не айс, купил другие сейчас метров на 400 работают.
Контроллер APM-2.6, он хорошо для этих дел подходит
Да, как Вы планируете реализовать возврат в точку старта при обрыве управления?
Посмотрел LoRa, а скорость не маловата? У стандартных передатчиков телеметрии она 57600
Так я и не понял как делать? На 20 или на 16 МГц?
----
Мой гпс отловил 12 спутников в доме (крыша железная, до ближайшего окна метров 5), я очень доволен.
Задача возврата в точку сброса не ставилась заказчиком. Ставилась задача приехать, сбросить и прикорм, и снасть.
Проблема возврата домой имеется. Так то - для неё и компас, но там есть беда - если ехать по прямой, то на пути могут оказаться заросли камыша или ещё чего. Пока не решил что делать, но эо по люому проблема программирования, а не чего-то другого.
----
Теперь к сбросу. Вот он поднимает на 90 градусов. Как и чем? Степпером с винтовой направляющей? Сервой? Вот на эту тему рисунок бы.
Так я и не понял как делать? На 20 или на 16 МГц?
----
Мой гпс отловил 12 спутников в доме (крыша железная, до ближайшего окна метров 5), я очень доволен.
Задача возврата в точку сброса не ставилась заказчиком. Ставилась задача приехать, сбросить и прикорм, и снасть.
Проблема возврата домой имеется. Так то - для неё и компас, но там есть беда - если ехать по прямой, то на пути могут оказаться заросли камыша или ещё чего. Пока не решил что делать, но эо по люому проблема программирования, а не чего-то другого.
----
Теперь к сбросу. Вот он поднимает на 90 градусов. Как и чем? Степпером с винтовой направляющей? Сервой? Вот на эту тему рисунок бы.
Отличнейший GPS...
Смотрите в сторону контроллера APM, он позволяет вернуться по запомненному пути (возврат по контрольным точкам) Можно и другой, но я их не пробовал (по INAV), на APM заливается прошивка Mission Planer
APM - специализированная ардуино Mega в маленьком корпусе
Я отфотографирую, никаких серв, там чистая механика, сам привод шорканья и опускает и поднимает корыто )))
Я видел, но в подробности не вдавался, всё проще чем может показаться
Давайте сделаем на 20 mhz, ардуин штук десят есть для экспериментов )))
обалдеть,я своим только прикармливаю,надо бы попробовать )) но я уже все убрал до весны-закрыл летний сезон и жду первый лед...
Для подводного лёда надо подлодку строить (чтобы по вашим лункам не юзали) )))
Смотрите в сторону контроллера APM
Да, нет, я так не играю. Круизный контроллер я буду программировать сам. Иначе вообще не понимаю, нафига мне за это браться.
Смотрите в сторону контроллера APM
Да, нет, я так не играю. Круизный контроллер я буду программировать сам. Иначе вообще не понимаю, нафига мне за это браться.
Круто! Я думал Вам рыбку половить )))
Кстати, мой набросок кода заработал и вроде правильно, осталось выкинуть ненужное, и сделать правильное определение ширины импульса.
Но кнопку надо вводить, иначе откуда система узнает, что корыто по новой зарядили )))
Ладно с контроллером, но ПО на смартфон можно и TOWER оставить )))
Я думал Вам рыбку половить )))
Не, рыбку половить, это моему отцу - он заказчик. А мы с внуком делать будем и удовольствие получать.
сделать правильное определение ширины импульса.
Ну, вот смотрите. Я не стал морочиться с 16 или 20 МГц - сделал универсально - просто замер времени в тактах. А уж что там за такт ... столько микросекунд и получится. Определена константа для пересчёта тактов в микросекунды (через F_CPU определена, так что нормально посчитает - руками менять ничего не надо). Ну, делить целые числа с коруглением до ближайшего, Вы, надеюсь умеете).
Результат иногда подвирает, но не более, чем на пару-тройку тактов (т.е. при 20МГц - на 0,1 микросекунды) и связано это с фронтами сигнала - фронт же не строго-вертикальный и ХЗ когда от там свой HIGH словит. На идеальном сигнале всё считает точно, я проверял на модели. Ну, а так, чем положе и неустойчивее фронты, тем больше может подвирать.
В общем, что интересует - спрашивайте.
Собственно файл-пример
Файл TimeMeasure.h
Файл TimeMeasure.cpp
Будьте так добры. А то мой отец попросил нас с внуком сделать ему, а мы что-то никак не можем толковый механизм выгрузки придумать.
https://radikal.ru/lfp/s020.radikal.ru/i710/1401/4a/940ac2ebd0eb.jpg/htm
Рама ось с корытом. Гидроцилиндр задирает вверх корыто с грузом.
Я плохо знаком с устройством самосвала.
Может быть поможет.......
Ключевое слово RC Switch
На Attyny13 (25,45,85)....
Куча ссылок на форуме:
http://forum.rcdesign.ru/f87/thread297998.html
http://www.parkflyer.ru/ru/blogs/view_entry/2358/
Я плохо знаком с устройством самосвала.
Как по мне, то нижняя или задняя часть бункера откидная, а серва стопор выдергивает. Заодно и проблема полный-пустой решается (концевик). ИМХО.
принцип мышеловки. на право серву правый бункер откинулся , на лево левый бункер.
Благодарю!
Вот хотел жеж 2-й пин распаять, а начал гребенки с 3-его, завтра попробую )))
На следующей неделе выложу фотографии отлаженного девайса, оставалось только забывчивость ТС ликвидировать автоматизацией механизма сброса прикормки, надеюсь, что эта проблема уже решена.
Вопрос, а на 1-и прерывании счетчик какой размерности можно организовать?
Там бинарники! Это не наш метод. (хоть по рублю но на свои В.Высоцкий)
Вот хотел жеж 2-й пин распаять, а начал гребенки с 3-его, ... Вопрос, а на 1-и прерывании счетчик какой размерности можно организовать?
Точно такой же, это не от прерывания. а от таймера зависит. Перекинуть на первое - как два пальца, надо, скажите, сделаем.
https://youtu.be/LOQBAePShiw
https://youtu.be/LOQBAePShiw
Вот хотел жеж 2-й пин распаять, а начал гребенки с 3-его, ... Вопрос, а на 1-и прерывании счетчик какой размерности можно организовать?
Точно такой же, это не от прерывания. а от таймера зависит. Перекинуть на первое - как два пальца, надо, скажите, сделаем.
1. Надо!
2. Я так понимаю, что Вы в состоянии замахнуться на действительно необходимый НАРОДНЫЙ ПРОЕКТ - разработку ПО сети наземных и мобильных GS станций??? Я буду первый, кто у себя таковую развернет и даже очень точно привяжет. Ну тогда никакие камыши, бугорки и прочие препятствия для ползающих, плавающих, летающих и т.д. самодельных конструкций станут не страшны, ведь точность определения координат станет фантастической - 5 см ))) Как говорит мой приятель - антненна, не та конструкция, которую можно передать внукам, а вот этот проект уж точно можно будет им передать )))
3. Мои соображения - ПО для GS делать под OpenWRT, экономически самое то
Мы лёгких путей не ищем )))
Уже давно сделано, настроено, работает, рыба на столы его превосходительства (то биш мне) иногда поставляется )))
Предлагаю для спасения корабля использовать воздушные силы под управлением рыбака - квадрокоптер, который за веревочку потащит потерпевшее бедствие судно к берегу.
Предлагаю для спасения корабля использовать воздушные силы под управлением рыбака - квадрокоптер, который за веревочку потащит потерпевшее бедствие судно к берегу.
Если клеить из пенопласта его невозможно утопить )))
А коптер над водой плохое решение, потом потребуются водолазы
Ну дак полный набор будет: Air forces, Marine forces & Submarine Forces. Удовольствия втрое больше!
Ну дак полный набор будет: Air forces, Marine forces & Submarine Forces. Удовольствия втрое больше!
С Air forces не всё так просто, у моего коршуны GPS вырвали, видимо подумали, что я вторгся на их территорию и отнимаю кормовую базу
1. Надо!
Я там, в #26 заменил коды.
1. Надо!
Я там, в #26 заменил коды.
Отлично!
Проверил, чуток поправил пробный и получаю в микросекундах, всё пучком.
И со знаками после запятой работает:
Видео и фото для Вас тут
получаю в микросекундах
Нет, так не надо. Целочисленное деление - оно такое целочисленное. Например, 16/16 = 1, 20/16 тоже 1, но и 31/16 - всё ещё один, только 32/16 становится 2!
Чтобы получить "ближайшее целое", нужно перед делением прибавить к делимому половину делителя (или воспользоваться готовой функцией ticks2Microseconds, которую я для Вас сделал - он там есть посмотрите, она именно это и делает. Вот тогда Вы получите "ближайшее целое".А так Вы делите с отбрасыванием дробной части какой бы она ни была.
Видео и фото для Вас тут
Спасибо.
Кстати, на алишке есть drv8833 - можно попытаться присобачить вместо L298N. Во всяком случае он компактней.
Кстати, на алишке есть drv8833 - можно попытаться присобачить вместо L298N. Во всяком случае он компактней.
Это лишнее, из 40кг водоизмещения занято только 8, места - вагон.
получаю в микросекундах
Нет, так не надо. Целочисленное деление - оно такое целочисленное. Например, 16/16 = 1, 20/16 тоже 1, но и 31/16 - всё ещё один, только 32/16 становится 2!
Чтобы получить "ближайшее целое", нужно перед делением прибавить к делимому половину делителя (или воспользоваться готовой функцией ticks2Microseconds, которую я для Вас сделал - он там есть посмотрите, она именно это и делает. Вот тогда Вы получите "ближайшее целое".А так Вы делите с отбрасыванием дробной части какой бы она ни была.
Видео и фото для Вас тут
Спасибо.
Идею правильного округления уяснил, функцию увидел )))
Для себя я обычно описывал функции в самом верху листинга, так как 99% обычных людей читают книжки с начала, технари - с конца, из них кому там нужно было знать что там партия и правительство )))
Если нужны пояснения по кораблику, спрашивайте...
Запчасти все с негодного струйного принтера, кроме двигателя.
Вместе с прикормкой заправляется и леска, это тот вертикальный разрез.
Открываем шпингалет, заводим леску, протягиваем ее в следующий - маленький вырез,
шпингалет закрываем. Леска с крючками и грузилами в лотке, засыпаем кукурузу, закрываем
крышку и всё. Пропил под леску точно посередине корабля.
При сбросе прикормки в это же место сбрасывается и снасть.
После сброса стиком аппаратуры управления отмечаем WP на карте, чтобы при последующих забросах прикормки приплывать точно в это же самое место.
В этом скетче от функции мне надо было всего два состояния 0 и 1, поэтому результат деления не критичен.
Разбор значения осуществляет эта функция
Norm = map(constrain(Recv, 1000, 2000), 1000, 2000, 0, 100);,
Использую в скетче для будущих применений
Основа точного сервотестера имеется!
добавил float, поисваиваю ему значение res, делю на TICKS_PER_MICROSECOND
Перешил с новой функцией, всё работает, от ненужного скетч не чистил, черновой вариант ниже, немно изменю на предмет действительности окна значений ШИМ, апааратура FLYSKY достаточно стабильно себя ведет, ограничусь окном в 30 единиц микросекунд.
Отдал заказчику. Выяснился косяк с малым напряжением ШИМ, надо делать как учили, вводить еще два концевичка и делать переключение с высокой скорости на малую и обратно или по времени, плавный разгон.
Простой сервотестер перенес в раздел проекты!
Евгений Петрович, не посмотрите, почему с собственного генератора PWM не меряет?
Странное поведение устройства:
Использую такой датчик
Если датчик сработал, на выходе 1, подсоединен к пину 8 адуино нано, то при подаче питания штатно на вывод 5 вольт, не проходит аппаратный ресет, если вывести флажок с датчика и подать питание (на выходе датчика 0) то сброс проходит.
Вывод 8 нано сконфигурирован на ввод.
У кого есть какие мысли?
Если подавать питание на USB вход, то аппаратный сброс проходит не зависимо от положения датчика, естественно кнопка reset приводит устройство в чувство ))), а вот замыкание контакта rst на gnd - НЕТ!