Всем привет. Сейчас занимаюсь проектированием кастомного страйкбольного привода R-201 из Титанфолла, напечатанного на 3д принтере. Будет работать на STM32, выдавать графику на дисплей и прочие выпендрежные свистоперделки. Сейчас интересует вопрос самого эффективного и не шибко затратного способа идентификации вставленного магазина, хранения информации о нём с быстрой перезаписью и быстрого сброса значения.
Подробнее: Условная ситуация такая - имеется три магазина с одинаковым объёмом снарядов. Пусть будет 50. После первой стычки с противником у магазинов стал разный запас снарядов. №1 магазин - 20, №2 магазин - 10, №3 магазин - 40. Т.к. будет реализован электронный спуск, STM32 может сама посчитать примерный настрел и посчитать остаточный объём магазина. Но остается открытым вопрос, как показать МК какой магазин вставлен в текущий момент. Вариантов было много - и флешка W25Q**, вставленная в магазин с выводом контактов на привод, чтобы МК мог считывать с одной страницы данные магазина (порядковый номер), а на другую записывать остаточный объём этого магазина (ну или хранить в оперативке эту информацию, а флешки использовать только для распознавания магазина). И оптический вариант - несколько лазеров и по наличию/отсутствию светоотражающей поверхности на магазине определять его порядковый номер. И вариант с защелкиванием контакта выключателя внутри привода за счёт выступов на самом магазине (кстати показался самым разумным, но не ясен ресурс такого метода, ведь магазин может и будет вставляться-выниматься резко, обычной скобы на долго не хватит). В общем такое ощущение, что мы изобретаем велосипед и впритык не видим простейшего решения. Подскажите, у кого какие есть идеи по этому поводу?
P.S. Ещё с радостью выслушаю идеи реализации самого простого и быстрого сброса значений магазина до "полного бака". Хочется обойтись без излишнего клацанья кнопок, чтобы можно было после заправки как бы сделать пометку, что магазин полон и система сразу это определила при установке, т.е. без ручного выставления.
Подробнее: Условная ситуация такая - имеется три магазина с одинаковым объёмом снарядов. Пусть будет 50. После первой стычки с противником у магазинов стал разный запас снарядов. №1 магазин - 20, №2 магазин - 10, №3 магазин - 40. Т.к. будет реализован электронный спуск, STM32 может сама посчитать примерный настрел и посчитать остаточный объём магазина. Но остается открытым вопрос, как показать МК какой магазин вставлен в текущий момент. Вариантов было много - и флешка W25Q**, вставленная в магазин с выводом контактов на привод, чтобы МК мог считывать с одной страницы данные магазина (порядковый номер), а на другую записывать остаточный объём этого магазина (ну или хранить в оперативке эту информацию, а флешки использовать только для распознавания магазина). И оптический вариант - несколько лазеров и по наличию/отсутствию светоотражающей поверхности на магазине определять его порядковый номер. И вариант с защелкиванием контакта выключателя внутри привода за счёт выступов на самом магазине (кстати показался самым разумным, но не ясен ресурс такого метода, ведь магазин может и будет вставляться-выниматься резко, обычной скобы на долго не хватит). В общем такое ощущение, что мы изобретаем велосипед и впритык не видим простейшего решения. Подскажите, у кого какие есть идеи по этому поводу?
P.S. Ещё с радостью выслушаю идеи реализации самого простого и быстрого сброса значений магазина до "полного бака". Хочется обойтись без излишнего клацанья кнопок, чтобы можно было после заправки как бы сделать пометку, что магазин полон и система сразу это определила при установке, т.е. без ручного выставления.