Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.99/1777: Рейтинг темы: голосов - 1777, средняя оценка - 4.99
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
1

Наручные часы на ATMEGA

01.01.1970, 03:00. Показов 325378. Ответов 465
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Итак часы на моем запястье красуются уже почти год. Какой результат?
1. Несмотря на свою "топроность" снаружи, часы нисколько не мешают. Я к ним привык и доволен :-)
2. По функционалу.
Реально полезными оказались следующие фичи:
а) Собственно сами часы, которые показывают время/дату
б) Таймеры. Но тут неоднозначно. Сделал я этих таймеров ажно 6 штук причем все независимые и т.п. Но ниразу не использовал одновременно несколько штук. То есть в один момент времени работал только один таймер. Собственно... можно было бы и не городить 6 штук...
в) Будильники - ну тут все понятно. Очень полезная фича
г) Календарь и астрономия. Не смотря на то, что астрономию (расчет восхода/захода луны и солнца, а так же фаз луны) делал just for fun, оно мне пригодилось очень сильно при проведении аэростатных экспериментов, когда делали съемку высотных профилей с привязкой к восходу и закату солнца.
Ну и бесполезные фичи:
а) совсем не пригодился секундомер
б) тетрис - ну как бы я в него играл несколько раз, но особо не понадобился
г) музыкальный front-end. В прошивку заложен функционал монофонического воспроизведения простых мелодий. Но в полную мощность он не использован вообще.
3. По эргономике: конечно хотелось бы часы пыле-водо защищенные, но не получилось. Ну и кнопки тоже хотелось бы по-лучше. Еще заряда аккума хватает где-то на 7-10 дней, но никакой предупреждалки о том что батарейка садится, в прошивку я не заложил. Так же надо переделать меню настроек на более понятный интерфейс, а то и сам иногда забываю что-где-как.

А в целом, считаю проект завершенным, хоть и на стадии beta. Обзаведусь 3d принтером, сделаю новые часы в более приятном кузове (с преферансом и куртизанками) :-)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.01.1970, 03:00
Ответы с готовыми решениями:

JACLCD - еще одни часы на ATmega. Говорящие.
Доброго всем времени суток! Тема! Делаю еще одни часы на Меге с ЖК, на этот раз сегментном,...

Макетная плата для Atmega 32?atmega 8
Здравствуйте !Уважаемые мастера нужна помощь (а именно нужна схема макетной платы для меги 32 и...

Наручные часы
Подскажите модель наручных часов. Требования: 1. Часы, минуты, секунды, день недели, число,...

Наручные часы на Android
Кто-нибудь РЕАЛЬНО этими девайсами пользовался?...

Наручные часы на CC2540
Понравился очень пост решил написать свой, как я делаю часы Для чего это мне надо: 1. Стимуляция...

465
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
07.08.2014, 11:06 21
Author24 — интернет-сервис помощи студентам
Итак, порция фоток еще.
Это вид анфас (собсна время, дата... правда число настроил на день позже тащемта... не выспался видать)


Это профэль


А это *опа (здесь подпаян программатор, питалово с него же, пьезо-перделка и подтяжка на ногу CS дисплея, ибо без нее шьется 1 раз из 10 - дисплей, зараза, просаживает напругу на SPI)
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
07.08.2014, 11:11 22
И еще фотки.
Это кишки


А это кишки чуть более крупно


Что мы видим тут? А здесь у нас собсна мозго-сердце на ATMiko48PA-AU с кварцем, подпаянным прямо на ноги (ходит точно кстати, менее секунды за сутки убегает - это считается прям гуд).
И здесь еще костыль в виде мультивибратора на двух транзюках. Запитывается сие чудо от ноги PC2 и отжирает где-то 150 мкА. Зараза пищит даже от внутренней подтяжки :-) Спаял сие на текстолите
толщиной 0.3 мм (бывает и такой - я тож не верил, пока не подарили из закромов советских запасов).

Так что смело заявляю: часы теперь умеют пердеть! :-)
И еще - сегодня ночью поправил несколько серьезных багов кода и частично оптимизировал по размеру. На GITHUB обновил.
0
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 879
07.08.2014, 11:12 23
Ммммм!!!! Литцендрат!!!
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
07.08.2014, 11:21 24
2 Sthuthu
Неа, одножильный обмоточный в шелковой изоляции. Лицендрата (к моему великому сожалению) на наших складах нету нигде. Приходится крутить самостоятельно из одножильных ПЭЛ-0.1 (или ПЭЛ-0.06).
0
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 879
07.08.2014, 11:30 25
Обознался :-)
А похож!
0
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
08.08.2014, 10:39 26
Мои эксперименты с индикатором от 3310 )

0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
09.08.2014, 22:31 27
2 tyzord66
Дисплей от 3310 кошерный. Только достать таких вдоволь сейчас уже проблема. Такая же проблема как и дисплей от Siemens A70 и от Siemens CX65 (тот самый LS020) - это одни из немногих дисплеев с очень удобными паябельными падами.

Есть куча дисплеев с раскрытым протоколом (Nokyo N72 например), а вот коннектор у них размером с TSSOP20 порой. И встает проблема коннектор найти/выдрать из донора, а потом его грамотно залудить на поделку.
0
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
10.08.2014, 07:49 28
Где проблема? Лично покупал дисплеи 3310 в середине июля в нигащине "Профи" в количестве 10 штук. Без предзаказа. Пришел - купил - ушел.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
10.08.2014, 10:18 29
2 BykTiho
Эт где такой??? Лично я искал эти дисплеи на AliExpress и прочих сайтах - не нашел... :-(

UPD:
Нашел сайт нигаза в гугле... уже фтыкаю :-)

UPD2:
Ну все равно Siemens дисплеев нету уже нигде :-( Пичалька, а они удобные были весьма...
0
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 222
10.08.2014, 11:12 30
у дисплея Nokyo 3310 неудобный конструктив и 90 р. :(

http://shop.siriust.ru/images/M0001010.jpg
у Nokyo 1202 за 50 р. паяемый шлейф
http://shop.siriust.ru/product... s_id/16418

http://shop.siriust.ru/images/M0022867.jpg

Цитата Сообщение от VyvotzorD
Ну все равно Siemens дисплеев нету уже нигде :-( Пичалька, а они удобные были весьма...
Как это Siemens дисплеев нет ?
достаётся легким движением руки ;)

0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
10.08.2014, 12:35 31
Гы-гы :-) Смеялсо :-)

Но к слову - мобильник Siemens сейчас даже на барахолке сложно купить... На помойке разве что встречаются иногда... Вот из одного такого выдрал дисплей для этого проекта.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
10.08.2014, 12:45 32
Итак обновление. Запилил рисование цифирей в стиле 7-ми сегментного индикатора (решилось добавлением фрагментов цифр в таблицу знакогенератора). Каждая цифра - это 2 символа (верхняя и нижняя половинка цифры). Таблица seg7_dig в модуле CP866.yms содержит соответствия пар символов рисунку нужной цифры в стиле 7-ми сегментного индикатора.
Правда пока что есть только подпрограмма, отобаржающая BCD. Нужна ли будет такая для отображения HEX - не знаю, время покажет.

И да - запилил частично таймер, но пока затык со звуком (чтоб типа как на будильнике пищал прерывисто фоном несколько секунд). И таймер пока только "ходить" умеет - установить его на нужное время пока никак :-) Не доделал :-)

P.S. С целью отладки еще вначале сделал подпрограммы для вывода байта и слова в виде HEX на дисплей... но они не используются в основной работе часов. Можно их снести.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
11.08.2014, 18:47 33
Разобрал аккум от какой-то мобилы. ХЗ какой емкости... Ty-Yom - контроллер убитый, но сама банка цела. Заменил контроллер, зарядил, подключил к часам - ходят епты! :-) Оставил на столе дабы посмотреть, когда сдохнет батарейка :-)
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
12.08.2014, 14:38 34
Допилил таймер - теперь, как только время истечет, часы радостно пищат :-) Время таймера теперь можно настраивать. Но надо сделать так, чтобы таймер мог считать "фоном" - то есть можно включить на часах любой другой режим, но таймер все "пропищит" тогда когда надо. Сейчас таймер работает только лишь когда включен режим таймера. Стоит его выключить - и таймер сбрасывается.

Звук сделал с настройкой на будущее: потенциально есть возможность пищать морзянку :-)

Из железа: сныкал пьезо-перделку между дисплеем и платой, подцепил аккум, задумался на счет вывода UART и питалово наружу тащемта (была идея сделать зарядку от USB и синхронизацию времени с компа).
0
0 / 0 / 0
Регистрация: 27.01.2010
Сообщений: 619
12.08.2014, 16:02 35
Хорошо кнопки расположены. Сначала хотел написать "Они же отломаются!", потом понял, что они упираются в дисплей.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
12.08.2014, 17:25 36
2 Sporkir
Да по началу искал на всяком мобильном хламе тактовые кнопки по-меньше габаритами и чтоб торцевые. Не нашел. Потому выдрал с ноут-бучной платы вот эти smd кнопки, загнул у них ноги и кое-как запаял на площадки (ибо площадки-то под другие кнопки сделаны, под более компактные).

И когда это все в голове вертел, тоже думал, что отломаются и тоже потом понял что они будут упираться в дисплей и тем самым фиксироваться :-)

UPD:
Допилил таймер. Теперь он считает фоном и по истечение времени истошно пищит :-)
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
12.08.2014, 19:34 37
Ради интереса сделал три режима отображения часов:
1. Режим в стиле обычного шрифта 8х8 с масштабированием


2. Режим в стиле 7-ми сегментного индикатора


3. Режим в стиле бинарных часов. Здесь некоторая особенность: т.к. время внутри часов хранится в BCD формате, то и бинарные часы рисуются в BCD.


P.S. Фотика под рукой нет, потому фотал на телефон... качесто так себе - но видно все равно.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
13.08.2014, 18:46 38
Исправил баги в BCD арифметике. Код теперь стабилен, но как-то не оптимален по размеру/быстродействию. Хотя эт я придираюсь просто уже наверное...

Осталось ровно 10% свободного Ftosh! А надо еще запилить секундомер и ЦНХ.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
20.08.2014, 01:12 39
Мысли вслух.

Кароч тема - ЦНХ. Помнится были такие часы "Электраника-...чего-то-там-цифры" и была у них такая фича - ЦНХ. Цифровая Настройка Хода. Фича вполне себе кошерная и востребованная, так как тогда часы "искаропки" либо бежали, либо отставали на несколько секунд в сутки. И ЦНХ позволяла убрать этот досадный факт чуть менее чем полностью (а иногда весьма полностью - бывало).

Как это делалось?
1. Юзер в какой либо день синхронизировал свои часы с каким либо источником точного времени (тогда - радио или телек, сейчас - GPS) и запоминал/записывал дату и время синхронизации.
2. Юзер ждал неделю или больше, и по прошествии времени сравнивал показания своих часов с точным временем
3. Путем не хитрых вычислений, юзер определял - на сколько секунд часы бегут/отстают за сутки (т.е. за 24 часа).
4. Юзер вводил полученное значение (с точностью до десятых долей секунды) в свои часы и получал весьма точный девайс.
5. PROFIT!

Как это реализовать? Мне видится следующий алгоритм:
1. Имеем величину отставания/убегания часов (к примеру 2.3 секунды в сутки)
2. Если часы бегут, то:
а. Ждем пока часы не покажут время 00:00:02.3
б. Как только часы это время показали - обнуляем! Т.е. выставляем 00:00:00.0
3. Если часы отстают, то:
а. Ждем, пока часы не покажут время 23:59:57.8 (т.е. из 00:00:00.0 вычли нашу поправку и добавили 0.1 секунды на следующий ход)
б. Как только часы это время показали, устанавливаем время 23:59:59.9 - и в следующем такте будет 00:00:00.0 и пересчет дат. Вот тут и нужна эта поправка на 0.1 секунды
4. PROFIT!!!

Вот такой не сложный алгоритм. Одно удручает: в двоичной системе счисления 0.1 (ноль целых, одна десятая) выглядит как 0.000110011001100110011 - и так бесконечно. Да и кварц имеет частоту (в идеале) 32768 Гц, и получить 10Гц здесь можно лишь разделив на 3276.8 - что собсна весьма тяжело (и почти невозможно).

Что делать?

Вариант 1: Выражать доли секунды не десятичной, а натуральной дробью, где знаменатель - степень двойки. К примеру дробить секунды на "восьмые" доли, или на "шестнадцатые". Это самый простой вариант и самый надежный. Но не удобный для понимания в случае, когда эти доли секунды надо рисовать на дисплее. Привыкли-то мы все таки к десятичным дробям.
Вариант 2: Секунды отмерять по таймеру, а десятые доли считать "приближенно". Это выход для индикации (так как там обычно высокая точность и не нужна), но совсем не выход для поправок и прочего измерения времени...

У меня реализован первый вариант. Как-то так...
0
ztkt
20.08.2014, 03:12 40
Делается такое по мотивам алгоритма брезенхема. Каждый тик таймера в аккумулятор добавляется некое разумное число Х+добавка, настраиваемая пользователем. По окончании тика {пока аккумулятор больше или равен Х*(тиков в секунду) {аккумулятор-=Х*(тиков в секунду), ++секунды}}
Разумное число Х задаёт точность регулировки хода часов, подозреваю оно должно быть порядка 10^6 для точной настройки.
20.08.2014, 03:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2014, 03:12
Помогаю со студенческими работами здесь

Наручные часы на arduino
Решил собрать часы с кучей свистелок и перделок, на данный момент в качестве платформы взял...

Починить электронные наручные часы? :)
Есть у меня электронные наручные часы, у которых есть глюк -- периодически сбрасывается настройка...

Mp3/mp4 плеер-наручные часы
От знакомых слышал,что есть такой плеер или телефон,мол "не только время показывает". Вот мне...

Какие наручные часы выбрать на подарок?
Хочу подарить другу наручные часы на день рождения, потому что я недавно узнал, что друг очень...

Наручные часы с компасом, термометром, водонепроницаемые.
Рад предложить вам очень красивые и стильные часы Timex, модель T49859AT...

Наручные часы Smael сбрасываются от занятием спортом
Всех с Новым Годом! С самого начала, как пришли часы с Aliexspress, при прогулке в толстой одежде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Закрытая тема Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru