Страница 1 из 2
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 08 авг 2018, 08:20
Mischa23
Доброго времени уважаемые форумчане.
Потихоньку осваиваюсь с ардуинкой, но все еще нуб
Проект на железе:
- arduino nano
- lcd1602
- ультразвуковой датчик
- энкодер 360 с кнопкой
- 2 кнопки
- корпус устройства.
Максимальная дистанция замера 2 метра.
=====функции=====
1. Замер расстояния (в моем случае это огромный рулон бумаги).
Замер происходит по нажатию на кнопку и замеряет пока кнопка нажата. После отпускания кнопки значение замера должно остаться на экране и сброситься в ноль через 4 секунды.
2. Линейка. По замеру высоты подсчитывает колличество штук. К примеру пачка 50 листов. Высота пачки 1 метр. Исходя из высоты подсчет колличества штук (т.е. высота одного листа 20см).
3. Меню.
В меню заходим и выходим энкодером.
В меню можно выбирать режим работы.
1) режим измерения диаметра
2) режим линейки с подсчетом
А) установка листа 20см высотой
Б) установка листа 30см высотой
И так далее до 10 пунктов.
Первый наброски уже есть.
Но вот не могу понять как сделать фиксацию значения по нажатию кнопки. Назовем эту кнопку - "замер"
Ну и конечно меню с предустановками и режимами работы. Тут я потерялся совсем.
Прошу вашего совета!!!
И возможно стоит рассмотреть такой вариант не с ультразвуковым датчиком?
===========начальная работа над дальномером================
dalnomer.flp
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 08 авг 2018, 12:00
pony sonata
удалено
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 08 авг 2018, 15:21
Mischa23
av писал(а): 08 авг 2018, 09:58[ref]Mischa23[/ref], где проект ? Не совсем понятно:
Mischa23 писал(а): 08 авг 2018, 08:202. Линейка. По замеру высоты подсчитывает колличество штук. К примеру пачка 50 листов. Высота пачки 1 метр. Исходя из высоты подсчет колличества штук (т.е. высота одного листа 20см).
Далее вы пишите
Mischa23 писал(а): 08 авг 2018, 08:201) режим измерения диаметра
Так что является истиной высота или диаметр ? Так же неясно как вы хотите замерять допустим высоту датчиком, ведь он замеряет дальность до объекта.
оба режима - истинна. от выбора в меню линейки или диаметра и выбирается алгоритм работы.
верно -датчик замеряет дальность от обьекта в сантметрах. если пачка листов лежит на столе\полу, то и замерим расстояние от пола до вершины стопки. это расстояние и будет нам нужно, при условии что на верх стопки мы ставим дальномер, а отражаемой поверхностью у нас является стол или пол.
Отправлено спустя 2 минуты 32 секунды:
тот же принцип и с рулоном, если он горизонтально лежит на полу, а в моем случае именно так ибо один такой рулончик весит 2 тонны.
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 08 авг 2018, 15:27
Mischa23
pony sonata писал(а): 08 авг 2018, 12:00Mischa23 писал(а): 08 авг 2018, 08:20Максимальная дистанция замера 2 метра.
эти датчики вообще такое могут на такое расстояние и с заявляемой вами точностью измерения? мне сдается без хорошей фильтрации сигнала они будут показывать фигню. обычным усредняющим фильтром или с удалением выбросов тут не справиться - надо что-то серьезнее и то не факт, что это поможет
Mischa23 писал(а): 08 авг 2018, 08:20Но вот не могу понять как сделать фиксацию значения по нажатию кнопки. Назовем эту кнопку - "замер"
Ну и конечно меню с предустановками и режимами работы. Тут я потерялся совсем.
Прошу вашего совета!!!
вас алгоритм интересует? при нажатии на кнопку даем время (секунд 5 например) за которое вычисляется среднее значение расстояния и записываем его в переменную. при следующем нажатии на кнопку операция повторяется
касаемо возможностей датчика, то они должны до 3-4 метров работать с погрешностью в несколько миллиметров, а других датчиков чтоб мерили на 2 метра я не нашел.
не могли бы вы рассказать подробнее про фильтр и как его сделать, прикрутить?
Отправлено спустя 2 минуты 47 секунд:
добавил пример, но что то не так сделал с переменной
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 08 авг 2018, 15:38
pony sonata
Mischa23 писал(а): 08 авг 2018, 15:27не могли бы вы рассказать подробнее про фильтр и как его сделать, прикрутить?
фильтра от ув. boroda -
viewtopic.php?f=82&t=3098
я пользуюсь фильтрами от лешрак с ардуино.ру форума, "адаптированными" под флпрог
Отправлено спустя 2 минуты 26 секунд:
av писал(а): 08 авг 2018, 15:34возможно знаком с этим датчиком и у него есть опыт по этой теме.
немного сталкивался в игрушке одной самодельной. точностью была не ахти, поэтому заменил на ик-дальномер. но и тот не очень радовал точностью. без хорошего цифрового фильтра вообще никак, но может я его ел неправильно. ну и у тс задача попроще, т.к. меньше динамики в процессе измерения

Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 08 авг 2018, 15:51
Mischa23
pony sonata писал(а): 08 авг 2018, 15:38Mischa23 писал(а): 08 авг 2018, 15:27не могли бы вы рассказать подробнее про фильтр и как его сделать, прикрутить?
фильтра от ув. boroda -
viewtopic.php?f=82&t=3098
я пользуюсь фильтрами от лешрак с ардуино.ру форума, "адаптированными" под флпрог
Отправлено спустя 2 минуты 26 секунд:
av писал(а): 08 авг 2018, 15:34возможно знаком с этим датчиком и у него есть опыт по этой теме.
немного сталкивался в игрушке одной самодельной. точностью была не ахти, поэтому заменил на ик-дальномер. но и тот не очень радовал точностью. без хорошего цифрового фильтра вообще никак, но может я его ел неправильно. ну и у тс задача попроще, т.к. меньше динамики в процессе измерения

динамики вообще нет. поставил и померил, без движений и прочего. я даже корпус такой изготовил чтоб без лишних дерганий!
сможете объяснить как из меню чтоб программа работала по заданному условию?
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 08 авг 2018, 16:08
Mischa23
av писал(а): 08 авг 2018, 16:03Во первых:
На 1 плате зачем вам складывать строки ? Тем более вы складываете константы строк.
Во вторых:
На плате 2 вы используете две переменные что бы управлять дисплеем. Начальный экран и отображение замера. Используйте одну переменную для управления. Допустим перемен."FIRST DISP" при значении 0 отображается начальный экран. При нажатии на кнопку изменяем значение "FIRST DISP" на значение 1 тем самым блокирую начальный экран и разрешая замер и отображение на экране значение замера.
на первой плате для приветственного сообщения. подскажите пожалуйста как можно сделать правильно?
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 08 авг 2018, 16:15
Mischa23
про такое расположение - что увидел в ютубе, то и воспроизвожу

Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 08 авг 2018, 20:27
Mischa23
av писал(а): 08 авг 2018, 16:27Упс... вы уже указали в начале темы , что с кнопкой. Но нужно указать тип чтобы узнать сколько у него тактов на щелчок.
есть отдельно кнопка - замер, а есть энкодер ардуиновский - он для меню.
3я кнопка на резет.
20180808_172459.jpg
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 08 авг 2018, 21:30
Mischa23
av писал(а): 08 авг 2018, 20:44Хорошо энкодером можно управлять меню. А кнопкой сброса чем будете управлять ? Сбросом показаний замеров ? Сброс здесь не нужен так как новый замер перезапишит значения и отображение значений длится 4 сек. После чего на дисплей выводится главный экран.
Вопрос по поводу меню:
Сколько и какими значениями будете управлять ?
кнопка сброса - это просто резет\перезагрузка соединенная на пин RST и gnd/
по сути в меню от выбранной предьустановки зависит подсчет. это высота моего листа, она разная. до 10 таких констант.
ну и конечно 2 режима работы. то-есть просто замер дистанции который умножаем на 4 и даем результат и просто замер до середины (отражаемой поверхности) свыводом на дисплей, ну и так же расстояние до отражаемого обьекта и делим на заложенное значение установленное в меню (режим линейки)
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 08 авг 2018, 21:39
Mischa23
я так немного понимаю что как раз в линейке надо будет делать переменные и далее прогонять их через блок маштабирования?
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 09 авг 2018, 06:45
Mischa23
av писал(а): 08 авг 2018, 21:41Я правильно вас понял.
Например:
Меню
1 Установки (10 предустановок)
2 Режим (диаметр или линейка)
3 Калибровка (прибавление или отнимание от замереного значения для точности замеров)
Абсолютно верно) спасибо большое. Очень приятно когда понимают)))
Но вот только меню и работа с ним для меня пока тяжело дается(
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 10 авг 2018, 11:32
Mischa23
av писал(а): 09 авг 2018, 00:06[ref]Mischa23[/ref], Вот накидал проект с объяснениями. Попробуйте используйте его.
Что-то я запутался немного с калибровкой. Пока получилось так.
и немного не понял по меню. пресет за что отвечает? и пункт mode - это активный на данный момент режим?
По сути 2 режима. один меряет радиус от середины до края и выводит эти показания в 1й строчке(по умолчанию он активен и чтоб работать "линейкой" ее надо выбрать, а потом для обратного надо выбрать диаметр), во 2й строчке он показывает диаметр (радиус умноженный на 4)2й режим линейки, им хочу мерить количество штук гофро листа в пачке на полете. у гофро листа (то из чего делают коробки) есть марка (т21, т22 и т.д.) каждая марка имеет толщину на которую мы потом и делим значение высоты замера в сантиметрах. вот эту толщину и выбираю в настройках, ну и режим работы, либо диаметр и радиус, тогда показания на дисплее одни и расчет один, либо высоту и кол-во штук и показания на дисплее другие.
Я просто работаю на производстве картона и уже замучался считать паллеты с листом в ручную, а партия может быть и 500 штук и 5000 штук.
dalnomer1.rar
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 10 авг 2018, 12:22
Mischa23
av писал(а): 10 авг 2018, 11:57[ref]Mischa23[/ref], от вас нужна конкретика !!! Что вы замеряете каким образом и для чего ? В первом посте не понятно для чего вам делать замеры расстояния и диаметра. Опишите свое устройство более точнее, для каких целей. Если секрет можно в личку. От того как точно вы изложите свою хотелку будет зависеть результат помощи. Возможно что кто то из форумчан делал такой проект.
ответил выше. редактировал долго))))
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 10 авг 2018, 15:31
Mischa23
av писал(а): 10 авг 2018, 12:51[ref]Mischa23[/ref], все равно нет точных данных от вас ! То что линейкой вы будете замерять количество листов эт понятно (погрешность измерений будет большой из за разных факторов: вес стопки листов, не ровности листа.) А вот радиус не совсем понял для чего наверно для рулонов. Тогда нужна начальная точка отсчета которую нужно установить как константу т.е. положение оси на которой намотан рулон должна быть неизменна, а так же толщина оси должна быть постоянной.
так и есть.
рулон висит на шесте, а меряю рулон от верхней точки на которую кладу устройство, до этого шестаи прибавляю к получившемуся 50мм (это скрытая часть шеста, он с 3мя бортами).
av писал(а): 10 авг 2018, 13:17[ref]Mischa23[/ref], И так начнем с начала (Ваш проект):
1. Что отображается на начальном экране ?
2. Ваше видение меню (1. Переключение режимов замера,2. Предустановки толщины листа, 3. Калибровка датчика)
3. Измерение происходит по нажатию кнопки или постоянное (если постоянное то начальный экран отпадает)
4. Обработка данных замеров 1 (подсчет количества в режиме линейки в зависимости от выбранной предустановки толщины листа)
5. Обработка данных замеров 2 (подсчет диаметра или радиуса (не совсем понятно для чего) в зависимости от выбранной предустановки)
6. Вывод на дисплей данных замеров.
1. просто надпись "для замера нажмите красную кнопку" в фаилике подписал.
2. да. но переключение предустановки листа действует только для замера высоты пачки и количества листов.
3.по нажатию кнопки.
4.да
5. и радиус - это половина рулона от центра и диаметр.
6. да в 2 строчки. 1я. расстояние 2я диаметр или колличество листов (зависит от пресета)
про редактирование понял и извиняюсь. начал редактировать что бы добавить фаил и меня срочно позвали, пришлось все бросить и бежать(
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 10 авг 2018, 15:34
Mischa23
касаемо диаметра рулона. рулон бумаги не полностью может отрабатываться и остатки смеряю и сдаю данные сколько сантиметров осталось от изначального, т.е. беру рулетку и меряю рулон (круглую часть) от шеста, на котором висит рулон и до вершины и эти данные сдаю.
ну а диаметр это для себя записывать
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 10 авг 2018, 18:35
Mischa23
av писал(а): 10 авг 2018, 17:18Mischa23 писал(а): 10 авг 2018, 15:316. да в 2 строчки. 1я. расстояние 2я диаметр или колличество листов
А как вы хотите производить одновременно 2 замера одним датчиком ?
Одновременно никак. Замер происходит в зависимости от выбора режима работы.
Если выбран диаметр то и мерить будет диаметр и на дисплее в 1й строчке будет радиус (пол рулона) , а во второй строчке диаметр.
Если выбран режим линейки то и меряется расстояние и кол-во листов.
В первой строчке расстояние см.
Во второй количество штук
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 10 авг 2018, 20:27
Mischa23
av писал(а): 10 авг 2018, 19:44Mischa23 писал(а): 10 авг 2018, 18:35В первой строчке расстояние см.
Сокращение (см.) я так понимаю это сантиметры ? Но в сантиметрах возможно не получится считать т.к. датчик выводит значения в миллиметрах. И тип данных значений датчика (int), если масштабировать в сантиметры то в типе int нет запятых. Допустим датчик замерил 123 мм. переводим в сантиметры 12,3 см. Тип (int) округлит это значение до запятой. Получим 12 см. Вот такие вот дела. Есть такой тип переменной как (float) вот он выводит значения с запятой. Но ведь датчик работает только с типом (int).
Ну миллиметры можно разделить на 10 и получим сантиметры.
Посмотрел видео на ютубе про этот датчик в флпрог, там говорят что это опечатка в блоке и на самом деле мериет в сантиметрах.
А вообще округление в доли миллиметров не так страшно.
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 10 авг 2018, 21:40
jonik22sm
кто нибудь знает
Можно ли датчик закатать в эбоксидку?
Дальномер-линейка на ультразвуке (нужна помощь)
Добавлено: 10 авг 2018, 23:07
jonik22sm
ультразвукавой