Как сделать шахматные часы своими руками

ПРОСТЫЕ ШАХМАТНЫЕ ЧАСЫ

Вниманию радиолюбителей предлагается схема элект­ронных шахматных часов, выполняющих все функции механических шахматных часов, применяемых в настоя­щее время в официальных шахматных турнирах.

Так как в механических часах время определяется с точностью до долей минуты, та и в описываемых часах автор не ставня задачу индикации секунд. Предусмат­ривается только индикация минут и десятков секунд. По мнению автора, нежелательна схема электронных шахматных часов с обратным отсчетом времени (с инди­кацией времени, оставшегося у каждого партнера). Пря­мой отсчет времени удобен еще и потому, что позволяет в тренировочных целях устанавливать одному из партнеров преимущество по времени (игра с гандикапом), не приме­няя при этом никаких дополнительных устройств, а прос­то обусловливая заранее, что, например, черные играют до 5 мин, а белые до 4.

Рис. 1. Принципиальная схема часов

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

Пуск шахматных часов осуществляется нажатием кнопки, включающей счетчик игрового времени, начиная от нуля. Окончание игрового времени фиксируется по появлению на счетчике ааранее обусловленных цифр (например, 05.0),

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

В шахматных электронных часах нецелесообразно применять аыеокостабильйые кварцевые генераторы, обеспечивающие высокую точность хода, но требующие большого числа микросхем — делителей частоты. В предлагаемой схеме генератор импульсов общий- на обе половины часов. Незначительные отклонения от абсолютного времени не принципиальны, так как одина­ковы для обоих партнеров.

Схема электронных шахматных часов, представлен­ная на рис. 1, состоит из трех частей: двух одинаковых устройств AI и А2, выполняющих функцию часов и осу­ществляющих индикацию времени, и общего устройства, включающего генератор и приспособления для переклю­чения часов.

Генератор представляет собой симметричный мульти­вибратор, выполненный на транзисторах VI и V2. Он обеспечивает генерацию импульсов сравнительно низкой частоты (около 250…260 Гц), что позволяет ограничиться всего двумя делителями частоты на 16 (D7 и D8).

При этом частота импульсов на выходе второго де­лителя равна 1 Гц.

С помощью резисторов R4 и R7 предусмотрена под­стройка частоты генератора таким образом, чтобы про­межутку Ефемени в 10 с точно соответствовала смена цифр.

Последовательность импульсов с частотой 1 Гц посту­пает на входы схем совпадения (D9.1 и D9.2), на вторые входы этих схем поступают два разнополярных сигнала с триггера, выполненного на двух оставшихся в схемах совпадения элементах 2И-ВД (D9.3 и D9.4).

Сигнал с одного плеча триггера является запрещаю­щим, для .прохождения импульсов, сигнал с другого пле­ча — разрешающим.

Кратковременное нажатие кнопок S3 или S4 вызыва­ет переключение триггера, разрешающий сигнал логи­ческой 1 появляется то на одном, то на другом плече триггера, что определяет прохождение последователь­ности импульсов или в устройство A1, или в А2.

В устройство А1 сигнал с элемента D9.2 поступает на вход счетчика D1, затем на вход счетчика D2, имею­щего индикацию от 0 до 5; с выхода 8 счетчика D2 сиг­нал поступает на десятичный счетчик импульсов D5, с выходов счетчиков D2 и D5 — на дешифраторы D4, D6. С дешифраторов сигнал подается на семисегментные светодиодные матрицы HI и Н2. Индикаторы HI обоих устройств показывают десятки секунд, а индикаторы Н2 — минуты.

Читайте также:  Как сделать форму для багета своими руками

Для возвращения всех счетчиков D2 и D5 обоих устройств в нулевое состояние предназначена кнопка SJ.

Перед началом игры партнеры договариваются о про­должительности партии (при игре в блитц, обычно, по пять минут), нажимают кнопку S1, после чего партнер, играющий белыми, допустим А1, делает ход и нажимает кнопку S3, пуская часы партнера (А.2). После ответного хода партнер, играющий черными, нажимает кнопку S4, пуская устройство А1 и останавливая свои часы.

Для временной остановки обоих часов в случае спор­ных ситуаций или для временного прекращения игры следует нажать кнопку S2. Для возобновления игры кнопку S2 возвращают в исходное состояние, -при этом включают те часы, которые шли перед остановкой.

В качестве индикаторов используются светодиодные матрицы типа АЛС314 или АЛС324. При этом необходимо учесть, что для АЛС314А и АЛС324А требуются дешифраторы К514ИД1, а для АЛС314Б и АЛС324Б дешифраторы К514ИД2.

После очевидных доработок можно применить инди­каторы ИВ-3, ИВ-4 и др. Также возможно применение газоразрядных индикаторов ИН-2, ИН-4 и т. д.

Кнопки S1, S3, S4 типа П2К с самовозвратом, а кноп­ка S2 — с возвратом повторным нажатием.

Ток, потребляемый часами от источника постоянного тока 5 В, составляет 500 мА.

Источник

Шахматные часы — сувенир

Шахматные часы — атрибут любого турнира по этому виду спорта. Даже 4-й разряд играет партии на время, что уж говорить о первом разряде или КМС. В основном, в шахматных клубах используют старые добрые мехнические образцы шахматных часов, к примеру, «Янтарь». При всей простоте использования, механические часы, особенно «ветераны», которые проработали не один год или даже десятилетие, имеют существенный недостаток, а именно — различную скорость хода часовых механизмов. Это связано с износом деталей, а также различным усилием часовой пружины, которую в процессе эксплуатации «подводят».

С развитием электроники на смену механическим часам пришли электро-механические и электронные. Если первые все так-же подвержены износу и зависят от заряженности батарей, вторые более точны и универсальны. Электронные часы, как правило, имеют в своем составе генератор с кварцевой стабилизацией частоты, который используется для обеих «половинок» (имеются ввиду раздельные табло для каждого игрока). Когда-то давно ко мне в руки попали электронные шахматные часы «Электроника» (опытная серия). Построены они были на основе простой логики, и к сожалению, были ненадежными (впрочем, их изготовление пришлось на конец 1980-х годов, так что думаю, это простительно). С тех самых пор на дальнюю полочку в сознании было отложено желание собрать свои собственные шахматные часы.

Итак, хочу представить вашему вниманию электронные шахматные часы — сувенир. Если вы увидев слово «сувенир» думаете, что эти часы «бутафория», то вы ошибаетесь. Просто без привычки ими пользоваться не выйдет, слишком велик отвлекающий фактор.

Часы выполнены на микроконтроллере ATmega8 и символьном ЖК дисплее на контроллере HD47780. Но, так как в шахматных партиях на счету буквально каждая десятая секунды (особенно в блице или в конце партии, когда время «висит»), а механические часы такую точность обеспечить не могли, я решил свой прибор выгодно отличить от них. Для этой цели применены светодиоды. Это обусловлено тем, что обновление ЖК дисплея с такой частотой нежелательно, да и не удобно следить за мешаниной цифр на дисплее.

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

Я старался максимально упростить конструкцию. Результат вы видите на рисунке выше. Так как количество светодиодов явно превышало количество свободных пинов микроконтроллера, было решено использовать уже проверенные временем (к тому же дешевые) сдвиговые регистры 74HC595. Кроме этого, дабы уменьшить количество элементов на схеме и упростить разводку печатной платы, пришлось отказаться от статической индикации и применить динамическую. Транзисторы Q1 и Q2 попеременно коммутируют левую и правую шкалы светодиодов, а во время переключения обновляется содержимое сдвиговых регистров. Микроконтроллер работает на частоте 16МГц и тактируется от встроенного генератора с кварцевой стабилизацией. Высокую точность хода таким методом не получить, но для измерения временных отрезков продолжительностью до 2-х часов сгодится. Тем более, что нам в данном случае важна не абсолютная точность, а относительная, левой части и правой.

Читайте также:  Как делают за коробочки своими руками

Для питания всего устройства используется li-ion аккумулятор от старого смартфона, преобразователь DC-DC, и модуль зарядки на TP4056. Эти детали вынесены за схему, так как не являются необходимыми частями конструкции.

Печатная плата изготовлена из двухстороннего фольгированного материала толщиной 1мм. Дорожки выполнены по технологии ЛУТ, исходники прилагаются. Изначально планировалось для дисплея вырезать в плате «окно», но в дальнейшем этот вариант был отвергнут. Размеры платы: 124х83 мм

Внешний вид модели печатной платы устройства:

Прошивка была написана на С в AVR Studio, исходники прилагаются. Для заливки прошивки в микроконтроллер использовалась программа Khazama AVR Programmer и программатор USBasp.

Fuse-биты следует выставить в соответствии со скриншотом,

или следующим образом:

H-Fuse: 0xC8

L-Fuse: 0xEF

E-Fuse: 0x00

Lock: 0x3F

Аналоги и возможная замена. Транзисторы BC557 можно заменить на отечественный аналог КТ3107. Светодиоды D1 — D20 подойдут любые с малым током потребления, главное чтобы на плате уместились. D21, D22 могут быть диаметром 3 или 5 мм, ток потребления ATmega8-16PU

Источник

Электронные «шахматные» часы.

Автор: с2. Опубликовано в Начинающим CV AVR

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

Материал статьи может быть, полезен тем, кт о начинает осваивать CodeVisionAVR.

Как ни велик интернет, однако простых и интересных схем не так уж просто и найти.

Вот, например часы типа шахматных, погуглил и мне не встретилась подобная схема, а ведь сделать самому такую схему на МК, это несложно.

Определение: «Часы для шахмат» называют часы с двумя устройствами индикации времени, соединенными друг с другом таким образом, что только одно из них может работать в одно и то же время.

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

Функции: Управление происходит просто, при нажатой кнопке Кн-1 идет счет 1-го секундомера, при нажатой кнопке Кн-3 идет счет 2-го секундомера, кнопкой Кн-2 (сброс) обнуляем показания счета.

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

В данном проекте основное, это использование двух секундомеров, при желании их число можно увеличить, что может оказаться полезно и для других схем, на примере этого проекта создаем его начало в CodeVisionAVR.

Сначала выберем МК и частоту.

подключим LCD к PORTB

а порт PORTD делаем управление кнопок на вход с подтяжкой внутренними резисторами к +.

Самое интересное это сконфигурировать таймер на точный счет секунд.

Как это делается, мне очень доходчиво в свое время, помогла информация с сайта my-avr.at.uа .

В параметрах таймера выберем Timer 1, Clock Value 7,813 kHz, Interrupt on: Compare A Match, Comp. A = 1e85 (это чисто обозначает что он будет тактироваться с частотой в 1 секунду)
clock value — частота счета
Interrupt on Compare A match — прерывание по совпадению с регистром А

Читайте также:  Блузка с одним швом своими руками

Здесь мы немного остановимся. Что это за число 1е85? Почему решили взять именно это число?

Итак, чтобы правильно посчитать какова частота работы таймера нужно открыть инженерный калькулятор. Число 1e85 (оно в 16-чной системе счисления) =7813 в 10ситичной с/ч. С этого следует что 7813(частота прерывания = 1 Гц)*5(сек)=39065 и перевести это в 16чную с/ч тогда мы получим 9899, вот это число вставляем в Comp. A и наш таймер будет работать с частотой 0,2 Гц то есть 1раз в 5секунд.
Генерируем код и сохраняем.

В коде таймера: (TIM1_COMPA)
Нужно вставить в середину следующие строки кода:
TCNT1H=0;
TCNT1L=0;
Для корректной работы таймера этим регистрам присваивается 0.
Вот исходный код получился в итоге.

Code
/*****************************************************
CodeWizardAVR V2.04.4a Advanced
Project : Shahmaty
Version : 1
Date : 13.05.2012
Company : c2.at.ua
Chip type : ATtiny2313
AVR Core Clock frequency: 8,000000 MHz
*****************************************************/
#include
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include
#include
unsigned char sek_B, min_B, hour_B;
unsigned char sek_A, min_A, hour_A;

interrupt [TIM1_COMPA] void timer1_compa_isr(void)
<
TCNT1H=0;
TCNT1L=0;
if (PIND.2==0) < // Секундомер №1 разрешено
sek_A ++ ; // инкрементирруем
>;
if (PIND.4==0) < // Секундомер №2 разрешено
sek_B ++ ; // инкрементирруем
>;
>

void main(void)
<
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTD=0x1C;
DDRD=0x00;

TCCR1A=0x00;
TCCR1B=0x05;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x1E;
OCR1AL=0x85;
OCR1BH=0x00;
OCR1BL=0x00;
TIMSK=0x40;
USICR=0x00;
ACSR=0x80;
lcd_init(16);
#asm(«sei»)

while (1)
<
lcd_gotoxy(0,0); // Место на дисплее
lcd_putchar(hour_A/10+0x30);
lcd_putchar(hour_A%10+0x30);
lcd_putchar(‘:’);
lcd_putchar(min_A/10+0x30);
lcd_putchar(min_A%10+0x30);
lcd_putchar(‘:’);
lcd_putchar(sek_A/10+0x30);
lcd_putchar(sek_A%10+0x30);
if (PIND.2==0) // на экране состояние 1-го секундомера
lcd_putsf(»
else
<
lcd_putsf(»
>;
lcd_gotoxy(0,1); // Место на дисплее
if (PIND.4==0) // на экране состояние 2-го секундомера
lcd_putsf(«start2> «);
else
<
lcd_putsf(«payza > «);
>;
lcd_putchar(hour_B/10+0x30);
lcd_putchar(hour_B%10+0x30);
lcd_putchar(‘:’);
lcd_putchar(min_B/10+0x30);
lcd_putchar(min_B%10+0x30);
lcd_putchar(‘:’);
lcd_putchar(sek_B/10+0x30);
lcd_putchar(sek_B%10+0x30);

if (sek_A==60) < min_A++, sek_A=0; >; // Условие работы секунд
if (min_A==60) < hour_A++, min_A=0; >; // Условие работы минут
if (hour_A==96) < hour_A=0; >; // Условие работы часов в формате 4х суток

if (sek_B==60) < min_B++, sek_B=0; >; // Условие работы секунд
if (min_B==60) < hour_B++, min_B=0; >; // Условие работы минут
if (hour_B==96) < hour_B=0; >; // Условие работы часов в формате 4х суток

if (PIND.3==0) < //общий сброс
hour_A=0;
min_A=0;
sek_A=0;
hour_B=0;
min_B=0;
sek_B=0;
>;
>;
>

Фьюзы для работы схемы с внешним кварцем нужно выставить так:

Проект в протеусе

Архив проекта 16х2; исходник, протеус, (прошивка , в папке проекта ЕХЕ. ).

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

В общем arbeiten (продолжаем работать:)))) Пока на факт с количеством символов не обращаем внимание берем «пожирнее» индикатор, и добавляем в программу учет текущего времени.

Теперь схема становится гораздо интересней, так как, мы видим на экране для каждого секундомера не только накопленное время , но и текущий отрезок времени , от начала нажатия кнопки пуск.

Код теперь имеет такой вид:

Кстати при компиляции он занимает в МК 58,1% FLASHа, и здесь остаеется еще полно места для дальнейшего творчества в этом устройстве:)))))

You have no rights to post comments.
Недостаточно прав для комментирования

Источник

Оцените статью