Меню Рубрики

Установки для брейн ринга

Система для «брейн ринга» и «Своей игры»

Работая в учебном заведении неоднократно сталкивался с проблемой проведения всевозможных интеллектуальных игр, таких как «своя игра» и «Брейн ринг». Таким образом возникла идея придумать систему для определения «первой нажатой кнопки».

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

Необходимые инструменты:
• Паяльник
• Термопистолет

Материалы для изготовления:
• Старая клавиатура
• Разъемы «тюльпан» (папа-мама)
• Коробка для корпуса
• Кнопки без фиксации или далее будет описано как самостоятельно сделать

Которая использует клавиши клавиатуры для игры. Разуемся в рамках аудитории использовать одну клавиатуру для 3-4х учеников неудобно и не практично, поэтому решил пожертвовать старой клавиатурой с разъемом PS/2 в которой работали не все клавиши.

После препарирования клавиатуры в руках у нас остается вот такая плата с микросхемой и целым рядом контактов. Справа контакты зачищены под пайку, слева в первозданном состоянии.

Кнопки для игры
Осталось сделать кнопки для игры. И нас есть три разъема «тюльпан папа» с проводами и можно к ним припаять купленные кнопки для дверных звонков. Но в связи с тем, что у нас работа бюджетная и творческая кнопки делаем своими руками.

Для этого нам понадобиться:
• Кнопка тактовая – 3шт. (можно выпаять из старой аппаратуры)
• Диск CD/DVD – 6 шт.
• Крышки от баллончиков с краской или подобные – 3шт
• Кусочки пластика 2х2см
• Разъем «тюльпан» с проводом -3шт.

источник

Вступление

Для проведения игр по правилам «Брейн-ринг», разработал и собрал электронную систему.

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

Общее описание системы

Система состоит из нескольких блоков:

  • блок управления («пульт»);
  • блок индикации таймера;
  • блоки кнопок команд (4 штуки);
  • соединительные кабеля;
  • блок питания от сети.

Количество команд может быть от 2 до 4. Ненужные блоки кнопок просто не учитываются.

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

Коротко о каждом блоке

Блок управления («пульт»)

Пульт работает на микроконтроллере Atmega8A.

Он состоит из двух плат – основной и платы управления.

Конструктивно пульт собран в корпусе KRADEX Z20.

Основная плата

Схема простая, состоит из самого МК с обвязкой и сдвигового регистра 74HC595 для десериализации световой индикации.

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

Плата управления

Световая индикация

Через регистр 74HC595 на пульт и на кнопочные блоки команд посредством красного и зеленого светодиодов выводится состояние команд во время игры. На лицевой панели пульта расположены 4 пары светодиодов, на каждом кнопочном пульте команд – по 2 светодиода.

Блок таймера

Состоит из платы и 4-х 1.5-дюймовых семисегментных индикаторов FYS-15011 BS-21 с общим анодом, по 2 на каждую сторону.

В схеме использовано 2 регистра 74HC595 включенных каскадом.

Блок таймера соединяется с основным блоком посредством 5-проводников старого RS232 кабеля.

Блоки кнопок команд

На столе каждой команды ставится блок с кнопкой и 2-мя светодиодами, красным и зеленым.

Блок питания

БП – обычный китайский импульсный на 5В 2А.

Коротко об изготовлении

Печатные платы

Схемы блоков разработаны в бесплатной версии Eagle CAD. Трассировку печатных плат производил в TopoR Lite 5.2. Изображения плат были «распечатаны» в PDF, затем импортированы в Inkscape, а из последнего экспортированы в зеркальном и негативном виде в формат PNG. Шаблоны печатал из программы XnView в масштабе 100% на струйном принтере на пленку для струйной печати. На текстолит наклеивал негативный пленочный фоторезист, который засвечивал УФ КЛЛ 26 Вт около 10 минут (подбирал тестовыми засветками) с расстояния 30 см. Днем мне больше понравилось экспонировать – засветка солнечным светом нужна всего около 10 секунд!

После засветки проявлял фоторезист в воде с небольшим количеством стирального порошка. Затем сразу же кидал в хлорное железо.

Шаблоны печатных плат и монтажные схемы

Главная плата
Плата управления
Плата индикатора таймера
Плата кнопки команды

Корпуса

Для пульта выбрал корпус Z20. Главную плату прикрутил винтами к основанию. Плату с кнопками – к верхней части на стойках. Кнопки для пульта взял с удлиненными толкателями.

Два ряда светодиодов установил в просверленные отверстия и посадил на клей.

Пропилил куском ножовки пазы для гнезд 6p4c.

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

Корпуса кнопочных блоков сделаны из телефонной розетки с гнездом 6p4c. В качестве толкателя кнопки использован 10 мм светодиод.

Каждый такой блок подсоединен к пульту стандартным 4-х жильным телефонным кабелем длинной порядка 7-10 метров. При этом удобно использовать цвета жил соответственно подключаемым светодиодам. В ходе проведения игр в разных условиях не было замечено влияния их длины на работу системы.

Все соединения в устройстве сделаны из старого 40-жильного шлейфа IDE.

Программная часть (прошивка)

Прошивка системы была написана на C в IDE Code::Blocks. Так как я не имею большого опыта в программировании МК, прошу не слишком строго судить мой код. Некоторые части и идеи были подсмотрены на разных сайтах посвященных AVR.

Небольшое разъяснение кода прошивки

В блоке инициализации определяются несколько констант.

const uint8_t round_time=61; – время одного раунда +1 секунда вначале для фиксации фальстарта.

uint32_t TI_SOUNDS_period = 500; – длина «бипа» в мс.

В прошивке используются два аппаратных 8-битных таймера.

Нулевой таймер TCNT0 работает с периодом 1 мс, и на основе него сделаны несколько программных таймеров для антидребезга, индикации и проигрывания звуков.

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

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

Прошивка МК и фьюзы

Так как большая точность мне не нужна была, то я обошелся без кварца и прошил МК на внутренний генератор 8МГц установив следующие fuse:

avrdude -p atmega8 -c avrisp -e -vv -P COM5 -b19200 -U lfuse:w:0xE4:m

При установке кварца, нужно поменять константу F_CPU в начале main.c соответственно его частоте.

Скомпилированная прошивка 01.hex находится в папке bin/Release

МК я прошивал с помощью avrdude используя Arduino как avrisp предварительно залив в него соответствующий скетч:

avrdude -p atmega8 -c avrisp -e -vv -P COM5 -b19200 -U flash:w:binRelease01.hex

Подсмотреть, как использовать Arduino как программатор для AVR здесь:

Инструкция по использованию системы

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

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

Кнопочные пульты кладутся на столы команд. Кабеля приклеиваются скотчем, чтобы не путались.

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

Включаем систему – прозвучит мелодия и все индикаторы мигнут несколько раз.

Пример игры

На пульте имеются 4 кнопки:

Первый раунд

1. Ведущий читает вопрос потом говорит: «Время!»

2. Одновременно или через пару секунд оператор нажимает кнопку «Новый раунд». При этом гаснут все светодиоды, система может принимать нажатия кнопок команд, счетчик таймера начинает отсчитывать секунды.

Если во время первой секунды какая-то команда нажала свою кнопку, происходит событие «Фальстарт» – звучит сигнал и для этой команды загорается красный светодиод. Система приостанавливается. Команда объявляется выбывшей из текущего раунда. Снова звучит «Время!» и оператор нажимает кнопку «Продолжить раунд» продолжается отсчет времени.

Если же кнопка командой была нажата после времени фиксации фальстарта, то для этой команды загорается зеленый светодиод, для остальных команд – красный. Система приостанавливается. Оператор должен нажать кнопку «Ответ».

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

3. Команда отвечает на вопрос:

  • ответ правильный – объявляется конец раунда, команде начисляются очки;
  • ответ неверный – команда объявляется выбывшей из текущего раунда, звучит «Время!» оператор нажимает «Продолжить раунд» продолжается отсчет времени.

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

Следующий раунд.

1а. Ведущий произносит новый вопрос и говорит «Время».

2а. Оператор нажимает «Новый раунд». Все повторяется.

Пауза. Во время отсчета времени можно нажать «Пауза», чтобы приостановить его.

Когда до конца отсчета остается 5 секунд, звучат звуковые сигналы.

Реальное использование

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

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

Скачать файлы проекта

Если есть желающие усовершенствовать – милости просим – все исходники проекта я предоставляю свободно. Код прошивки выложен на bitbucket.org: https://bitbucket.org/onivan/brags

Там же можно скачать шаблоны печатных плат и другие файлы.

источник

Полезности: Брэйн-система своими руками

от Дмитрия Смирнова (Зеленоград)

Предисловие

Брейн систему наш клуб хотел купить уже тогда, когда я только пришёл в ЧГК, а было это в далёком 1998 году. Но, видно, какое-то ужасное древнее проклятье, проклятье вселенского рпасзидйяства, висело над нашим клубом. За 8 лет мы так и не купили «кнопку». И вот, в один прекрасный момент я понял, что раз купить кнопку нам не суждено, её надо сделать. А так как денег у нас нет, то сделать её надо очень дешёвой. Свободного времени у меня весьма немного, поэтому я решил реализовать всю логику работы системы в виде программы. Это значительно ускорило разработку и удешевило систему (при условии наличия компьютера).

Описание

Система состоит из программы, и простенького устройства, подключаемого к компьютеру к порту PS/2 вместо клавиатуры. Может обслуживать до 4-х кнопок и работать в режимах «Брейн-ринг» и «Своя игра». Программа написана на MSVС++ и распространяется вместе с исходными кодами, при желании Вы можете её дорабатывать.

Запчасти

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

Читайте также:  Установка гбо на пежо 406

Старая клавиатура (подойдёт даже самая дешёвая за 100 рублей) с разъёмом PS/2

20 метров медного двужильного кабеля

Разъёмы для подключения этих штекеров

Небольшая пластиковая или металлическая коробочка (я использовал коробку из под чая

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

Аккуратно раскрутите клавиатуру, снимите крышку и вытащите прозрачные пластиковые листы с контактными площадками. Всё это нам не понадобится. Из всей клавиатуры нам понадобится только вот такая плата с припаянным к ней проводом. Будьте осторожны, не оторвите припаянный к плате провод.

Нащупываем контакты для кнопок

Обратите внимание на ряд контактов. Именно они-то нам и понадобятся. Всё что нам нужно, это найти 4 комбинации контактов соответствующие 4 буквам/цифрам. Для того чтобы их найти возьмите кусочек провода длиной около 20 см., подключите провод идущий от платы вместо вашей клавиатуры к компьютеру, откройте текстовый редактор и, соединяя различные контакты на плате, смотрите что будет печататься. Желательно найти такое сочетание, чтоб один контакт для всех комбинаций был общим (так будет меньше возни с паяльником). Найденные контакты припаяйте к разъёмам.

Поместите всё это в пластиковую коробку, соберите кнопки. Вот и всё, готово. Не знаю что собрали вы, а у меня получился вот такая вещь.

Подключение и настройка программы

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

Программа может работать в двух режимах: «Брейн-ринг» и «Своя игра»

Нажатия на кнопки по сути являются нажатиями на клавиши клавиатуры. Т.к. собранная вами система может использовать клавиши отличающиеся от моих, то эти клавиши можно настроить. Для этого поместите курсор в соответствующее поле и нажмите кнопку.

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

Если что-то непонятно, присылайте Ваши вопросы автору программы Дмитрию Смирнову.

источник

Брейн-система

В последнее время набирают популярность различные виды интеллектуальных игр: «Что? Где? Когда?», «Мелотрек», «Брейн-ринг». Но для некоторых видов игр не обойтись без специальной системы, которая будет управлять ходом игры. Вот в рамках курсового проекта решили попробовать сделать свою брейн-систему.

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

Для начала мы определили цель: брейн-система должна подавать звуковой сигнал, означающий начало времени вопросного раунда и сигнал, означающий окончание времени вопросного раунда, а также должна сигнализировать ведущему о готовности игрока дать ответ. Если один игрок нажал кнопку, то остальные кнопки блокируются. Также должна быть возможность выбора режима игры.

Необходимые компоненты

Структура системы

Стоит сказать, что систему можно разделить на 3 блока: главный модуль, кнопки игроков (4 штуки) и соединительные кабели. Система содержит 4 кнопки игрока. Если игрок успел нажать раньше остальных, то на его кнопке загорается светодиод.

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

На Ардуино приходят сигналы с кнопок. Если кнопка нажата, то загорается диод на кнопке и на пульте ведущего и включается звуковой сигнал. Это главная концепция.

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

Начало разработки

Мы начали с самого простого. На макетной плате собрали схему, которая включает диод. Всё заработало! Двигаемся дальше. Подключили Arduino и кнопки, при нажатии на которые загорались диоды. И тут мы столкнулись с проблемой дребезга кнопок.

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

И в кнопках, и в главном модуле используются светодиоды. Но 5В это слишком большое напряжение для них. Поэтому чтобы предотвратить сгорание диодов к ним последовательно подключаются резисторы. Рассчитать сопротивление резисторов можно здесь. За счет того, что все светодиоды одинаковые, нам понадобилось 8 резисторов по 100 Ом.

Режим игры выбирается с помощью DIP-SWITCH:

  1. Брейн-ринг
  2. Что? Где? Когда?
  3. Эрудит-квартет, Тройка, Своя игра (работа системы в этих играх одинаковая)

Программная часть

Параллельно с разработкой схемы писался код. Было очевидно, что нажатия кнопок стоит обрабатывать через прерывания. Вычитав про 2 внешних прерывания INT0 и INT1, мы расстроились, потому что для аж 6 кнопок двух прерываний маловато и придется повышать разрядность через регистр. Поскольку с аппаратными вещами вживую мы столкнулись в первый раз, то для нас было все сложно и непонятно. В общем, мы не очень обрадовались этому факту. Не поверив, что нашу проблему нельзя решить как-то по-другому, мы наткнулись на Pin Change Interrupt Requests, которые идеально подошли для нашего проекта. Никаких регистров!

Познакомиться с прерываниями можно здесь.

В нашей брейн-системе кнопки SET и RESET соответствуют пинам D8 и D9, а кнопки пользователей — A0-A3. Поэтому мы определили только два обработчика прерывания для каждой из используемых групп прерываний.

  • ISR(PCINT0_vect) – для кнопок ведущего.
  • ISR(PCINT1_vect) – для пользовательских кнопок.

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

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

Монтаж

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

Спаяли кнопки ведущего, диоды, переключатель режимов игры. В процессе мы поняли, что можно было обойтись и одним триггером Шмитта. Тогда его следует перенести в главный модуль, подвести к нему выходы кнопок через сетевой кабель, а сигналы с его выхода подавать на Arduino.

В целом главный блок был готов. Но по-прежнему он был не связан с кнопками игроков. За основу главного блока мы взяли нативную плату от роутера, в которой было выгодно использовать разъемы RJ-45. Хотя об этом мы слегка пожалели, ибо вырезать плату и напаивать контакты по второму кругу не самое приятное занятие. Но все прошло достаточно успешно.

Мы использовали для передачи логической 1 бело-оранжевый проводник, для логического 0 — оранжевый, сигнал на диод — бело-зеленый и сигнал с кнопки — зеленый. Хотя можно использовать любые, главное проверить какой кабель используется, потому что существуют различные варианты обжима.

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

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

После решения данной проблемы всё заработало.

Особенности режимов игр

Особенности брейн-ринга. Если старт не был нажат, то система определяет нажатие кнопок как фальстарт. Если старт нажат первый раз, то система будет ждать 20 секунд нажатия кнопок, по истечении времени система подаст звуковой сигнал. Если в течение этого времени команда все же знает правильный ответ и нажимает на кнопку, то звучит соответствующий сигнал, а таймер в свою очередь останавливается. В соответствии с правилами, в случае неправильного ответа, другие команды должны получить возможность на ответ. Для этого после второго нажатия на старт таймер запуститься на 10 секунд. Кнопка Reset сбрасывает систему, ее нажимают перед чтением следующего вопроса.

Особенности Что? Где? Когда?

После нажатия Старта подается звуковой сигнал. Звуковой сигнал подается после 50 и 60 секунд. В остальных играх отлавливается только нажатие кнопок игрока. Благодаря удобству работы с Arduino можно реализовывать и другие игры: менять таймер, разрешать фальстарт и т.д. это можно реализовать, добавив соответствующий код.

Заключение

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

В проекте принимали участие Оксана Козлова и Марина Бардиян.

Редакторский дайджест

Присылаем лучшие статьи раз в месяц

Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.

Похожие публикации

С 18 июля новый порядок регистрации программ для ЭВМ в Роспатенте. Что изменилось?

Серийная ЭВМ “Стрела”

О специализированных бортовых ЭВМ замолвим слово

Вакансии

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Комментарии 38

«стягивающие резисторы» — может все же резистор подтяжки, подтягивающий резистор или на крайний случай подтяжка.
«5 шт. – триггер Шмитта (но можно обойтись и одним)» — Зачем? У вас есть микроконтроллер, который может отбросить все не нужные вам нажатия, зачем городить лишний обвес?

Все это должно было влезть в:
2 кнопки ведущего — 2 пина микроконтроллера
8 светодиодов — 4 пина микроконтроллера
4 кнопки — еще 4 пина, но можно их объединить с пинами светодиодов.
4 пина на dip switch

Итого — 14 пинов в самом худшем варианте, в идеале вообще 10.

В итоге вся ваша конструкция умещается в attiny24, attiny2313 и им подобные МК
из обвязки — ток-ограничительные резисторы на светодиоды, два конденсатора по питанию, 78l05 и (нужна ли она?) внешняя подтяжка кнопок.

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

Читайте также:  Установка затвор дисковый смета

Для тех, кто «не догнал»:
http://hamlab.net/other/game.html
http://acule.ru/igra-kto-bystree/
http://tda2003.at.ua/publ/4-1-0-98

>микроскопом гвозди забивать

Или как на мощной ЭВМ кидать птичкой в свинью.

Вы еще раз показываете плохое знание простейшей электроники и автоматики. Отсюда и ваши неверные выводы. А ведь это основы. Получается колосс на глиняных ногах, который посыпется при первом же шухере, о чем я и говорю. Научили на свою голову — программировать умеют, а как заряжается конденсатор никто не знает…

Я бы вот вообще заморачиваться на Ардуино не стал, а подключил бы сразу кнопки к LPT порту ПК и вперед… Да что там ПК, я взял бы сразу майнфрейм какой-нибудь 🙂 А что? У меня вон их вагон, девать некуда, а за транзисторами в магазин надо идти…

А если завтра ядерная война и все эти Ардуино сгорят к чертям, то что? Будете сидеть без любимой игры, ведь собрать тоже на реле у вас ума не хватит? 🙂

Ладно, не принимайте вы это близко к сердцу, меня не вы расстроили, а качество современного образования. Если бы такую задачу дали мне в ВУЗе, то я до хрипоты спорил бы с преподом, если бы он мне навязывал решение именно на Ардуино, вместо простейшего.

Прошу прощения, когда я писал свой комментарий, держал в голове ту постановку задачи, которую сформулировал перед тем, как начать делать собственный девайс, а именно:
-Разрешение не хуже 1/1000, а лучше 1/10000 секунды (у хороших кнопочников разница реакции где-то в третьем знаке после запятой)
-Индикация фальстарта (отключаемая)
-Отсчет времени на ответ самим устройством (несколько фиксированных интервалов для разных игр)
-Воспроизведение разных звуков самим устройством, там вроде 3 тона получалось на свояк — старт, ответ, фальстарт, и еще пару на ЧГК, 10 секунд и финальный ту-ту-ту, а еще секундный метроном, у нас так принято было.
-Малые габариты, вес, батарейное питание для игр на природе, куда мы порой выбирались.

Так вот, вы все еще утверждаете, что проще и, главное, экономически выгоднее строить такое устройство на дискретной базе? Пожалуйста, аргументируйте как-нибудь не в духе «вы не знаете электронику», а более детально. Кстати, почему «еще раз»? Вы не мне отвечали?

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

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

Ардуино тут как раз может быть простейшим решением с точки зрения времени и экономики. Почему все забывают про экономический вопрос? Набор рэле будет стоить дороже этой ардуины. Кстати, про образование. Ниже пишут, что это студентки Белорусского Государственного Университета Информатики. Т.е. как-то логичнее при такой специализации ВУЗа пилить в сторону программирования, а не электроники, вы не находите?

Вопрос экономической выгоды не всегда простой и зависит от множества параметров. Тут влияет и размер партии и наличие компонентов у производителя и тьма просто всего. В данном случае, если бы было сказано, что «было задание практиковаться именно в Ардуино или именно в программировании» или «вот кроме Ардуино под рукой даже транзистора не было, а радиорынок был закрыт», то вопросов особых нет, так можно и пылесос из утюга делать, только вот уровень самоделки ИМХО, не настолько велик и оригинален, чтоб стоило сюда постить статью. Хотя, опять же, возможно, что уже давно не торт и т.п.

В общем случае, при массовом производстве безусловно более простое устройство будет дешевле. При ограниченной партии нужна хотя бы видимость экономических прикидок. Реле дорого, соглашусь, но разве дороги транзисторы? Хотя, безусловно, при изготовлении нескольких штук, возможно, что даже из майнфреймов сделать их будет дешевле, но опять же, надо было бы это отметить как-то, как-то обосновать в статье, если причина состояла именно в этом. Ведь, согласитесь, глупо как-то вызывать КАМАЗ песка, когда трехлетнему малышу понадобилось наполнить маленькое ведерко песочком. Именно это я имел в виду. И инженер-конструктор (в данном случае) должен это все если не уметь на пять, то хотя бы в общих чертах учитывать.

Насчет вашего конкретного задания, думаю, что и его несложно сделать на простой электронике. Да, будет уже не четыре транзистора, больше… но ничего такого невозможного не вижу. Я не предлагал и не предлагаю делать на реле, у них тут масса недостатков, хотя и на них «знать как» не помешает. И уметь такое делать тоже надо, если цель создавать устройства (инженер-конструктор), а не ляпать из того что знаю (программист, садовник и т.п.). Еще раз повторю, если цель не создать устройство, а научиться, то так и следовало писать. Но разве тут выкладывают лабораторные работы? Может я и ошибаюсь.

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

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

Насчет уровня статьи соглашусь, тут стало слишком много «первых проектов», они тут ни к чему.

Да, я имел в виду штучный аппарат. Так-то можно и спец.микросхему сделать… Вообще, мое мнение — микроконтроллеры и всякие ПЛИС придумали специально для того, чтобы всякие штучные и мелкосерийные устройства делать с минимальными затратами.

Да, сделать можно, но транзисторов будет много) Одно ту-ту-ту — два генератора и счетчик до трех, или одновибратор ровно на три цикла, или еще более хотрый счетик, все это настраивать без тактового генератора в схеме — то еще удовольствие.

А вот насчет б/у дискретки не соглашусь. Как минимум там разные емкости переходов, разное быстродействие. Если вы наковыряете транзисторы из материнок, вряд ли вы так просто подберете, например, комплиментарную пару для какого-ни будь усилителя или еще чего-нибудь, то работает с двуполярным питанием. Ну и по скорости работы они все окажутся разные. А контроллер протестирован на то, что на заявленной частоте все его транзисторы работают как надо, все линии, несмотря на свою длину, емкость, индуктивноть проводят сигнал за заданное время и синхронно с тактовым генератором.
Стоимость, кстати, будет заметно большо. На какой-нибудь дешевой ПЛИС за 3 бакса будет минимум 500 И-НЕ. Представляете, сколько будет стоить 500 таких элементов, например, 74 серии? На самом первом интеле 8051, продолжателем которых являются AVR, было 128 тысяч транзисторов. А дело в том, что не нужны корпуса, ноги, соединения с ногами, все сделано на кристалле. Так-то у меня и рэлешки где-то валялись еще советские, и КУ202Н, но это прошлый век, сейчас время обычно стоит больше железок.

Не надо шовинистских высказываний, я знаю много девушек — крутых специалистов в моей области. А авторам статьи — удачи, и побольше читать и писать код:)

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

ПЛИС на 500 элементов будет выгоднее безусловно, чем 500 дискретных элементов. Но вот вовсе не тогда, когда из нее используется только 1 элемент И-НЕ как в данном случае, когда потенциал Ардуино используется для сущей ерундины.

Шовинизм, он не про девушек, он про национальности. Вот это то и пугает… вы определения слов путаете, время цените больше качества… что-то понимаете в кибернетике почти не зная электронику, автоматику, да и электричество то плохо зачастую. Сильно боюсь, приедет этот мир вовсе не туда…

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

Шовини́зм (фр. chauvinisme) — идеология, суть которой заключается в проповеди превосходства с целью обоснования «права» на дискриминацию и угнетение человека человеком по какому-либо признаку.
В этом определении нет ничего про национальность. Выражения «женский шовинизм» и «мужской шовинизм» весьма распространены. Пожалуйста, проверяйте свои слова прежде чем обвинять кого-либо в безграмотности.
Ваша аргументация опять на уровне «вы ничего не знаете». Попробуйте как-то иначе, сейчас вы ведете себя на уровне сетевого тролля.

Время ценнее качества — где это вы увидели в моих словах? Врея ценнее железок — да. Прибор на ардуине получится вполне себе работоспособный и отвечающий ТЗ. Где вы тут низкое качество усмотрели?

Я не перегибаю, а поясняю свою точку зрения. Пусть у вас будет 10-20 транзисторов, все равно нужно смотреть процент использования сборки и экономическую целесообразность.

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

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

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

Транзисторы нынче недёшевы. Чип стандартной логики на 4 И-НЕ сравним по цене с ОДНИМ транзистором.
Это автоматически делает нерациональной сборку на рассыпухе.

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

Хорошо, понимаю ваше объяснение. То, что контроллер используется не весь потенциал считаю нормальным т.к. он и создавался неким универсальным прибором, из которого можно лепить что угодно, выключая лишнюю переферию при этом. Давайте обсудим экономическую эффективность. Будем считать, что мы делаем серийное устройство.

1. При покупке 10 штук на известном сайте ATTINY2313 стоит около 33 рублей. Дополнительно к ней надо в моей схеме 5 всетодиодов, 1 транзистор, динамик, примерно 10 резисторов и кусочек текстолита 50*50. Т.е. стоит все вместе рублей 50. Прошивка пишется один раз, потом просто заливается в каждый экземпляр, далее это отладки не требует.

2. На том же сайте на 50р вы можете купить что-то около 60 транзисторов 2n2222 без какой-либо обвязки. Но вам потребуется еще пригоршня резисторов, конденсаторов и т.д. Т.е. транзисторов на 30 с обвязкой вам хватит. Скорее всего, на этом богатстве вы сможете построить точно такой же по функциональности прибор, только размеры будут далеко не 50*50, вес и энергопотребление тоже. А самое главное, все это потребует гораздо больше времени на монтах и отладку каждого собранного устройства, и процент брака тоже будет выше, что в итоге будет стоить денег.

Читайте также:  Установки кондиционирования для пищевой промышленности

Согласен, подход «тяп-ляп и в продакшн» имеет место. Однако ускорение разработки вовсе не означает, что мы будем пользоваться именно этой парадигмой. Я имею в виду, прибор 1 средней руки электронщик/программист контроллеров разработает за день со всей документацией. Прибор 2 потребует уже гораздо больше времени работы более опытного электронщика, а это время стоит денег.

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

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

Надо как-то различать состояния «Кнопка не нажата» и «Кнопка не подключена». Разъём, в котором пропадает контакт, испортит игрокам немало нервов.

Один из вариантов — включить кнопку между двумя пинами, зашунтировав её диодом.
1) Проверка линии: pin1 — вход с подтяжкой к питанию, pin2 — лог.0. При исправной линии ток идет от pin1 через диод к pin2, на входе будет 0. При обрыве линии — 1.
2) Проверка нажатия: pin2 — вход с подтяжкой к питанию, pin1 — лог.0. При нажатой кнопке ток идет от pin2 через диод к pin1, на входе будет 0. При ненажатой — ток не идёт, диод не пускает, на входе 1.

Проверку линии можно делать периодически между раундами или сразу после фиксации нажатия.

Позвольте пару слов в поддержку авторов.

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

2. За конструктивную критику — спасибо комментаторам (этим хабр и ценен), но ожидать от студенток разработки коммерческого уровня — слегка многовато на мой взгляд.

3. То, что в вузах сейчас плохо или не тому учат — так и есть. Скоро совсем некому учить будет. И славная советская школа инженерии сойдёт на нет просто по естественной причине смены поколений. Даже в текущий срез времени уговорить толкового инженера с опытом на преподавание —
дело практически безнадёжное (максимум — одноразовое). Вопрос — у кого данным девушкам, к примеру, учиться? Это раз, а во-вторых, если выпускники их специальности массово 70-80% затачиваются под разработку софта (коньюктура рынка такая) — то насколько это нужно именно именно данным студентам погружаться в схемотехнику «на полную катушку»?

4. И мы спокойно приходим к нашему логичному холивару — что лучше экономить, время разработчика/инженера либо элементную базу. Первая функция (цена времени разработчика) имеет тренд к возрастанию, вторая (цена элементной базы) — к убыванию? Вопрос, однако, риторический, на мой взгляд, естественно…

Вывод: Трудно идти против ветра, особенно если нет чёткого понимания зачем нужно это делать конкретному человеку в конкретный момент времени…

Так что всё логично, господа, — что имеем, то и имеем в результате.

А за критику, ещё раз — спасибо.

«О кей, парни, — сказал он в первый день, — вижу, что вы сюда пришли, чтобы не посещать Анлийскую Литературу». — По классу пронесся виноватый гул и выражение наших лиц несколько изменилось. — «Я должен вам сказать, — продолжил он, — что только тот получит в свою зачетную книжку „А“ по моему курсу, кто покажет мне чек на сумму, полученную за публикацию написанного им в течение этого семестра рассказа». Хор стонов, охов, и завываний и тяжелых вздохов и… «О, мистер ГАРТНЕР, это несправедливо, мы бедные маленькие школяры… Как мы можем надеяться…
— Это НЕСПРАВЕДЛИВО, мистер Гартнер!» Все это он оборвал одним словом, которое звучало примерно так: «Гррр. ».
— В оценке «В» тоже нет ничего плохого. «В» означает «Выше среднего». Можно быть Выше Среднего и не продав ничего, тобой написанного, правда? Но «А» — это «Отлично», разве вы не согласны, что если у вас примут то, что вы написали, опубликуют и заплатят за это, то это будет отлично и вам можно будет поставить «А»?

Вот ведь, холера, явка провалена — придётся искать новый ресурс. 🙁

Да, «некий креативный препод» — это я, зав. кафедрой ЭВМ БГУИР. Обязаловкой здесь не пахнет, ибо: а) студенты имеют право выбора — творить что-то интересное «и в железе» либо брать типовой курсовой проект «на бумажке». Обязательным условием творчества является документирование процесса и выкладывание результата сего действа на всеобщее обозрение в назидание потомкам. Дисциплинирует, знаете ли… Ресурс не навязывается — на выбор студента. Статья не является основанием для выставления оценки и публикуется по мере её готовности (дабы не гнать халтуру) после получения оценки. Мы верим своим студентам на слово.

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

В этом году нас пока не просили с вещами на выход… Но если и попросят, то выход найдём…

Пардон за чьи-то разбитые розовые очки… Надо было нам под одним ником творить, труднее было бы догадаться…

Пардон за чьи-то разбитые розовые очки… Надо было нам под одним ником творить, труднее было бы догадаться…

Ой, я вас умоляю 🙂 Не было бы тега, сошло бы еще на некоторое время. А разные люди под одним ником — вычисляются на раз.

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

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

Вы вообще-то понимаете, что ставите своих студентов, да и взирающую на это «публику» в неловкое положение?

И рассмотрим ситуацию в пределе: что станет с гиктаймс если сюда не только БГУИР начнет выкладывать все учебные проекты.

Одна из проблем нашего (в данном случае я подразумеваю СНГ) высшего образования, на мой взгляд, в том, что оно абсолютно непублично. И дело не в том, что многие учебные и связанные с ними процессы проходят в скрытом фоновом режиме «под ковром» так что даже коллеги с соседних кафедр имеют смутное представление о делах друг друга, но и в том, что работы студентов (те, которые они должны делать в соответствии с учебным планом) практически нигде не выносятся на свет божий.
Причин для этого положения дел можно назвать много, но факт остаётся фактом — на выходе студенты не умеют: а) анализировать существующий «state of the art», б) проектировать с учётом найденных лучших практик, в) описывать свой результат, г) аргументировано его защищать…
Далее классический вопрос — «Что делать?».

Один из вариантов решения — публикация на общественно значимом ресурсе с наличием профессионалов различного профиля. Фактически аналог модели выживания зайчат в дикой природе — «любая зайчиха обязательно покормит любого зайчонка (своего/чужого), который попадётся ей на пути»…

Теперь ответ на ваши вопросы:
>Вы вообще-то понимаете, что ставите своих студентов, да и взирающую на это «публику» в неловкое положение?
Про студентов — да, понимаю. Более того, считаю, что выход за пределы их зоны комфорта идёт им на пользу. Про «взирающую» публику — здесь, плиз, по подробнее… Как-то у меня нет чёткой связи между чтением чего-то в интернете и «неловким положением». В чём именно неловкость? Эксперт увидел в интернете дилетанта? Смог совет дать — спасибо. Пролистал по диагонали — матюгнулся и вернулся обратно в ленту к следующей статье — ок, в чём неловкость-то? Реально, я здесь не понимаю в чём неловкость.

>И рассмотрим ситуацию в пределе: что станет с гиктаймс если сюда не только БГУИР начнет выкладывать все учебные проекты.

1. За что мне (и многим другим) нравился старый хабр — так это за определённый уровень профессиональной планки, который поддерживался сообществом хабра. Более того, жёсткий механизм саморегулирования, высокий порог входа — всё это делало хабр тем ценным и уважаемым ресурсом, которым он был ещё лет 5 назад. Даже я сам, многие свои поделки (как программные, так и железячные) стеснялся публиковать в сыром виде на «старом хабре» — банально было жалко кармы, а времени на полировку и подробное описание проектов — как всегда не хватает. К сожалению, (и я не один в этом мнении) — «хабр уже не торт». Особенно после деления по живому год назад на geektimes, мегамозг и т.п… Я встречаю (и довольно часто) слабые статьи в ленте, которые мне дают полезной информации намного меньше, чем поделки наших студентов.

2. >Не только БГУИР и все учебные проекты… Во-первых, не все. Я писал выше — что у нас это дело сугубо добровольное и, к сожалению, смельчаков не так уж и много (в пике — 25% студентов, которые к тому же делятся по командам. поэтому если считать не по головам, а по проектам от общего числа будет процентов 10-15 максимум).
Во-вторых, большинству администраций/преподавателей гос.вузов, к сожалению, происходящее на самом нижнем этаже нашей системы образования — т.е. непосредственной работе со студентами, глубоко фиолетово. Преподавателям — потому что их и так грузят работой по самое «мама-не-горюй» с зарплатой далёкой от идеала, а администрации — потому что «уж страшно далеки они от народа» (с) классики по мотивам В.И. Ленина…

Поэтому, максимум что в идеале грозит geektimes — это 10% (проектов) от 10% (IT-специальностей) от 10% (ВУЗов). Да и то, я полагаю, что у администрации ТМ на этот счёт есть свои соображения — каким образом фильтровать контент, модерировать доступ и улучшать прочие коммерческие показатели. С другой стороны, я полагаю, что студенты, которые всё же «пробились на арену» и получили свою долю критики — уже являются новыми читателями/пользователями geektimes + их однокурсники, которые нет-нет да и зайдут посмотреть на статью друзей… Поэтому определённая польза в привлечении новой аудитории на ресурс всё же есть.

Но ещё раз повторюсь — попросят на выход с вещами, придумаем что-то новое вне хабра (хотя и жаль, естественно, ибо комментарии экспертов — самое ценное в хабре)…

источник

Добавить комментарий