Схема шахматной доски / макет печатной платы

Привет, ребята, как описано здесь , я также хочу сделать шахматную доску с поддержкой Arduino. Здесь я хочу задать несколько вопросов относительно схемы и разводки печатной платы, которую я планирую сделать. @Dmitry Grigoryev описывает способ обращения к датчикам с помощью демультиплексора 1-8. В связи с тем, что мои схематические навыки все еще не самые лучшие, пожалуйста, потерпите меня. В любом случае, я хочу кратко описать свою идею.

  1. Схема для поля

    Для версии 1 нашей платы мы планируем интегрировать фоторезистор, чтобы определить, находится ли фигура на поле или нет. Для этого хочу поделиться простой схемой:введите описание изображения здесь

Это может показаться глупым для некоторых из вас, но это мои первые попытки. Моя идея состоит в том, чтобы использовать фоторезистор и другой резистор (где сопротивление варьируется от поля к полю) в качестве делителя напряжения, чтобы определить, какое именно поле вызывается фигурой.

Вопрос 1: возможно ли это, или у кого-нибудь есть идея получше, поделитесь со мной?

  1. Связь с контроллером

    Мы стремимся использовать Arduino Micro/Nano или Mega, если требуется больше памяти. Для связи мы выбрали MCP23017 - I/O-Expander . Таким образом, каждое поле подключено к одному из 4 контроллеров (64 поля = 4 * 16-битный расширитель ввода-вывода). Я знаю, что это аналоговый сигнал, но все, что мне нужно, это просто сигнал «эй, я сработал».

Вопрос 2: Возможно ли это, или у кого-нибудь из вас есть лучшее и более чистое решение. Более удобный в обслуживании и более расширяемый для будущих версий.

  1. печатная плата

    Я планирую создать печатную плату из всех идей, которые можно расширить для других вариантов использования (например, добавить АЦП и т. д. или что-то в этом роде).

Тот же вопрос, что и у предыдущих.

Пух, надеюсь, я все добавил, и вопрос полностью соответствует всем стандартам обмена стеками. Если нет, пожалуйста, предоставьте отзыв, чтобы улучшить мой вопрос.

Разве вы не хотели бы знать, какого типа и цвета эта фигура?
@ott-- Совершенно верно, это шаг для дальнейших версий. В версии 1 мы концентрируемся на самых основных фактах.
Чтобы расширить комментарий @ott--, поскольку эта реализация не определяет тип/цвет, не лучше ли сразу перейти к схеме, которая может ? Я хочу сказать, что эта работа не сильно поможет вам в «фактическом» проекте, который потребует распознавания типа/цвета. Что, если вы поместите два концентрических контакта в нижней части каждой части и используете схему передачи данных 1-wire (паразитное питание)?
@uint128_t. Спасибо за ваш комментарий. Хорошо, скажем, мы расширим идею до шага типа/цвета. Не могли бы вы быть более точны в своей паразитической части вашего комментария? Даже если я подтвержу ваш комментарий, мой коллега отдает приказы, а я тот, кто пытается разрабатывать вещи в соответствии с его требованиями. В любом случае я открыт для новых идей
"...пожалуйста, оголите меня". Ты приглашаешь нас всех раздеться или ты имеешь в виду "потерпите меня"?
Поскольку есть ОДНА начальная позиция, и, за исключением замков, только одна фигура движется за раз, знание того, где какая фигура, должно быть достижимо без идентификации отдельных фигур. Продвинутые пешки могут стать проблемой.
@transistor: Дерьмо, спасибо, мой английский иногда сильно бьет меня :D
если вы добавите светодиод (или замените оптопару, т.е. QR1113) и сделаете камеру отражения света закрытой системой и покрасите основания в разные оттенки серого, вы сможете идентифицировать детали по тому, сколько света они отражают обратно
Не составит большого труда разместить на нижней части каждой детали по два коаксиальных контакта, которые будут сопрягаться с контактами на плате. Для подачи питания и передачи данных достаточно двух проводов, см. протокол Maxim 1-Wire.
@uint128_t или просто измерение их сопротивления в более элементарном режиме
@УэслиЛи. Это очень интересное решение. Может быть, вы и uint128_t можете дать ответ, чтобы я мог проголосовать за некоторые ответы?

Ответы (1)

Согласно комментариям, я публикую альтернативное решение, которое может лучше соответствовать вашим потребностям.

Если вы сделаете основание фигуры и клетку на шахматной доске замкнутой системой, вы ~можете~ идентифицировать части по тому, сколько света они отражают.

Для этого, я считаю, вам нужно 4 вещи:

1 шахматная доска и фигура должны быть закрытой системой (внешний свет может испортить показания в зависимости от того, какой датчик вы используете)

2 Покрасьте основания деталей в разные оттенки серого.

3 Добавьте фиксированный/известный свет (может быть ИК-светодиод, например, QRE1113 , исключая LDR)

4 Используйте расширитель портов с аналоговыми входами (быстрый поиск дает несколько вариантов: ADS1015 , MCP3424

Я использовал QRE1113 во многих условиях, и ему удается очень хорошо отклонять окружающий свет. У меня были проблемы только с прямыми солнечными лучами на нем.

Я считаю, что вам нужно 6 * 2 разных «серых» (король, ферзь, ладья, слон, конь, пешка, черный и белый). Я понятия не имею, насколько сложно или легко добиться такой точности при восприятии печати/света. Однако его очень легко прототипировать. Вам даже не нужен расширитель портов i2c.

Мне просто пришло в голову, что если один серый становится слишком похожим на следующий шаг, вы можете попробовать зеленые / красные основы (для черных и белых частей) и цветные гели на своих датчиках. Какая-то умная комбинация может дать вам все данные, необходимые для детали.
Не уверен, почему вам нужно различать части. В моем шахматном компьютере 80-х годов была «кнопка» для всех полей под доской, и вы нажимали фигуру, которую хотели переместить, и толкали ее на поле, на которое вы ее переместили. Работал нормально и в наши дни может быть заменен множеством различных методов.
Спасибо за ваш ответ. Это решение звучит многообещающе для меня