Хронограф для пневматики своими руками

#BigGun. Простейший «рамочный» хронограф на Arduino (измерение скорости пули)

Электрически конструкция датчика состоит из одних проводников. Элементарно.

Никакой обвязки — принципиально — это две «кнопки» с массы на порты 2 и 3, проще детекторного приемника!

Небольшой экскурс в историю(курсивом) — пневматическим оружием занимаюсь более 20 лет, и все это время для измерения скорости пули использовал метод баллистического маятника.
Но появился Дробовик — энергия против магнума калибра 4.5мм -в 100 раз!!! больше — не бревно-же на подвесах использовать!

На то время уже приобщился к использованию Arduino в мирных целях._

За основу взял конструкцию Михаила Шевченко на двух парах оптических датчиков.

Сделал вариант, устанавливающийся на ствол, но отдача даже пружинной пневматики после нескольких выстрелов разрушала светодиоды.

Попытался собрать универсального рамочного монстра со множеством оптических датчиков — FAIL.

Решив упрощать, пришел к описываемой конструкции, дальше уже некуда 😉

Принцип датчиков позаимствовал у создателей программы Airspeed (родом из 90-х).

Просто добавь микроконтроллер (точность — на порядок выше)!

То-есть, оно когда заработало, то так просто выглядит!

В отличие от звуковых карт, пришлось оперировать не аналоговым сигналом, а переходом с логической 1 на 0.

Удаче предшествовало множество экспериментов — 2 варианта рамок, 3 вида электрической «обвязки» и 4 правки скетчей (программы).

Подтяжка напряжения на цифровые пины (PULLUP) оказалось наиболее жизненным и стабильным решением!

В итоге, вероятность допустить ошибку при повторении данной схемы — мизерная!

Все, дальше нет времени обьяснять, датчики можно собрать просто глядя на фотографии.

Итак, начинаем игру в ПЯТНАШКИ — исходные материалы — деревяный брусок 15х10х5см, два куска полиэтиленового листа 15×15см, толшиной 2.5мм.

На большей толщине рамок — датчики могут не срабатывать, на меньшей — коротить от дуновения ветерка.

Можно взять 3-мм гофрокартон, бальзу, или вовсе сделать рамки из обычных линеек!

Основное что следует помнить — 4мм толщины — уже много, на шести работать и вовсе перестает!

Размер «окна» в рамках — 9×9см (изначально было десять) мало?

Если Вы не можете попасть в десятку, в прямом и переносном смысле, то говорить о необходимости хронометра — рано!

Дальше — вырезаем куски пищевой фольги 11×14 см и при помощи обычного клеящего карандаша аккуратно крепим на рамки с двух сторон.

Последние прикручиваем к основанию (брусок) так, чтобы расстояние между ними составляло 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 выстрелов, «выброс» только по одному, цифры остальных — сходятся.

Да, и последнее, спросите — зачем в век электроники изобретать велосипед?

Все очень просто — ответ — дробовик!

При измерении скорости заряда на вылете — не проблема — подойдет любой прибор!

Но на расстоянии дробь имеет свойство рассеиваться (стандартная мишень для проверки осыпи — 75×75см).

А теперь представьте вариант необходимости замера скорости заряда на 35 метрах — если в клочья разнесет даже китайский прибор за 50$ — будет обидно.

Выход — либо «бронировать» корпус и датчики (достаточно доски 40мм), либо использовать одноразовые.

Измерять есть что и зачем — не за горами введение запрета на охоту свинцом на водоемах(вслед за Европой), надо будет применять стальную дробь, в магазинах за такими патронами будут очереди (либо высокая цена).

При самосборе патронов, пользоваться дедовскими методами оценки эффективности по вхождении в сухую сосновую доску не хочется.

Метких Вам выстрелов, а охотникам — Ни Пуха, Ни Пера!

До новых встреч на Хабре, Андрей.

Хронологическая таблица по биографии и творчеству Александра Александровича Блока

Хронологическая таблица по биографии и творчеству Александра Александровича Блока
28 ноября 1880 — 7 августа 1921
Дата
Род деятельности
1880 год 16 ноября (по старому стилю)
АлександрАлександрович Блок родился. По происхождению, семейным и родственным связям, дружеским отношениям поэт, сам называвший себя в третьем лице “торжеством свободы” , принадлежал к кругу старой русской интеллигенции, изпоколения в поколения свято служившей науке и литературе.
1889 год
Мать Блока вторично вышла замуж — за гвардейского офицера. Девятилетний Блок поселился с матерью и отчимом в Гренадрских казармах,расположенных на окраине Петербурга, на берегу Большой Невки.
Тогда же Блока отдали в гимназию.
1897 год
Очутившись с матерью за границей, в немецком курортном городке Бад Наугейме, Блок пережилпервую, но очень сильную юношескую влюбленность. Она оставила глубокий след в его поэзии.
1898 год
Гимназия была окончена, и Блок “довольно безотчетно” поступил на юридический факультет Петербургскогоуниверситета. Через три года, убедившись, что совершенно чужд юридической науке, он перевелся на славяно-русское отделение историко-филологического факультета, которое окончил в 1906 году.
1901 год
Театральныеинтересы уступили место интересам литературным. К тому времени Блок написал уже много стихов. Это — лирика любви и природы, полная неясных предчувствий, таинственных намеков и иносказаний. Молодой Блокпогружается в изучение идеалистической философии, в частности творений древнегреческого философа Платона, учившего, что, кроме реального мира, есть еще некий “сверхреальный” , высший “мир идей”.
с 1898 года
Блокпереживал на редкость сильное и глубокое чувство к девушке (Любови Дмитриевне Менделеевой) , которая впоследствии стала его женой.
1902 год ноябрь
Между молодыми людьми произошло решительное объяснение, и онипоженились, в августе 1903 года В это время Блок уже вступил в литературу, примкнув к символистам. Дебют его состоялся весной 1903 года — почти…