Двоичная игра
Компоненты и расходные материалы
![]() |
| × | 1 | |||
| × | 7 | ||||
| × | 15 | ||||
| × | 3 | ||||
![]() |
| × | 1 | |||
| × | 4 | ||||
| × | 1 | ||||
| × | 9 | ||||
| × | 1 |
Об этом проекте

Это игра, которую я создал на Autodesk Circuits для изучения двоичных чисел.
Игровую онлайн-версию можно найти по адресу https://circuits.io/circuits/2924784-binary-game
Если вы хотите следовать этому руководству и создавать свои собственные, файлы и код можно найти на моем github по адресу https://github.com/keebie81/BinaryGame
Шаг 1. Необходимые детали




- 1 прочная металлическая кнопка с белым светодиодным кольцом - 16 мм, белый моментальный
- 1 Adafruit METRO 328 с заголовками - ATmega328 - также подойдет любой вариант Arduino Uno. Мне нравится Metro, потому что дно гладкое, поэтому мне не нужно было ставить стойки для платы в моем дизайне.
- Винт с головкой под торцевой ключ 15 M3 x 8
- 3 гайки M3
- 1 ЖК-экран 16 x 2
- 4 стойки 40 мм
- Силиконовый чехол с многожильным сердечником - 30AWG - я использовал несколько цветов, чтобы упростить монтаж проводки.
- 9 Тумблер SPDT Panel Mount - подойдет любой стиль, но мне нужен плоский стиль.
- 9 Гайка манжеты переключателя 1 / 4-40 - опционально, для внешнего вида. Вы также можете использовать оборудование, с которым поставляется коммутатор.
Шаг 2. Дизайн





Я разработал корпус в Fusion 360. Это позволило мне расположить все детали и убедиться, что они подходят друг другу. Как только это было сделано, я смог распечатать корпус на 3D-принтере и посмотреть, как он подходит.
Они хорошо сочетаются друг с другом, поэтому я создал SVG из двух панелей. Следующим шагом была подготовка файлов к отправке на лазерную резку. Я следовал шаблонам, предоставленным Поноко. Инструкции также были помещены на нижнюю пластину, чтобы люди знали, как работает игра.
Получение запчастей от Поноко заняло чуть больше недели.
Шаг 3. Сборка верхней панели










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


Используйте 3 винта M3 и гайки, чтобы прикрепить плату к нижней пластине. Как вы можете видеть на картинке, при лазерной резке у меня были неправильные отверстия. Я исправил это для шаблона, который я разместил на github
Шаг 5. Подключение





Для подключения следуйте схеме. В исходном дизайне также использовались цифровые 1 и 0, но если бы переключатели не были в правильном положении, на плате возникли бы проблемы с загрузкой кода.
Я припаял провода к штекерным разъемам, подключенным к плате Arduino. Это позволит легко отсоединить плату в будущем, если вы когда-нибудь измените ее назначение. ЖК-дисплей также использует гнездовые разъемы для пайки.
Одна проблема, которую я заметил после подключения проводов, заключалась в подключении переключателей. Вы должны проверить соединения на наличие замкнутой цепи. Используя переключатели, которые я перечислил ранее, когда рычаг находится внизу, средний и верхний штифт закрыты. Поскольку я неправильно подключил свой провод, мне нужно было изменить свой код. Для кода, который я привожу в этом руководстве, предполагается, что ваш код подключен правильно.
Также при подключении металлической кнопки она должна быть в нормально разомкнутой конфигурации.
Шаг 6. Включение

Вы можете подключить плату к компьютеру через USB-кабель для ее питания или использовать портативное зарядное устройство для телефона, например, этот https://www.adafruit.com/products/1959
Шаг 7. Как играть



Когда он включается в простом режиме, вам будет присвоено случайное число от 0 до 15. Если в сложном режиме это будет 0-255.
Затем вы поворачиваете переключатели вверх, чтобы отобразить 1, или вниз, чтобы обозначить 0, затем нажмите кнопку, чтобы проверить, правильно ли оно у вас. Если все правильно, он будет воспроизводить правильный ответный тон и дать вам новый номер. В случае ошибки он будет жужжать и предлагать повторить попытку.
Значение переключателей слева направо:2 ^ 7 (128), 2 ^ 6 (64), 2 ^ 5 (32), 2 ^ 4 (16), 2 ^ 3 (8), 2 ^ 2 (4 ), 2 ^ 1 (2), 2 ^ 0 (1).
Если бы случайное число было 18, двоичное значение было бы 0001 0010. Это потому, что 2 ^ 4 (16) + 2 ^ 1 (2) равнялось бы 18.
Если бы это было 255, это было бы 1111 1111, так как все числа в сумме равны 255.
Шаг 8. Видео воспроизведения
Код
Github
https://github.com/keebie81/BinaryGamehttps://github.com/keebie81/BinaryGameСхема

Производственный процесс