Хронометр, бета-версия

Sep 17, 2015 00:13

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


Подготовка


А начиналось все с еще зеленых перцев и подвешенных на их "поилке" жезеляк:


Начало
Потом к железяке добавилось еще немного:


альфа-2
Платку для светодиодов травил хлорным железом. Все-таки, хоть оно и грязное, но значительно приятней травит, нежели, скажем, смесь лимонки-соли-пероксида. Утюжил с "жОлтой кЕтайской" бумаги для ЛУТа, очень хороша она: практически 1-в-1 тонер переходит на плату. Разве что, большие полигоны лучше делать сеточкой (в силу особенностей печати на лазерных принтерах).


Светодиодики
Т.к. все равно нужно было уничтожать лист А4, я решил заодно отпечатать немного плат для машинки (преобразователи 12В в 5В, 3А на USB), еще кусок листа с платами USB и LED ушел в "запасники".


Платки
Корпуса для велосипедного велосипеда Юра вырезал на их с Гришей ЧПУшном самосборном фрезере.


Работа в самом разгаре
А вот так сегодня утром выглядело мое рабочее место. Калибрую ИК-дальномер и фотороезистор. grep - хороший помощник для выделения из логов нужных величин.


Тестирование
Уже под вечер тестировали оба "модуля". Т.к. в кабинете GPS-приемники вообще спутников не видят, сначала вообще высовывали коробки за окно на дюралевых уголках - чтобы подальше были (как назло, под рукой ни одного мобильного устройства, готового для подключения клавиатуры, не нашлось, пришлось трехметровым USB-удлинителем с рабочим компьютером соединять).


Вечерело...
Бедные мелкоконтроллеры: я сегодня тестовый экземпляр раз 50 перепрошил! Только за последний час тестировагния пришлось раз 10 перепрошить (всякие "косяки" вылезали постоянно). А этот экземпляр ждет завтрашнего дня: контакт контрольного GPS-status светодиода уж больно плох, надо переобжать. А по-хорошему, надо бы вообще все по-человечески развести, сделать печатку и соединять железяки более надежными разъемами, а не этими дурацкими "дюпонтами".


Модуль со снятой крышкой

Итак, что умеет железяка:
  • По GPS устанавливать значение текущего времени (в итоге погрешность выходит в районе ±0.5 секунд, что хреново для хронометража, поэтому я до сих пор в строке вывода времени сохраняю комментарии вроде "need synchronisation" и "not valid"). Но, как показали испытания, в удачных условиях буквально за полминуты синхронизация завершается.
  • Регистрировать лысыпыдыста по срабатыванию прерывания лазерного луча или поля зрения ИК-дальномера. Еще есть возможность работы с ультразвуковым дальномером, но т.к. эта гадость изначально себя показала плохо, я решил вообще от нее избавиться.
  • Как и было задумано, эмулировать клавиатуру, выводя значения времени (+ пока еще выводятся технические комментарии) по срабатыванию любого триггера (кнопка, ИК-дальномер, прерывание лазера).
  • Весело мыргать светодиодами в зависимости от текущего состояния. Пока что задействовано лишь 4 светодиода из 6: верхний желтый загорается на полсекунды при срабатывании триггера; нижний желтый мигает по каждому сигналу PPS; верхний красный отображает состояние кулюмулятора: если с ним все ОК, светодиод просто горит, если же батарея разряжена ниже определенного (примерно 10.8В) уровня, то светодиод мигает. Чем больше время нахождения светодиода "power" в потухшем состоянии, тем хуже аккумулятору. Верхний зеленый мигает, если время установлено, но не синхронизовано по PPS, и горит постоянно, если все отлично. Оставшиеся два светодиода - про запас.
  • Бибикать пищалкой на каждое срабатывание триггера.
  • При нажатии контрольной кнопочки помимо времени срабатывания триггера выводить еще и последнее сообщение GPS (для контроля состояния системы - мало ли что…).
Поведение системы было модифицировано: теперь текущее время устанавливается даже при отсутствии надежного уровня сигнала (лишь бы хоть один спутник попал в поле зрения и передал значение времени). Т.о., даже в худшей ситуации обеспечивается синхронизация с точностью ±0.5с. В лучшей, понятное дело, выходит порядка 50мкс.
Еще пришлось прокалибровать датчики, висящие на АЦП (ИК-дальномер и фоторезистор лазера). Уровни срабатывания были скорректированы + повышена чувствительность фоторезистора (правда, теперь его нужно лучше защищать от фонового света, иначе даже при прямом освещении пасмурным небом выходит уровень сигнала, аналогичный освещению лазером).

Если сюда еще добавить сенсорный экранчик (для конфигурирования и отображения текущего состояния) и GSM-модуль (для общения с парным устройством), то получится еще веселей. Ну, а если подключить еще и одноплатник, поднять HTTP-сервер, воткнуть wifi-рутер и раздавать всем мобильным клиентам веб-морду состояния соревнований, вообще отлично выйдет! Но, увы, эта задача уже выходит за рамки хобби, требуя хотя бы небольшой оплаты труда...

stm32, фото

Previous post Next post
Up