Ардуино и ультразвуковой дальномер 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); }
Удачи в освоении электроники.
Молодец!
А Вы в курсе, что скорость звука в промежутке температур от 0°С до 40°С изменяется на добрых 7% (с 330,8 до 354,2 м/с)?
Я далёк от мысли требовать, чтобы все библиотеки это учитывали, но написать в комменатриях, что данная библиотека работает правильно при 15-16 градусах, а при других температурах подвирает (лучше бы ещё сказать, насколько) было бы правильно, Вам не кажется?
Два вопроса:
1. Чем эти несколько строк отличаются от 100500 примеров, разбросанных по сети? Например от этого?
2. Нахрена ради этого было городить класс? Чем не устроила функция с 2-мя параметрами? Было бы проще и эффективнее, как по скорости, так и по памяти. Так нахрена? Какие выгоды дал класс?
Какие выгоды дал класс?
Ну всё, теперь главное в этой теме - чтобы Квон сюда не заглянул...
Кто может, слейте плиз обе темы, дабы не разводить двойной флуд..
Кто может, слейте плиз обе темы, дабы не разводить двойной флуд..
Блин, я вчера удалил ТРИ дубликата, но оказывается их было не четыре, а пять (ну, мега- ж!). Или я пятую не заметил, или он её позже родил :(
Сливать я не умею.
Думаете троло-ло? Странно как-то. На пиар непохоже .. ссылки нет, пиарить нечего. На вдутие веса в яшиной выборке .. тоже так нет же ссылки. Нафига тогда 5 копипастов .. кто-то автобота тестирует .. нифига не понятно, но последнее время вижу на разных ресурсах подобные странные действа. На политическом (не пиарю) появился автобот, что пытается вести "беседу", правда вычисляется "на раз" ибо вместо логически связанного ответа и своего мнения копипастит предложения из Сети, подкрепляя их ссылками в тему. Но ведь подправят как пить дать! А тут-то нафига .. но ведь кроме первого поста автор не заявился ни в одной теме, верно? То есть это не читатель..
.. Сеть формирует свой "скайнет"?
Всего лишь
Бритва Хэнлона
Всего лишь
Бритва Хэнлона
А ссылка на фильтр Бесселя.
кроме первого поста автор не заявился ни в одной теме, верно?
Не верно.
Всего лишь
Бритва Хэнлона
А ссылка на фильтр Бесселя.
Типичный пример Бритвы Хэнлона :))
1. Да, мой робот с прицепленными к нему датчиками по линии ездил лучше с моей библиотекой, чем с библиоткой ultrasonic.h.
2. Да, я сделал все наиболее просто и может быть не самым надежным способом, но основное преимущество моей библиотеки в том, что она почти не занимает места.
3. Я не робот и никакого интернет заговора здесь нет, просто у меня лаганул браузер, и я не думал, что кнопка сработала, поэтому получилось несколько одинаковых постов.
4. Это моя первая библиотека, и я не профи в С++.
5. Несоответствие контактов на рисунке и в программе - моя ошибка. Просто несколько раз тестил библиотеку и скопировал последний скетч.
6. Про температуру не знал. Спасибо, что рассказали. Если будет время сделаю похожую библиотеку, учтя это и попробую всё запихнуть в функцию.
Извините за неграмотность.
Извиняем :), но теперь ваша тема "размножилась" и её достаточно сложно "слить" на этом "чудо-движке", а как понимаю завтраками про "идет разработка нового и скоро заменим" форумчан кормят уже лет 10 почитай как..
В альтернативной ветке я Вам отписал почему вашу поделку НЕЛЬЗЯ использовать для задач робототехники, как и весь тот код, откуда Вы скопипастили главный алгоритм. Попробуйте понять что там "не так" и главное КАК это можно преодолеть в следующей версии. Дерзайте.
Для справки, робот по линии на последних соревнованиях Робофест-2018 в лучших заездах проходил трассу примерно за .. 6секунд. Трасса длинной 9м60см, типовая для Робофеста и ряда иных соревнований. Для этой трассы средняя скорость движения примерно в 2 раза ниже максимальной по спрямленным участкам трассы. Итого имеем: 9.6м / 6сек = 1,6м/сек и макс. скорость по прямой = 3.2м/сек или 3.2 миллиметра в миллисекунду.
Ширина узкой линии типовая от 15 до 25мм. Евролиния - строго 15мм. То есть, при поперечном (вращение в поиске линии - норма) движении с подобной скоростью робот пересекает трассу за .. около 5 миллисекунд. Если Ваш класс НЕ ОБЕСПЕЧИВАЕТ возможность проверки датчиков линии с частотой хотя бы в ДВА раза выше (по теореме Котельникова), то применяться для роботостроения он не может.
Решайте. :)