ПРОГРАММИРОВАНИЕ РЕЖИМОВ СВЕТОДИОДНОГО КУБА ДЛЯ ОТОБРАЖЕНИЯ ДОМА В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ

2.6
(11)

Соловьева Анастасия Юрьевна, Марочкин Владимир Александрович

Научный руководитель: Железникова Мария Александровна, учитель информатики МБОУ — гимназия №16 г. Орла

Муниципальное бюджетное общеобразовательное учреждение – гимназия № 16 г. Орла

E-mail: school16_orel@mail.ru

Аннотация

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

Для возможности выводить символы и удобства исследования принято решение создавать светодиодный куб размером 8х8х8. Суть этого куба состоит во включении любого из 512 светодиодов, показывающих некоторую анимацию в 3D. В этом кубе будет применяться динамическая индикация.

Мы выдвинули гипотезу: информацию с высотного можно передавать с помощью макета без участия видеонаблюдения.

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

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

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

Применили методы исследования:

теоретический — анализ справочной и научной литературы

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

В настоящее время всё большую популярность набирают устройства, привлекающие внимание своей необычной формой и цветом. Одним из таких устройств является светодиодный куб.

Для создания потребовалось:

Светодиоды с длинными ногами 514 штук (пара для индикации);

Сдвиговые регистры 74hc595n — 9 штук;

Транзисторы bd241c — 8 штук;

Резисторы — 66 штук (на 220 ом для светодиодов);

4 макетные платы (самая большая размером 8х12см);

Разъемы — 128 штук;

2 Кнопки (регуляция скорости и режимов).

Рисунок 1 — Результат

У нас из 512 получается полностью светящийся куб будет потреблять почти 5 ампер, но так как использована динамическая индикация, то необходимо разделить это число на 8. Куб будет употреблять максимум пол ампера, и питать его можно как просто от USB, так от любого блока питания на 5 Вольт (любого зарядного устройства для смартфона или планшета).

Самым сложным является спайка всех 512 светодиодов в один большой светодиодный куб 8х8х8. Будем соединять светодиоды не по горизонтальным слоям, а по вертикальным, то есть мы спаяем 8 вертикальных слоев. Следующий важный этап в постройке — сгибание ног светодиода. Снизу сгибаем обе ноги вправо, затем нижнюю длинную отгибаем на 90 градусов прямо по тому месту, где у неё расширения. Собираем сетку на оснастке справа налево, сверху вниз. Светодиоды можно оставлять одной ногой за штырёк. Так сетка получается жесткой и идеально ровной, но есть риск припаять к штыку горизонтальные ноги. Паяем с горизонтальными с вертикальными. Для пайки использован глицериновый флюс. 

PI (последовательный периферийный интерфейс, шина SPI) — последовательный синхронный стандарт передачи данных в режиме полного дуплекса, предназначенный для обеспечения простого и недорогого высокоскоростного сопряжения микроконтроллеров и периферии. SPI также иногда называют четырёхпроводным интерфейсом.

В отличие от стандартного последовательного порта, SPI является синхронным интерфейсом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая (ведомая) периферия синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участия в передаче по SPI.

Передача осуществляется пакетами. Длина пакета, как правило, составляет 1 байт (8 бит), при этом известны реализации SPI с иной длиной пакета, например, 4 бита. Ведущее устройство инициирует цикл связи установкой низкого уровня на выводе выбора подчиненного устройства (SS) того устройства, с которым необходимо установить соединение. При низком уровне сигнала SS:

схемотехника ведомого устройства находится в активном состоянии;

вывод MISO переводится в режим «выход»;

тактовый сигнал SCLK от ведущего устройства воспринимается ведомым и вызывает считывание на входе MOSI значений передаваемых от ведущего битов и сдвиг регистра ведомого устройства.

Подлежащие передаче данные ведущее и ведомое устройства помещают в сдвиговые регистры. После этого ведущее устройство начинает генерировать импульсы синхронизации на линии SCLK, что приводит к взаимному обмену данными. Передача данных осуществляется бит за битом от ведущего по линии MOSI и от ведомого по линии MISO. Передача осуществляется, как правило, начиная со старших битов, но некоторые производители допускают изменение порядка передачи битов программными методами. После передачи каждого пакета данных ведущее устройство, в целях синхронизации ведомого устройства, может перевести линию SS в высокое состояние.

 Делая проекты на Ардуино, где используется много светодиодов,

понимаем, что в значительной степени ограничен контактами Arduino и не может создавать огромные проекты, требующие большого количества контактов. Например, 16 светодиодов управляются всего лишь тремя контактами Arduino. Ключевым элементом является arduino сдвиговыми регистрами 74hc595. Каждый сдвиговый регистр 74HC595 может принимать до 8 светодиодов, а с помощью последовательных цепочек регистров можно увеличить контакты платы от условных 3-х до бесконечного числа.

Основная часть программы представлена ниже. Здесь массив данных cube отправляется на сдвиговые регистры.

void renderCube() {

for (uint8_t i = 0; i < 8; i++) {

digitalWrite(SS, LOW);

if (INVERT_Y) SPI.transfer(0x01 << (7 — i)); // это слои, инвертированные

else SPI.transfer(0x01 << i); // слои

for (uint8_t j = 0; j < 8; j++) {

if (INVERT_X) SPI.transfer(cube[7 — i][j]); // а вот тут уже колонны

else SPI.transfer(cube[i][j]);

Таким образом,  мы запрограммировали следующие режимы: горящий куб; вывод текста; постепенное наполнение куба; увеличивающийся и уменьшающийся куб; отображение слоёв; дождик; бегающий кубик. На данный момент у нас создан только макет системы, на котором запрограммированы вышеперечисленные нами режимы работы. Мы ищем объект для практического применения светодиодного куба.

Сняв куб на видео и замедлив его, мы можем заметить, что режим горящий куб — на самом деле иллюзия. Нам кажется, что куб светится, но на самом деле это не так: куб прорисовывается послойно, причём делает это очень быстро, то есть перерисовывается сотни раз в секунду.

 

Список использованных источников

  1. Алфёров Ж.И. История и будущее полупроводниковых гетероструктур. – Текст : непосредственный // Физика и техника полупроводников. – 1998. – Т. 32. – № 1. – С. 3-18.
  2. Литвиненко Н.А. Технология программирования на С ++ : Win32 API-приложения : учебное пособие / Н.А. Литвиненко. – СПб. : БХВ – Петербург, 2010. – Текст : непосредственный.
  3. Светодиодные лампы, фонари, светильники – продукция и подсветка по технологии 21 века : [сайт]. – URL: http://www.ledlight. com.ua/articles/revolution.html. – Текст : электронный.
  4. Сдвиговый регистр 74hc595 Arduino : [сайт]. – URL: https:// arduinoplus. ru/74hc595-arduino/. – Текст : электронный.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 2.6 / 5. Количество оценок: 11

Оценок пока нет. Поставьте оценку первым.

Добавить комментарий