Новые Лазерные ворота
На физическом факультете Калифорнийского университета в Помоне мы разработали недорогой точный лазерный регулятор времени для использования в физических экспериментах. Мы используем микросхему PIC16F690 для синхронизации и передачи данных через USB на ПК. Сначала мы объясним, как сконструировать ворота, а затем как запустить программное обеспечение. Общая стоимость системы составляет менее 30 долларов, причем большая часть стоимости приходится на кабель USB-TTL.
Скачать asm файл и программы для данной статьи можно – здесь.
Новый лазерный затвор является улучшением по сравнению со старой версией в следующих отношениях:
Был добавлен светодиод, который загорается, когда лазер попадает на детектор, и выключается, когда детектор не регистрирует сигнал. Это очень полезно при тестировании, готов ли шлюз к сбору данных.
Для построения графиков данных используется более общая программа построения графиков. После записи времени данные автоматически сохраняются в файле под названием data.txt . Затем учащийся запускает graphdata в браузере, чтобы загрузить и отобразить данные на графике. Новая программа построения графиков добавляет больше возможностей, чем старая версия.
Лазерный затвор очень похож на предыдущую версию с добавлением светодиода на выводе 13:
Аппаратное обеспечение
Вентиль можно сконструировать
, разместив компоненты
на макетной
плате без пайки или припаяв компоненты
на перфорированной плате. Соединения
(с резонатором 20 МГц)
показаны на рисунке справа:
Нажмите здесь , чтобы просмотреть список запчастей . Ниже показано изображение макетной платы с подключениями:
Микросхема PIC загружается с ассемблерным кодом timer3led.asm (тактовая частота 4 МГц) или time3fastled.asm (тактовая частота 20 МГц). Шестнадцатеричный код * для time3fastled.asm – это Timer3fastlec.X.production.hex. При тактовой частоте 4 МГц на PIC16F690 максимально короткое измеренное время блокировки составляет 2 мс. Для времени блокировки, превышающего 2 мс, точность времени блокировки составляет 2 микросекунды. Если время блокировки меньше 2 мс, вам нужно будет использовать нашу более быструю версию с резонатором 20 МГц, time3fastled.asm . С резонатором 20 МГц время блокировки может составлять всего 0,4 мс с точностью до 0,4 микросекунды. Инструкции по программированию PIC16F690 см. в разделе pprogs.html.
Если микросхема работает правильно, светодиод на выводе 13 загорится, когда ИК-детектор на выводе 11 станет “низким” (т.е. Обнаружит лазерный луч). Сопротивление ИК-детектора изменяется при попадании на него ИК-излучения. При инфракрасном освещении сопротивление составляет около 500 Ом. Когда ИК-излучение не обнаруживается, сопротивление детектора велико.
Программное обеспечение
Мы запускаем C-код в Linux для считывания usb-порта, сбора данных и сохранения их на диск. Затем в браузере запускается код JavaScript для отображения данных в графическом виде. Мы также создали файл образа, который вы можете записать на компакт-диск или флэш-накопитель для загрузки. Файл изображения выглядит следующим образом: lasergate3.iso . Этот образ запустит ваш компьютер в хорошем дистрибутиве Linux, “Puppy Linux”. После загрузки нажмите “ОК” на экране настройки, и на рабочем столе появятся 4 программы, которые вы можете запустить, щелкнув один раз по значку на рабочем столе: conacc.desktop, tandv.desktop, graphdata.html , и linefitjs.html . Краткую страницу с инструкциями можно найти на сайте lgateinst.
conacc.desktop – это ссылка на программу conacc, которая будет работать в режиме терминала. Эту программу можно использовать, если вы подозреваете, что движение имеет постоянное ускорение. В нашей лаборатории мы ожидаем, что ускорение будет постоянным для экспериментов с машиной Этвуда, спуском по лестнице и динамикой вращения. Запускаемая программа на языке Си называется conaccusbf.c, описанная ниже. После сбора данных они автоматически сохраняются в файле data.txt , которые могут быть загружены в graphdata.html описано ниже.
graphdata.html это программа линейной подгонки, которая дает наклон и пересечение, а также неопределенность в этих двух параметрах для данных в таблице. Чтобы отобразить данные из lasergate на графике, найдите data.txt , который находится в корневом каталоге. Затем нажмите кнопку Загрузить файл, чтобы загрузить данные, и нажмите кнопку Отобразить данные, чтобы отобразить и подогнать данные. Щелкните (или снимите) флажки, чтобы включить (или исключить) нужные точки данных в подгонку.
tandv.desktop – это ссылка на программу tandv, которая будет работать в режиме терминала. Программа измеряет время и скорость движения, когда ворота заблокированы. Чтобы откалибровать скорость, вам необходимо ввести эффективное расстояние блокировки. Запускаемой программой на языке си является tandvf.c, которая описана ниже. Эта программа может быть использована в нашем эксперименте с сохраненными количествами.
linefitjs.html это общая программа линейной подгонки, которая дает наклон и пересечение, а также неопределенность в этих двух параметрах. Эта программа не настроена на загрузку каких-либо данных, но пользователь может вводить данные по своему выбору.
conaccusb.c и conaccusbf.c (быстрый чип): Эти программы можно использовать, если ожидается постоянное ускорение, например, падение с лестницы, машина Этвуда, динамика вращения. Введите “z” для калибровки. После ввода “z” вам будет предложено ввести количество блокировок для калибровки и расстояние между первой и последней блокировкой калибровки. Проверьте, работает ли затвор, заблокировав детектор рукой и наблюдая за светодиодом. Если ворота работают, введите “d”, введите, чтобы собрать данные. Исходный код – conaccusb.c (микросхема 4 МГц) и conaccusbf.c (Микросхема 20 МГц). После сбора данных они автоматически сохраняются в файле data.txt в том же каталоге, что и исполняемый файл conaccusb.c. Для компиляции conaccusb.c или conaccusbf.c введите “gcc conaccusb.c -lm” в режиме терминала. Чтобы запустить исполняемый файл, вам может потребоваться находиться в режиме суперпользователя, чтобы прочитать usb: sudo ./a.out.
tandv.c и tandvf.c (быстрый чип): эта программа записывает время и скорость объекта, когда он блокирует лазерный затвор. Вы можете ввести эффективное расстояние блокировки и количество точек данных, которые вы хотите. Существует также возможность сохранить данные в файл под названием tvout.txt , который будет находиться в корневом каталоге.