Электрически конструкция датчика состоит из одних проводников. Элементарно.
Никакой обвязки — принципиально — это две "кнопки" с массы на порты 2 и 3, проще детекторного приемника!
Небольшой экскурс в историю(курсивом) — пневматическим оружием занимаюсь более 20 лет, и все это время для измерения скорости пули использовал метод баллистического маятника.
Но появился Дробовик — энергия против магнума калибра 4.5мм -в 100 раз!!! больше — не бревно-же на подвесах использовать!
На то время уже приобщился к использованию Arduino в мирных целях._
За основу взял конструкцию Михаила Шевченко на двух парах оптических датчиков.
Сделал вариант, устанавливающийся на ствол, но отдача даже пружинной пневматики после нескольких выстрелов разрушала светодиоды.
Попытался собрать универсального рамочного монстра со множеством оптических датчиков — FAIL.
Решив упрощать, пришел к описываемой конструкции, дальше уже некуда ;-)
Принцип датчиков позаимствовал у создателей программы Airspeed (родом из 90-х).
Просто добавь микроконтроллер (точность — на порядок выше)!
То-есть, оно когда заработало, то так просто выглядит!
В отличие от звуковых карт, пришлось оперировать не аналоговым сигналом, а переходом с логической 1 на 0.
Удаче предшествовало множество экспериментов — 2 варианта рамок, 3 вида электрической "обвязки" и 4 правки скетчей (программы).
Подтяжка напряжения на цифровые пины (PULLUP) оказалось наиболее жизненным и стабильным решением!
В итоге, вероятность допустить ошибку при повторении данной схемы — мизерная!
Все, дальше нет времени обьяснять, датчики можно собрать просто глядя на фотографии.
Итак, начинаем игру в ПЯТНАШКИ — исходные материалы — деревяный брусок 15х10х5см, два куска полиэтиленового листа 15x15см, толшиной 2.5мм.
На большей толщине рамок — датчики могут не срабатывать, на меньшей — коротить от дуновения ветерка.
Можно взять 3-мм гофрокартон, бальзу, или вовсе сделать рамки из обычных линеек!
Основное что следует помнить — 4мм толщины — уже много, на шести работать и вовсе перестает!
Размер "окна" в рамках — 9x9см (изначально было десять) мало?
Если Вы не можете попасть в десятку, в прямом и переносном смысле, то говорить о необходимости хронометра — рано!
Дальше — вырезаем куски пищевой фольги 11x14 см и при помощи обычного клеящего карандаша аккуратно крепим на рамки с двух сторон.
Последние прикручиваем к основанию (брусок) так, чтобы расстояние между ними составляло 10см (база хронографа, заложенная в скетч).
При этом, сам брус должен быть уже 100мм. на толшину одной рамки (на самом деле древесина в результате усыхания на складе сама уменьшается в размерах ;-)
П-образные рамки сделаны из соображений "многоразовости" одного "комплекта" фольги — после каждого выстрела линейкой проводим между парами пластин дабы разомкнуть контакт в районе пулевых отверстий.
Для удобства и простоты обеспечения контакта с фольгой были сделаны зажимы на основе прищепок:
В качестве проводников взял многожильную витую пару — все концы залудил (мы-же помним о том что медь с алюминием напрямую не соединяют!)
Так с этим разобрались.
Теперь перейдем к микроконтроллеру — все отлаживал на arduino Uno (Atmega-328) 16Mhz + LCD Keypad Shield.
Итак, текст скетча (программы):
// Подключаем библиотеки
#include <LiquidCrystal.h>
//ВАЖНО! инициализируем пины вывода - у Вас могут быть другие!!!
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
//определяем переменные:
//скорость пули
unsigned int data = 0;
//переменные для записи времени прерываний
volatile unsigned long int time1 = 0;
volatile unsigned long int time2 = 0;
void setup() {
//Устанавливаем количество столбцов и строк LCD
lcd.begin(16, 2);
//определяем пины для работы с прерываниями
attachInterrupt(0, sensor_1, FALLING);
attachInterrupt(1, sensor_2, FALLING);
//включение внуттреннего напряжения подтяжки на эти-же пины
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("CHRON 100mm base");
//проверка разомкнутости цепей датчиков
nogood:
//если на первом датчике - короткое - на экране будет отображаться # после слова CHRON
if ( digitalRead(2) == LOW )
{
lcd.setCursor(5, 0);
lcd.print("#");
goto nogood;
}
else
{
lcd.setCursor(5, 0);
lcd.print(" ");
}
//если на втором датчике - короткое - на экране будет отображаться # перед словом base
if ( digitalRead(3) == LOW )
{
lcd.setCursor(11, 0);
lcd.print("#");
goto nogood;
}
else
{
lcd.setCursor(11, 0);
lcd.print(" ");
}
lcd.setCursor(0, 1);
lcd.print("Speed ");
lcd.setCursor(6, 1);
lcd.print(data);
lcd.setCursor(13, 1);
lcd.print("M/S");
delay(100);
while ( time1 == 0 && time2 == 0 ) ;
delay(100);
if ( time1 != 0 && time2 != 0 && time2 > time1 )
{
data = 0.1 / ((time2 - time1) / 1000000.0); // v = s / t
}
// Serial.println(data)
// Если у Вас нет дисплея - комментарим все строки работы с библиотекой LiquidCrystal (lcd),
// раскомментируем верхнюю - Serial.println - скорость будет отображаться в окне Arduino IDE
lcd.setCursor(6, 1);
lcd.print(data);
time1 = 0;
time2 = 0;
}
void sensor_1()
{
if ( time1 == 0 )
{
time1 = micros();
}
}
void sensor_2()
{
if ( time2 == 0 )
{
time2 = micros();
}
}
Вкратце, принцип работы — командой PULLUP на пины 2,3 включается напряжение подтяжки (внутренними резисторами 20-50 кОм)
Пролет пули делает короткое замыкание, регистрируемое прерываниями (sensor FALLING), как наиболее быстрыми командами arduino.
Зная разницу во времени и расстояние между датчиками, вычисляется скорость пули.
ВАЖНА очередность датчиков — первый — на пин 2!
Все.
Кто-то возразит, что на пробивание фольги тратится энергия, и реальная скорость пули будет выше!
Поначалу вроде все так и было!
По сравнению со скоростью, замеренной полтора года назад прибором с оптическими датчиками (280м/с) — девайс на фольге выдавал 260!
Энергетически — это 22Джоуля против 19! — потеря сразу трешки!
Но как только я уменьшил базу до 100мм, "фольга" стала показывать верный результат — почему — загадка!
Пули использовал Luman FT 0.56грамма, приборы на основе одного и того-же микроконтроллера, база в обоих случаях — 100мм, одна винтовка
Теперь о стабильности показаний — из 5 выстрелов, "выброс" только по одному, цифры остальных — сходятся.
Да, и последнее, спросите — зачем в век электроники изобретать велосипед?
Все очень просто — ответ — дробовик!
При измерении скорости заряда на вылете — не проблема — подойдет любой прибор!
Но на расстоянии дробь имеет свойство рассеиваться (стандартная мишень для проверки осыпи — 75x75см).
А теперь представьте вариант необходимости замера скорости заряда на 35 метрах — если в клочья разнесет даже китайский прибор за 50$ — будет обидно.
Выход — либо "бронировать" корпус и датчики (достаточно доски 40мм), либо использовать одноразовые.
Измерять есть что и зачем — не за горами введение запрета на охоту свинцом на водоемах(вслед за Европой), надо будет применять стальную дробь, в магазинах за такими патронами будут очереди (либо высокая цена).
При самосборе патронов, пользоваться дедовскими методами оценки эффективности по вхождении в сухую сосновую доску не хочется.
Метких Вам выстрелов, а охотникам — Ни Пуха, Ни Пера!
До новых встреч на Хабре, Андрей.
Комментарии (30)
osipov_dv
21.06.2018 09:24А что будет, если проложить между листами фольги обычный бумажный лист? По идее замыкание все равно будет.
gerasimenkoao Автор
21.06.2018 09:42Я тоже задумывался над этим вопросом, но пробивание такого «бутерброда» точно будет снижать скорость (многие бронежилеты строятся на принципе пирога, не говоря уж о баллистической ткани против пистолетных пуль).
Просто «обычная» пищевая фольга — весьма тонкий материал (9-11микрометров).
Могу провести эксперименты со следующими материалами — офисная бумага А4(80г/м — 100микрометров), газета, папиросная бумага(30микрометров).
Но это скорее всего будет уже после выходных.
shtirlitsus
21.06.2018 10:05Это как от пневматики, интересно, отдача светодиоды разрушает? Давно оптический самопальный хронограф использую без потерь.
Вообще, неразрушаемый метод измерения скорости более привлекателен, чем фольгу дырявитьgerasimenkoao Автор
21.06.2018 10:23обьясню — Пружинно-Прошневая Пневматика (ППП) класса магнум обратной отдачей легко разваливает огнестрельные оптические прицелы. — у меня Диана-54 и МР-513 — прицелов наломал уже штук 5.
Для обеспечения гарантированного пересечения пулькой луча я использовал 20мм пластиковую трубку, жестко крепящуюся на ствол.
5 выстрелов — хронограф перестал работать — треснул пластик одного из светодиодов.
Вот как-то так.
За неразрушаемые датчики согласен, но все дело в дробовике ;-)
shtirlitsus
21.06.2018 10:48Не соглашусь. Если ППП ломает огнестрельную оптику отдачей, это не огнестрельная оптика. И в магнумах как правило стоят газовые поршни, а не пружины. От них и отдача меньше, и не скручивает оружие при выстреле.
Мой хронограф сделан из 16 мм водопроводного полипропилена. Светодиоды на силиконовом герметике.gerasimenkoao Автор
21.06.2018 10:58+1К примеру, прицелы Киевского завода Арсенал 3-9х40 — разрушен механизм изменения кратности.
Белорусский Беломо 4x24 (гражданский аналог СВД-шного)- полетел механизм поправок.
Дольше всего продержался затюненый мелкашечный BSA 4x32 — но рассохся клей — нужно снова перебирать ;-)
Мои девайсы — с обычными пружинами!
Диане — 20+лет, Мурке 10+.
Последняя кстати — мощнее — 307м/с — но не попадает никуда ;-( — клюшка еще та.
Светодиоды вклеивал термопистолетом — легче ремонтировать — силикон уж очень крепко схватывает, да и засыхания ждать не надо.
tSmoker
21.06.2018 11:45Дам дело еще в том, что у ППП отдача «двойная», одна при страгивании поршня и вторая при его остановке. А газовые «пружины» появились не так давно и в Диане 54 автора наверняка стоит пружина.
Заголовок спойлераВ подростковом возрасте мечтал о этой Диане даже больше чем о «ноутбуке как в Хакерах»gerasimenkoao Автор
21.06.2018 11:54Да, для Дианы вообще есть буквально дюжина
www.shooting-ua.com/arm-books/arm_book_63.1.htm
прицелов, которые точно на ней не разваливаются.
Кстати, пробовал ставить магум-ГП на МР-512М — усилие взвода — адское а выхлоп — 240м/с.
Никак в пестик ее не переделаю.
safari2012
21.06.2018 14:10Ну слава богу, хоть кто-то из ардуинщиков с первой статьи (ну… ок… со второй) начал использовать прерывания :)
gerasimenkoao Автор
21.06.2018 15:06Еще режим сна осталось заюзать(но не в хронографе) — вот мне легче тормознуть Атмегу до мегагерца — месяц на пальчиковой батарейке ;-)
А так все ок — даже асинхронный режим не за горами — с часовым кварцем и внутренним генератором на 8Mhz.
nafikovr
21.06.2018 23:48Правда там, где уже надо бы захват таймера использовать, но ничего, для ардуино и это редкость.
MaxxONE
21.06.2018 15:20не за горами введение запрета на охоту свинцом на водоемах
Оффтопик, но серьёзно? В России? Есть какие-то телодвижения по этому поводу?
Это же все равно, что блокировка телеграма. Бессмысленно и беспощадно.gerasimenkoao Автор
21.06.2018 16:31Украина, в прошлом году едва не ввели, но депутаты — народ упертый :-(
А еще, со сталью работать проще — при просыпании — магнитом собирается.
Да и патронташи прикольные поделать можно.
Дабы не было оффтопиком — мерить скорость по магнитной индукции в соленоиде — РАЗ
Фиксировать пролет стального заряда через две плоские катушки — ЖДВА ;-)
R6MF49T2
21.06.2018 15:21Использовать микрофон и обычные листы бумаги не пробывали?
gerasimenkoao Автор
21.06.2018 15:56Вариант с микрофоном есть в упоминавшейся программе Airspeed, но
Во-первых — частота дискретизации на звуковой карте/входе контроллера при чтении/оцифровке ниже, чем у прерывания(4микросекунды)
Во-вторых, требуется обработка аналогового сигнала — тяжеловато ардуинке может быть
Ну и наконец, толщина самой тонкой из доступных видов бумаги (папиросная) — в 3! раза больше фольги.
И да, размер такой бумажки 3х6см — я стреляю неплохо, а другие???
Хотя, как вариант одноразового датчика — трубка на конце ствола — пойдет!
Спасибо! Подумаю!hoary
21.06.2018 16:06А если использовать компаратор на выходе микрофона и получать те же цифровые уровни?
gerasimenkoao Автор
21.06.2018 16:14Скажу даже больше — у меня есть 5 микрофонных датчиков с настройкой порогов срабатывания (компаратором как раз)
mi4.rightinthebox.com/images/384x384/201206/lglmqd1339666662236.jpg
Идея конкретно данного проекта — сделать хронограф из ничего!
А на микрофонах я триангуляцию источника выстрела под Arduino Due планирую попробовать.
Потом дам егерю тестировать — пускай браконьеров ловит!
eyno
21.06.2018 15:23Для огнестрела есть вот такое готовое решение на оптических датчиках.
Хрон:
http://agioso.ru/tovary/chronografy/chron100
Броня:
http://agioso.ru/tovary/chronografy/accessorie/bronya_stalgerasimenkoao Автор
21.06.2018 16:08Ну это-же не наши методы!
А как-же запах канифоли???
s20.postimg.cc/nkomezdbx/Epic_Fail.jpg
Был такой вот фэйл.
Сейчас уже переделал-бы в рабочий вариант за час, не меняя программы.
eyno
21.06.2018 16:30Смотрю, рукам покоя нет (в хорошем смысле). Удивлен, что про пцп ни слова. В бюджет Дианы начального уровня конструкторы укладываются. А точность и комфорт совсем на другой уровень выходят. Да и диоды с оптикой от отдачи не мрут.
gerasimenkoao Автор
21.06.2018 16:43Оооо ПЦП! Диана бралась совсем давно.
А дробовик оттого и взял, что у нас охота с пневматикой запрещена.
За точность — вообще молчу — в сторону цели выплевывается заряд из сотни дробин.
Но целиться — надо.
За диоды — если буду не занят другими проектами, сооружу нестандартный оптический датчик — излучатель рядом с фототранзистором — пролетающая пуля отражает свет — дальше — понятно.
Как раз для огнестрела — легкая планка с датчиками удобно крепится с одной стороны любого ствола, и не мешает стрельбе — цена-то патронов далеко не пневматическая.
Капец, захотелось на полигон — по тарелочкам попалить
KiloLeo
21.06.2018 22:44А почему оптические датчики ставили на ствол, а фольгу на стол? Поставьте светодиоды на стол и не будет никакой отдачи. И потерь энергии на пробитие фольги.
Ещё можно фотографировать ударную волну и по углу волны вычислять скорость.gerasimenkoao Автор
22.06.2018 09:00Оно-то все верно Вы говорите,
Но я использовал всего две оптопары, с пулькой 4.5 трудно добиться пересечения обеих осей.
Даже в наствольном варианте, на водопроводной PPR-трубке (20мм внешний диаметр, 3мм стенка), при расположении датчиков по горизонтали, мизерный изгиб пластика отдачей приводил к уходу оптической оси второй пары с траектории пули.
Пришлось располагать их по вертикали.
А за энергию я писал — внезапно! прибор на фольге показывает те-же цифры, что и оптический.
Но нужно еще перепроверить.
Да и вообще, ну занятная-же мерилка из проводов вышла!
MedicusAmicus
23.06.2018 11:16Сгодится ли для длинного проводящего снаряда (стрела)?
Длина около 80см, так что неизбежно замыкание 1 и 2 датчиков между собой.
Оптопара не нравится чувствительностью к освещению.gerasimenkoao Автор
23.06.2018 12:01Определенно — Да!
В экспериментах часто после пролета пули контакты оставались замкнуты самими краями отверстия- показания при этом не менялись!
Для пущей уверенности можно убрать из скетча строки
time1 = 0;
time2 = 0;
Но надо контроллер перед каждым выстрелом ресетить при этом.
Правда видимо после каждого выстрела придется фольгу менять — у меня рогатка так едва-ли не вместе с основой все сносит ;-)MedicusAmicus
23.06.2018 14:49Смена фольги — понятное дело.
Буду изготавливать.
А ресетить — относительно проблемно, если делать ячеистые датчики 3х3 и измерять среднее.
Для одиночных замеров не критичное неудобство.
MedicusAmicus
23.06.2018 14:53Фантазия рисует пленки из магнитной жидкости в поле соленоида (самовосстанавливающийся датчик).
gerasimenkoao Автор
23.06.2018 15:38Нет, ну так усложнять ни к чему, достаточно оптики, и к ней я еще вернусь ;-)
celebdial.s3.amazonaws.com/celeb_pic/arnold.jpg
uterr
Материал интересный, спасибо что поделились :) но способ подачи несколько слишком артистичный
gerasimenkoao Автор
Спасибо за отзыв!
За изложение можно сказать, что это у меня такой авторский стиль.
Или он расходится с общими принципами публикаций на Хабре?
Если что не так — скажите, учту на будущее!