4-сторонняя система светофоров с использованием 5 беспроводных модулей Arduinos и 5 NRF24L01: 7 шагов (с изображениями)
4-сторонняя система светофоров с использованием 5 беспроводных модулей Arduinos и 5 NRF24L01: 7 шагов (с изображениями)
Anonim
Image
Image
Честолюбивый? Может быть!
Честолюбивый? Может быть!

Некоторое время назад я создал 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
Мод для коммутационной платы NRF24L01
Мод для коммутационной платы NRF24L01
Мод для коммутационной платы NRF24L01
Мод для коммутационной платы NRF24L01
Мод для коммутационной платы NRF24L01
Мод для коммутационной платы NRF24L01
Мод для коммутационной платы 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. Светофоры и тестирование

Image
Image
Светофоры и тестирование
Светофоры и тестирование
Светофоры и тестирование
Светофоры и тестирование

Это завершенный код, и каждый отдельный элемент управления также завершен. Все, что мне сейчас нужно, это сами светофоры.

Как я уже говорил, я нашел на Thingiverse несложную модель и мне удалось напечатать восемь, которые выглядели неплохо.

Я установил на светодиоды требуемый резистор на 200 Ом, а также перемычку и заземляющий провод.

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

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

Я подготовил все к тесту, прежде чем двигаться дальше.

Шаг 6: Перекресток

Перекресток
Перекресток
Перекресток
Перекресток
Перекресток
Перекресток
Перекресток
Перекресток

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

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

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

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

Что я сделал, так это приклеил мини-макетную плату к стороне Arduino горячим способом.

Во-первых, он удерживал NRF24L01 и отрывную плату от основания перекрестка, а во-вторых, я редко использую Arduino без какой-либо макетной платы, поэтому они все равно будут полезны.

Шаг 7: все готово

Все сделано
Все сделано
Все сделано
Все сделано

Все файлы кода включены.

Я не просматривал здесь код, так как этот Instructable достаточно длинный и без него.

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

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