Лазерный дальномер(измеритель ширины детали) на базе датчика и ардуино
- Войдите на сайт для отправки комментариев
Чт, 30/06/2016 - 18:22
Добрый день.
Для упрощения трудовых будней решил сделать измеритель ширины деталей.

Есть стол шириной "С", допустим 0,6 метра - постоянная величина.
Кладётся деталь "А", дальномер измеряет расстояние "B" (от себя до детали).
Считаем "A=C-B" и выводим на экран.
Вопрос - на сколько точным может быть датчик по ссылке ниже или не стоит даже вязаться? Точность нужна не хуже 0,3мм.
Заранее огромное спасибо.
http://ru.aliexpress.com/item/40m-High-precision-laser-distance-sensors-...
Так там же в описании написано:
Measuring range: 0.045-40 m
Resolution: 0.01 mm (0.00001 m)
Measurement accuracy (standard deviation): ± 2.mm (10 m) greater than 10 m formula ± 2+0.05* (D-10), and d is the distance
Плюс-минус лапоть, т.е. 2мм.
DIYMan - тоска, значит придёться делать из лазерного дальномера с БлюТус или делать цифровой вывод у дальномера(что сам врятли потяну).
Спасибо!
DIYMan - тоска, значит придёться делать из лазерного дальномера с БлюТус или делать цифровой вывод у дальномера(что сам врятли потяну).
Спасибо!
Точность будет такая же - лапоть ;)
Т.е. аналоговая рулетка будет лучше?
Честно говоря думал, что у лазерных рулеток (~10-15 тыс руб ценовой категории) погрешность на 0,6 метра скромнее 0,5 мм.
Вы заявили требуемую точность 0,3 мм, смотрите, чего обещает тот или иной производитель, от этого и отталкивайтесь. Типовое значение для бытовухи, ЕМНИП - плюс/минус 2мм на 10 м, но это ещё не значит, что на 0,6м будет оооочень точно - надо смотреть доку на конкретный прибор.
Бегло просмотрел бытовые лазерные рулетки - точностью в 0,3 мм там и не пахнет.
Делаете как здесь
https://vimeo.com/44707148
Там не показано, но кроме трэкинга ардуино меряет и расстояние тоже, т.е. одним лучом можно показать куда мерять, она повернётся и померяет до указаного места. Но если такая функциональность излишняя, то ещё проще
Добрый день.
Получил дальномер. Но, так получилось, что дальномер уже не нужен (руководством было решено <s>считать поверхность луны твёрдой</s> оставить аналоговые линейки и точка).
Подключить хочется исключительно для спортивного интереса - посмотреть на сколько он точный и потом продать хоть за сколько (в данном случае инициатива вышла боком инициатору - мне, т.к. покупал в надежде, что оценят)
Подскажите, пожалуйста, как можно подключить железку и считать с неё данные. В архиве инструкция по управляющим кодам что шла в комплекте.
https://cloud.mail.ru/public/NGsf/LQnbUcYe5
https://cloud.mail.ru/public/AGDM/sXg9iAYu8
На сколько я понимаю, подключить его к 3,3V, GND, RXD, TXD что бы просто считать данные как для ультразвукавого дальномера (код ниже) у меня не получится?
Заранее огромное спасибо.
/*Ультразвуковой датчик расстояния и Arduino – полный гайд Распиновка ультразвукового датчика расстояния: VCC: +5V Trig : Триггер (INPUT) – 11 пин Echo: Эхо (OUTPUT) – 12 пин GND: GND */ int trigPin = 11; //Триггер – зеленый проводник int echoPin = 12; //Эхо – желтый проводник long duration, cm, inches; void setup() { //Serial Port begin Serial.begin (9600); //Инициализирум входы и выходы pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { // Датчик срабатывает и генерирует импульсы шириной 10 мкс или больше // Генерируем короткий LOW импульс, чтобы обеспечить «чистый» импульс HIGH: digitalWrite(trigPin, LOW); delayMicroseconds(5); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Считываем данные с ультразвукового датчика: значение HIGH, которое // зависит от длительности (в микросекундах) между отправкой // акустической волны и ее обратном приеме на эхолокаторе. pinMode(echoPin, INPUT); duration = pulseIn(echoPin, HIGH); // преобразование времени в расстояние cm = (duration/2) / 29.1; inches = (duration/2) / 74; Serial.print(inches); Serial.print("in, "); Serial.print(cm); Serial.print("cm"); Serial.println(); delay(250); } Использование библиотеки NewPing Ниже приведен пример программы с использованием библиотеки NewPing. #include <NewPing.h> #define TRIGGER_PIN 12 #define ECHO_PIN 11 #define MAX_DISTANCE 200 NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Настройка пинов и максимального расстояния. void setup() { Serial.begin(9600); } void loop() { delay(50); unsigned int uS = sonar.ping_cm(); Serial.print(uS); Serial.println(“cm”); }