Мы разработали недорогой точный лазерный таймер для использования в физических экспериментах. Мы используем микросхему PIC16F690 для измерения времени и передачи данных через USB на ПК.
Скачать исходники для данной записи можно – здесь:
– в zip формате.
– в tar.gz формате.
Новые лазерные ворота превосходят предыдущую версию по следующим параметрам:
Был добавлен светодиод, который загорается, когда лазер попадает в детектор, и гаснет, когда детектор не регистрирует сигнал. Это очень удобно для проверки готовности ворот к сбору данных.
Для отображения данных на графике используется более общая программа построения графиков. После записи времени данные автоматически сохраняются в файле под названием data.txt. Затем учащийся запускает graphdata в браузере для загрузки данных и построения графиков. Новая программа для построения графиков добавляет больше возможностей, чем старая версия.
Лазерные ворота очень похожи на предыдущую версию, но с добавлением светодиода на контакте 13:
Аппаратное обеспечение:
Мы отмечаем, что очень важно использовать правильный ИК-детектор. Перечисленный выше SDP8405-003 производства Honeywell работает хорошо. Детектор должен обладать следующими характеристиками сопротивления: высокое сопротивление без лазера (более 2000 Ом) и низкое сопротивление при освещении лазером (менее 500 Ом). Это изменение сопротивления действует как переключатель TTL на выводе 11. Я считаю, что сопротивление меняется от низкого к высокому примерно на 1000 Ом.
Можно собрать схему, разместив компоненты на макетной плате без пайки или припаяв компоненты
к печатной плате. Соединения (с резонатором 20 МГц) показаны на рисунке сверху:
Нажмите здесь, чтобы увидеть список деталей. Ниже приведено изображение макетной платы с соединениями:
Микросхема PIC загружается с помощью кода сборки timer3led.asm (тактовая частота 4 МГц) или time3fastled.asm (тактовая частота 20 МГц). При тактовой частоте 4 МГц на PIC16F690 наименьшее возможное время блокировки составляет 2 мсек. При времени блокировки более 2 мсек точность составляет 2 микросекунды. Для времени блокировки менее 2 мсек вам потребуется использовать нашу более быструю версию с резонатором 20 МГц, time3fastled.asm . С резонатором 20 МГц время блокировки может составлять всего 0,4 мсек с точностью до 0,4 микросекунды. Инструкции по программированию PIC16F690 см. в pprogs.html.
Если чип работает правильно, светодиод на выводе 13 загорится, когда ИК-детектор на выводе 11 перейдёт в «низкое» состояние (т. е. обнаружит лазерный луч). Сопротивление ИК-детектора меняется, когда на него попадает ИК-излучение. При ИК-излучении сопротивление составляет около 500 Ом. Когда ИК-излучение не обнаружено, сопротивление детектора велико.
Программное обеспечение:
Мы запускаем код на C в Linux, чтобы считать данные с USB-порта, собрать их и сохранить на диске. Затем в браузере запускается код JavaScript для построения графика. Мы также создали файл образа, который можно записать на компакт-диск или флэш-накопитель для загрузки. Файл образа для 32-битного процессора называется lasergate3.iso . Для 64-битного процессора файл образа называется lasergate64_1.iso . Эти изображения позволят запустить ваш компьютер в удобной версии Linux, «Puppy Linux». После загрузки нажмите «ОК» на экране настройки, и на рабочем столе появятся 4 программы, которые вы можете запустить, один раз нажав на значок на рабочем столе: conacc.desktop, tandv.desktop, graphdata.html и linefitjs.html. Краткую инструкцию можно найти по адресу lgateinst.
– conacc.desktop — это ссылка на программу conacc, которая будет работать в режиме терминала. Эту программу можно использовать, если вы подозреваете, что движение происходит с постоянным ускорением. В нашей лаборатории мы ожидаем, что ускорение будет постоянным для машины Этвуда, падения с лестницы и экспериментов по вращательной динамике. Запускаемая программа на C — conaccusbf.c, описанная ниже. После сбора данных они автоматически сохраняются в файле data.txt, который можно загрузить в graphdata.html, описанный ниже.
– graphdata.html — это программа для линейной аппроксимации, которая вычисляет наклон и точку пересечения, а также погрешность этих двух параметров для данных в таблице. Чтобы построить график данных с лазерного затвора, просмотрите файл data.txt, который находится в корневом каталоге. Затем нажмите «Загрузить файл», чтобы загрузить данные, и нажмите «Показать данные», чтобы построить график и выполнить аппроксимацию данных. Нажмите (или отпустите) кнопки, чтобы включить (или исключить) нужные точки данных в аппроксимацию.
– tandv.desktop — это ссылка на программу tandv, которая будет работать в режиме терминала. Программа измеряет время и скорость движения при блокировке затвора. Для калибровки скорости необходимо ввести эффективное расстояние блокировки. Запускаемая программа на языке C — tandvf.c, которая описана ниже. Эту программу можно использовать в нашем эксперименте с сохраняющимися величинами.
– linefitjs.html — это универсальная программа для подбора линейной функции, которая определяет наклон и точку пересечения, а также погрешность этих двух параметров. Эта программа не предназначена для загрузки каких-либо данных, но пользователь может ввести данные по своему усмотрению.
– conaccusb.c и conaccfly.c (быстрый чип): эти программы можно использовать, если ожидается постоянное ускорение, например, при падении с лестницы, на аттракционе «Машина Атвуда», при вращательной динамике. Для калибровки введите «z». После ввода «z» вам будет предложено ввести количество блокировок для калибровки и расстояние между первой и последней блокировкой для калибровки. Проверьте, работает ли затвор, закрыв детектор рукой и наблюдая за светодиодом. Если шлюз работает, введите «d» и нажмите Enter, чтобы собрать данные. Исходный код: conaccusb.c (чип 4 МГц) и conaccfly.c (чип 20 МГц). После сбора данных они автоматически сохраняются в файле data.txt в том же каталоге, что и исполняемый файл conaccusb.c. Чтобы скомпилировать conaccusb.c или conaccfly.c, введите «gcc conaccfly.c -lm» в режиме терминала. Чтобы запустить исполняемый файл, вам может потребоваться режим суперпользователя для чтения с USB: sudo ./a.out.
– tandv.c и tandvfly.c (быстрый чип): эта программа записывает время и скорость объекта, когда он блокирует лазерные ворота. Вы можете ввести эффективное расстояние блокировки и количество необходимых точек данных. Также есть возможность сохранить данные в файл tvout.txt, который будет находиться в корневом каталоге.