Комментарии 46
Насчет добавить EEPROM — возможно, стоит сразу уж FLASH — тоже недорого, объем памяти сильно больше, интерфейс SPI. Например, я себе накупил W25Q32FVSSIG — 4Мб по 5р/шт в ЧипДипе…
По софту — я могу помочь — в последннее время насобачился на С# несложные прикладные программки для работы с устройствами по COM/USB…
Память можно, в принципе и flash, но там получается сложнее с прошивкой, и питания она требует большего. А 32kb eeprom хватит с избытком, отметка времени занимает 4 кб, хватит на 8000 отметок. Тут уже возникает проблема с извлечением информации без разбора станции, на чипы, которые я использую влезает 768 байт, чтобы передать информацию с помощью них придётся делать несколько заходов.
github.com/realtim/mmb/tree/master/bc_reader/application_software_examples/BC_Logger_control_win
самые свежие исходники и бинарник:
BC_Logger_control_win.rar
BC_Logger_control_1_0_0_9.rar
выше в проекте есть и очень простенький вариант под Android…
Мне кажется тросик закреплён плохо, так как есть возможность оторвать станцию от тросика без повреждения самой станции. Посмотрите как обычно сделано крепление kensington lock, сама петля обычно не сильно крепкая, но закреплена она на критически важном элементе, к примеру на материнской плате ноутбука. При вырывании плата повреждается ноутбук поэтому кража ноутбука с вырыванием замка лишена смысла.
Николай Сытов (главный судья ММ) рассказывал что станции воруют обычно местные жители ради батарейки и светодиода, если для кражи станции её корпус нужно будет сломать на месте, то вероятность кражи уменьшится.
Хотя изготовление станции сильно усложнится, но если поперёк корпуса сделать полую трубку для тросика (что бы тросик проходил через корпус станции), а крепление станции сделать плоской резинкой, то может оказаться удобнее, так тросик — защита от кражи, а резинка позволит легко закрепить станцию на объекте любого диаметра.
По закреплению станции. Бегал "Новую Москву", там кто-то не сломал, а просто сжёг станцию. Я обнаружил только остатки платы с антенной, каркас от призмы и пепел. Принёс плату судье, чтобы доказать. КП засчитали.
Я в этом месте был почти последний, было полчаса до истечения контрольного времени. Вероятность, что кто-то будет после меня, крайне низка.
Расчет был на то, что судья, увидев плату, поверит не только мне, но и всем тем другим, кто утверждает то же, что и я. (Хотя Артём и без того верил.)
Ну и еще оставались остатки корпуса и призмы, я не все остатки забрал.
Да, фланцы, куда крепится тросик, в принципе, при желании можно отрезать острым ножом. Вставка трубки, пожалуй, немного защитит от кражи станции, но, как уже написали ниже, станцию могут сжечь. Ещё могут спилить всё дерево вместе со станцией, разбить её кувалдой, перекусить тросик кусачками и т.п.
Мне кажется защититься от человека, который твердо решил снять или испортить станцию не получится никак. А тросик — это скорее просто показатель порядочным проходящим, что эта штука тут висит не просто так. Поэтому просто нужно принять, что некоторый процент станций не будет возвращаться и учесть это в расходах на соревновании, благо стоимость станции в настоящем виде небольшая.
По поводу сжигания станции, так в ней и литиевая батарейка могла коротнуть, станция тогда сгорит сама по себе.
1) труба полипропиленовая — www.rospolymerplast.ru/polypropylene-profile
2) W25Q32FVSSIG — 50 р./шт. У китайцев еще дешевле…
И, как правильно написал ниже true_alex, профиль просто проткнуть насквозь металлической трубкой — это обеспечит герметичность и вандалоустойчивость канала для тросика.
Насчет питания я так же советую попробовать LiFePo4 аккумуляторы — они есть и в АА формате (размер 14500) — должны выдерживать мороз (судя по тестам — 50% емкости при -20 — mysku.ru/blog/others/13323.html )
.
LiFePO4 да, довольно хороши. Но и ёмкость у них значительно ниже простых литиевых. Когда хотел делать от аккумуляторов считал варианты и получается, что литиевый хоть и просаживается значительно, но за счёт своей большой изначальной емкости не сильно проигрывает LiFePO4. Лучше всего, конечно литий-тионихлоридные батареи (какие и стоят в Si и SFR), они не теряют свои характеристики в холод, но довольно дорогие, требуют периодической депассивации.
Но все варианты с аккумуляторами мне не очень нравятся тем, что их придётся заряжать в больших количествах. А при нынешнем потреблении станций, и 3-х пальчиковы обычных батарей хватит на год активного использования.
Я больше хочу уменьшить габариты устройства, сейчас смотрю в сторону литиевых батареек CR123, они тоже хорошо выдерживают холод.
Для нынешнего варианта да, три штуки Energizer Lithium решат проблему работы в холоде, да и продлят общую работу устройства раза в два по сравнению с обычными батарейками, но и повысят стоимость собранной станции в полтора раза.
Например, когда я делал логгеры для ММБ я себе поставил несколько целей:
1) максимальная дешевизна
2) блочное и ремонтопригодное исполнение
3) простота использования
4) вандалозащищенность
… все они определялись исходя из надежды на применение приборов не только на ММБ, а на разных любительских соревнованиях, а так же возможность изготовления приборов силами не очень квалифицированных людей, имеющих ограниченный доступ к разнообразию электроники и прочих запчастей — т.е. чтобы любой любитель соревнований, где нужно отмечать уходящих/приходящих спортсменов (ориентирование, бег и т.п.) даже в заштатном Урюпинске мог по списку заказать запчасти на АлиЭкспресс и спаять бытовым паяльником за вечер готовый аппарат за минимальные деньги…
В результате мне было понятно, что я не буду сильно париться объемом и энергосбережением, зато мне нужна надежность и взаимозаменяемость составляющих, в т.ч. сканеров. Поэтому все внутри было на разъемных соединениях, все комплектующие были самыми дешевыми и вся сборка сводилась к пайке материнской платы навесным монтажом.
Касательно текущего проекта — а на самом ли деле так важен размер блока? Чем плох большой (в разумных пределах) корпус?
По батарейкам… А надо ли их уменьшать? Если электроника все равно залита компаундом, то не наплевать ли на герметичность блока? Сами батарейки, обычно, конденсата не боятся.
По зарядке батарей — для того, чтобы корпус не разбирать и не ставить хлипких разъемов можно просто вывести на корпус 2 контакта (вплавить 2 проволочки на сквозь) — тогда весь корпус можно ставить в крэдл для зарядки, как у раций и складских ТСД. Так же можно и слив данных организовать — еще пару контактов для UART…
Да, основной целью я ставил сделать доступный дешевый вариант отметки, который можно сделать самим на местах. Навесной монтаж, конечно, требует меньше навыка чем поверхностный, но тут дело желания, можно денёк потратить на оттачивание навыка, а дальше уже с поверхностным будет всё собираться быстрее.
Но идея конструктора тоже хорошая. Да и габариты многих не пугают, а где-то они совсем не важны. Может сделаю вариант станций, который будет собираться из готовых блоков на материнской плате, благо они все есть — arduino pro mini, часы ds3231, rfidrc522.
Про станции на аккумуляторах с выводными контактами думал и даже сделал несколько, которые и сейчас работают. Проще уж вытащить аккумулятор и зарядить его как обычно, чем думать над выводными контактами и док-станцией. Благо сейчас энергопотребление маленькое, делать это надо раз в год-два.
Хотя память расходуется нерационально, уменьшая количество отметок и увеличивая объём передаваемых данных.
Какова частота опроса станции и максимальное время отметки на станции?
Не думал насчёт совместимости с SFR?
Единица объема передаваемых данных на чип Mifare Classic 1k — 16 байт, поэтому даже если нужно передать 1 бит, писать придется 16 байт и ещё позаботится о том, чтобы не стереть уже имеющиеся данные. А так да, память можно использовать более экономно. Даже если оставить шифрование по Хэммингу, можно записывать три отметки в одну страницу и тогда будет хватать чипа на 138 отметок. Но вот только нужно ли усложнять? Сейчас можно записать 92 отметки, чего хватит в большинстве случаев.
По умолчанию, в рабочем режиме частота опроса у меня 0.25 секунды. Можно сделать быстрее, но тогда батареи будут быстрее садиться. Время записи самой отметки прядка 0.05 секунд.
С SFR моя система не совместима, у них другие поддерживаемые стандарты передачи данных.
Первая часть маршрута одного цвета, попалась станция с другим цветом — убрал первый чип, достал второй и дальше используются только второй чип.
На переходной станции можно сделать отметку двумя чипами. На крайний случай можно переходную станцию не прятать и даже человека приставить что бы помогал участникам соревнований. Все таки после большой нагрузки можно не сразу сообразить что надо чипы поменять.
Думаю для тех редких случаев где не хватит отметок — это будет проще. Ну и количество отметок теоретически становится неограниченным. Главное чтобы чипов хватало.
В принципе, если для трофи рейда, где вес станции не является критичным, всё можно реализовать и с помощью железа, которое я разрабатываю, только переделать прошивку. Можно даже упростить и немного удешевить конструкцию станций, ведь серьёзной герметизации уже не требуется.
В общем, вариант имеет право на жизнь. Поставлю в список задач разработать такую прошивку, спасибо.
Другое дело, что ребята в начале пути и им еще со многим придется столкнуться (с герметизацией, если они будут использовать аккумуляторы) с термокомпенсацией кварца (особенно актуально если станция будет использоваться несколько дней в резкие перепады температуры) с энергосбережением и т.д. Я желаю им успехов — дело хорошее.
Кварцы есть с нулевым ТКЧ. Термостабилизация нужна будет только при необходимости поддержания стабильности частоты порядка 10E-8...10E-12(как пример — генератор ГИАЦИНТ) а это порядка 1мс разницы в сутки.
Да, и правильно запитать кварц — значение имеют компенсирующие ёмкости, их надо использовать номиналом с даташита на кварц а не от фонаря. Впрочем, наверно проще использовать кварцевый генератор а не голый кварц. Например, в старых мобилах используют генератор на 10Мгц для DDS с точностью и стабильностью в 7 знаков в широком диапазоне температур, любители часто их используют в своих частотомерах.
Но, на самом деле, это не так страшно. По совету, данному мне в комментариях к прошлой статье, я присваиваю всем станциям свой «серийный номер», который записывается на чип при отметке вместе с задаваемым номером. Поэтому можно проводить корректировку даже если на кп стоит несколько дублирующих станций.
По практической части: от стандарта ISO 14443 мы отказались в самом начале работы в пользу ISO 15693 — в нем намного проще с эргономикой, эффективное расстояние в 4-7 см позволяет создать удобный чип. Но это не очень важно для «неспринтерских» видов. Зато плюсы — наличие готовых модулей, тогда их не было для обоих стандартов, что серьезно повлияло на выбор.
От чего хочу предостеречь:
1. Перезапись ранее записанных ячеек. По опыту, в одном случае на 10000 будет сбой — логически невосстановимый. Лучше все-таки одна ячейка — одна запись.
2. Мастер-чип должен быть «однократного действия». Увидев его, станция должна выполнить записанные в нем действия (изменение своего номера-времени), после чего сделать чип «обычным». Это убережет от случайного попадания мастер-чипа в общую корзину.
В общем, удачи!
1. Да, про проблему перезаписи думал. В самом начале развития системы станции просто записывали информацию в страницу, определенную номером станции. Но в таком случае нужно продумывать логику повторного взятия того же кп в случае дистанций-бабочек. Перешёл на последовательное заполнение памяти чипа и тут уже сложно обойтись без перезаписываемого счётчика.
Про проблему с EEPROM памятью наслышан, особенно для дешевых китайских чипов. Решаю это тем, что самую важную информацию — последний записанный блок, номер чипа записываю в трех экземплярах, а информацию о временной отметке с использованием кода Хэмминга. Перед стартом все чипы проходят проверку (запись во все биты 1, затем 0).
Но спасибо за совет и за статистику, подумаю ещё как можно усилить надежность.
2. Да про эту проблему тоже в курсе, сейчас у меня мастер-чипы одноразовые.
Если бы я создавал систему сейчас, его бы не было. В текущей прошивке нашей станции его запись оставлена для обратной совместимости, а чтение убрано совсем. Даже тупым методом половинного деления вы найдете последнюю запись за 6 операций чтения, а администрирование счетчика — как минимум чтение, чтение корреспондирующей, запись и чтение-верификация.
Да, от счетчика я уже отказался. Протестировал прошивку с поиском последней записанной страницы, по времени отметки примерно тоже, но надежность, действительно, сильно повысилась.
Осталась уязвимость при записи второй половины страницы с существующей отметкой в первой, но тут уже нужно уменьшать число отметок до 46. В принципе, для многих соревнований хватит и 46, думаю, реализую настройку для перевода станций в режим с записью каждой отметки в отдельную строку для надежности.
Очень нужный проект с правильным серьезным подходом. Отдельное спасибо за детальнейшее описание!
Скажите, я правильно понимаю, что данные на картах не шифруются? Из защиты только мастер пароль, который хранится в открытом виде? Когда я делал схожее устройство для игр, я упёрся в полное непонимание как реализовать на этих карточках шифрование, чтобы недобросовестный пользователь не мог скопировать свою или чужую карту. Нет ли описания или примера как это делать? Гугл не помог. Спасибо!
Да, данные на картах не шифруются. Мастер-пароль хранится в закрытом виде, нужен он только для постановщика для корректировки времени, номера станции. При отметке участником никак не задействован.
Mifare Classic 1k поддерживает шифрование, можно сделать защиту на чтение/запись. Подробности есть в даташите на него, пункт 8.7
Библиотека, которой я пользуюсь, поддерживает шифрование, можно посмотреть в примерах, вроде там есть.
У меня защита от копирования довольно банальная — станции тоже пишут в себя отметившиеся чипы и потом можно легко сверить результаты.
Sportiduino. Система электронной отметки для спортивного ориентирования. Часть 2