Контакты

Индукционный хронограф своими руками. Серая коробочка радиодеталей. Хронометр для пневматики своими руками. Измерение скорости производится в несколько этапов

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

Конструкция аппарата включает рабочую зону, через которую пролетает пуля, вычислительную схему и дисплей для визуализации полученных результатов. Принцип действия прибора состоит в фиксировании времени, которое требуется пуле для пролета известного отрезка между двумя или несколькими датчиками, и последующий расчет ее средней скорости (расстояние делится на время).

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

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

Преимущества самодельного рамочного хронографа для со световой схемой:

  • большие размеры рабочей зоны, позволяющие производить выстрел как в упор, так и на значительном удалении (можно испытывать баллистические характеристики пуль на разном расстоянии);
  • широкий диапазон измеряемых скоростей из-за увеличенного линейного промежутка между датчиками;
  • пригодность к тестированию любого типа пневматики, независимо от конструкции и принципа действия (PCP, ППП, модели на CO2 и пр.);
  • возможность использования в домашних условиях с оружием, оснащенным саунд-модератором.

Недостатки:

  • необходимость защиты лицевой части рабочей зоны от случайных попаданий (бронирование);
  • чувствительность оптической схемы к сильному механическому воздействию, в том числе рикошету и ударам осколками пули;
  • громоздкость;
  • рассчитанная скорость пули зависит от траектории полета (выстрел по диагонали уменьшает измеренное значение);
  • зависимость работоспособности большинства моделей от степени освещенности и погоды;
  • ложное срабатывание при попадании в камеру посторонних объектов (снег, механические частицы, насекомые).

Фото самодельного рамочного хронографа

Главная причина популярности рамочных хронографов – универсальность в эксплуатации и возможность использования с любым типом оружия.

Необходимый материал и детали

Для сборки хронографа требуется ряд устройств и инструментов. Их полный перечень зависит от навыков пользователя по проектированию и монтажу электрических схем.

Обязательно понадобятся следующие компоненты:

  • паяльник, припой и флюс – применяются на всех этапах подготовки микросхемы и соединения проводов;
  • микросхема, с помощью которой осуществляется замер временного интервала между прохождением пулей датчиков и расчет скоростных параметров;
  • светодиоды – служат источником искусственного освещения;
  • оптические приемники – фиксируют изменение освещенности при пролете пули между ними и светодиодами;
  • корпус прямоугольной формы, имеющий четыре стороны и полый изнутри (наподобие внешней части спичечной коробки). Лучше всего подойдет цельнометаллический корпус, устойчивый к удару пули при промахе;
  • дисплей для вывода результатов измерений.

Порядок сборки хронографа

Перед тем как ответить на вопрос, вроде как сделать рамочный хронограф для пневматики своими руками, следует подготовить корпус к установке датчиков и элементов микросхемы, которые должны быть защищены или расположены в местах, недоступных для попадания пули. Изнутри корпус рекомендуют окрасить темной небликующей краской, поглощающий свет. Это уменьшит число ложных срабатываний и повысит чувствительность прибора.

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

После установить плату, подключив ее к датчикам и подготовив места ввода питания. Если есть желание составить микросхему самостоятельно, минуя привлечение сторонних специалистов, можно использовать следующую схему (рис. 1).

Рис. 1 Микросхема хронографа

После сборки основных узлов необходимо закрыть электрическую схему прибора, обезопасив ее от механического воздействия и случайного попадания влаги. Это удобнее всего сделать, предусмотрев заранее отдельный пластмассовый коробок для печатной платы, имеющий выходы к дисплею, датчикам и батарее.

Принцип действия самодельного хронографа

Питание прибора может осуществляться от аккумуляторов, батареи или блока питания (от сети). Наиболее удобна автономная работа, поскольку наладку оружия не всегда можно провести в домашних условиях.

Измерение скорости производится в несколько этапов:

  • при пересечении оси первого датчика происходит обнуление отсчета времени микропроцессора;
  • после прохождения оптической оси второго датчика отсчет времени останавливается и передается для вычисления;
  • рассчитанная микропроцессором скорость пули выдается на дисплей.

Схема действия рамочного хронографа


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

Подготавливаем необходимые материалы и инструменты:
- китайский Digispark (обошелся на момент покупки в 80 рублей);
- дисплей сегментного типа на TM1637 (обошелся при покупке в 90 рублей);
- инфракрасные светодиоды и фототранзисторы (10 пар) - стоимость составила 110 рублей;
- сто резисторов на 220 Ом обошлись в 70 рублей, но из них будут нужны только два.

Вот и все, это весь список элементов, которые нужно будет купить. Кстати резисторы тоже можно найти в старой бытовой технике. Можно ставить и больше по номиналу, но не меньше. В итоге можно уложиться в 350 рублей, а ведь это не так много, учитывая, что заводской хронограф обойдется как минимум в 1000 рублей, да и сборка там куда хуже нашей самоделки .

Помимо всего прочего, нужно запастись такими деталями как:
- провода;
- кусок трубы длиной не менее 10 см (подойдет пластиковая водопроводная);
- все для пайки;
- мультиметр (желательно).


Первые описанные три детали имеют свои нюансы, поэтому каждую из них нужно рассмотреть отдельно

Digispark
Этот элемент представляет собой миниатюрную плату, которая совместима с Arduino , на борту она имеет ATtiny85. Как подключить этот элемент к Arduino IDE, можно почитать на , еще там можно скачать для нее драйвера.
У этой платы есть несколько вариантов, в одной используется microUSB, а другая оборудована USB-коннектором, который разведен прямо на плате. В связи с тем, что самоделка не имеет индивидуального блока питания, автор выбрал первый вариант платы. Если установить в самоделку батарею или аккумулятор, это сильно повысит ее цену, причем не сильно повлияет на практичность. А кабель для зарядки мобильного и Power bank есть почти у каждого.


Что касается характеристик, то они подобны ATtiny85, здесь его возможностей хватает с избытком. Микроконтроллер в хронографе всего лишь опрашивает датчики и управляет дисплеем.
Если вы еще ни разу не встречались с Digispark-ом, наиболее важные нюансы можно посмотреть в таблице.


Важно учитывать тот факт, что нумерация пинов для функции analogRead() имеет отличия. А еще на третьем пине находится подтягивающий резистор номиналом 1.5кОм, поскольку он применяется в USB.

Пару слов о дисплее
Дисплей для самоделки можно использовать любой, но автор остановил свой выбор на дешевом варианте. Чтобы сделать устройство еще дешевле, от дисплея можно отказаться совсем. Данные просто можно через кабель выводить на компьютер. Здесь будет нужна . Рассмотренный дисплей является копией дисплея .
Как выглядит дисплей спереди и сзади можно увидеть на фото.




Поскольку расстояния между цифрами одинаковые, то при выключенном двоеточии цифры читаются без проблем. Стандартная библиотека способна выводить числа в диапазоне 0-9. буквы в диапазоне a-f, а еще есть возможность для изменения яркости всего дисплея. Значения цифры можно задать, используя функцию display(int 0-3, int 0-15).


Как использовать дисплей

// 1. Объявить заголовочный файл
#include
// 2. Задать пины
#define CLK 0
#define DIO 1
// 3. Объявить объект
TM1637 tm1637(CLK, DIO);
// 4. Проинициализировать
void setup() {
tm1637.init();
tm1637.set(6); // Яркость
}
// 5. Использовать
void loop() {
// Вывод числа x на дисплей
int x = 1234;
tm1637.display(0, x / 1000);
tm1637.display(1, x / 100 % 10);
tm1637.display(2, x / 10 % 10);
tm1637.display(3, x % 10);
delay(500);
}

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


Автор хотел, чтобы на дисплее выводилась и готовая энергия полета пули, что вычислялось бы в зависимости от скорости пули и ее массы. Значения по задумке должны были выводиться последовательно, а чтобы понять, где какое, их нужно как-то отметить, к примеру, с помощью буквы «J». В крайнем случае, можно просто задействовать двоеточие, но автора это не устроило, и он полез в библиотеку. В итоге на базе функции display была сделана функция setSegments(byte addr, byte data), она зажигает в цифре с номером addr сегменты, которые закодированы в dаta:


{
tm1637.start();
tm1637.stop();
tm1637.start();
tm1637.writeByte(addr|0xc0);
tm1637.writeByte(data);
tm1637.stop();
tm1637.start();
tm1637.stop();
}

Кодируются такие сегменты довольно просто, за верхний сегмент несет ответственность младший бит data, ну а далее по часовой стрелке, 7-ой бит несет ответственность за средний сегмент. Символ «1» при кодировке выглядит как 0b00000110. За двоеточие отвечает восьмой старший бит, он используется во второй цифре, а во всех других игнорируется. Впоследствии автор автоматизировал процесс получения кодов, используя Exсel.


Что же в итоге вышло, можно увидеть на фото




#include
#define CLK 0
#define DIO 1
TM1637 tm1637(CLK, DIO);

void setSegments(byte addr, byte data)
{
tm1637.start();
tm1637.writeByte(ADDR_FIXED);
tm1637.stop();
tm1637.start();
tm1637.writeByte(addr|0xc0);
tm1637.writeByte(data);
tm1637.stop();
tm1637.start();
tm1637.writeByte(tm1637.Cmd_DispCtrl);
tm1637.stop();
}

void setup() {
tm1637.init();
tm1637.set(6);
}

void loop() {
// Вывод Hello
setSegments(0, 118);
setSegments(1, 121);
setSegments(2, 54);
setSegments(3, 63);
delay(500);
}



Ну и наконец, датчики

О датчиках точной информации не предоставлено, известно только, что они имеют длину волны 940 нм. В ходе экспериментов было выяснено, что датчики не способны выдерживать ток более 40 мА. Что касается напряжения питания, то оно не должно быть выше 3.3В. Что касается фототранзистора, то он имеет немного прозрачный корпус и реагирует на свет.


Приступаем к сборке и настройке самоделки:

Шаг первый. Сборка

Собирается все по очень простой схеме. Из всех пинов будут нужны всего Р0, Р1 и Р2. Первые два используются для дисплея, а Р2 нужен для работы датчиков.
Как можно заметить, один резистор используется для того, чтобы ограничить ток для светодиодов, ну а второй стягивает Р2 на землю. В связи с тем что, фототранзисторы подключаются параллельно, то когда пуля будет проходить перед любой оптопарой, напряжение на Р2 будет падать. Чтобы определить скорость полета пули, нужно знать расстояние между датчиками, замерить два скачка напряжения и определить время, за которое они произошли.
В связи с тем, что будет использоваться только один пин, не имеет значения, с какой стороны стрелять. Фототранзисторы в любом случае заметят пулю.










Собирается все из деталей, которые видно на фото. Чтобы все собрать, автор решил использовать макетную доску. Потом вся конструкция для прочности была залита термоклеем. Датчики размещаются на трубе и к ним припаиваются провода.
Чтобы диоды не пульсировали при питании от повербанка, автор установил параллельно светодиодам электролит на 100 мКф.




Еще важно отметить, что пин Р2 был выбран не просто так, дело в том, что Р3 и Р4 применяются в USB, поэтому теперь с помощью Р2 есть возможность прошить самоделку уже после сборки.
Еще Р2 является аналоговым входом, поэтому использовать прерывание нет надобности. Можно просто измерять показания между текущем и предыдущем значением, если разница становится выше определенного порога, значит, в этот момент пуля как раз проходит возле оптопары.

Шаг второй. Прошивка

Prescaler является делителем частоты, в стандартных случаях в платах наподобие Arduino он равен 128. Эта цифра влияет на то, как часто идет опрос АЦП. То есть для дефолтных 16 мГц выходит 16/128 = 125 кГц. Каждая оцифровка состоит из 13 операций, поэтому пин может максимально опрашиваться со скоростью 9600 кГц. На практике же это не более 7 кГц. В итоге интервал между замерами составляет 120 мкс, что слишком много для работы самоделки. Если пуля будет лететь со скоростью 300 м/с, она преодолеет за это время путь в 3.6 см, то есть контроллер просто не сможет ее заметить. Чтобы все работало нормально, интервал между замерами должен быть как минимум 20 мкс. Для этого значение делителя должно быть равно 16-ти. Автор же сделал делитель 8, как это сделать, можно увидеть ниже.

Владею пневматической винтовкой, всегда была интересна скорость вылета пули из ствола, это кому-то покажется странным, но у пневмолюбов скорость пули одна из главных тем для членометрии. Погуглив немного нашел несколько вариантов схем на разных микроконтроллерах, так как у меня уже был работы с AVR, без раздумий выбрал вариант на avr. Все необходимые детали я нашел на упоминавшемся уже здесь Taydaelectronics.com. Покупка собрана, оплачена, получена, приступим…

Сразу приложу схему:


поподробнее желающие могут посмотреть на

Итак, нам понадобится:


- 1 шт.
- 1 шт.
Пара конденсаторов 330 нФ и 100нФ для регулятора напряжения
(можно запитать всю схему от трех пальчиковых батареек вместо кроны, тогда регулятор и конденсаторы не понадобится)
2 шт.
1 шт.
2 шт.
2 шт.
выключатель, панелька для микроконтроллера, панелька для индикатора, коннекторы для шлейфов, сам шлейф я использовал от старого компьютера. Так же набор резисторов.

Повторил схему в протеусе, подогнал под свои нужды, и вытравил печатную плату

Кое-как расставил компоненты, чтобы иметь примерное представление, как рисовать дорожки. И да, у меня нет принтера, я рисую дорожки перманентным маркером)))

Сначала пробую на бумаге

Потом переношу на текстолит

Травим. Травлю в горячем растворе хлорного железа, разведенного примерно 1:3 с водой. После травления раствор храню на балконе, он работает даже после высыхания, нужно просто добавить воды. Следует осторожничать и не допускать попадания его на металлические поверхности - начнется усиленная коррозия.

Чистим

Сверлим. Дрельку делал из патрона и моторчика с фасттека.

Вот все компоненты запаяны на плату, осталось только прошить микроконтроллер

ОНО ЖИВОЕ!

После этого я изготовил измерительную трубку с датчиками. Устроено просто - на расстоянии 50 мм друг от друга находятся расположенные друг напротив друга фототранзистор и светодиод, своеобразные оптопары. Когда пулька пролетает по трубке, она поочередно перекрывает луч света первому и второму транзистору, о чем они сигналят микроконтроллеру, который высчитывает скорость по всем известной со школы формуле.

исходный код

/*
* Прошивка без наворотов, расстояние между датчиками 100мм
* общий анод!
* Updated at: 15.12.2013
*

#define F_CPU 1000000UL

#include
#include
#include

#define LED_EMPTY ~0b00000000

#define LED_0 ~0b00111111
#define LED_1 ~0b00000110
#define LED_2 ~0b01011011
#define LED_3 ~0b01001111
#define LED_4 ~0b01100110
#define LED_5 ~0b01101101
#define LED_6 ~0b01111101
#define LED_7 ~0b00000111
#define LED_8 ~0b01111111
#define LED_9 ~0b01101111
#define LED_DOT ~0b10000000

#define LED_MINUS ~0b01000000
#define LED_E ~0b01111001
#define LED_r ~0b01010000
#define LED_G ~0b00111101
#define LED_o ~0b01011100

#define BASE_LENGTH 1000

Typedef struct LedPanel {
int seg1;
int seg2;
int seg3;
} LedPanel;

Void renderSegmentNext() {
static int activeSegment = 0;
activeSegment = (activeSegment + 1) % 3;

Switch (activeSegment) {
case 0:
PORTB = led.seg1;
PORTD = ~0b0110000;
break;
case 1:
PORTB = led.seg2;
PORTD = ~0b1010000;
break;
case 2:
PORTB = led.seg3;
PORTD = ~0b1100000;
break;
}
}

Void initPorts() {
//init led ports
DDRB = 0xFF;
DDRD |= (0b111 << 4);
//init button ports
DDRD &= ~(1 << PD0);
DDRD &= ~(1 << PD1);
}

Int digitToLedValue(int digit) {
switch (digit) {
case 0:
return LED_0;
case 1:
return LED_1;
case 2:
return LED_2;
case 3:
return LED_3;
case 4:
return LED_4;
case 5:
return LED_5;
case 6:
return LED_6;
case 7:
return LED_7;
case 8:
return LED_8;
case 9:
return LED_9;
default:
return LED_MINUS;
}
}
void setLedValue(int value) {
if(value < 0 || value > 400){
led.seg1 = LED_MINUS;
led.seg2 = LED_MINUS;
led.seg3 = LED_MINUS;
return;
}

Led.seg3 = digitToLedValue(value % 10);
if (value >= 10) {
led.seg2 = digitToLedValue((value / 10) % 10);
} else {
led.seg2 = LED_EMPTY;
}
if (value >= 100) {
led.seg1 = digitToLedValue((value / 100) % 10);
} else {
led.seg1 = LED_EMPTY;
}
}

ISR(TIMER1_OVF_vect) {
//stop timer and reset value
TCCR1B &= ~(1 << CS00);
TCNT1 = 0;
//disable int1
GIMSK &= ~(1 << INT1);
//set error output
setLedValue(-1);
}

ISR(INT0_vect) {
//reset timer and start it
TCNT1 = 0;
TCCR1B |= (1 << CS00);
//enable int1
GIMSK |= 1 << INT1;
}

ISR(INT1_vect) {
//stop timer
TCCR1B &= ~(1 << CS00);
//disable int1
GIMSK &= ~(1 << INT1);
//calculate speed
int speed = (F_CPU / 10000L) * BASE_LENGTH / TCNT1;
setLedValue(speed);
}

Int main() {
initPorts();

MCUCR |= (1 << ISC00);
MCUCR |= (1 << ISC01);
GIMSK |= 1 << INT0;

MCUCR |= (1 << ISC10);
MCUCR |= (1 << ISC11);
GIMSK &= ~(1 << INT1);

TIMSK |= (1 << TOIE1);

SetLedValue(0);

While (1) {
renderSegmentNext();
_delay_ms(2);
}
}

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

Приступим к стрельбам:

Винтовка на фото - Stoeger x20, в который установлена газовая пружина. В теории может выжать 250 м/с.
И он почти выжал пулькой 0.68 грамм


Устройство готово, и работоспособно.

Конечно же я не рассчитываю на его точность, эталона рядом не было, но скорость показывает не рандомно, стабильно. Если нужно отслеживать изменение начальной скорости пули в зависимости от изменений конструкции пневматики, то этого вполне достаточно. Аналоги такого хронометра стоят более 2 тысяч рублей, этот же обошелся мне не более чем в 300р, и еще подарил 4 часа приятного времяпрепровождения.

kuente 07-05-2008 08:26

Диаметры всех светодиодов и оптоприемников 5мм
Оптоприемники ставить с интервалом между их центрами 6-7мм (чем плотнее тем лучше)
Светодиоды с интервалом 10-15мм
База 80мм

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

Близкорасположеные сотовые или дектовые телефоны и их базы тоже наводят сильные помехи на схему. Возможно правильная экранировка потребуется.

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

Anthrax 836 07-05-2008 12:13

к chronolite всё это можно прикрутить?

Trojak 07-05-2008 15:47

Почему? Oчень хочется

kuente 07-05-2008 17:43

схему видишь, пытайся - перерабатывай, используй на хронолайте...

kuente 07-05-2008 19:29

господа, тема не про хронолайт, ему такой датчик не светит... просьба не засорять тему флудом.

nAxAH 09-05-2008 09:35

ждём схемку от Вас

bart 09-05-2008 14:32

Решил сам делать хронограф, подскажите плиз где взять прошивку для него?

kuente 10-05-2008 15:33

quote: Originally posted by bart:
Решил сам делать хронограф, подскажите плиз где взять прошивку для него?

написать самому

NVN 10-05-2008 22:52

Самостоятельное изготовление - это хорошо. А в продаже рамочный датчик не появиться?

Storag 12-05-2008 14:27

А че удалили сообщение? Есть возражения по поводу последовательного включения светотранзисторов?

mironov 13-05-2008 10:04

quote: Есть возражения по поводу последовательного включения светотранзисторов?

Присоединяюсь к вопросу.

kuente 15-05-2008 18:16

quote: Originally posted by NVN:
Самостоятельное изготовление - это хорошо. А в продаже рамочный датчик не появиться?

появится, но позже, сейчас не хватает производственных мощностей на это дело

fusion 15-05-2008 22:30

Вообще говоря первая схема включения фототранзисторов довольно странная. В рабочем режиме при освещении фототранзисторов светодиодами сопротивление канала эммитер-коллектор низкое. При пролете пули (предположим пуля дала тень только на один фототранзистор) сопротивление фототранзистора подскакивает, но при этом его шунтируют освещенные собратья. Конечно ОУ усилит мизерный сигнал но по уму можно обойтись последовательной цепочкой обратносмещенных фотодиодов.

kuente 16-05-2008 15:14

Данная схема не окончательный вариант, можно переработать ее по собственному усмотрению

NVN 16-05-2008 15:54

quote: появится, но позже, сейчас не хватает производственных мощностей на это дело

Значит, я - один из первых покупателей. Хроном очень доволен, единственный недостаток его - сложность адаптации к разным винтовкам. Удерживая рукой трубочный датчик довольно сложно "поймать" пулю, не всегда получается. Приходится вытачивать переходники, иногда довольно громоздкие (на модер). Рамочный датчик в дополнение к трубочному - прекрасное решение проблемы.

hoakinn 31-05-2008 12:45

Сделал хрон рамочный по подобной схеме, только использовал не операционник lm358 а компаратор lm393 схемку упростил и использовал последовательное включение фототранзисторов (по 3 штуки на одни ворота с расстоянием между ними 5 мм). Ик светодиоды Ф5мм по 2 штуки на ворота с расстоянием между ними 10мм. Таким образом ворота получились узкие, но как показали испытания вполне хватает. База 80мм, ширина ворот ~ 15-17мм, высота ворот 45 мм.

Storag 31-05-2008 13:05

А каковы размеры ворот в ИБХ? Замеряйте, плиз, у кого есть. Не хочу делать хрон с узкими воротами, но и слишком широкие тоже не нужны.

mironov 18-11-2008 10:56

quote: Originally posted by kuente:
схему видишь, пытайся - перерабатывай, используй на хронолайте...

Tranklykator 19-11-2008 23:06

Схема с параллельным включением фототранзисторов работать, кмк, не будет, ибо нормальное состояние фототранзисторов в хронолайте - открытое. пролетевшая пулька затенит один или два, они закроются, но будут шунтированы остальными не затененными (открытыми) фототранзисторами. Их надо как то включить последовательно, хоть это вроде неправильно... Кстати, попробовал соединить последовательно 8 фототранзисторов и один эмиттерный резистор и засветить всю эту хрень лазером от указки, только линзу снял с нее. Лазерный диод дает расходящийся луч, который в поперечнике имеет прямоугольную форму. Т.о. получаем рогатый датчик наоборот - один излучатель и много приемников. Хоть лазер дает 680 нм, а фототранзисторы имеют пик на 950 нм, цепочка вполне реагировала на затенение хотябы одного фототранзистора. напряжение на резисторе при засветке лазером цепочки составляло около 2,5 вольт, при затенении одного или неск датчиков падало до 0,5 вольт. Кроме того, от лазера получается очень четкая тень, в отличие от цепочки светодиодов. Правда, перепада напряжения при подаче на хронолайт напрямую мало, а с операционными усилителями я дружу плохо , поэтому схема заглохла... Кстати, питание цепочки в пределах 8 - 12 вольт. Сильно не ругайте, это всего лишь идея... Слишком все получается навернуто - куча фототранзисторов, куча питающих напряжений... хрон будет размером и массой с кирпич

mironov 20-11-2008 11:24

quote: пролетевшая пулька затенит один или два, они закроются, но будут шунтированы остальными не затененными (открытыми) фототранзисторами.

здесь две ошибки:
- транзисторы не закроются до конца как в трубочном датчике
- открытый фототранзистор всеравно имеет конечное сопротивление и не маленькое (в открытом состоянии ток около 1мА)
quote: цепочка вполне реагировала на затенение хотябы одного фототранзистора. напряжение на резисторе при засветке лазером цепочки составляло около 2,5 вольт, при затенении одного или неск датчиков падало до 0,5 вольт.

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

Storag 20-11-2008 12:39

При параллельном соединении изменение напряжения на ФТ будет гораздо меньшим чем при последовательном, значит компаратор не будет надежно отрабатывать.

Storag 20-11-2008 12:46


[B]

для хронолайта будет наверное так:

слишком сложно, можно сделать проще, операционник в режиме компаратора если - то ему пофиг в каком состоянии находиться, чтобы не инвертировать выходной сигнал используя еще один элемент можно просто его входы поменять местами. Плюс убрать конденсатор на входе, используя фототранзисторы как часть делителя напряжения, мерять изменение сигнала прямо на них. На второй вход опорное напряжение с которым сравнивается напряжение на ФТ.

mironov 20-11-2008 13:03

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

А как в таком случае избавиться от статической (низкочастотной) помехи: внешняя засветка, загрязнение датчиков?

Storag 20-11-2008 15:13

Приемник сверху, передатчик снизу. ФТ утоплены в корпус, закрыты инфракрасным светофильтром. Рамка внутри оклеена черным бархатом или что лучше всего замазана сажей, это резко уменьшает отражения даже по сравнению с черным пластиком и черной краской, в крайнем случае красить матовой краской нужно. Следующий момент - выбор рабочей точки фототранзисторов и величины опорного напряжения для уменьшения влияния загрязненности датчиков, вернее стекла их закрывающего.

mironov 20-11-2008 15:50

Мне кажется это будет борьба со следствием, а не с причиной (хотя черный - неотражающий корпус это правильно). Схема ведь не сложнее самого хронографа и на плате без разницы сколько микросхем паять, одну или две, стоят они копейки, основная цена будет от транзисторов и диодов. И опять таки ИБХ: датчики наружу торчат, корпус не сильно матовый и ничего - работает.

Storag 20-11-2008 16:45

Не знаю, не знаю. Смотрел у Олега2100 на хрон - датчики закрыты красным стеклышком и ничего нигде не торчит. А какая схема лучше - проверять надо, ибо в массовом производстве дешевле обходится схема с минимумом настроек, но такие схемы не всегда выигрывают по параметрам.

mironov 20-11-2008 17:16

Я эту схему проверял в программе Circuit Maker, версия правда какая-то старая, 3.03 кажется.
При ширине импульса на резисторе R1 (R4) 5мкс, фронта по 1 мкс и амплитуде 25мВ схема работала. При уменьшении длительности импульса или амплитуды переставала срабатывать, если же уменьшить длительность импульса и увеличить амплитуду или наоборот то все также работало, до определенных пределов.
Насколько я знаком с такими программами, ОУ считают они довольно хорошо, если режимы по уровню и частоте не предельные для конкретной железки, то расчет совпадает с железом очень точно. Проверял когда учился в институте, считал АЧХ для микрофонного входа усилка, потом проверял приборами - совпадение тогда меня сильно удивило.

YuraS 20-11-2008 19:51

Для ИБХ окошко 50х90 мм, практически это 2 спичечных коробка; датчики торчат в 713, в 716 - закрыты красным стеклышком.

Tranklykator 20-11-2008 22:05

quote: Originally posted by mironov:

- транзисторы не закроются до конца как в трубочном датчике - открытый фототранзистор всеравно имеет конечное сопротивление и не маленькое (в открытом состоянии ток около 1мА)


вообще то да, согласен... в итоге конечно какой то импульс будет получен и
при параллельном и при последовательном соединении датчиков, просто я весьма ленив и хотел обойтись без схем усиления не вышло...
Но ток открытого состояния фототранзистора мы все таки устанавливаем эмиттерным резистором, ибо без него при интенсивной засветке легко выжать из этого фототранзистора 15 мА при напряжении 1,5 В, что конечно не является номинальным режимом и неизвестно, будет ли достигнуто время срабатывания в 3 мкс (по даташиту 3 мкс при 5 В и 1 мА)
p/s все таки интересно, как соединены датчики в том же ИБХ?

hoakinn 22-11-2008 09:41

Я себе сделал с последовательным влючение фототранзисторов и по одному компаратороу на ворота - все прекрасно работает

hoakinn 25-11-2008 21:48

Блин, почти как у меня хрон только подстроечные резисторы у меня буржуйские "синенькие"(от совковых отказался из-за низкой стабильности) и весь "фарш" у меня на верхней платке

Tranklykator 26-01-2009 18:52

Смастерил рамку для хронолайта по схеме mironov"a... На удивление, схема заработала сразу, даже не пришлось переменники крутить Ловит где то 8 из 10 выстрелов, но думается, настройка все исправит... Автору схемы респект и большое человеческое спасибо

snim 14-03-2009 01:49

mironov
Tranklykator

Какие использовали светодиоды и фототранзисторы?

Tranklykator 15-03-2009 22:18

2 snim - у меня оптика хронолайтовская, т.е. фототранзисторы L-32P3C и светодиоды L-34F3C. И еще я делал последовательное включение фототранзисторов, но похоже, зря...

snim 16-03-2009 01:31

quote: Originally posted by Tranklykator:

у меня оптика хронолайтовская, т.е. фототранзисторы L-32P3C и светодиоды L-34F3C

Спасибо! Понял. Есть такие в ЧипДипе. Интересно, а что mironov использовал.
Делали по схеме из поста 21 ?

Tranklykator 16-03-2009 21:16

ну да, из 21...только фототранзисторы последовательно

Successful 01-03-2010 08:57



VAT57 02-03-2010 20:00

quote: Вот у меня возникла такая идея. Если сделать по первой схеме(параллельное соединение), однако использовать принцип отражения ИК луча от пули, а не прерывания. Для этого нужно установить ИК светодиоды и фототранзисторы за ИК светофильтром с одной стороны, например только снизу. Тогда т.н. рамка будет вообще не нужна. Зону действия таких датчиков, можно обозначить, например, черными прутиками, выходящими из корпуса наклонно расходящимися под углом примерно в 60 градусов, как это сделано у фирменного ProChrono.
Скорее всего в нем используется именно этот принцип.

Устройство получится не работоспособным. Отражённый луч даже от плоскости слаб и не достаточен для работы фотодатчиков, а от оферической поверхности шарика или пульки будет полностью рассеиваться в пространстве. В "рогатых" хронох источник ИК находится сверху, приёмник -снизу или источник и приёмник снизу. Пулька в этом случае прерывает отражённей световой поток от верхней зеркальной дуги, выполняющей роль рефлектора.

Successful 02-03-2010 23:43

VAT57 03-03-2010 20:45

quote: В том то и дело, что я смотрел недавно передачу про оружие, называется "Арсенал", так там показывали отстрел в хронограф ProChrono, и он был без дуг сверху. Как по вашему он тогда работал?

Возможно высокочастотный ёмкостной со щелевыми узконаправленными СВЧ приёмо-передатчиками 1,5-2,5 Ггц.

mironov 03-03-2010 22:43

quote: Вот у меня возникла такая идея. Если сделать по первой схеме(параллельное соединение), однако использовать принцип отражения ИК луча от пули, а не прерывания. Для этого нужно установить ИК светодиоды и фототранзисторы за ИК светофильтром с одной стороны, например только снизу. Тогда т.н. рамка будет вообще не нужна. Зону действия таких датчиков, можно обозначить, например, черными прутиками, выходящими из корпуса наклонно расходящимися под углом примерно в 60 градусов, как это сделано у фирменного ProChrono.
Скорее всего в нем используется именно этот принцип.

Хронограф оптический, работает в видимом диапазоне, на рогах крепятся рассеиватели. В пасмурный день рассеиватели можно не ставить. В помещении на рассеиватели ставят дополнительную подсветку из светодиодов.

Successful 06-03-2010 20:44

Спасибо, уже скачал мануал.

Successful 05-12-2010 09:35

Вот я изучил инструкцию на фирменный хронограф ProChrono, и там написано, что он работает в видимом спектре. Как вы думаете, может в нем применена такая схема датчика?
Т.е. в корпусе установлено два (по количеству датчиков) параболических зеркала, слегка наклоненных, чтобы весь свет, который попадает через щели в корпусе (желательно очень узкие), фокусировался на фоторезисторах или других фотоэлементах, работающих на видимом спектре. Тогда, при попадании в зону щели, пролетающей пули, на зеркале проявится затенение, и оно отразится на фотоэлементе. Дальше - дело техники.

Владею пневматической винтовкой, всегда была интересна скорость вылета пули из ствола, это кому-то покажется странным, но у пневмолюбов скорость пули одна из главных тем для членометрии. Погуглив немного нашел несколько вариантов схем на разных микроконтроллерах, так как у меня уже был работы с AVR, без раздумий выбрал вариант на avr. Все необходимые детали я нашел на упоминавшемся уже здесь Taydaelectronics.com. Покупка собрана, оплачена, получена, приступим…

Сразу приложу схему:


поподробнее желающие могут посмотреть на

Итак, нам понадобится:


- 1 шт.
- 1 шт.
Пара конденсаторов 330 нФ и 100нФ для регулятора напряжения
(можно запитать всю схему от трех пальчиковых батареек вместо кроны, тогда регулятор и конденсаторы не понадобится)
2 шт.
1 шт.
2 шт.
2 шт.
выключатель, панелька для микроконтроллера, панелька для индикатора, коннекторы для шлейфов, сам шлейф я использовал от старого компьютера. Так же набор резисторов.

Повторил схему в протеусе, подогнал под свои нужды, и вытравил печатную плату

Кое-как расставил компоненты, чтобы иметь примерное представление, как рисовать дорожки. И да, у меня нет принтера, я рисую дорожки перманентным маркером)))

Сначала пробую на бумаге

Потом переношу на текстолит

Травим. Травлю в горячем растворе хлорного железа, разведенного примерно 1:3 с водой. После травления раствор храню на балконе, он работает даже после высыхания, нужно просто добавить воды. Следует осторожничать и не допускать попадания его на металлические поверхности - начнется усиленная коррозия.

Чистим

Сверлим. Дрельку делал из патрона и моторчика с фасттека.

Вот все компоненты запаяны на плату, осталось только прошить микроконтроллер

ОНО ЖИВОЕ!

После этого я изготовил измерительную трубку с датчиками. Устроено просто - на расстоянии 50 мм друг от друга находятся расположенные друг напротив друга фототранзистор и светодиод, своеобразные оптопары. Когда пулька пролетает по трубке, она поочередно перекрывает луч света первому и второму транзистору, о чем они сигналят микроконтроллеру, который высчитывает скорость по всем известной со школы формуле.

исходный код

/*
* Прошивка без наворотов, расстояние между датчиками 100мм
* общий анод!
* Updated at: 15.12.2013
*

#define F_CPU 1000000UL

#include
#include
#include

#define LED_EMPTY ~0b00000000

#define LED_0 ~0b00111111
#define LED_1 ~0b00000110
#define LED_2 ~0b01011011
#define LED_3 ~0b01001111
#define LED_4 ~0b01100110
#define LED_5 ~0b01101101
#define LED_6 ~0b01111101
#define LED_7 ~0b00000111
#define LED_8 ~0b01111111
#define LED_9 ~0b01101111
#define LED_DOT ~0b10000000

#define LED_MINUS ~0b01000000
#define LED_E ~0b01111001
#define LED_r ~0b01010000
#define LED_G ~0b00111101
#define LED_o ~0b01011100

#define BASE_LENGTH 1000

Typedef struct LedPanel {
int seg1;
int seg2;
int seg3;
} LedPanel;

Void renderSegmentNext() {
static int activeSegment = 0;
activeSegment = (activeSegment + 1) % 3;

Switch (activeSegment) {
case 0:
PORTB = led.seg1;
PORTD = ~0b0110000;
break;
case 1:
PORTB = led.seg2;
PORTD = ~0b1010000;
break;
case 2:
PORTB = led.seg3;
PORTD = ~0b1100000;
break;
}
}

Void initPorts() {
//init led ports
DDRB = 0xFF;
DDRD |= (0b111 << 4);
//init button ports
DDRD &= ~(1 << PD0);
DDRD &= ~(1 << PD1);
}

Int digitToLedValue(int digit) {
switch (digit) {
case 0:
return LED_0;
case 1:
return LED_1;
case 2:
return LED_2;
case 3:
return LED_3;
case 4:
return LED_4;
case 5:
return LED_5;
case 6:
return LED_6;
case 7:
return LED_7;
case 8:
return LED_8;
case 9:
return LED_9;
default:
return LED_MINUS;
}
}
void setLedValue(int value) {
if(value < 0 || value > 400){
led.seg1 = LED_MINUS;
led.seg2 = LED_MINUS;
led.seg3 = LED_MINUS;
return;
}

Led.seg3 = digitToLedValue(value % 10);
if (value >= 10) {
led.seg2 = digitToLedValue((value / 10) % 10);
} else {
led.seg2 = LED_EMPTY;
}
if (value >= 100) {
led.seg1 = digitToLedValue((value / 100) % 10);
} else {
led.seg1 = LED_EMPTY;
}
}

ISR(TIMER1_OVF_vect) {
//stop timer and reset value
TCCR1B &= ~(1 << CS00);
TCNT1 = 0;
//disable int1
GIMSK &= ~(1 << INT1);
//set error output
setLedValue(-1);
}

ISR(INT0_vect) {
//reset timer and start it
TCNT1 = 0;
TCCR1B |= (1 << CS00);
//enable int1
GIMSK |= 1 << INT1;
}

ISR(INT1_vect) {
//stop timer
TCCR1B &= ~(1 << CS00);
//disable int1
GIMSK &= ~(1 << INT1);
//calculate speed
int speed = (F_CPU / 10000L) * BASE_LENGTH / TCNT1;
setLedValue(speed);
}

Int main() {
initPorts();

MCUCR |= (1 << ISC00);
MCUCR |= (1 << ISC01);
GIMSK |= 1 << INT0;

MCUCR |= (1 << ISC10);
MCUCR |= (1 << ISC11);
GIMSK &= ~(1 << INT1);

TIMSK |= (1 << TOIE1);

SetLedValue(0);

While (1) {
renderSegmentNext();
_delay_ms(2);
}
}

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

Приступим к стрельбам:

Винтовка на фото - Stoeger x20, в который установлена газовая пружина. В теории может выжать 250 м/с.
И он почти выжал пулькой 0.68 грамм


Устройство готово, и работоспособно.

Конечно же я не рассчитываю на его точность, эталона рядом не было, но скорость показывает не рандомно, стабильно. Если нужно отслеживать изменение начальной скорости пули в зависимости от изменений конструкции пневматики, то этого вполне достаточно. Аналоги такого хронометра стоят более 2 тысяч рублей, этот же обошелся мне не более чем в 300р, и еще подарил 4 часа приятного времяпрепровождения.

Планирую купить +31 Добавить в избранное Обзор понравился +69 +128
Понравилась статья? Поделитесь ей