Ардуино и ультразвуковой дальномер HC-SR04
- Войдите на сайт для отправки комментариев
Наверное все радиолюбители среди своих первых проектов делали простенького робота, который объезжал препятствия и при этом пользовался первой попавшейся библиотекой. На примере такой машинки было незаметно выполнение циклов и функций библиотеки, но при более сложных проектов это уже становится достаточно заметным. Например: делаете вы робота. который будет ездить по линии и искать предметы рядом чтобы потом их столкнуть или собрать и при этом при выполнении функций библиотеки высока вероятность съехать с тонкой линии даже на прямой, а если проедет поворот, то это воообще чудо. Я озадачился этим вопросом и написал свою библиотеку для датчика HC-SR04. Она отличается своей максимальной простотой и скоростью исполнения. В ней есть только одна команда для выполнения и нет отсылок к другим файлам, та как вся библиотека прописана в одном файле.
https://yadi.sk/d/MKzp2xKC3VAeaW
вот пример:
#include <Ultra.h> ultrasonic ultra(6, 9); void setup() { Serial.begin(9600); } void loop() { Serial.print(ultra.distance()); Serial.print("\n"); delay(100); }
Удачи в освоении электроники.
Спасибо! Спасибо ! Спасибо ! Спасибо !
Убедили ! Убедили ! Убедили ! Убедили !
А мужики-то и не знают, что это у них роботы так плохо бегают! Оказывается библиотека к уз-датчику неправильная! Ну, теперь жизнь наладится!
Я имею ввиду, что точность исполнения выше
Никогда больше не пиши никаких библотек, копипастя типовые примеры. Там есть одна крутейшая ошибка, как понимаю сделанная сознательно для начинающих. Вы её повторили на все 146%. С такой .distance() робот не то что "поворот проедет" он ваще поедет куда ему вздумается.. иди исправляй, двоечник.
Там есть одна крутейшая ошибка...
Ошибок там явно больше одной.
Но самое интересное в другом.
MEGA_ARDUINHIK: вот Вы утверждаете, что "стандартные" библиотеки тормозят, а Ваша - нет. Как бы принято такие утверждения подкореплять конкретными цифрами, полученными в результате тестирования.
Вот нам и хотелось бы узнать:
1. Что Вы подразумеваете под стандартной библиотекой для УЗ-датчика?
2. Опишите, как именно Вы сравнивали работу стандартной и Вашей библиотек.
3. Опубликуйте цифры, которые подтверждали бы утверждение, приведенное Вами в начале темы.
4. Ну и заодно хотелось бы понять, какое отношение УЗ-датчик имеет к движению по линии.
5. И почему провода Вы подключаете на 12 и 13 пины, а сигнал даете на 6 и 9.
Ну .. эти мелочи я даже во внимание не принял. "Там есть" .. имелось ввиду типовая, стандартная часть измерителя расстояний, которую народ копипастит из примеров. Так вот эта крутейшая ошибка, не влияет на работу в примерах, но делает такой пример совершенно не пригодным для роботостроения с использованием конкретно этого датчика.
А датчик - да, лучшее что мне довелось увидеть из "ардуиновского" шилдового барахла. Ещё датчик цвета понравился на TSC3200..
В каком, интересно, месте точность копипасты оказалась выше?
Что там нет температурной компенсации, что у тебя. Что там делят нацело, забыв увеличить делимое на полделителя, что у тебя.
В каком месте точность выше?
5. И почему провода Вы подключаете на 12 и 13 пины, а сигнал даете на 6 и 9.
От всегда так - нет, чтобы поблагодарить автора за суперскую бибилиотеку, так нет же - начинают придираться к мелочам, а сами, втихаря, во все свои роботы срочно супербиблиотеку вставляют, между прочим! :)))
крутейшая ошибка
Да, колитесь уже, что имеете в виду-то :)))
Наверняка там не отрабатывается ситуация, когда сигнал не вернулся.
Верно, но не только. Сколько времени пульсаИн() ждет отклик "по умолчанию"? Сколько за это время проедет робот по сути "мертвым", какой нафиг "контроль линии"? Чтобы ЭТО можно было пользовать на практике, пульсуИн надо качественно переделывать, дабы в процессе измерения импульса не прошляпить линию. А это уже совсем иной код, иной подход и вообще не "ардуино" .. :)
...совсем иной код, иной подход и вообще не "ардуино" .. :)
Тогда какой резон писать об этом на форуме Ардуино?
Если мы с сыном слепили его на Ардублоке, то его вполне можно реализовать и на Ардуино библиотеках. :)
Если мы с сыном слепили его на Ардублоке, то его вполне можно реализовать и на Ардуино библиотеках. :)
а выложить ваш код можно? Для ардуины ес-но... а то к моей тележке объезд препятствий просится
Если мы с сыном слепили его на Ардублоке, то его вполне можно реализовать и на Ардуино библиотеках. :)
а выложить ваш код можно? Для ардуины ес-но... а то к моей тележке объезд препятствий просится
К сожалению, нет нельзя. Там используется знаменитый arhat.h :)
Если мы с сыном слепили его на Ардублоке, то его вполне можно реализовать и на Ардуино библиотеках. :)
а выложить ваш код можно? Для ардуины ес-но... а то к моей тележке объезд препятствий просится
К сожалению, нет нельзя. Там используется знаменитый arhat.h :)
Это? А то на Гитхабе ничего нет, осталось в скачанных, правда по версии не скажу )))