`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Андрей Зубинский

Увидеть время

+44
голоса

захотелось мне что-нибудь интересное смастерить. причём, чтобы и "железячное, и попрограммировать немного, и не повторять готовую конструкцию, а «с нуля» - от идеи до железяки и кода.

и придумались мне весьма специфические часы, которые показывают не условное время (все «шкалы» времени, конечно же, условны), а уникальность текущего момента времени. по-моему, ничего подобного никто не делал.

выглядеть такие часы могут просто – матрица светодиодов размером N x M, на которую «проецируется» битовое слово с числом битов N*M (назову это слово T) по следующему принципу: бит  равен 1 - соответствующий светодиод включен, бит равен нулю - выключен.

Увидеть время

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

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

а, оказывается, все просто до невозможности. есть исследования линейных конгруэнтных мультипликативных генераторов математика Деррика Лемера, и есть замечательная рекуррентная формула 1969 года (авторы – Льюис, Гудман, Миллер, в их честь назван генератор псевдослучайных чисел LGM): 

Увидеть время

кстати, Лемер – весьма интересная личность. он был женат на дочери иммигрантов из России, тоже математике, и тоже с мировым именем, Эмме Троцкой. вот первая фраза из книги воспоминаний Эммы Троцкой: «Я родилась в 1906 году в городе с прекрасным названием Самара, на великой реке Волга. Я надеялась посетить свой родной город до тех пор, пока  он не сменил название на ужасное Куйбышев. С тех пор я полностью утратила к нему интерес».

и, кстати, число  Увидеть время  тоже очень интересное. это так называемое простое число Мерсенна (Марен Мерсенн – французский монах, математик, учившийся с Рене Декартом).

ну а уж число 16807 вообще культовое, можно сказать, 37 тысяч страниц, долго расписывать, почему именно.

так вот, последовательность, генерируемая по формуле Льюиса-Гудмана-Миллера, по сути является циклическим списком, состоящим из неповторяющиеся псевдослучайных 31-битовых чисел в диапазоне от 1 до 2,147,483,646. и тот факт, что каждое число из диапазона встречается в последовательности строго один раз – фундаментальная особенность генераторов подобного класса.

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

если время отображения одного слова T принять равным одной секунде, полный период  последовательности будет отображаться примерно 2,147,483,646/(60*60*24*365) или 68 лет при непрерывной работе часов. секунда даже многовато, но это уже и не важно, период отображения – величина, задаваемая программно.

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

итак, в часах будет светодиодная матрица 5*6, отображающая 30-битовое слово. ещё один бит будет использоваться, например, для изменения цвета (как – пока не вопрос, да и это несложно).

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

например, хотелось бы, чтобы визуально картинка менялась не по принципу переключения, а плавно – одни светодиоды гаснут, другие – загораются, картинка удерживается какое-то время, потом цикл повторяется.

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

буду думать ещё.

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

а теги, которые нельзя выбирать персонально - это сущее мучение. я уже думал прицепить тег "Сделки" - всё-таки, что-то сделать хочется, но потом благоразумие победило.

+44
голоса

Напечатать Отправить другу

Читайте также

Предлагаю предусмотреть альтернативный режим.
Раз в сутки, в неожиданный момент, отображается гексаграмма из И-Цзин. И остается на экране непродолжительный промежуток времени. Если успел ее усмотреть -- лезь в Канон, читай, чего тебе сегодня светит :)

His name is Maxi Jazz,
he makes no appologies,
for linking his thinking,
with computer technologies.

http://faithless.co.uk

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

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

И у них эта зацикленность имела сакральное значение. Собственно подобного рода понятие о цикле имеют и другие культуры. Так у скандинавов есть понятие о круге, у древних Египтян в отличии от Вавилонской "франшизы для жрецов" была еще более сложная система допускавшая очень широкую свободу (которую Греки упростили переставили местами выборы и голосование и назвали демократия).

То есть они голосовали после выборов за предпочтения которые во многом составляли порет времени, потом говорили что так и должно было быть. (Также имел значение и авторитет жрецов и фараонов.)

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

Еще один подход состоит в том что есть некоторые глашатые которые отображают портрет времени. Так новости HTTP://BBC.COM/news которые можно смотреть и через Интернет, есть той картинкой времени которую можно смотреть всю жизнь, и каждый раз она будет новой, и надеюсь будет еще долго.

Сам же я задавшись подобной проблемой, хотел найти более общее изящное решение - а именно фрактал, а точнее графал. Свойства графала, такого как часто присутствует в книге В.А. Дюк "Компьютерная Психодиагностика" должны изменяться следуя некоторым критериям. (Книга надо сказать написана на "эзоповом" языке, и раскрывает злободневную проблему.) Чтобы отображать графал светодиодов не напасешся конечно, нужен механически или электронный дисплей.

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

Вот подумалось: странная зависимость где-то в тех же числах, когда писалась статья, мою голову посещали подобные мысли, но я работал над очень практичным устройством, которое с трудом доделываю. И "увидеть время" надо в ночную смену когда хочется спать. Я уже спаял две платы устройства, и две платы индикатора. Если надо могу предъявить, картинки не даю так как устройство коммерческое, и по сему не этично.

Но в идеях Зубинского те же тезисы которые оторваны от практики.
Это что мистика?

Еще вспомнилось что звездное небо это тоже картина времени.

Вот только-что пока я искал новые записи по http://vh1.c.uk показывали клип Madona'ы где она напевала "тик-так" на фоне часов почти как на рисунке, если смотреть на ее танец то не видно цифр на заднем плане, они как бы превращаются в комбинации больших фонарей.

Здравствуйте!
А еще можно сделать PRBS
на основе LFSR :-)
См. http://www.xilinx.com/support/documentation/application_notes/xapp052.pd...

Я бы на ПЛИС делал... это интереснее, IMHO.

-- Успехов

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT