![]() |
![]() |
#11 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#12 |
Junior Member
Регистрация: 27.10.2014
Сообщений: 26
Вес репутации: 0 ![]() |
![]()
Думаю нет, угол датчика по паспорту 15гр. Направлял и в потолок и в стены и пробовал разные датчики. В целом значения "не скачут" мне понравилось очень, попробую выполнить свою задачу по построению пространства с вашей библиотекой. Значение длинны более 77 см не поднимаются, думал может в библиотеке есть какие то ограничения? или погрешность (точность совпадения) в функции симилар поставить не 0?
|
![]() |
![]() |
![]() |
#13 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
У Вас датчик HC-SR04
Попробуйте его проверить без функции симилар |
![]() |
![]() |
![]() |
#14 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
И ограничение лучше убрать
PHP код:
|
![]() |
![]() |
![]() |
#15 |
Junior Member
Регистрация: 27.10.2014
Сообщений: 26
Вес репутации: 0 ![]() |
![]()
Заработало. осталось отсортировать некоторые данные, но уже сейчас можно сказать что функция создает совершенно другую картинку (в отличии от замера без фильтрации значений).
Задача стояла такая: измерить расстояние датчиком и в зависимости от угла поворота серво узнать расстояние до точки замера (то есть в декартовых координатах Х. У) В перспективе описывать по этим точкам карту пространства для ориентации робота. Построение графика сделал в Excel, петли на графике давно замечены, почему то эти неточности возникают при движении в одну из сторон, а в обратную не возникает, не знаю пока что в чем фишка. Задержки немного уменьшают это, но толку особого нет. (еще поиграюсь) Главное что в целом есть на графике картинка похожая на измеряемое пространство! Спасибо за библиотеку (CyberLib) создателю. Последний раз редактировалось kulverstukas; 07.04.2015 в 14:48. |
![]() |
![]() |
![]() |
#16 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Какой алгоритм построения маршрута планируете?
Я тоже давно вынашиваю идею построения маршрута. Пришел к выводу что для этого мне понадобится 1-Гироскоп MPU-6050 + акселерометр 2-два далномера sharp 4-сервомотор |
![]() |
![]() |
![]() |
#17 |
Junior Member
Регистрация: 27.10.2014
Сообщений: 26
Вес репутации: 0 ![]() |
![]()
О гироскопах еще не думал, идею пока вынашиваю в математике. Для счета пройденного расстояния использую шаговые моторы изначально 28BYJ-48 очень хорошие, редукторные но медленные (для начинающих идеально) сейчас заказал 24BYJ-48 у них редукция в 2 раза меньше (30 вместо 65). Быстро все равно не будет. эти давали 8 мм/сек но зато можно посчитать насколько сдвинулся робот. Палтформу на обычных моторах (для изучения) начал строить, пока не доделал.
Само построение пространства таково 1. поворачиваем серво на нужный угол 2 замеряем дистанцию 3. заходим в функцию пересчета дистанции в координаты. функции синуса и косинуса не использовал, задал таблицу значений в массив, причем умножил значения на 128 1-е чтобы не возиться с запятыми 2-е чтобы потом готовое значение Х,У сместить на несколько бит (7). При измерении до 200 см хватает int-2 бита для вычисления Х и У. Так выглядел график до фильтрации, провел более 2-х десятков измерений (это одно из худших, но и остальные не намного лучше). Привожу текст программы испытательной программы. она без описания, если кому понадобится, могу расписать всё. PHP код:
Последний раз редактировалось kulverstukas; 01.11.2014 в 23:30. |
![]() |
![]() |
![]() |
#18 |
Senior Member
Регистрация: 14.06.2015
Адрес: СССР
Сообщений: 122
Вес репутации: 0 ![]() |
![]()
Подниму тему, ибо тоже интересно.
Вопрос по этому датчику и Ардуино Мега: на меге есть входы от 4 и 5 таймеров ICP - сигнал захвата таймера. Можно ли (стоит ли) ставить ногу echo от датчика на этот сигнал и измерять время отклика с помощью прерывания по ICP? Алгоритм вижу примерно следующий: 1. В программе вызываем функцию "замерить", она подает сигнал на датчик, ставит признак "пошел замер, данные недействительны" и разрешает прерывание по ICP по фронту сигнала. 2. Прерывание по фронту фиксирует начало замера и изменяет режим на прерывание по спаду. 3. По спаду читаем новое значение ICPR и вычисляем дальность. Снимаем признак "данные недействительны", запрещаем прерывание. 4. В проге тупо ждем результата замера, можно макросом типа everyMillis() ... не занимая время процессора. Насколько такое решение будет "полезно"? |
![]() |
![]() |
![]() |
#19 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Предложенный Вами вариант можно будет использовать только на определенных пинах с поддержкой прериваний
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Регистрация: 14.06.2015
Адрес: СССР
Сообщений: 122
Вес репутации: 0 ![]() |
![]()
Ну да. Зато это не будет "жрать" процессорное время и можно будет решать попутно и иные задачи, кроме "замеров". К сожалению, на плате Мег разведены только 2 сигнала захвата 4 и 5 таймеров.
|
![]() |
![]() |
![]() |
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2) | |
|
|