Jump to content

Search the Forum

'программируемая светодиодная лента'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forum 💡 LED Lighting Solutions ▪️ Design Ideas

  • Select Language
    • English
    • Русский
    • Deutsch
    • Français
    • Dansk
    • Español
    • Suomen
    • Italiano
    • Polski
    • Português
    • Română
    • Türkçe
    • Nederlands
    • Norsk
    • Čeština
    • العربيه
    • 繁體中文

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Professionals
  • Designers
  • LED Advertising
  • Lighting Solution Development
  • Members

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website


Phone


City


Information

Found 11 results

  1. Контроллер SMART-K6-SPI для светодиодной ленты «Бегущий огонь» Светодиодные ленты с управлением SPI широко используются для создания динамических световых эффектов разной сложности. Функциональность всей системы будет зависеть от выбранного контроллера. Оборудование серии SMART – это идеальный вариант для реализации бюджетных динамических цветосветовых решений при оформлении помещений в ресторанах, кафе, оформлении витрин и создании рекламных вывесок. Контроллер SMART-K6-SPI для светодиодной ленты «Бегущий огонь» уже содержит 32 встроенных цветовых эффекта, выбор которых легко осуществляется с помощью пульта ДУ. Контроллер поддерживает регулировку яркости свечения и скорости выполнения программ. Настройка и управление контроллером осуществляется с помощью радиопульта SMART-R3-RGBW. Связь на чистоте 2,4 Ггц обеспечивает устойчивое управление до 20 метров на открытом пространстве. При первоначальной настройке контроллера с помощью цифровых кнопок пульта можно выбрать тип микросхемы (поддерживает большинство популярных светодиодных микросхем), установить длину ленты до 1024 пикселя, назначить нужную последовательность RGB. Пульт позволяет выбрать нужный режим, отрегулировать скорость выполнения программы, изменять яркость свечения, запомнить два любых понравившихся режима. 022658 Контроллер SMART-K6-SPI (12-24V) 022659 Пульт SMART-R3-RGBW (1 зона, SPI, 2.4G) Контроллер SMART-K6-SPI для лент «Бегущий огонь» – это бюджетное, простое в установке и управлении оборудование, которое оптимально использовать для несложных динамических осветительных систем. OPTOMLEDS.RU - Высококачественное светодиодное оборудование и сопутствующие материалы для создания систем освещения различных уровней сложности. ▪️ Разработка светодиодных решений индивидуально, под заказ ▫️ Контроль качества производства ▪️ Широкий ассортимент продукции - более 5000 актуальных наименований ▫️ Складская программа - более 80% наименований постоянно присутствует на складе ▪️ Совместимость устройств и удобный подбор товара ▫️ Техническое сопровождение - инструкции, схемы подключения, 3D-модели, IES-файлы ▪️ Техническая поддержка и гарантийное обслуживание ▫️ Отдел исследований и контроля качества: тестирования, испытания, входной контроль ▪️ Фотометрическая лаборатория для измерения параметров светотехнических устройств
  2. Светильник-лампа шар, имитирующая восход солнца на базе контроллера Wemos Это светодиодный светильник шар на базе контроллера Wemos, который может имитировать восход солнца. При этом, с помощью смартфона, можно установить будильник и продолжительность восхода, то есть, лампа будет имитировать восход солнца, начиная со времени срабатывания будильника. Что касается создания самого проекта, то он должен был решать три задачи: Он должен был быть полезным: многие проекты, которые мы можем найти в интернете, являются наукоемкими, и в основном, они классные и веселые. Но они могут потерять долгосрочную полезность или большое внимание аудитории. Хотелось создать что-то для себя, что семья будет использовать каждый день. Он должен был выглядеть круто: не хотелось делать то, что выглядит неровным, уродливым, что никто не хотел бы иметь в своем собственном доме. Это должно было быть что-то как можно ближе к реальному продукту. Он должен был быть веселым: это действительно была высокая цель, изобрести то, что понравится людям, с чем они могли отдыхать и играть, при соблюдении вышеприведенных критериев. Для создания проекта использовались следующие компоненты: • Светодиодная лента на базе светодиодов WS2813 RGB – 1 метр https://ru.aliexpress.com/wholesale?minPrice=&maxPrice=&isBigSale=n&isFreeShip=y&isFavorite=n&isMobileExclusive=n&isLocalReturn=n&shipFromCountry=&shipCompanies=&SearchText=WS2813&CatId=202004316&g=y&SortType=total_tranpro_desc&initiative_id=SB_20170503230652&needQuery=n&tc=af Использовалась не влагозащищенная версия, которая содержит 60 светодиодов на метр. Но, можно также использовать и светодиодную ленту на базе WS2812 и WS2812b, свет будет точно таким же, к тому же они дешевле. Просто светодиодная лента WS2813 более надежна, так как содержит дублирующие линии соединения для линии передачи данных, так что, если вы сломаете один светодиод, остальная часть ленты продолжит нормально работать. • Лампа Ikea Fado • Микроконтроллер с поддержкой Wi-Fi, в этом проекте использовался WEMOS D1 mini V2.2.0 WIFI (ESP8266) • Блок питания 5V, 3А Обратите внимание, что вам нужно будет уменьшить максимальную яркость, или использовать блок питания, обеспечивающий как минимум 4А. • Провода Шаг 1: Изменение проводки внутри лампы На этом этапе вам надо подготовить силовую часть проводки для питания светодиодной ленты и микроконтроллера. Для этого вам нужно подключить блок питания через соответствующий разъем «папа – мама», вывести провода питания для светодиодной ленты и микроконтроллера. Возможно, потребуется немного пайки. Шаг 2: Еще немного проводки и пайки Контроллер mini Wemos D1 поставляется без паяных штыревых контактов, поэтому вам нужно либо самостоятельно припаять их, либо поступить как в этом примере. В отверстия контактов, просто была вставлена колодка со штыревыми контактами, а с другой стороны платы одеты разъемы с проводами. Но в этом случае, надо убедиться, что получился хороший контакт между контактами. Подключите соответствующее питание (+5V и GND) к микроконтроллеру. Сделайте то же самое для светодиодной ленты. Затем подключите зеленый провод линии передачи данных от светодиодной ленты к выходу «D2» на микроконтроллере Wemos. В конце, установите конденсатор емкостью 1000 мкФ на разъем питания (между плюсом и минусом) для сглаживания токовой нагрузки при пиковых значениях. Шаг 3. Установка светодиодной ленты Это самая «трудная» часть. После закрепления контроллера Wemos сбоку от патрона лампочки вам нужно свернуть светодиодную ленту так, чтобы она оставалась в свернутом виде и равномерно распределяла свет. Для этого можно использовать липкую ленту, которая не оставляет следов, например, малярный скотч. Сначала был сделан первый виток и приклеен к основанию лампы Fado. Потом можно продолжить скручивать ленту, постепенно поднимаясь вверх. В самом верху, в патрон лампы, был установлен длинный винт, который поддерживает верхние витки светодиодной ленты. Затем, проверьте, все ли соединения верны и вставьте всю эту конструкцию в стеклянный плафон. Шаг 4: Программирование контроллера Wemos На этом шаге, надо загрузить программный код в ваш контроллер Wemos с помощью программного обеспечения Arduino IDE. Для этого надо подключить микроконтроллер к компьютеру через USB порт, запустить программу Arduino IDE, выбрать соответствующую плату Wemos и загрузить в него программный код. Перед загрузкой программного кода в микроконтроллер, в нем надо будет изменить две строчки, которые отвечают за идентификацию в сети Wi-Fi: const char* ssid = "YOUR_WIFI_HERE"; const char* password = "YOUR_PASS_HERE"; Затем, после подключения питания к микроконтроллеру, вы сможете управлять лампой через любой браузер на вашем компьютере или смартфоне с Wi-Fi. Для подключения к лампе, в строке браузера надо набрать IP адрес контроллера и команду. Например, строка следующего вида: http://192.168.0.IP_OF_YOUR_LAMP/?c=17&b=9&m=0&s=1484181161&v=5 включит свет с фиксированным цветом (цвет # 17). К счастью, вам не придется посылать такие длинные команды, так как они все реализованы в мобильном приложении, о котором рассказывается в видео в начале инструкции. Программный код и ссылка на мобильное приложение будут предоставлены немного позже. Источник: instructables
  3. Светодиодная звезда на елку с питанием от двух батареек АА В далеком прошлом, эта рождественская звезда изготавливалась на основе декодера управляющей логики, транзисторов и светодиодов. Теперь, спустя многие годы, этот проект вновь был реализован, используя современные технологии, включая микроконтроллер, преобразователь напряжения DC/DC и светодиодный драйвер постоянного тока. Для своего питания, проект использует две батарейки типа АА, поэтому необходимо использовать конвертер напряжения DC/DC, так как синие светодиоды имеют прямое падение напряжения чуть более 3V, а чип светодиодного драйвера около 0,6V. Две новые батарейки АА выдают напряжение чуть больше 3V, а перезаряжаемые аккумуляторные батареи, даже при полной зарядке не могут дать достаточного потенциала. Для ликвидации этой проблемы, используется преобразователь напряжения, который преобразует номинальные 3V от батареек в необходимые для работы 3,71V. Микроконтроллер может работать от напряжения преобразователя DC / DC или непосредственно от батареек. Также, микроконтроллер может отключать преобразователь DC/DC во время спящего режима для экономии заряда аккумуляторов, в этом режиме преобразователь потребляет около 1 мкА. Сам микроконтроллер PIC16LF1703 надежно работает до 1,8V и является очень экономичным в потреблении электроэнергии, особенно в спящем режиме. Светодиодный драйвер принимает SPI команды от микроконтроллера и на их основании включает определенные светодиоды. Программное обеспечение микроконтроллера использует стандартную машинную архитектуру, для вывода анимации. Этот небольшой рождественский проект содержит 16 светодиодов двух разных цветов свечения, установленных на печатной плате в виде звезды. Светодиоды управляются индивидуально от микроконтроллера, который запрограммирован на несколько режимов работы, чтобы создать хорошие визуальные эффекты. Поскольку потребление электроэнергии не велико, звезда может непрерывно работать в течении как минимум одного дня. Выбор использования обычных светодиодов, обусловлен их небольшим размером по сравнению с SMD светодиодами. Светодиодный драйвер обеспечивает постоянный ток светодиодов 5мА. Микроконтроллер выполняет 3 основные функции: Посылает команды SPI на драйвер для включения и отключения светодиодов. Контролирует напряжение батареек или аккумуляторов, если напряжение падает ниже допустимого, то он переводит преобразователь DC/DC в спящий режим. Обрабатывает сигналы от внешней кнопки. При помощи внешней кнопки подключенной к микроконтроллеру, можно изменять режимы работы светодиодов, менять скорость отображения, а также переводить звезду в спящий режим. На рисунке ниже представлена полная электрическая схема звезды: На рисунке ниже представлена архитектурная схема работы программного обеспечения, и схема его динамического поведения: Конструкция системы и принцип управления светодиодами Светодиодный драйвер управляется 16-битными SPI пакетами, в одном таком пакете, каждый бит соответствует одному светодиоду. Когда определенный бит, равен единице, то соответствующий светодиод включается, когда он равен нулю, то светодиод выключается. bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LED 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Чтобы создать последовательность, пакеты битов посылаются на светодиодный драйвер с заданной периодичностью. Базовый период равняется 62мс. Он может меняться в пределах от 81мс до 81*255мс. Например, программа, которая имеет круговые переключения светодиодов во времени, выглядит следующим образом: При создании проекта были использованы следующие электронные компоненты: Светодиодный драйвер TLC5925IDWR Микроконтроллер PIC16LF1703-I/SL Конвертер DC/DC MCP1640T-I/CHY Отсек для батареек Конденсатор 22 мкФ Конденсатор 27 пкФ Конденсатор 4.7 мкФ Кнопка, монтируемая на PCB плату Диодная сборка MBR0530T1G Резистор 300 кОм Резистор 620 кОм Резистор 4.3 кОм Светодиоды 8 мм, синие и красные Светодиоды 10 мм, желтые и красные По материалу hackaday
  4. Интерактивный светодиодный шар (купол) Geodesic Интерактивный купол Geodesic состоит из 120 треугольников со светодиодом и сенсором в каждом из них. Каждый светодиод может быть адресован индивидуально, а каждый датчик настроен специально для своего треугольника. Управление куполом выполняется с помощью микроконтроллера Arduino, который зажигает светодиоды и выдает определенный MIDI-сигнал, в зависимости от того, на какой треугольник зритель положит руку. Купол проектировался в качестве забавного дисплея, который привлекает людей к свету, электронике и звукам. Поскольку купол хорошо делится на пять одинаковых частей, было создано пять отдельных MIDI-выходов, каждый из которых может воспроизводить разный звук. Это делает купол гигантским музыкальным инструментом, идеальным для одновременного воспроизведения музыки с участием нескольких человек. Помимо воспроизведения музыки, купол запрограммирован на отображение световых эффектов. Окончательная структура имеет размер чуть больше метра в диаметре и 70 см в высоту, и в основном выполнена из дерева, акрила и деталей напечатанных на 3D-принтере. Шаг 1: Необходимые материалы Для этого проекта вам потребуются следующие материалы: Древесина для распорок и основания купола (количество зависит от типа и размера купола); Адресуемая светодиодная лента (Color LED Pixel Strip 160led WS2801 DC 5V) – 5 метров; Микроконтроллер Arduino Uno (на базе процессора Atmega328); Протоплата (с двухсторонней печатной платой PCB Universal (7 x 9 см)); Акриловый лист для рассеивания света светодиодов (прозрачный, размером 300 х 300 x 3 мм); Блок питания 220V АС / 12V DC 15A 180Вт. (без вентилятора охлаждения); Преобразователь напряжения для Arduino (LM2596 DC-DC Buck Converter 1.23V-30V); Преобразователь напряжения для датчиков и светодиодов (12A CC CV Module); Модуль обнаружения препятствий с ИК-датчиками для Arduino (Infrared Obstacle Avoidance Sensor Module) – 120 шт; Модуль с 16-канальным мультиплексором (CD74HC4067) – 5 шт; Модуль с 8-канальным мультиплексором (Multiplexer Breakout - 8 Channel (74HC4051)) – 6 шт; Микросхема двухканального мультиплексора (MAX4544CPA +) – 5 шт; Соединительные провода; Штыревые контакты (однорядная колодка на 40 контактов длиной 2,54 мм); MIDI-разъем (MIDI разъем совместимый с материнскими платами (5-контактный DIN)) – 5 шт; Резистор 220 Ом для MIDI разъемов – 10 шт; Металлические разделители (стойки) для крепления электроники к куполу (Stand-off Spacer Hex M3 Male x M3 Female); Резьбовые адаптеры (дерево – металл) для установки металлических разделителей; Эпоксидный клей; Изолента; Припой. Шаг 2: Проектирование геодезического купола В интернете существует несколько онлайн ресурсов для создания собственного геодезического купола. Эти сайты предоставляют калькуляторы для расчета куполов, которые рассчитывают длину каждой стороны (то есть стойки) и количество соединителей, необходимых для любого типа купола, который вы хотите построить. Сложность геодезического купола (т.е. плотность треугольников) определяется его классом (1V, 2V, 3V и т. д.), причем более высокая сложность становится лучшим приближением к идеальной сферической форме. Чтобы построить свой собственный купол, сначала вам надо выбрать диаметр купола и его класс. Для расчета этого купола использовался сервис под названием Domerama (www.domerama.com). С его помощью был рассчитан купол сложностью 4V, усеченный до 5/12 сферы с радиусом 40 см. По результатам расчета, для этого типа купола предусмотрено шесть различных стоек: • 30 X "A" - 8,9 см • 30 X "B" - 10,4 см • 50 X "C" - 12,4 см • 40 X "D" - 12,5 см • 20 X "E" - 13,0 см • 20 X "F" - 13,2 см В общей сложности это 190 стоек, длина которых составляет 2 223 см. Для их изготовления использовались сосновые рейки размером 10 x 30 мм. Для установки стоек были спроектированы и напечатаны на 3D-принтере пластиковые соединители. В зависимости от количества установочных мест в соединителе, для купола 4V 5/12 потребовалось следующее количество соединителей: • 4 местный соединитель – 20 шт; • 5 местный соединитель – 6 шт; • 6 местный соединитель – 45 шт. 3D-модели соединителей для программы Autocad в STL-файлах доступны по ссылкам ниже: 4joint_v1.stl 5joint_v6.stl 6joint_v2.stl Шаг 3. Построение купола со стойками и соединителями Используя вычисления от сервиса Domerama для купола 4V 5/12, с помощью циркулярной пилы были отрезаны все 190 стоек, затем помечены и помещены в коробку. С помощью 3D-принтера Makerbot были напечатаны все пластиковые соединители (73 штуки). Теперь пришло время собрать купол! Для того чтобы собрать купол, начинать надо сверху и постепенно радиально двигаться вниз. После того, как все стойки были соединены, каждая стойка была снята по отдельности и вставлена обратно, но с добавлением эпоксидного клея между стойкой и соединителем. Соединители были разработаны таким образом, чтобы имелась некоторая гибкость конструкции, поэтому после каждого снятия и установки стойки приходилось проверять симметрию купола. Шаг 4: Лазерная резка и установка базовых деревянных пластин Теперь, когда скелет купола построен, пришло время разрезать треугольные опорные плиты. Эти базовые деревянные пластины прикрепляются к нижней части стоек и используются для установки светодиодов на куполе. Сначала были вырезаны опорные плиты из фанеры толщиной 5 мм, в форме пяти различных треугольников, которые находятся на куполе: AAB (30 треугольников), BCC (25 треугольников), DDE (20 треугольников), CDF (40 треугольников) и EEE (5 треугольников). Размеры каждой стороны и форма треугольников были определены с помощью калькулятора куполов (Domerama) и имеющейся геометрии. После отрезания тестовых опорных плит с помощью лобзика, был создан дизайн треугольников с помощью программы Coral Draw. Все остальные опорные плиты были вырезаны с помощью станка лазерной резки (намного быстрее!). Если у вас нет доступа к лазерному резаку, вы можете нанести контуры опорных плит на фанеру с помощью линейки и транспортира и вырезать все их с помощью лобзика. После того, как опорные плиты были вырезаны, купол был перевернут, а пластины приклеены к куполу клеем по дереву. Шаг 5: Обзор электроники На рисунке выше показана схема электроники для купола. Микроконтроллер Arduino Uno используется для записи и чтения сигналов для купола. Чтобы осветить купол, используются “пиксельные” светодиоды RGB, так что в каждом из 120 треугольников расположен один светодиод. Каждый светодиод можно адресовать отдельно, используя микроконтроллер Arduino, который создает последовательные данные и тактовый сигнал для полосы (см. Выводы A0 и A1 в схеме). Чтобы взаимодействовать с куполом (т.е. сделать его интерактивным), был установлен ИК-датчик над каждым светодиодом. Эти датчики используются для обнаружения препятствий, в данном случае, они обнаруживают, когда чья-то рука находится близко к треугольнику на куполе. Поскольку каждый треугольник на куполе имеет свой собственный ИК-датчик, а в нем 120 треугольников, пришлось сделать мультиплексирование сигналов перед микроконтроллером Arduino. Было решено использовать пять 24-канальных мультиплексоров (MUX) для 120 датчиков на куполе. Для пяти 24-канальных MUX требуется пять управляющих сигналов. Для них были выбраны контакты 8 - 12 на микроконтроллере Arduino. Выходные данные модулей MUX считываются с помощью контактов 3 - 7. Также, в схему были включены пять MIDI-выходов, чтобы воспроизводить звук. Другими словами, пять человек могут играть на куполе одновременно, каждый с одним выходом, воспроизводящим другой звук. На микроконтроллере Arduino имеется только один вывод TX, поэтому для пяти MIDI-сигналов требуется демультиплексирование. Поскольку выходной MIDI-сигнал создается в другое время, чем считывание сигналов с ИК – датчиков, были использованы те же управляющие сигналы. После того, как все входные сигналы ИК – датчиков считываются в микроконтроллер Arduino, купол начинает светиться и воспроизводить звуки, однако все зависит от программирования контроллера. Шаг 6: Монтаж светодиодов на куполе Поскольку купол настолько велик, пришлось разрезать светодиодную полосу, чтобы поместить один светодиод в каждый треугольник. Каждый светодиод приклеивается к треугольнику с помощью суперклея. С каждой стороны светодиода было просверлено отверстие через опорную плиту для прокладки проводов внутри купола. Затем были припаяны соединительные провода к каждому контакту на выходе первого светодиода (5V, GND, CLK, DATA) и концы пропущены в просверленное отверстие. Длина проводов должна быть достаточно длинной, чтобы достать до соседнего светодиода. Затем провода протягиваются к следующему светодиоду, припаиваются к его входу, и процесс повторяется по цепочке. Светодиоды были соединены в конфигурации, которая минимизировала количество требуемого провода, но сохраняла смысл, в плане адресации светодиодов. В качестве альтернативы можно использовать отдельные RGB светодиоды со сдвиговыми регистрами. Шаг 7: Проектирование и внедрение датчиков Для купола было решено использовать модули для обнаружения препятствий. Эти модули имеют ИК-светодиод и приемник. Когда объект попадает в поле обнаружения модуля, ИК-излучение от ИК-светодиода отражается в сторону приемника, который его детектирует и меняет логический уровень на выходе модуля. Порог срабатывания датчика устанавливается потенциометром на плате так, чтобы выход был высоким только тогда, когда рука находится непосредственно около этого треугольника. Каждый треугольник состоит из фанерного светодиодного основания, листа диффузного акрила, установленного на 2,5 см выше светодиодной пластины, и инфракрасного датчика. Датчик для каждого треугольника был установлен на лист тонкой фанеры в форме пятиугольника или шестиугольника в зависимости от положения на куполе (см. рисунок выше). Для этого, в базе инфракрасных датчиков были просверлены отверстия, чтобы их можно было прикрутить саморезом. После чего были подсоединены провода (5V и GND). Затем шестиугольные или пятиугольные крепления ИК-датчиков были приклеены к куполу эпоксидной смолой, прямо над 3D-печатными соединителями так, чтобы провод мог проходить через купол. Шаг 8: Мультиплексирование выходов ИК-датчиков Поскольку микроконтроллер Arduino Uno имеет только 14 цифровых входов / выходов и 6 контактов аналоговых входов, а нам требуется считать сигналы со 120 сенсоров, требуется использование мультиплексоров для считывания всех сигналов. Было решено построить схему на пяти составных 24-канальных мультиплексорах, каждый из которых считывает сигнал с 24 ИК-датчиков. В свою очередь, каждый такой 24-канальный мультиплексор (MUX) состоит из плат 8-канального, 16-канального и 2-канального MUX. Для 24-канального MUX требуется пять управляющих сигналов, которые было решено подключить к контактам 8 - 12 на микроконтроллере Arduino. Все пять 24-канальных MUX получают одинаковые управляющие сигналы от Arduino, поэтому провода от выводов Arduino были подключены ко всем 24-канальнмым MUX одинаково. Цифровые выходы ИК-датчиков подключены к входным контактам 24-канальных MUX, чтобы их можно было последовательно считать в микроконтроллер Arduino. Поскольку для считывания всех 120 датчиков используется пять отдельных контактов, купол разбит на пять отдельных секций, состоящих из 24 треугольников (смотрите цвета купола на рисунке). Шаг 9: Рассеивание света с помощью акрила Чтобы рассеять свет от светодиодов, прозрачный лист акрила был отшлифован круговой орбитальной шлифовальной машиной с двух сторон. Во время шлифования, как бы рисовалась цифра «8», это оказалось наиболее практичным способом. После шлифования и очистки акрила, был использован лазерный резак, чтобы вырезать треугольники, но так, чтобы они поместились внутрь треугольников на куполе над светодиодами. Можно разрезать акрил с помощью акрилового режущего инструмента или даже лобзика, если он не будет трескаться. Для того чтобы акриловые треугольники не проваливались, внутрь треугольников на куполе были вклеены плоские деревянные полоски толщиной 5 мм. После этого, акриловые треугольники были вклеены в купол с помощью эпоксидного клея. Шаг 10: Создание музыки с помощью MIDI Для того чтобы купол мог воспроизводить звуки, вам надо установить и подключить MIDI-разъемы для каждой из пяти секций купола, так как показано не схеме. Поскольку на Arduino Uno имеется только один последовательный порт передачи данных (контакт 2 обозначен как вывод TX), нужно демультиплексировать сигналы, посылаемые, на пять MIDI-разъемов. Для этого использовались те же управляющие сигналы, что и для мультиплексоров (контакты 8 – 12), так как MIDI сигналы передаются позже, чем идет считывание сигналов с ИК-датчиков. Эти управляющие сигналы отправляются на 8-канальный демультиплексор, чтобы выбрать MIDI-разъем, на который будут выводиться звуковые данные. Шаг 11: Питание купола В куполе присутствует несколько потребителей. Поэтому вам необходимо рассчитать ток, потребляемый каждым компонентом, чтобы определить мощность источника питания, который вам потребуется. • Светодиодная полоса: Было использовано примерно 3,75 метра светодиодной полосы WS2801, которая потребляет 6,4 Вт / метр. Это соответствует 24 Вт (3,75 * 6,4). Чтобы преобразовать это в ток, используется формула P = I * V, где V - напряжение светодиодной полосы, в данном случае 5V, а P – это мощность. Поэтому ток, потребляемый светодиодами, составляет 4,8 А (24 Вт / 5 В = 4,8 А). • ИК-датчики: каждый ИК-датчик потребляет около 25 мА, всего 3А для 120 датчиков. • Микроконтроллер Arduino: 100 мА, 9В. • Мультиплексоры: имеется пять 24-канальных мультиплексоров, каждый из которых состоит из 16 и 8-канального мультиплексора. Каждый 8-канальный и 16-канальный MUX потребляют около 100 мА. Таким образом, общая потребляемая мощность всех MUX равна 1A. При суммировании всех этих компонентов общее энергопотребление составит около 9А. Светодиодная полоса, инфракрасные датчики и мультиплексоры имеют входное напряжение 5В, а микроконтроллер Arduino - 9В. Поэтому был выбран блок питания 12V 15A, конвертер для преобразования 12V в 5V и конвертер для преобразования 12V в 9V для Arduino. Шаг 12: Круговое основание купола Купол имеет круглое основание из толстой фанеры, которое имеет вырез в середине в виде пятиугольника для доступа к электронике. Для создания основания использовался лист фанеры размером 122 х 182 см. Вырезание выполнялось на фрезерном станке с ЧПУ, но можно вырезать и обычным электрическим лобзиком. После того, как основание было вырезано, оно было прикреплено к куполу с помощью небольших деревянных кубиков (50 х 70 мм) и саморезов. Затем внутрь купола был установлен блок питания (приклеен на эпоксидную смолу), печатные платы с мультиплексорами (установлены на металлические разделители) и микроконтроллер. Шаг 13: Пятиугольное основание купола В дополнение к круглой базе, также было сделано основание для купола в виде пятиугольника со смотровым окошком внизу. Это основание и смотровое окно, также были сделаны из фанеры, на фрезерном станке с ЧПУ. Стороны пятиугольника выполнены из деревянных досок, но с одной стороны были добавлены отверстия для разъемов. Используя металлические кронштейны и стыковые соединения 2 x 3 см, деревянные доски были прикреплены к основанию пятиугольника. Выключатель питания, MIDI-разъемы и USB-разъем прикреплены к передней панели. Все основание пятиугольника привинчивается к круглой основе, описанной на этапе 12. В нижней части купола было установлено окно, чтобы любой желающий мог посмотреть внутрь купола, чтобы увидеть электронику. Смотровое стекло изготовлено из акрилового материала с помощью лазерной резки и приклеено эпоксидной смолой к круглому куску фанеры. Шаг 14: Программирование купола Есть бесконечные возможности для программирования купола. Каждый цикл кода принимает сигналы от ИК-датчиков, которые указывают на треугольники, которые были затронуты кем-то. С помощью этой информации вы можете окрасить купол любым цветом RGB и / или выдать MIDI-сигнал. Вот пару примеров программ, которые были написаны для купола: • Цветной купол: каждый треугольник циклически проходит по четырем цветам по мере его касания. Когда цвета меняются, воспроизводится арпеджио. С помощью этой программы вы можете раскрасить купол тысячами различных способов. • Музыкальный купол: купол окрашен в пять цветов, каждая секция соответствует своему MIDI-выходу. В программе вы можете выбрать, какие ноты будут воспроизводиться в каждом треугольнике. и другие программы: Simon.ino, Pong.ino Шаг 15. Фотографии завершенного купола Примечание: В оригинальной инструкции вы дополнительно найдете примеры программных кодов и выдержки из них для программирования отдельных компонентов. А также ссылки на различные ресурсы, которые были использованы при разработке и создании этого проекта. Оригинал: instructable
  5. Цветомузыка - барабаны со светодиодной подсветкой Зажгите свои барабаны от звука ударов. Это руководство поможет вам обновить ваши барабаны, чтобы получить надежную динамическую светодиодную подсветку. Этот проект использует микрофон в качестве датчика и контроллер Gemma, чтобы заставить светодиоды NeoPixels работать в такт барабанов. Стоимость этого проекта значительно ниже, чем других проектов. Он очень компактен, и может работать от небольших аккумуляторов! Мы сделали сборку для малого барабана, среднего, и большого ударного. Каждый барабан не зависит друг от друга, но если звук от соседнего барабана достаточно громкий, то соседние барабаны тоже могут на него реагировать, что смотрится весьма не плохо. Наш проект обойдется в треть цены других предлагаемых наборов для ударных барабанов на рынке! Есть другие пособия, которые используют элемент «Piezo» и несколько дополнительных компонентов (конденсаторы, резисторы, таймеры, и т.д.), но наше пособие позволяет намного легче достичь успеха при довольно низкой стоимости компонентов, микроконтроллеров, датчиков и светодиодов. Перед выполнением проекта, настоятельно рекомендуем вам, ознакомится с инструкциями по работе со следующими компонентами: NeoPixel: http://learn.adafruit.com/adafruit-neopixel-uberguide Adafruit Gemma: http://learn.adafruit.com/introducing-gemma Для выполнения проекта вам понадобятся: Барабанная установка Микроконтроллер Gemma Мини микрофон Мини переключатель Литиево-полимерный аккумулятор Светодиодная лента NeoPixel Необходимый инструмент для пайки и сборки 3D – принтер (если имеется) На схеме ниже представлен общий принцип соединения элементов: Цифровой вход светодиодной ленты NeoPixel подключается к контакту «D0» на контроллере Gemma. Отрицательный полюс питания светодиодной ленты подключается к контакту «GND», положительный подключается к контакту «Vout» (только не к 3vo). Микрофон подключается к контактам A1/D2 на контроллере Gemma – это аналоговый вход контроллера. Питание на микрофон подается с контакта «3vo» с контроллера. Контроллер Gemma выполняет функцию регулятора напряжения, преобразуя напряжение батареи в постоянные 3.3V для питания микрофона, в то время как светодиоды питаются от 5V. Соответственно контакт «GND» является общим для обоих напряжений. Перед полной пайкой вашей схемы, рекомендуем собрать проверочную схему по принципу быстрой сборки: После сборки вашей схемы, нужно произвести программирование. Контроллер Gemma программируется через USB при помощи программы Arduino IDE. Вы можете изменять и настраивать код, чтобы программа соответствовала вашей схеме. Для начала, мы можем легко изменить количество выходов и количество светодиодов. В нашей установке, каждый барабан используется 60 светодиодов NeoPixels. Ознакомиться с руководством по работе с программой Arduino IDE можно по ссылке: http://learn.adafruit.com/introducing-gemma/setting-up-with-arduino-ide О том, как изменить цвета в зависимости от частоты звука, можно узнать из этого описания: http://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library Оригинальный программный код Процесс сборки всей барабанной установки В нашем проекте мы использовали 3D – принтер для изготовления акрилового корпуса, в котором мы расположили микрофон и собственно сам контроллер Gemma. Так как он у нас был в наличии, то для нас это проблем не составило. Если же вам проблематично получить доступ к нему, то вы можете придумать что-нибудь свое подходящее для размещения этих компонентов. На всякий случай файл с 3D-моделью корпуса: LED_Drum_Case_for_Gemma.zip Суть сборки заключается в том, что изготовленный корпус, вместе с установленным микрофоном, контроллером Gemma, выключателем и батареей устанавливаются на специальном кронштейне в районе вентиляционных отверстий снаружи барабана. Внутрь барабана помещаются только светодиодные ленты NeoPixel. Поэтапная сборка установки хорошо показана на фотографиях ниже: На этом процесс сборки заканчивается. Литиевые батареи легко можно снять для подзарядки. Нашей батареи хватает примерно, на час, но вы можете использовать и более мощные. Источник: adafruit
  6. С этим зонтиком вы всегда будете выделяться радужной подсветкой в любую непогоду. При помощи светодиодной ленты и датчика цвета, вы сможете подобрать подсветку в соответствии с вашей одеждой, или окружающим вас миром. Будьте готовы, к тому, что при следующем походе на улицу вы будете находиться в центре всеобщего внимания! Для этого проекта, вам нужно будет собрать схему из различных элементов, установить ее в купол вашего зонта. Затем поместить в него батарейки, контроллер FLORA и датчик цвета. Выполнение проекта подразумевает много пайки, поэтому желательно, чтобы у вас уже имелся опыт работы с паяльником. Для выполнения проекта вам понадобятся следующие элементы: • Контроллер, например FLORA - Wearable electronic platform: Arduino-compatible - v2 • USB кабель A/Mini B • Пять метров светодиодной ленты RGB Pixel • Датчик цвета FLORA • Литиевый полимерный аккумулятор 2500 мА/час, 3.75V, с зарядным устройством • Различные расходные материалы для сборки (провода, инструменты, винил и т.д.) За основу был взят вот такой обычный зонтик: Схема соединения LED ленты Pixel с контроллером Adafruit FLORA и датчиком цвета FLORA приведена на рисунке ниже: Полный процесс изготовления радужного зонтика можно посмотреть в оригинальной инструкции, там же можно найти программный код для работы установленного контроллера FLORA. Инструкция доступна по адресу: https://learn.adafruit.com/florabrella?view=all На этом заканчиваю обзор идеи светодиодного зонтика, желаем удачи в изготовлении!
  7. Программируемые светящиеся оптоволоконные крылья сказочной феи За идеологическую основу проекта были взята идея волшебных крыльев сказочной феи. При помощи оптоволоконных нитей, светодиодного источника света и программируемого контроллера, удалось создать уникальный феерический костюм, который может переливаться различными цветами и оттенками, оставляя незабываемые впечатления. Он может стать отличным средством для костюмирования актрис при проведении различных праздников и шоу. Оптоволоконные нити – это удивительный способ создать освещение в костюмах, потому что вам нужен только один источник света, чтобы добавить свечение к целому костюму. Это также делает их намного более прочными, надежными, и достаточно легкими.
  8. Adalight – это светодиодный комплект из категории «сделай сам». При помощи него, вы сможете добавить к вашему монитору, телевизору или домашнему кинотеатру потрясающие световые эффекты изменяющиеся в реальном времени в зависимости от общего фона воспроизводимого изображения. Вдохновением для идеи стали LCD телевизоры Philips. Adalight опирается на тот факт, что в настоящее время у многих людей в гостиной установлен компьютер для воспроизведения потокового видео, с интернета или записанного ранее, на экран домашнего телевизора или домашнего кинотеатра. Специальная программа Adalight, анализирует содержание экрана в реальном времени, для создания интерактивной подсветки в общем фоне воспроизводимого видео. К сожалению, программа не может работать совместно с аналоговым, цифровым или кабельным телевидением, только с содержимым, которое воспроизводиться с компьютера. Программное обеспечение является кросс-платформенным с открытым исходным кодом, и совместимо с самыми популярными операционными системами, такими как Windows, Mac и Linux. Технически подкованные люди, могут внести свои собственные изменения и дополнения к нему, например поддержку больших дисплеев, поддержку нескольких мониторов или телевизоров, или же иные дополнительные новые функции. Каждый монитор немного отличается друг от друга, и имеет свои некоторые особенности. Поэтому для реализации этого проекта, в каждом конкретном случае, надо проявить нотки изобретательности. Для этого необходимо детально изучить инструкцию по установке, требуемым материалам и инструментам. Основные компоненты проекта. Для реализации этого проекта вам понадобятся: Digital RGB LED Pixels WS2801 (Цифровые точечные светодиоды RGB) Это цифровые точечные светодиоды, которые и будут создавать фоновое свечение. Под управлением программного обеспечения, можно изменять цвет и яркость каждого светодиода (пикселя) с изменением в реальном времени (анимация). Стандартная цепочка светодиодов состоит из 25 штук отдельных светодиодов. Ее длинны и количества пикселей (светодиодов) хватит для реализации фоновой подсветки монитора или телевизора с диагональю до 27 дюймов (70см). Контроллер Arduino Uno Это микроконтроллер, который связывает программное обеспечение на компьютере со светодиодными огнями посредством порта USB. Программное обеспечение «Processing» Это программное обеспечение является средой для написания программного исходного кода для разработчиков мультимедийных приложений. Работает одинаково хорошо на операционных системах Windows, Mac и Linux. Если вы ранее никогда не занимались программированием, то ничего страшного. Мы предоставим вам первоначальный исходный код, который нужно будет просто установить и все заработает. Дополнительные материалы В дополнение к вышеперечисленному, вам понадобится блок питания для светодиодов с выходом 5 Вольт постоянного тока мощностью 10A, специальный переходник для подсоединения светодиодов к блоку питания, кабель USB для подключения контроллера к компьютеру. Необходимое программное обеспечение. Вам необходимо загрузить три установочных пакета: Arduino IDE (Integrated Development Environment) ссылка на программу: http://arduino.cc/en/Main/Software На сайте Arduino выберете установочный пакет, подходящий для вашей операционной системы и скачайте его. Для правильной установки программы на ваш компьютер внимательно прочитайте руководство по установке, доступное по ссылке: http://arduino.cc/en/Guide/HomePage Processing IDE http://processing.org/download/ Скачайте и установите программную среду для создания исходного кода. Рекомендации по установке программы написаны в первом разделе руководства доступного по ссылке: http://processing.org/learning/gettingstarted/ Adalight ZIP https://github.com/adafruit/Adalight Скачайте архив с исходными кодами Adalight. Распакуйте его и переместите необходимые файлы в требуемые папки на вашем компьютере. Показано на рисунке ниже: Описание общего процесса работы с компонентами: Для установки светодиодной подсветки фона, вам необходимо изготовить раму (крепление) для ваших светодиодов, которая будет крепиться к задней части вашего монитора или телевизора. Процесс ее изготовления можно посмотреть в оригинале инструкции, поэтому его описание мы здесь приводить не будем. Единственное что можно отметить, это то, что рама должна быть достаточно легкой и прочной. Для не больших мониторов можно разместить все компоненты на обычной картонной или пластиковой заготовке, закрепив их скотчем или любой другой подходящей липкой лентой, для крепления самих светодиодов можно использовать пластиковые хомуты. Для больших телевизоров придется изготавливать раму по периметру телевизора, в этом случае проще всего использовать легкий алюминиевый профиль. После изготовления рамы, ее закрепления и размещения всех светодиодов вам необходимо соединить все компоненты системы вместе по описанию предоставленному ниже. Электрическое соединение всех компонентов. Для начала, необходимо подключить светодиоды к контроллеру и блоку питания. Обратите внимание, что цепочка светодиодов имеет вход и выход. Входом считается разъем без дополнительных проводов для питания (тип «папа»), на выходном штекере присутствует два отдельно выведенных провода для подключения внешнего источника питания (тип «мама»). К контроллеру светодиоды подключаются входным разъемом, это важно. Если требуется удлинить кабель, то вы можете использовать удлиняющие провода с игольчатыми наконечниками (размер наконечника подбирается по разъему). Красный (плюсовой) провод к контроллеру не подключается, он используется для питания светодиодов и будет подключен к блоку питания 5 Вольт с конца цепочки светодиодов. Если же вы не хотите использовать отдельные провода, то можно приобрести специальный штекер, опять же, не забудьте отрезать от него плюсовой провод. Подключите три провода с входа светодиодной цепочки к цифровому выходу на следующие контакты контроллера Arduino UNO: Синий провод подключается к контакту с маркировкой «GND». Зеленый провод подключается к контакту №13 (SPI синхронизация), желтый к контакту №11 (SPI данные). Красный провод не подключается. Теперь с другого выходного конца цепочки, подключите питание от блока питания на красный и синий провод. В итоге у вас должна получиться вот такая схема: Соответственно, контроллер подключается к компьютеру при помощи кабеля USB. Затем загрузите все необходимое программное обеспечение, установите его согласно инструкциям и можете приступать к программированию контроллера Arduino Uno и настройке программного обеспечения. Порядок программирования подробно описан в оригинале инструкции по адресу: https://learn.adafruit.com/adalight-diy-ambient-tv-lighting?view=all#running-the-software После завершения программирования и настройки программ, ваша фоновая подсветка будет готова к использованию. Она станет отличным дополнением к вашим ощущениям при просмотре различных фильмов и музыкальных клипов. А ели вы задумаете устроить дома вечеринку, то ее можно использовать как своеобразное цветомузыкальное шоу. Помните, что предложан вариант с минимальным набором светодиодов и функций. Проявляйте фантазию, расширяйте возможности системы, увеличивайте количество светодиодов и количество мониторов и у вас получаться замечательные индивидуальные проекты. Система очень хорошо масштабируется и при должном техническом навыке у вас не возникнет проблем с реализацией ваших проектов! Дерзайте! Полная инструкция доступна по адресу: https://learn.adafruit.com/adalight-diy-ambient-tv-lighting?view=all#
  9. Светодиодный баннер на контроллере Raspberry Pi Изготовления простого светодиодного экрана, в данном случае светодиодного баннера, можно наглядно увидеть в этом видео: В качестве светодиодов была использована управляемая светодиодная лента, с RGB светодиодами и драйверами LPD8806. под управлением контроллера Adafruit Raspberry Pi Схема изготовления led баннера довольно проста, и под силу каждому начинающему. За основу был взят обычный штендер, обычно используются в рекламных щитах. На него при помощи пластиковых хомутов были закреплены светодиодные ленты, помещенные в прозрачные пластиковые трубки. Соответственно было подведено питание от отдельного блока питания, и все они были подключены к линии данных и линии синхронизации к контроллеру Raspberry Pi. Контроллер заранее запрограммирован в соответствии с количеством используемых светодиодов, изображение и анимация загружаются в него отдельно с компьютера через порт USB. Такой светодиодный баннер легко масштабируется, что позволяет его сделать совершенно разных размеров (есть только аппаратные ограничения контроллера). Как видите, реализация светодиодной рекламы очень проста и не требует больших усилий!
  10. Сервопривод + программируемая светодиодная лента NeoPixel Проблема совместимости библиотек светодиодов NeoPixel и сервоприводов. Однопоточный протокол управления, используемый NeoPixels, требует очень устойчивого соединения со скоростью передачи данных до 800 килобит в секунду. В нем допускается не большой процент ошибок, но он очень мал. Каждый бит должен быть передан с точно контролируемой скоростью. Библиотека Adafruit NeoPixel обрабатывает все эти сигналы в фоновом режиме, тщательно рассчитывая время каждой команды машинного кода. Для каждого пикселя есть 24 команды: Между тем, Arduino, как правило, в небольшие отрезки времени обрабатывает прерывание, т.е. выполняет определенные события и ситуации, которые должны быть обработаны немедленно. Вы, как правило, не замечаете этого, но прерывания все же обрабатываются в фоновом режиме. В это время ваш основной машинный код останавливается, вызывается подпрограмма обслуживания прерывания, и после возобновляется выполнение вашего основного кода, с того места в котором он был прерван. Прерывания помогают работать функциям Arduino’s delay() и millis(), а также функции Serial.read(), и другим всевозможным вещам. Тут-то вся и проблема. Даже очень короткий и простой способ обработки прерывания будет нарушать работу деликатной синхронизации NeoPixel. Таким образом, библиотека NeoPixel временно отключает обработку всех прерываний при записи данных в полоску светодиодов, а затем вновь позволяет им работать, когда закончит запись. Такие совпадения редко являются проблемой. Вы, возможно заметили, что функции millis() и micros() простаивают в эскизах (sketches) NeoPixel (отсчет времени останавливается, когда происходит запись на полосу светодиодов), что, как правило, притормаживает сервопривод. Возникает вопрос, что сервоприводы также имеют очень специфические требования по времени их синхронизации, и библиотека Arduino сервопривода использует прерывания для достижения этой цели. Таким образом, каждый раз, библиотека NeoPixel выключается прерывания, даже на мгновение, сервоприводы будут простаивать, и соответственно их положение в итоге будет не предсказуемо. Как грустно! Одним из способов решения этой проблемы является использование других особенностей AVR микроконтроллеров на ядре Arduino для управления сервоприводами без использования прерываний, как мы объясним на следующей странице. Это сложная тема, но очень полезная вещь, чтобы узнать о таком тонком нюансе. Если дальнейшее объяснение технически сложное для вашего текущего уровня квалификации, или если вы хотите просто использовать нашу библиотеку, а это нормально, то можете пропустить технические аспекты. Есть аппаратные обходные пути, которые гораздо более гибкие. Наш 16-канальный 12-битный ШИМ Servo Driver (в двух секционных форматах) разгружает задачу серво управления при помощи чипа специального назначения. Так NeoPixels не может вмешиваться в работу сервопривода. Эти платы могут быть объединены "стек" для управления десятками (потенциально даже сотнями) сервоприводов! Для сложных проектов, которые, вероятно могут возникнуть. Общие сведения о AVR Peripherals В обычном компьютере, под словом «периферийные» устройства, мы обычно подразумеваем себе такие вещи как принтер, сканер, USB диски и прочее. В отношении микроконтроллера, это же слово имеет несколько иной смысл. Периферийным устройством микроконтроллера, является небольшой кремниевый чип, выделенный из микропроцессора CPU (часть микроконтроллера, которая на самом деле обрабатывает машинный код), на который возложены специфические задачи, выполняемые независимо от процессора. Некоторые из периферийных устройств микроконтроллера AVR в Arduino включают в себя аналого-цифровой порт (используемый функцией analogRead() ), последовательный порт UART (связь с компьютером, как и при использовании последовательного, обеспечивает связь с библиотекой и при передачу кода в чип), порт SPI (Serial Peripheral Interface иногда используется для SD карты и для сопряжения между прочими устройствами) и порт I2C (другой способ связи между чипами, поддерживаемый библиотекой Wire). Из интересующих нас в данный момент периферийных устройств, является Таймер / счетчик, который точно измеряет временные интервалы, которые могут быть использованы для широтно-импульсной модуляции (ШИМ, иногда используется для управления яркостью светодиодов или звука). ШИМ выход из таймера / счетчика периферийного устройства может быть использован для управления сервоприводами без участия прерываний процессора. NeoPixels и сервоприводы могут сосуществовать! Это не все цветочки, хотя ... есть некоторые серьезные ограничения ... мы рассмотрим их позже. Специальный материал. Непосредственное управление периферийными устройствами очень отличается от обычного программирования Arduino. По этой причине, большинство команд аккуратно запаковано в специальных библиотеках (или же в самой библиотеке ядра Arduino, которая сама обрабатывает большинство часто используемых функций, таких как digitalWrite() или analogRead() ). Разработка кода на этом уровне, человек начинает со спецификации к микроконтроллеру ... массивного документа, в котором подробно расписан каждый последний бит и измеримый атрибут чипа. Эти данные опубликованы (и, как правило, их можно свободно загрузить с интернет сайта производителей чипов). Эти технические описания являются уникальными для каждого конкретного чипа и его разновидностей. Например: «ATmega 328P Datasheet» (Arduino Uno, Adafruit Pro Trinket, etc.). 34.3 MB. http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf «ATmega 32U4 Datasheet» (Arduino Leonardo & Micro, Adafruit FLORA, etc.). 7.5 MB. http://www.atmel.com/Images/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Datasheet.pdf «ATmega 2560 Datasheet» (Arduino Mega). 8.4 MB. http://www.atmel.com/Images/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf «ATtiny85 Datasheet» (Adafruit Trinket & Gemma). 3.8 MB. http://www.atmel.com/Images/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf Да, это действительно 650 страниц технической информации. К счастью, вы не должны читать все это. Но с этим надо ознакомиться! Периферийное управления включает в себя доступ к регистрам специальных функций чипа, нескольким десятков адресов памяти, которые могут быть прочитаны, письменные или модифицированные, или как переменные. Но каждый байт ... часто отдельные биты внутри каждого байта ... сложные аспекты управления конкретных периферийных устройств. Как и переменные, регистры специального назначения называются по имени ... это все было определены в файле заголовка, который автоматически включен в программный код. Например, чип ATmega328P в Arduino Uno и Adafruit Pro Trinket имеет три таймера/счетчика единиц (таймер/счетчик 0, 1 и 2 - каждый имеет свой собственный раздел в файле заголовке). Использование частоты 16 МГц процессора (часы), как временную базу, каждый может отсчитывать интервалы где-то между 1 и 256 временного такта, но таймер/счетчик 1 представляет особый интерес, потому что это 16-разрядный счетчик ... он может считать в любом диапазоне от 1 до 65536 такта, обеспечивая много дополнительных возможностей для этой задачи. Подраздел "Register Desription" описания деталей, дает техническое описание каждого из регистров специального назначения, связанных с таймером/счетчиком. На рисунке выше показано описание специальной функции с именем регистра TCCR1A и отдельных битов контроля. Всем этим контрольным битам тоже присвоены имена, каждому из которых соответствует одно битное число от 0 до 7, их надо помнить, при написании кода, либо использовать макрос _BV (бит) или (1 << бит) при определении битов регистра; несколько битов может быть добавлено (+) или соединены через логическое ИЛИ OR(|) вместе. Обычно должны быть настроены несколько регистров, чтобы получить полезные функции. Вот несколько строк из нашей библиотеки сервопривода (которую можно будет скачать далее), показывающие, как это выглядит: TCCR1A = _BV(WGM11); // Mode 14 (fast PWM) TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS11); // 1:8 prescale ICR1 = F_CPU / 8 / 50; // ~50 Hz (~20 ms) Едва ли похоже на код Arduino, не так ли? Если вы когда-либо создавали программный код, вы наверное использовали "Buh?". Скорее всего, это прямой доступ к регистрам специального назначения. Вы должны будете прочитать соответствующие разделы спецификации, чтобы полностью понять, что происходит и почему, но в основном: первые две строки - это установка специальной функции регистров TCCR1A и TCCR1B, чтобы настроить режим генерации сигнала таймера/счетчика 1 (в "fast PWM " (быстрая ШИМ) в данном случае), и установить делитель – на "тик" время - вперед счетчика каждые 8 тактов процессора, вместо каждого цикла. Следующая строка (ICR1) устанавливает верхний лимит счетчика/таймера (после которого он перезапускается с нуля) и, таким образом, общее время ШИМ. Немного математики, здесь присутствуют такие переменные: частота процессора в Гц (F_CPU)и частота импульса сервопривода (50 Гц). Чтобы определить это значение ... на Arduino частота процессора 16МГц, то вычисление выглядело бы следующим образом 16,000,000 ÷ 8 ÷ 50 = 40000 тиков на один цикл ШИМ. В других частях кода, есть строки, подобные этим: TCCR1A ^= _BV(COM1A1); OCR1A = pos; Первая строка переключает (^ является XOR оператор в C) бит COM1A1 в специальной функции регистра TCCR1A. Это разрешает или запрещает PWM (ШИМ) выход на выводе OC1A (который отмечен в другом месте в спецификации ... на Uno, это контакт 9). Вторая строка устанавливает выход сравнения регистра на том же контакте – рабочий цикл ШИМ – его значение хранится в переменной «pos». Сложная вещь, не так ли? Рассмотрите все это поэтапно. Помните, что это всего лишь создание и очистка бита. Очень, очень, очень конкретного бита. Не вините себя, если что-то не заработает в первый раз, или второй, или 23 ... от нескольких проектов я просто вынужден был отказаться, потому что я никогда не мог сделать их наугад. Периферийные устройства AVR одни из самых трудных вещей Arduino. Более сложное программирование может быть только на языке ассемблера. Именно поэтому существуют библиотеки Arduino, которые избавляют нас от сложностей аппаратного программирования. Периферийные устройства это огромная тема, гораздо больше, чем мы затронули здесь (помните, это 650 страниц технического описания), но я хотел, обеспечить высокий уровень объяснения и понимания очень низкоуровневой технической специфики. Заключение Окупаемости всей этой тяжелой работы? В случае применения этой библиотеки, NeoPixels и сервоприводы отлично работают вместе. В более широком смысле, гораздо более отлаженно. Байт в байт, цикл для цикла, там просто нет лучшего, чем стратегия оптимизации использования встроенных периферийных устройств микроконтроллера. После настройки и запуска, ноль командных циклов тратятся на выполнение задачи. Параллельно запускается другой код, в то время как периферийные устройства делают свою работу - это явный вид многозадачности. Достоинства и недостатки. Производительность это не главное. Это часто сильно увеличивает стоимость, но не добавляет гибкости, давайте рассмотрим: • Периферийные устройства и регистры специальных функций являются уникальными для каждого производителя и модели микроконтроллера. Чтобы использовать их, нужно ограничить себя очень специфическим кругом оборудования. Код, который выполняет волшебные функции на Arduino Uno, не будет работать на Arduino Due ... можно даже не компилировать ... они основаны на совершенно разных архитектурах. Наша библиотека работает на наиболее распространенных 8-разрядных микроконтроллерах AVR. • Периферийные устройства чрезвычайно ограниченный ресурс, гораздо больше, чем даже ОЗУ или пространство кода. Существует ровно один 16-разрядный таймер/счетчик на Arduino Uno. Это может легко привести к конфликтам библиотеки ... например, библиотека WaveHC (которая играет WAV файлы с SD карты) также опирается на таймер/счетчик 1. В этом случае будет конфликт с NeoPixels. • ШИМ выход из блока таймера/счетчика ограничен очень специфическим набором контактов. На Arduino Uno, вы не можете контролировать более двух сервоприводов одновременно, и они должны быть на контактах 10 или 11. На Leonardo и Micro, не более четырех сервоприводов на контактах 5, 9, 10 или 11. • Микроконтроллеры Trinket и Gemma не имеют даже 16-разрядный таймер. Есть только 8-разрядный таймер, при его использовании, у сервопривода возможно только лишь 8 различных положений, и соответственно плавное движение становится невозможным. Ранние версии "официальной" библиотеки Arduino для сервопривода работали именно так, как мы описываем здесь ... используя ШИМ выход из таймера/счетчика 1. Это уже позже перешли на технику прерывания в основе, с выгодной поддержкой многих сервоприводов на любых контактах. Там не было очевидных недостатков, NeoPixels не было даже вообще в природе, пока они не появились совсем недавно! Описание библиотеки The TiCoServo Library Если вы просто хотите, загрузить и использовать библиотеку, это полностью нормально. Пожалуйста, ознакомьтесь, что бы быть в курсе следующих ограничений: • Эта библиотека работает только на некоторых Arduino-совместимых платах. Все наиболее распространенное оборудование с 8-битной архитектурой AVR микроконтроллеров должно хорошо работать (Arduino Uno, Duemilanove, Leonardo, Mega, Pro Trinket, Teensy 2 и прочие.). "Обрезанные" платы, использующие другие микроконтроллеры (Arduino Due, Teensy 3, и т.д.) могут тоже работать. • На микроконтроллерах Trinket и Gemma возможно всего восемь сервопозиций, не будет плавности хода (на Pro Trinket должно быть все нормально). • Сервоприводы работают только на очень ограниченном количестве контактов, ниже приведена распиновка для различных микроконтроллеров: Микроконтроллер- Контакты для сервопривода Arduino Uno, Duemilanove, Diecimila, Adafruit Pro Trinket, Boarduino, Menta (anything w/ATmega328P or ATmega168) - 9, 10 Arduino Leonardo, Micro - 5, 9, 10, 11 Adafruit FLORA - D9, D10 PJRC Teensy 2.0 (not Teensy+ or 3.X) - 4, 9, 14, 15 Arduino Mega - 2, 3, 5, 6, 7, 8, 11, 12, 13, 44, 45, 46 Adafruit Trinket - 1, 4 Adafruit Gemma - D1 Скачать библиотеку Adafruit TiCoServo Library для Arduino можно по ссылке: https://github.com/adafruit/Adafruit_TiCoServo/archive/master.zip Скачать библиотеку Adafruit NeoPixel для Arduino можно по ссылке: https://github.com/adafruit/Adafruit_NeoPixel/archive/master.zip Установка этих библиотек становится точкой преткновения для новичков, пособие по установке этих библиотек доступна по ссылке: https://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use После установки библиотеки, перезагрузите Arduino IDE. Есть два простых примера, которые согласуют сервоприводы и NeoPixels. Один будет работать на Adafruit Gemma или Trinket, другой на Arduino Uno или большинства других неспециализированных плат (Leonardo, и т.д.). Вам, возможно, потребуется изменить некоторые номера контактов PIN (PIN # NeoPixel, и т.д.) в программном коде. Библиотека моделируется после официальной библиотеки Arduino для сервопривода ... все функции и аргументы идентичны, и вы можете просто обратиться к сайту Arduino для справки. Для назначения номеров контактов нужно внести незначительные изменения в программный код, большинство программных кодов для сервоприводов Arduino совместимы и сложностей, возникнуть не должно. Итак, покажем какие строки возможно придется изменить: Вместо: #include <Servo.h> Пишем: #include <Adafruit_TiCoServo.h> Изменение декларации сервопривода, в место: Servo myservo; // create servo object to control a servo Пишем: Adafruit_TiCoServo myservo; // create servo object to control a servo С функциями attach(), write() и прочими, работать аналогично стандартной библиотеке сервоприводов, если конечно вы не будете использовать Trinket или Gemma. Особые дополнения для Trinket и Gemma Так как они основаны на уменьшенном микроконтроллере ATtiny85, то эти платы работают немного по-другому. Во-первых, необходима одна дополнительная линия #include в верхней части кода: #include <avr/power.h> Затем добавьте следующую строку в функции setup(). Важно, что она стояла пред вызовом функции servo.attach ()!. #if (F_CPU == 16000000L) clock_prescale_set(clock_div_1); #endif В отличие от «большого» кода, который работает с градусами или микросекундами, "крошечная" версия может указать только серво позиции в значениях "тик", где каждый тик равен примерно 128 микросекунд. Учитывая, что большинство сервоприводов номинально синхронизируются импульсом между 1000 и 2000 микросекунд, то это означает значение от 8 до 15 тиков, и являются разумным диапазоном. Каждый сервопривод немного отличается, хотя ... некоторые из них более или менее совместимы по диапазону, так что вы можете быть уверенны в настройках этих значений. Это может показаться большим достижением. Многие проекты требуют только два сервопривода (например, ворота, флаг или клапан переключения между открытым и закрытым положениями). Источник: https://learn.adafruit.com/neopixels-and-servos?view=all
×
×
  • Create New...