Дальномер-линейка на ультразвуке (нужна помощь)

Проект с меню и подсчетом колличества по расстоянию.

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#1

Сообщение Mischa23 » 08.08.2018{, 08:20}

Доброго времени уважаемые форумчане.
Потихоньку осваиваюсь с ардуинкой, но все еще нуб :D
Проект на железе:
- arduino nano
- lcd1602
- ультразвуковой датчик
- энкодер 360 с кнопкой
- 2 кнопки
- корпус устройства.
Максимальная дистанция замера 2 метра.
=====функции=====
1. Замер расстояния (в моем случае это огромный рулон бумаги).
Замер происходит по нажатию на кнопку и замеряет пока кнопка нажата. После отпускания кнопки значение замера должно остаться на экране и сброситься в ноль через 4 секунды.
2. Линейка. По замеру высоты подсчитывает колличество штук. К примеру пачка 50 листов. Высота пачки 1 метр. Исходя из высоты подсчет колличества штук (т.е. высота одного листа 20см).
3. Меню.
В меню заходим и выходим энкодером.
В меню можно выбирать режим работы.
1) режим измерения диаметра
2) режим линейки с подсчетом
А) установка листа 20см высотой
Б) установка листа 30см высотой
И так далее до 10 пунктов.
Первый наброски уже есть.
Но вот не могу понять как сделать фиксацию значения по нажатию кнопки. Назовем эту кнопку - "замер"
Ну и конечно меню с предустановками и режимами работы. Тут я потерялся совсем.
Прошу вашего совета!!!
И возможно стоит рассмотреть такой вариант не с ультразвуковым датчиком?
===========начальная работа над дальномером================
dalnomer.flp
(188 КБ) 98 скачиваний
Последний раз редактировалось Mischa23 08.08.2018{, 15:32}, всего редактировалось 2 раза.

pony sonata
Лейтенант
Сообщения: 373
Зарегистрирован: 25.02.2018{, 17:56}
Репутация: 24
Имя: sonata

Дальномер-линейка на ультразвуке (нужна помощь)

#2

Сообщение pony sonata » 08.08.2018{, 12:00}

удалено
Последний раз редактировалось pony sonata 19.08.2018{, 13:01}, всего редактировалось 1 раз.

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#3

Сообщение Mischa23 » 08.08.2018{, 15:18}

av писал(а):
08.08.2018{, 09:58}
Mischa23, где проект ? Не совсем понятно:
Mischa23 писал(а):
08.08.2018{, 08:20}
2. Линейка. По замеру высоты подсчитывает колличество штук. К примеру пачка 50 листов. Высота пачки 1 метр. Исходя из высоты подсчет колличества штук (т.е. высота одного листа 20см).
Далее вы пишите
Mischa23 писал(а):
08.08.2018{, 08:20}
1) режим измерения диаметра
Так что является истиной высота или диаметр ? Так же неясно как вы хотите замерять допустим высоту датчиком, ведь он замеряет дальность до объекта.
оба режима - истинна. от выбора в меню линейки или диаметра и выбирается алгоритм работы.
верно -датчик замеряет дальность от обьекта в сантметрах. если пачка листов лежит на столе\полу, то и замерим расстояние от пола до вершины стопки. это расстояние и будет нам нужно, при условии что на верх стопки мы ставим дальномер, а отражаемой поверхностью у нас является стол или пол.

Отправлено спустя 2 минуты 32 секунды:
тот же принцип и с рулоном, если он горизонтально лежит на полу, а в моем случае именно так ибо один такой рулончик весит 2 тонны.

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#4

Сообщение Mischa23 » 08.08.2018{, 15:25}

pony sonata писал(а):
08.08.2018{, 12:00}
Mischa23 писал(а):
08.08.2018{, 08:20}
Максимальная дистанция замера 2 метра.
эти датчики вообще такое могут на такое расстояние и с заявляемой вами точностью измерения? мне сдается без хорошей фильтрации сигнала они будут показывать фигню. обычным усредняющим фильтром или с удалением выбросов тут не справиться - надо что-то серьезнее и то не факт, что это поможет
Mischa23 писал(а):
08.08.2018{, 08:20}
Но вот не могу понять как сделать фиксацию значения по нажатию кнопки. Назовем эту кнопку - "замер"
Ну и конечно меню с предустановками и режимами работы. Тут я потерялся совсем.
Прошу вашего совета!!!
вас алгоритм интересует? при нажатии на кнопку даем время (секунд 5 например) за которое вычисляется среднее значение расстояния и записываем его в переменную. при следующем нажатии на кнопку операция повторяется
касаемо возможностей датчика, то они должны до 3-4 метров работать с погрешностью в несколько миллиметров, а других датчиков чтоб мерили на 2 метра я не нашел.
не могли бы вы рассказать подробнее про фильтр и как его сделать, прикрутить?

Отправлено спустя 2 минуты 47 секунд:
добавил пример, но что то не так сделал с переменной

pony sonata
Лейтенант
Сообщения: 373
Зарегистрирован: 25.02.2018{, 17:56}
Репутация: 24
Имя: sonata

Дальномер-линейка на ультразвуке (нужна помощь)

#5

Сообщение pony sonata » 08.08.2018{, 15:35}

Mischa23 писал(а):
08.08.2018{, 15:27}
не могли бы вы рассказать подробнее про фильтр и как его сделать, прикрутить?
фильтра от ув. boroda - viewtopic.php?f=82&t=3098
я пользуюсь фильтрами от лешрак с ардуино.ру форума, "адаптированными" под флпрог

Отправлено спустя 2 минуты 26 секунд:
av писал(а):
08.08.2018{, 15:34}
возможно знаком с этим датчиком и у него есть опыт по этой теме.
немного сталкивался в игрушке одной самодельной. точностью была не ахти, поэтому заменил на ик-дальномер. но и тот не очень радовал точностью. без хорошего цифрового фильтра вообще никак, но может я его ел неправильно. ну и у тс задача попроще, т.к. меньше динамики в процессе измерения :smile225:

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#6

Сообщение Mischa23 » 08.08.2018{, 15:51}

pony sonata писал(а):
08.08.2018{, 15:38}
Mischa23 писал(а):
08.08.2018{, 15:27}
не могли бы вы рассказать подробнее про фильтр и как его сделать, прикрутить?
фильтра от ув. boroda - viewtopic.php?f=82&t=3098
я пользуюсь фильтрами от лешрак с ардуино.ру форума, "адаптированными" под флпрог

Отправлено спустя 2 минуты 26 секунд:
av писал(а):
08.08.2018{, 15:34}
возможно знаком с этим датчиком и у него есть опыт по этой теме.
немного сталкивался в игрушке одной самодельной. точностью была не ахти, поэтому заменил на ик-дальномер. но и тот не очень радовал точностью. без хорошего цифрового фильтра вообще никак, но может я его ел неправильно. ну и у тс задача попроще, т.к. меньше динамики в процессе измерения :smile225:
динамики вообще нет. поставил и померил, без движений и прочего. я даже корпус такой изготовил чтоб без лишних дерганий!
сможете объяснить как из меню чтоб программа работала по заданному условию?

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#7

Сообщение Mischa23 » 08.08.2018{, 16:08}

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

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#8

Сообщение Mischa23 » 08.08.2018{, 16:15}

про такое расположение - что увидел в ютубе, то и воспроизвожу :smile37:

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#9

Сообщение Mischa23 » 08.08.2018{, 20:27}

av писал(а):
08.08.2018{, 16:27}
Упс... вы уже указали в начале темы , что с кнопкой. Но нужно указать тип чтобы узнать сколько у него тактов на щелчок.
есть отдельно кнопка - замер, а есть энкодер ардуиновский - он для меню.
3я кнопка на резет.
20180808_172459.jpg

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#10

Сообщение Mischa23 » 08.08.2018{, 21:30}

av писал(а):
08.08.2018{, 20:44}
Хорошо энкодером можно управлять меню. А кнопкой сброса чем будете управлять ? Сбросом показаний замеров ? Сброс здесь не нужен так как новый замер перезапишит значения и отображение значений длится 4 сек. После чего на дисплей выводится главный экран.

Вопрос по поводу меню:
Сколько и какими значениями будете управлять ?
кнопка сброса - это просто резет\перезагрузка соединенная на пин RST и gnd/
по сути в меню от выбранной предьустановки зависит подсчет. это высота моего листа, она разная. до 10 таких констант.
ну и конечно 2 режима работы. то-есть просто замер дистанции который умножаем на 4 и даем результат и просто замер до середины (отражаемой поверхности) свыводом на дисплей, ну и так же расстояние до отражаемого обьекта и делим на заложенное значение установленное в меню (режим линейки)

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#11

Сообщение Mischa23 » 08.08.2018{, 21:39}

я так немного понимаю что как раз в линейке надо будет делать переменные и далее прогонять их через блок маштабирования?

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#12

Сообщение Mischa23 » 09.08.2018{, 06:45}

av писал(а):
08.08.2018{, 21:41}
Я правильно вас понял.
Например:
Меню
1 Установки (10 предустановок)
2 Режим (диаметр или линейка)
3 Калибровка (прибавление или отнимание от замереного значения для точности замеров)
Абсолютно верно) спасибо большое. Очень приятно когда понимают)))
Но вот только меню и работа с ним для меня пока тяжело дается(

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#13

Сообщение Mischa23 » 10.08.2018{, 11:32}

av писал(а):
09.08.2018{, 00:06}
Mischa23, Вот накидал проект с объяснениями. Попробуйте используйте его.
Что-то я запутался немного с калибровкой. Пока получилось так.
и немного не понял по меню. пресет за что отвечает? и пункт mode - это активный на данный момент режим?
По сути 2 режима. один меряет радиус от середины до края и выводит эти показания в 1й строчке(по умолчанию он активен и чтоб работать "линейкой" ее надо выбрать, а потом для обратного надо выбрать диаметр), во 2й строчке он показывает диаметр (радиус умноженный на 4)2й режим линейки, им хочу мерить количество штук гофро листа в пачке на полете. у гофро листа (то из чего делают коробки) есть марка (т21, т22 и т.д.) каждая марка имеет толщину на которую мы потом и делим значение высоты замера в сантиметрах. вот эту толщину и выбираю в настройках, ну и режим работы, либо диаметр и радиус, тогда показания на дисплее одни и расчет один, либо высоту и кол-во штук и показания на дисплее другие.
Я просто работаю на производстве картона и уже замучался считать паллеты с листом в ручную, а партия может быть и 500 штук и 5000 штук.
dalnomer1.rar
(152.18 КБ) 63 скачивания
Последний раз редактировалось Mischa23 10.08.2018{, 12:25}, всего редактировалось 2 раза.

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#14

Сообщение Mischa23 » 10.08.2018{, 12:22}

av писал(а):
10.08.2018{, 11:57}
Mischa23, от вас нужна конкретика !!! Что вы замеряете каким образом и для чего ? В первом посте не понятно для чего вам делать замеры расстояния и диаметра. Опишите свое устройство более точнее, для каких целей. Если секрет можно в личку. От того как точно вы изложите свою хотелку будет зависеть результат помощи. Возможно что кто то из форумчан делал такой проект.
ответил выше. редактировал долго))))

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#15

Сообщение Mischa23 » 10.08.2018{, 15:31}

av писал(а):
10.08.2018{, 12:51}
Mischa23, все равно нет точных данных от вас ! То что линейкой вы будете замерять количество листов эт понятно (погрешность измерений будет большой из за разных факторов: вес стопки листов, не ровности листа.) А вот радиус не совсем понял для чего наверно для рулонов. Тогда нужна начальная точка отсчета которую нужно установить как константу т.е. положение оси на которой намотан рулон должна быть неизменна, а так же толщина оси должна быть постоянной.
так и есть.
рулон висит на шесте, а меряю рулон от верхней точки на которую кладу устройство, до этого шестаи прибавляю к получившемуся 50мм (это скрытая часть шеста, он с 3мя бортами).
av писал(а):
10.08.2018{, 13:17}
Mischa23, И так начнем с начала (Ваш проект):
1. Что отображается на начальном экране ?
2. Ваше видение меню (1. Переключение режимов замера,2. Предустановки толщины листа, 3. Калибровка датчика)
3. Измерение происходит по нажатию кнопки или постоянное (если постоянное то начальный экран отпадает)
4. Обработка данных замеров 1 (подсчет количества в режиме линейки в зависимости от выбранной предустановки толщины листа)
5. Обработка данных замеров 2 (подсчет диаметра или радиуса (не совсем понятно для чего) в зависимости от выбранной предустановки)
6. Вывод на дисплей данных замеров.
1. просто надпись "для замера нажмите красную кнопку" в фаилике подписал.
2. да. но переключение предустановки листа действует только для замера высоты пачки и количества листов.
3.по нажатию кнопки.
4.да
5. и радиус - это половина рулона от центра и диаметр.
6. да в 2 строчки. 1я. расстояние 2я диаметр или колличество листов (зависит от пресета)
про редактирование понял и извиняюсь. начал редактировать что бы добавить фаил и меня срочно позвали, пришлось все бросить и бежать(

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#16

Сообщение Mischa23 » 10.08.2018{, 15:34}

касаемо диаметра рулона. рулон бумаги не полностью может отрабатываться и остатки смеряю и сдаю данные сколько сантиметров осталось от изначального, т.е. беру рулетку и меряю рулон (круглую часть) от шеста, на котором висит рулон и до вершины и эти данные сдаю.
ну а диаметр это для себя записывать

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#17

Сообщение Mischa23 » 10.08.2018{, 18:35}

av писал(а):
10.08.2018{, 17:18}
Mischa23 писал(а):
10.08.2018{, 15:31}
6. да в 2 строчки. 1я. расстояние 2я диаметр или колличество листов
А как вы хотите производить одновременно 2 замера одним датчиком ?
Одновременно никак. Замер происходит в зависимости от выбора режима работы.
Если выбран диаметр то и мерить будет диаметр и на дисплее в 1й строчке будет радиус (пол рулона) , а во второй строчке диаметр.
Если выбран режим линейки то и меряется расстояние и кол-во листов.
В первой строчке расстояние см.
Во второй количество штук

Mischa23
Рядовой
Сообщения: 54
Зарегистрирован: 16.07.2018{, 05:21}
Репутация: 0
Имя: Михаил

Дальномер-линейка на ультразвуке (нужна помощь)

#18

Сообщение Mischa23 » 10.08.2018{, 20:27}

av писал(а):
10.08.2018{, 19:44}
Mischa23 писал(а):
10.08.2018{, 18:35}
В первой строчке расстояние см.
Сокращение (см.) я так понимаю это сантиметры ? Но в сантиметрах возможно не получится считать т.к. датчик выводит значения в миллиметрах. И тип данных значений датчика (int), если масштабировать в сантиметры то в типе int нет запятых. Допустим датчик замерил 123 мм. переводим в сантиметры 12,3 см. Тип (int) округлит это значение до запятой. Получим 12 см. Вот такие вот дела. Есть такой тип переменной как (float) вот он выводит значения с запятой. Но ведь датчик работает только с типом (int).
Ну миллиметры можно разделить на 10 и получим сантиметры.
Посмотрел видео на ютубе про этот датчик в флпрог, там говорят что это опечатка в блоке и на самом деле мериет в сантиметрах.
А вообще округление в доли миллиметров не так страшно.

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Дальномер-линейка на ультразвуке (нужна помощь)

#19

Сообщение jonik22sm » 10.08.2018{, 21:40}

кто нибудь знает
Можно ли датчик закатать в эбоксидку?
Можно сделать ВСЁ. Было бы желание.

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

Дальномер-линейка на ультразвуке (нужна помощь)

#20

Сообщение jonik22sm » 10.08.2018{, 23:07}

ультразвукавой
Можно сделать ВСЁ. Было бы желание.

Ответить

Вернуться в «Проекты различных устройств на Arduino»