Построение контроллеров на Raspberry Pi #2: мигание светодиодом
Светодиоды широко используются в потребительском, медицинском, автомобильном и промышленном оборудовании. Они обеспечивают визуальное оповещение о состоянии электронных игрушек, смартфонов и пользовательских устройств во время эксплуатации. Светодиоды также обеспечивают потрясающие эффекты, изменяя цвет, интенсивность света и частоту мигания. Эти электронные источники света из-за своей высокой энергоэффективности, яркости и большого срока службы заменяют собой лампы накаливания. Во втором проекте в серии статей про построение контроллеров на Raspberry Pi мы рассмотрим, как подключить светодиод к Raspberry Pi, и как управлять им с помощью кнопки. Электронное устройство, которое мы соберем, – это светодиодная мигалка, приводимая в действие с помощью кнопки.
Компоненты, которые нам понадобятся
Список компонентов, необходимых для сборки светодиодной мигалки на Raspberry Pi, приведен ниже:
-
(модель A+, B, B+, Pi 2 или Pi 3);
- микросхема оптоизолятора CNY74-4H-ND (корпус DIP 16 выводов);
- кнопка;
- резисторы 330 Ом (маркировка: оранжевый, оранжевый, коричневый, золотой), 0,25 Вт, 5%;
- светодиод (любого цвета); ; ; ;
- USB кабель.
Разнообразие компьютеров Raspberry Pi
Прежде, чем продолжить сборку нашей светодиодной мигалки на RPi, давайте кратко поговорим о разнообразии компьютеров Raspberry Pi, доступных на рынке. Существует шесть типов дешевых одноплатных компьютеров RPi (Raspberry Pi), из которых производители, инженеры, преподаватели и студенты могут выбрать наиболее подходящий.
Модель A+ – это одноплатный компьютер с 256MB RAM, ARM процессор 700 МГц и возможностью работать от батареи 9В. Основные разъемы для подключения периферии к A+:
- разъем LCD;
- разъем камеры;
- HDMI;
- USB 2.0;
- аудио разъем 3,5 мм;
- 40-пиновый двухрядный разъем GPIO (входы/выходы общего назначения);
- разъем Ethernet.
Модель B обеспечивает 512MB RAM, что вдвое больше, чем у A+. Кроме того, в версии B RPi появились дополнительный USB порт и разъем композитного видео. RCA разъем композитного видеосигнала позволяет подключать Raspberry Pi к обычному телевизору. Двухрядный разъем, установленный на модели B RPi, обеспечивает доступ только к 26 выводам GPIO по сравнению с версией A одноплатного компьютера. Стандартная SD карта предназначена для хранения операционной системы Linux и файлов приложений.
Рисунок 2 – Модель B – это расширенная версия одноплатного компьютера Raspberry Pi модели A+, предоставляющая дополнительный USB порт и выходной разъем композитного видеосигнала для подключения телевизора
Следующим этапом эволюции Raspberry Pi стала модель B+ одноплатного компьютера. Модель B+ RPi имеет 4 USB порта, вместо двух, как в модели B. Она включает в себя 40-пиновый двухрядный разъем GPIO и слот карты памяти microSD, вместо громоздкой SD карты, как в модели B. HDMI разъем, который был предусмотрен в других моделях RPi, стал стандартным в модели B+.
Рисунок 3 – Модель B+ обеспечивает 40-пиновый двухрядный разъем GPIO и слот карты памяти microSD для хранения операционной системы Linux и файлов приложений
Следующей моделью Raspberry Pi является Pi 2. Pi 2 модель B имеет 1GB RAM, четырехъядерный процессор 900 МГц (BCM2836, ARM v7), по сравнению с предыдущими моделями RPi, использующими одноядерный процессор (BCM2835, ARM v6). Pi 2 обладает теми же разъемами подключения периферии, что и модель B+, тем самым обеспечивая совместимость для аппаратных проектов. Тем не менее, ваши существующие образы SD карт для Raspberry Pi могут не заработать, так как встроенное программное обеспечение и ядро должны быть перекомпилированы для нового процессора. Поэтому обновление встроенного программного обеспечения и операционной системы Linux потребуют дополнительного внимания при модификации аппаратного обеспечения.
Рисунок 4 – Raspberry Pi 2 модель B с четырехъядерным процессором
Последней моделью в ряде Raspberry Pi, за исключением Raspberry Pi Zero, является Pi 3. Pi 3 модель B уже имеет четырехъядерный процессор 1,2 ГГц (ARM v8), а также интерфейсы Wi-Fi и Bluetooth. По разъемам Raspberry Pi 3 совместим с версией Pi 2.
Рисунок 5 – Raspberry Pi 3 модель B с четырехъядерным процессором 1,2 ГГц, Wi-Fi и Bluetoth
В проекте светодиодной мигалки может быть использована любая из этих версий Raspberry Pi.
Структурная схема светодиодной мигалки на RPi
Электронную светодиодную мигалку можно легко собрать, используя микросхему таймера 555, несколько резисторов и конденсаторов и конечно светодиод. Единственное различие между электронной светодиодной мигалкой и устройством на RPi заключается в том, что скорость мигания регулируется с помощью программного обеспечения, вместо изменения значений подключенных резисторов и конденсаторов. Для построения мигалки на RPi необходимо четыре блока на структурной схеме: кнопка, Raspberry Pi, оптоизолятор и светодиод с токоограничивающим резистором. Структурная схема светодиодной мигалки на Raspberry Pi показана ниже.
Рисунок 6 – Компоненты, необходимые для сборки светодиодной мигалки на Raspberry Pi
Ниже приведена схема соединений компонентов светодиодной мигалки на RPi.
Рисунок 7 – Модифицированная структурная схема светодиодной мигалки на RPi с реальными компонентами. Обратите внимание, что входные и выходные компоненты подключены к назначенным им выводам GPIO
Несмотря на то, что я использовал Raspberry Pi модель B, вы можете использовать другие версии одноплатного компьютера, описанные выше. А теперь давайте обсудим работу оптоизолятора.
Что такое оптоизолятор?
Оптоизолятор представляет собой электронную схему, которая отделяет высоковольтные сигналы и источники от низковольтных цепей. Технология электрической сигнальной изоляции осуществляется с помощью пары из светодиода и фототранзистора. Светодиод при правильном подключении и при протекании через него электрического тока испускает невидимый свет или фотоны. Прямое смещение – это технический термин, используемый для описания подключения и управления протеканием электрического тока через фототранзистор. Невидимый свет или фотоны ударяют светочувствительную поверхность фототранзистора, что позволяет ему проводить ток от вывода коллектора к эмиттеру и далее на корпус. Протекание электрического тока означает, что на фототранзистор подано прямое смещение, и он «включился», как электронный коммутатор. Внешняя электрическая цепь или электронный компонент, подключенный к фототранзистору также «включится». Приложенный высоковольтный источник или сигнал изолирован от низковольтной цепи благодаря фотонному интерфейсу между светодиодом и фототранзистором. Высокое напряжение никогда электрически не соединяется с низковольтным источником напряжения.
Рисунок 8 – Условное обозначение оптоизолятора
Использование оптоизолятора в ваших проектах контроллеров на Raspberry Pi являетя хорошим способом для использования высоковольтных источников без угрозы повреждения одноплатного компьютера. Бортовой источник питания +5В будет использоваться для повышения яркости светодиода. Оптоизолятор будет включать фототранзистор, который будет управлять светодиодом с помощью встроенного источника питания +5В на плате Raspberry Pi. Теперь, когда вы знаете об оптоизоляторе, давайте соберем схему светодиодной мигалки на RPi!
Аппаратная часть светодиодной мигалки на RPi
Собрать светодиодную мигалку на RPi, используя схему соединений на беспаечной макетной плате или электрическую принципиальную схему, относительно просто. На рисунках 9 и 10 показаны обе схемы. Если вы только изучаете, как собираются электронные схемы, я предлагаю использовать для сборки данного проекта схему соединений на беспаечной макетной плате. Не забудьте обратить внимание на переходник для RPi, который вы используете. Распиновки различных переходников RPi могут различаться.
Рисунок 9 – Схема соединений на беспаечной макетной плате для сборки светодиодной мигалки на RPi. Обратите внимание на размещение электронных компонентов на печатной плате, особенно оптоизолятор (CNY74-4H-ND) и переходник для RPi Рисунок 10 – Светодиодная мигалка на RPi. Схема электрическая принципиальная
В качестве дополнительного справочного материала, чтобы помочь в сборки схемы светодиодной мигалки на RPi, ниже приведена распиновка микросхемы оптоизолятора. Элемент оптоизолятора на схеме соединений из Fritzing, к сожалению, не дает информацию о тома, как пары светодиод-фототранзистор (оптические каналы) расположены внутри 16-пинового DIP корпуса. Описание выводов оптоизолятора CNY74-4H-ND показано ниже на рисунке 11.
Рисунок 11 – Цоколевка микросхемы четырехканального оптоизолятора CNY74-4H-ND
После завершения сборки схемы светодиодной мигалки на Raspberry Pi, перед подачей питания на RPi я предлагаю перепроверить всё на наличие ошибок соединения. Ниже приведена фотография собранной светодиодной мигалки. Вы можете использовать при сборке эту фотографию в качестве эталона. И заключительная часть проекта – написать код, который позволит устройству работать должным образом.
Рисунок 12 – Собранная светодиодная мигалка на Raspberry Pi
Код на питоне для светодиодной мигалки на Raspberry Pi
Заключительный этап проекта светодиодной мигалки на RPi – добавить код на Python. Для разработки контроллеров на RPi скриптовый язык Python очень прост в использовании при чтении состояния электрических выключателей, электронных датчиков и при управлении светодиодами, двигателями постоянного тока и электромеханическими реле. Как было показано в первой части этой серии статей, подключение кнопки и программирование Raspberry Pi на чтение состояние ее электрических контактов выполнить было относительно просто. Этот проект является продолжением первой части, где нажатие кнопки позволит начать светодиоду мигать с заданной скоростью. При отпускании кнопки светодиод перестанет мигать. Чтобы объяснить работу программы, в коде на питоне приведено множество комментариев. В листинге 1, приведенном ниже, показан хорошо прокомментированный код на Python для светодиодной мигалки на Raspberry Pi. Скрипт называется pbswitch_flasher.py . Откройте редактор nano в LXTerminal или Python IDLE и наберите код светодиодной мигалки, показанный ниже в листинге 1.
Чтобы запустить код на своем RPi, наберите в LXTerminal следующую команду
Теперь нажмите и удерживайте кнопку, светодиод должен начать мигать. Поздравляю с созданием второго контроллера на Raspberry Pi! Эксперимент со скоростью мигания путем изменения значения времени (в секундах) до 1 секунды. Строка кода, которую необходимо изменить показана ниже:
Должны быть изменены обе строки с инструкциями, чтобы сохранить равное время, когда светодиод горит и когда погашен. Создайте другие шаблоны мигания с помощью установки неравных значений времени в функциях time.sleep() .
В третьей части «Построения контроллеров на Raspberry Pi» мы рассмотрим, как управлять небольшим двигателем постоянного тока с помощью датчика освещенности (фотоэлемента).