STM32 Интерактивная шахматная доска.

alexlaw

✩✩✩✩✩✩✩
3 Янв 2020
79
2
Воронеж
Не совсем так.
Есть движок на STM , который встроен в доску.
Eму нужно передать сделанный пользователем ход.(любым доступным способом через UART)
Движок понимает строку типа e2e4.
Он принимает ход , делает его у себя "в голове".
Далее ему надо дать команду - сделать ответный ход,
Он его делает и отображает его на доске подсвечивая поля откуда-куда.
Вот помотрите как китайцев
Теперь понятно?
 

alexlaw

✩✩✩✩✩✩✩
3 Янв 2020
79
2
Воронеж
Поле из 64-х матриц
Нет, матрицы тут не причем.
Сейчас на матрице отображается игровое поле с установленными фигурами и при ходе подсвечивается откуда куда.
Вместо матрицы будут светодиоды в каждой клетке,
Сначала думал сделать на адресных светодиодах,но что было под рукой, то и использовал.
Датчик Холла или геркон будут тоже в каждой клетке и формировать ход откуда-куда.
Прототип и симулятор в Протеус выше.
Сейчас есть задача.
Прототип работает так.
Каждую секунду 10 раз опрашивает датчики на изменения на доске и выводит поле на котором произошли изменения.
Нужно сформировать ход из двух клеток и по команде STM передать его ему.
Использован отдельный контроллер Attiny2313.
Справитесь?
Исходники я предоставлю.
 

alexlaw

✩✩✩✩✩✩✩
3 Янв 2020
79
2
Воронеж
Прога под Виндовс, которую я написал нужа лишь для теста самого движка на STM.
Есть ли ошибки или падения МК, что улучшить и т .д.
Сначала движок попадался постоянно под мат Легаля.
Пришлось подумать и доработать.
Сами понимаете ресурсы STM103 малы и дебютную книгу в него не запихнешь.
 
Изменено:

alexlaw

✩✩✩✩✩✩✩
3 Янв 2020
79
2
Воронеж
Сейчас роль доски выполняет программа под Windows.
Нет, она выполняет роль посредника между человеком и доской(STM) отправки хода и получения хода от доски и его отображения в понятном виде.
В этой проге под Windows нет движка, я лишь добавил генератор ходов.
 

EugeneFrol

★✩✩✩✩✩✩
17 Апр 2024
100
12
51
Мне проще будет взять готовый проект и переделать под теже адресные RGB, внедрив алгоритм 4.8 и датчики Холла.
1782818514052.png
 

EugeneFrol

★✩✩✩✩✩✩
17 Апр 2024
100
12
51
Так вот сама esp8266 справиться с этой задачей без проблем. Зачем STM и attiny?
Движек просто перенести на esp, а через её UART - Arduino Nano c max7219 и т.д.
Создайте доску отдельно, также как прогу под Windows, а движек - отдельно (на STM или ESP).
Будет возможность работать с движком как через Windows, так и через отдельную доску, а так же через любой терминал.
 
Изменено:

alexlaw

✩✩✩✩✩✩✩
3 Янв 2020
79
2
Воронеж
Кто хочет принять участие в совместной разработке печатной платы.
EasyEDA или Sprint-Layout 6.0.
Сейчас скачал easyeda-pro-windows7-x64-3.2.149, установилась и можно работать.
Он лайн вроде можно разрабатывать совместно.
В Sprint-Layout 6.0. я делал одностороннюю плату, но видели кучу проводов, чревато отказами.
 

Bruzzer

★★★★✩✩✩
23 Май 2020
815
253
@alexlaw,
Диоды надо развернуть.
Максимальная скорость зависит от R2 и емкости входа (включая диоды и провода).
 
Изменено:

alexlaw

✩✩✩✩✩✩✩
3 Янв 2020
79
2
Воронеж
Изменено:

alexlaw

✩✩✩✩✩✩✩
3 Янв 2020
79
2
Воронеж
значит точно мёртвая
Нет - живая. С esp работает стабильно, даже идеально.
Отказался от этой системы.
Поставлю переключатель.
3d-1.pngshematic1.png
C Attiny работает не стабильно, stm через раз читает правильно,хотя если подключить выносной терминал,то видно, что все четко передается.
Возможно из-за монтажа ...
Да, из-за монтажа
screen1.pngscreen2.pngscreen3.pngscreen4.png
Видно, на последнем скрине потерялась цифра

Поэтому и хочу сделать печатную, отладочную плату.
Осталось чуть чуть до разводить.
 
Изменено:

alexlaw

✩✩✩✩✩✩✩
3 Янв 2020
79
2
Воронеж
Кстати, Алиса реально помогает))
Алиса:
Отлично, что тестирование идёт успешно! Если в процессе появятся какие‑то нюансы или новые кейсы,
которые не отрабатывают как ожидается, — пишите. Разберём и доработаем.

А пока — несколько подсказок, как максимально эффективно проверить функцию и выявить возможные слабые места:

План тестирования
1. Корректные ходы (должны возвращать 1)

короткие: e2e4, d7d5;
длинные: a1h8, h1a8;
с захватом: b1c3, g8f6;
пешки: e7e5, d2d4.
2. Некорректные ходы по формату (должны возвращать 0)

неверная длина: e2e, e2e4e, ee4;
неверные символы: z2z4, e9e7, i2i4.
3. Ходы с выходом за пределы доски (должны возвращать 0)

по вертикали (переход на столбец i–p): h2i2, a1b9;
по горизонтали (выход за ряды 9–16): a8a9, h8h9.
4. «Неизменяющие» ходы (должны возвращать 0)

e2e2, a1a1, h8h8.
5. Пограничные случаи

углы доски: a1a2, h1h2, a8a7, h8h7;
крайние вертикали: a2a4, h3h5.
6. Крайние значения move_code

минимальный корректный: move_code = 0x0001 (K_temp = 0, L_temp = 1);
максимальный корректный: move_code = 0x7F7E (K_temp = 127, L_temp = 126);
граничные ошибки: move_code = 0x8000 (K_temp & 0x88 ≠ 0), move_code = 0x0800.
Теперь более стабильно будет приходить инфа от датчиков (герконов).
А легальность хода проверяет уже сам движок.
RuTube
 
Изменено: