Световая головоломка: 9 шагов

Световая головоломка: 9 шагов
Световая головоломка: 9 шагов
Anonim
Световая головоломка
Световая головоломка

Добро пожаловать! Из этого туториала Вы узнаете, как сделать свой собственный световой пазл!

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

Вы узнаете, как собрать Arduino, который это контролирует, и как поместить его в небольшую коробку для будки! В этом руководстве не будет объяснения кода, лежащего в основе этого … хотя у меня будет ссылка на мой GitHub, где вы сможете скачать его и поэкспериментировать с ним.

Хорошо, надеюсь, вам понравится, и давайте приступим к делу!

Шаг 1: материалы

Материалы
Материалы

1. Arduino Uno Ред. 3

2. Protoshield - Уно-Леонардо

3. USB A naar USB B кабель - любой измеритель.

4. Rode Drukknop 7 мм (6 шт.)

5. Светодиод Groene - 5 мм Difuus (5x)

6. Резистор 10 кОм (11 шт.)

7. Паяльное оборудование.

8. Подводящий провод

9. Кабель

10. Корпус Arduino Uno.

11. 6 дополнительных резисторов (Ом не имеет значения, нам нужны стержни)

12. (Доступ к) электродрели.

Шаг 2. Выбор дизайна: концепция

Варианты дизайна: концепция
Варианты дизайна: концепция

Я начну с объяснения своего выбора дизайна, концептуально, эстетически и технически.

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

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

Я бился головой о стену, пробуя разные комбинации какое-то время, но не нашел закономерностей. Часто я придумывал головоломки, которые даже нельзя было решить. Но в конце концов я обнаружил, что если, например, у вас есть 4 источника света с 4 различными комбинациями переключателей света, вы можете создать ЛЮБУЮ комбинацию матрицы 2 ^ 4. Это означало, что если бы вы добавили комбинацию переключателей света, которую уже можно было создать с другими кнопками, эта комбинация ничего не добавила бы к вашей головоломке. И ЭТО означало, что каждая комбинация, которую вы назначили для кнопки, должна быть уникальной по сравнению с тем, что уже может быть создано другими кнопками. Я здесь немного отвлечусь … позвольте мне попытаться объяснить теорему на примере:

Две текущие комбинации кнопок:

(1) 1 - 0 - 0 - 1

(2) 1 - 1 - 0 - 0

Возможные комбинации (4): 0 - 0 - 0 - 0 (ноль)

1 - 0 - 0 - 1 (1)

1 - 1 - 0 - 0 (2)

0 - 1 - 0 - 1 (1 + 2)

Комбинация из комбинации этих кнопок:

0 - 1 - 0 - 1 (1 + 2)

Теперь, если бы мы добавили еще одну комбинацию, возможные комбинации, которые мы могли бы создать, масштабировались бы до 8. ИСКЛЮЧАЯ, если бы эта комбинация была бы 0 - 1 - 0 - 1!

3 текущие комбинации кнопок: (1) 1 - 0 - 0 - 1

(2) 1 - 1 - 0 - 0

(3) 0 - 1 - 0 - 1

Возможные комбинации (еще 4 !!!):

0 - 0 - 0 - 0 (ноль ИЛИ 1 + 2 + 3)

1 - 0 - 0 - 1 (1 ИЛИ 2 + 3)

1-1-0-0 (2 ИЛИ 1 + 3)

0 - 1 - 0 - 1 (3 ИЛИ 1 + 2)

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

Шаг 3. Выбор дизайна: эстетика

Выбор дизайна: эстетика
Выбор дизайна: эстетика

Я, так сказать, не совсем эстетически настроен … когда кто-то просит меня нарисовать космический корабль, нарисуйте треугольник, который «представляет» космический корабль. Это потому, что я практичен. И поэтому я сделал выбор в отношении эстетики, основанной больше на практичности, чем на визуальных эффектах. Следовательно - это должно было стать небольшой коробкой. То, что он был серым, никогда не волновал меня.

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

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

Шаг 4: выбор дизайна: технический

Варианты дизайна: технический
Варианты дизайна: технический

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

Но я МОГУ вам сказать, что я основывал свой выбор на том, чтобы сделать свою коробку маленькой и взяв за основу Arduino Uno. Поэтому я купил прототип щита, чтобы я мог объединить Arduino и компоненты в один сплошной блок. Я также позаботился о том, чтобы мои фонари и кнопки могли торчать из корпуса, который я купил для него, иначе это все равно будет дрянным дизайном.

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

Шаг 5: починка кнопок

Как исправить пуговицы
Как исправить пуговицы

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

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

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

Шаг 6: Подготовка корпуса

Подготовка жилья
Подготовка жилья

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

Итак, первое, что вам нужно сделать, это открыть корпус и сгладить неровности на дне. Они портят вам рост, и если вы их оставите, Arduino будет торчать. Удалите неровности, просверлив их, просто и просто. Вам также нужно будет просверлить отверстие в том месте, где будет торчать USB-кабель. Когда он станет достаточно большим, воспользуйтесь напильником, чтобы скруглить углы, ровно настолько, чтобы через них прошел кабель. Сверху сделайте 6 отверстий диаметром 6 мм в местах, где будут находиться пуговицы. Также просверлите овальное отверстие для всех светодиодов. Воспользуйтесь напильником, чтобы расправить края, чтобы они выглядели немного лучше.

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

Шаг 7: пайка

Пайка
Пайка

Извините за масштаб кнопок на схеме. Они были некорректно внедрены в программу, и я не мог это изменить.

Чтобы сэкономить место, мы собираемся использовать все функции Arduino Shield. Если вы посмотрите на картинку, вы заметите несколько отверстий, соединенных одной серебряной линией. Это линии, которые по умолчанию несут либо вход заземления, либо вход 5 В. Мы собираемся сделать много подключений к этим линиям вместо того, чтобы подключать их напрямую, поскольку это экономит нам место.

Начнем с огней. Вам нужно вставить резистор в разъемы 2, 3, 4, A2 и A3 и подключить их к плюсовому стержню светодиода. Сначала убедитесь, что резистор и светодиодные стержни были короче, чтобы они не занимали много места. Обязательно поместите все минусовые стержни в один ряд, чтобы мы могли позже соединить их с заземляющими соединениями как единое целое, сэкономив место.

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

Как только это будет сделано, вставьте кабель от одного из следующих входов рядом с концом резистора / отверстием, в которое будет вставлен один из стержней вашей кнопки. Входы: 9, 10, 11, 12, 13 и A0. (Хотя, если вы собираетесь использовать мой код позже в этом руководстве, вам нужно использовать ввод 8 вместо 9, потому что мой собственный ввод 9 был сломан. Вам также необходимо убедиться, что ваша «последняя» кнопка подключена к A0, поскольку это становится кнопкой сброса.)

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

Шаг 8: Добавление кода

Добавление кода
Добавление кода

Код GitHub

Здесь вы можете найти код проекта. Я уже объяснил основу того, как я его создал, в разделе «Выбор дизайна: концептуальный» ранее в этом руководстве.

Шаг 9: Собираем все вместе

Собираем все вместе
Собираем все вместе

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

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