Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Некоторое время назад я создал Instructable, детализирующий одну пару светофоров на макете.
Я также создал еще одну инструкцию, показывающую базовую структуру для использования беспроводного модуля NRF24L01.
Это заставило меня задуматься!
Во всем мире довольно много любителей, которые строят модельные города и железные дороги, и почти всегда у них есть светофоры того или иного вида.
Некоторые из них являются рабочими моделями, а другие предназначены только для эстетических целей.
Могу ли я создать работающую модель четырехсторонней светофорной системы и подключить их по беспроводной сети?
Я сел и подумал о своем списке возможных требований. Это было примерно так.
Контролируйте 4 направления движения, как перекресток.
В каждом направлении есть два огня; и каждая пара получает инструкции по беспроводной связи от какого-то блока управления.
Уметь определять и изменять последовательность работы огней,
- 1, 2, 3, 4 - по часовой стрелке
- 1, 3, 4, 2
- 1, 4, 2, 3
- 1, 4, 3, 2 - против часовой стрелки
- 1, 2, 4, 3
- 1, 3, 2, 4
- 1 + 3, 2 + 4 - 2 по 2 шт.
- 1 + 3, 2, 4
- 1, 3, 2 + 4
Вся последовательность должна управляться одним блоком управления, а принимающие блоки только включают и выключают свет.
Когда я сказал сделать модель, я имел в виду: сделайте настоящую модель, ничего особенного, но что-то, что на самом деле будет выглядеть примерно как настоящая вещь, возможно, может быть.
Шаг 1: амбициозный? Может быть
Требования к основным частям:
Блок управления и четыре комплекта ламп = пять Arduinos и пять беспроводных модулей. AliExpress приходит на помощь (снова).
Восемь светофоров. У меня плохая имитация 3D-принтера, который, как правило, дает больше кормов для мусора, чем годных к употреблению продуктов, но я подумал, что все равно попробую. Я нашел кое-что на Thingiverse, www.thingiverse.com/thing:2157324
Эта модель выглядела наименее сложной для моего принтера. Я хотел восемь, так что все еще испытывал удачу. Как оказалось, я обнаружил, что после пары неудачных попыток, если я сориентировал модель в определенном направлении (спереди назад), я получил приемлемые результаты. Всего я напечатал тринадцать и получил восемь пригодных для использования.
Это был отсортированный список основных частей. Остальные детали у меня уже были.
Полный список запчастей
- 5 разъемов Arduino UNO
- 5 беспроводных плат NRF24L01
- 5 x YL-105 (или аналогичные) коммутационные платы для NRF24L0s
- 8 х красных светодиодов
- 8 желтых светодиодов (у меня нет оранжевых светодиодов)
- 8 зеленых светодиодов
- 4 светодиода RGB
- Резисторы 28 х 220 Ом
- Макетные платы / печатные платы ??
- 8 х модель светофоров
- 6 x 8 длинных контактных разъемов (шестой предназначался для разнесения на плате управления, см. Видео)
- Термоусадочная трубка
- Провода перемычки
- Кусок оргалита или что-то плоское
- Другие деревяшки ??
- Покрасить ??
- Горячий клей
- Время, терпение и алкоголь по выбору
Шаг 2: Написание кода для блока управления
Это то, что я должен был сделать в первую очередь, на случай, если я действительно не смогу с этим справиться, что было бы препятствием.
Это была самая сложная часть проекта, но также и самая интересная для меня.
Мне пришлось сесть и определить все возможные комбинации изменений освещения и то, как они будут работать вместе синхронно.
Как и любой хороший дизайн, он начинался на бумаге с очень длинного списка чисел, и поскольку я хотел иметь возможность иметь несколько возможных рабочих последовательностей, список стал еще длиннее.
Но как только я был счастлив, что у меня есть все, что я считал необходимым, и после того, как я некоторое время смотрел на страницы с цифрами, мое ОКР сработало, и я начал видеть закономерности.
Организовав шаблоны, мне удалось собрать всю последовательность в один трехмерный массив и два двухмерных массива.
Все, что мне нужно было сделать сейчас, это найти способ манипулировать этими массивами для создания правильной последовательности и легких шагов.
Это заняло некоторое время, но мне удалось добиться этого менее чем за пятьдесят строк кода, включая комментарии и т. Д.
Код для этого не для слабонервных, но если вы разбираетесь в многомерных массивах, это не должно быть слишком сложно. Или кривая обучения для остальных.
Дело в том, что я считаю, что это работает и в любом случае не требует изменений. Но…………
Шаг 3: мод для коммутационной платы NRF24L01
Модуль NRF24L01 и коммутационная плата YL-105, к сожалению, не очень удобны для макетных плат.
Коммутационная плата частично решает проблему и, что более важно, делает ее устойчивой к 5 В, но она все еще не подходит для макетов.
Так что я стал немного изобретательным.
В моей коллекции «всякой всячины» у меня есть несколько 6-контактных разъемов с длинными контактами. Сортировка, которая требуется для создания Arduino Shields.
Я взял один из них и согнул штифты на 90 градусов.
Я снял одну из шин питания с макета и вставил заголовок в край макета.
Штыри питания остались на коммутационной плате. Теперь они мешают.
Поэтому я снял их и поместил с другой стороны коммутационной платы, так что теперь они выступают из задней части платы.
Для целей данного руководства мне потребуются пять модулей NRF24L01, поэтому я установил их по всей макетной плате, а затем закрепил шину питания вдоль всех контактов питания на коммутационной плате.
Он выглядел довольно аккуратно, пока я не подключил Arduinos, и он стал немного переполненным.
Плюс, что является важным моментом, после подключения шины питания все Arduinos будут подключены к одному источнику, и это было тем, чего я пытался избежать, поэтому я снова разобрал большую часть этого.
Я оставлю плату с парой модулей NRF24L01 на ней для прототипирования в будущем, так что это не пустая трата времени.
Шаг 4: Светофоры
Я нашел несколько небольших макетов на 170 точек. У них нет шины питания, поэтому моя модифицированная коммутационная плата все равно подойдет. Хотя под небольшим углом из-за высоты коммутационной платы.
Я построил четыре блока управления светофора одинаковыми, с одинаковыми цветами проводов, позиционированием и т. Д. Теперь они действительно автономны.
В качестве блока управления я поместил модуль NRF24L01 на печатную плату с RGB-светодиодами. Я использовал RGB, потому что, хотя мне не нужно было видеть все источники света, только красный и зеленый, они занимают меньше места.
Подключил светодиоды к Arduino обычным способом и добавил немного кода для отображения красного или зеленого состояния каждого набора светофоров.
Я старался соответствовать цветам моей проводки, чтобы я мог легко увидеть, сделал ли я что-то другое на одной из плат.
У меня есть несколько коротких наборов выводов Dupont, и поскольку провода слиплись, это упростило эту часть.
NRF24L01:
- CE Orange К выводу 10 Arduino (определено в коде)
- CSN Yellow To Arduino pin 9 (определяется в коде)
- SCK Green To Arduino pin 13 (обязательно)
- MOSI Blue To Arduino pin 11 (обязательно)
- MISO Purple To Arduino pin 12 (обязательно)
- ВКК красный до 5в. Если вы не используете коммутационные платы, это должно быть 3,3 В.
- GND Коричневый К Arduino GND
Световые блоки и контакты Arduino для светодиодов:
- Красный для красного светодиода
- Оранжевый для желтого светодиода (у меня оранжевых светодиодов нет)
- Зеленый для зеленого светодиода
- Черный для GND
Единственным моим отклонением от этого было то, что я подключил Control Arduino к светодиодам RGB. Я использовал белый и серый провода, потому что у меня закончились красные.
Шаг 5. Светофоры и тестирование
Это завершенный код, и каждый отдельный элемент управления также завершен. Все, что мне сейчас нужно, это сами светофоры.
Как я уже говорил, я нашел на Thingiverse несложную модель и мне удалось напечатать восемь, которые выглядели неплохо.
Я установил на светодиоды требуемый резистор на 200 Ом, а также перемычку и заземляющий провод.
После термоусадочной трубки все провода склеили горячим клеем.
Я решил покрасить их в черный цвет после того, как были установлены все светодиоды. Плохая идея, я должен был сделать это первым.
Я подготовил все к тесту, прежде чем двигаться дальше.
Шаг 6: Перекресток
Я решил закрепить их все на доске, поэтому теперь мне нужно было создать что-то похожее на перекресток.
Я живу в Великобритании, поэтому здесь мы едем не по той стороне дороги, и поэтому я сделал свой перекресток дружественным к Великобритании, насколько позволяли мои плохие художественные навыки.
Это было довольно просто и отнимало много времени; и я уверен, что на самом деле нет перекрестков, которые выглядели бы так, а на моем нет выбоин.
Я не хотел навсегда жертвовать своими Arduinos ради этого проекта, поэтому я пошел на компромисс, установив на каждую стойку по 10 мм и приклеив стойки к основанию платы горячим способом.
Что я сделал, так это приклеил мини-макетную плату к стороне Arduino горячим способом.
Во-первых, он удерживал NRF24L01 и отрывную плату от основания перекрестка, а во-вторых, я редко использую Arduino без какой-либо макетной платы, поэтому они все равно будут полезны.
Шаг 7: все готово
Все файлы кода включены.
Я не просматривал здесь код, так как этот Instructable достаточно длинный и без него.
Я надеюсь, что это было полезное руководство, даже если оно только показывает, как управлять рядом других плат Arduino по беспроводной сети с помощью NRF24L01 по очень разумной цене.
Если у вас есть какие-либо вопросы, не стесняйтесь оставлять комментарии, и я сделаю все возможное, чтобы помочь.