Читаем Электроника для начинающих (2-е издание) полностью

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

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

В результате Жасмин предложил альтернативную схему, в которую был добавлен второй таймер 555, а выходы от этих двух таймеров были объединены элементом Исключающее ИЛИ. Он успешно доказал, что это устраняет перекос в сторону числа «один». Я был в восторге от того, что один из моих читателей узнал так много, прочитав мою книгу, что смог выявить и устранить обнаруженную проблему.

В новом издании я опустил замедляющий конденсатор, который вызывал указанную проблему. Но я не привожу схему Жасмина, потому что она оказалась довольно сложной. Каждый кубик должен иметь собственную пару таймеров 555, а также, как он предлагал, элемент Исключающее ИЛИ. Он использовал также диоды, которые я заменил бы элементами ИЛИ, и тогда на макетной плате едва хватило бы места.

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

<p id="bookmark383">Альтернативные варианты</p>

Вы, возможно, думаете, что есть более простой способ замедлить отображение без влияния на случайный характер. При просмотре онлайн- ресурсов я обнаружил, что кто-то соединил эмиттер n-p-n-транзистора с контактом 7 таймера, а между базой и коллектором включил конденсатор, чтобы при отключении питания выходной сигнал транзистора постепенно снижался. Другие разработчики использовали аналогичное решение для своих схем игральных костей. Однако я подозреваю, что такое решение может привести к той же проблеме, которую обнаружил Жасмин.

Я также видел схемы с «замедляющим» конденсатором, как и у меня (например, на сайте Doctronics). Я думаю, что они почти наверняка страдают указанным недостатком.

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

И все же, когда написание этой книги подходило к завершению, мой друг и редактор Фредрик Янссон (Fredrik Jansson) предложил подавать питание на таймер 555 от отдельного стабилизатора напряжения, чтобы оградить его от колебаний напряжения в остальной части схемы. Мне понравилась эта идея, но уже не было времени проверить ее перед публикацией книги.

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

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

Проблема генерации случайных чисел не так проста, как кажется. После электронной переписки с Жасмином я так заинтересовался ею, что подробно исследовал эту тему в книге Make: More Electronics, а также написал статью об этом в журнале Make (выпуск 45), совместно с Аароном Логом (Aaron Logue), который ведет небольшой веб-сайт с описанием созданных им устройств. Он познакомил меня с генератором шума на основе транзистора в режиме лавинного пробоя, случайный сигнал которого затем обрабатывается хитроумным алгоритмом, авторство которого приписывают величайшему теоретику вычислительных систем, Джону фон Нейману. Это, думаю, самый близкий к идеалу генератор случайных чисел, который можно придумать, но количество микросхем в нем довольно велико.

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

Осталось лишь привести фотографии завершенных устройств электронных игральных костей. Вариант, изображенный на рис. 4.152, был приведен в первом издании этой книги в 2009 году.

Перейти на страницу:

Похожие книги