Jump to content
  • Sign Up
  • Language
Sign in to follow this  
ColorPlay

Сервопривод + светодиодная лента. Управление светом

Recommended Posts

ColorPlay
Сервопривод + программируемая светодиодная лента NeoPixel
 
components_title-anim.gif

Проблема совместимости библиотек светодиодов NeoPixel  и сервоприводов.

Однопоточный протокол управления, используемый NeoPixels, требует очень устойчивого соединения со скоростью передачи данных до 800 килобит в секунду. В нем допускается не большой процент ошибок, но он очень мал. Каждый бит должен быть передан с точно контролируемой скоростью. Библиотека Adafruit NeoPixel обрабатывает все эти сигналы в фоновом режиме, тщательно рассчитывая время каждой команды машинного кода. Для каждого пикселя есть 24 команды:

post-67-0-12035400-1438859458_thumb.png

Между тем, Arduino, как правило, в небольшие отрезки времени обрабатывает прерывание, т.е. выполняет определенные события и ситуации, которые должны быть обработаны немедленно. Вы, как правило, не замечаете этого, но прерывания все же обрабатываются в фоновом режиме. В это время ваш основной машинный код останавливается, вызывается подпрограмма обслуживания прерывания, и после возобновляется выполнение вашего основного кода, с того места в котором он был прерван. Прерывания помогают работать функциям Arduino’s delay() и millis(), а также функции Serial.read(), и другим всевозможным вещам.

post-67-0-18870600-1438859507_thumb.png

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

Такие совпадения редко являются проблемой. Вы, возможно заметили, что функции millis() и micros() простаивают в эскизах (sketches) NeoPixel (отсчет времени останавливается, когда происходит запись на полосу светодиодов), что, как правило, притормаживает сервопривод.

Возникает вопрос, что сервоприводы также имеют очень специфические требования по времени их синхронизации, и библиотека Arduino сервопривода использует прерывания для достижения этой цели. Таким образом, каждый раз, библиотека NeoPixel выключается прерывания, даже на мгновение, сервоприводы будут простаивать, и соответственно их положение в итоге будет не предсказуемо. Как грустно!

post-67-0-52108700-1438859562_thumb.png

Одним из способов решения этой проблемы является использование других особенностей AVR микроконтроллеров на ядре Arduino для управления сервоприводами без использования прерываний, как мы объясним на следующей странице. Это сложная тема, но очень полезная вещь, чтобы узнать о таком тонком нюансе. Если дальнейшее объяснение технически сложное  для вашего текущего уровня квалификации, или если вы хотите просто использовать нашу библиотеку, а это нормально, то можете пропустить технические аспекты.

Есть аппаратные обходные пути, которые гораздо более гибкие. Наш 16-канальный 12-битный ШИМ Servo Driver (в двух секционных форматах) разгружает задачу серво управления при помощи чипа специального назначения. Так NeoPixels не может вмешиваться в работу сервопривода. Эти платы могут быть объединены "стек" для управления десятками (потенциально даже сотнями) сервоприводов! Для сложных проектов, которые, вероятно могут возникнуть. 

Общие сведения о AVR Peripherals

post-67-0-44091800-1438859603_thumb.png

В обычном компьютере, под словом «периферийные» устройства, мы обычно подразумеваем себе такие вещи как принтер, сканер, 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.

post-67-0-94161900-1438860003_thumb.png

Да, это действительно 650 страниц технической информации. К счастью, вы не должны читать все это. Но с этим надо ознакомиться!

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

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

Например, чип ATmega328P в Arduino Uno и Adafruit Pro Trinket имеет три таймера/счетчика единиц (таймер/счетчик 0, 1 и 2 - каждый имеет свой собственный раздел в файле заголовке). Использование частоты 16 МГц процессора (часы), как временную базу, каждый может отсчитывать интервалы где-то между 1 и 256 временного такта, но таймер/счетчик 1 представляет особый интерес, потому что это 16-разрядный счетчик ... он может считать в любом диапазоне от 1 до 65536 такта, обеспечивая много дополнительных возможностей для этой задачи. Подраздел "Register Desription" описания деталей, дает техническое описание каждого из регистров специального назначения, связанных с таймером/счетчиком.

post-67-0-41514400-1438860365_thumb.png

На рисунке выше показано описание специальной функции с именем регистра 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • shariki
      By shariki
      Как сделать или где купить многоцветные светящиеся воздушные шары с пультом?
      Пример:
       
    • SMD
      By SMD
      Светодиодная карта мира - часы
      Это карта со стальными материками, собранными на общем металлическом макете. В карту встроена светодиодная подсветка, которая загорается ярче в той части мира, в которой на данный момент наступил полдень.

      Используемые материалы:
      Стальная пластина 18 GA Квадратная металлическая труба 25 х 25 мм (12-18 GA) Программное обеспечение CAD и принтер Небольшой лист фанеры или OSB Плазменный резак (ацетиленокислородный) Газовая горелка (подойдет пропановая) Точечная сварка Баллончик с краской (цвет на выбор, здесь используется коричневый) Светодиодная лента WS2812B Микроконтроллер Arduino Uno плюс аксессуары Источник питания Шаг 1: Проектирование карты
       
      Можно создать карту всего мира, как в этом проекте, или же сделать карту всего одной страны. Первая смотрится гораздо более интересной, но для России и США будет очень актуален и второй вариант, так как в этих странах присутствует несколько больше часовых поясов, чем в других странах.

      Для подготовки макета карты использовался AutoCAD и Google Maps. Чем точнее будут контуры, тем интереснее будет смотреться весь проект. После создания общего макета, он был распечатан на бумаге в полном масштабе, в данном случае его размер составил 62,7 см в высоту и 152,4 см в длину.
      Шаг 2: Вырезание бумажных шаблонов и создание стальных частей

      После печати макета, бумажные шаблоны материков были вырезаны и разложены в соответствии с расположением на карте на стальном листе. К сожалению, не удалось вырезать такие маленькие части как Гавайские и Азиатские острова, а также острова Карибского бассейна из-за их очень маленького размера в данном масштабе. После составления макета на металле, их контуры были перенесены на стальной лист. Затем, уверенными движениями, они были вырезаны при помощи плазменной горелки, небольшое оплавление краев металлических материков, придало им более естественный вид.
      Шаг 3: Создание рамки и географических параллелей

      Для создания общей рамки использовалась квадратная профильная труба размером 25х25 мм. Из толстолистовой стали 18 GA была вырезана лицевая сторона, внутри которой также была вырезана овальная граница мира. Затем обе части были сварены между собой.
      После этого приваривается требуемое количество параллелей, для них можно использовать тонкий металлический прут. Для хорошего внешнего вида, в данном случае требуется определенная точность. Количество параллелей делается произвольным, но достаточным для последующего крепления металлических континентов, которые осторожно привариваются точечной сваркой с тыльной стороны к металлическим параллелям согласно мировой карте. По окончанию данного этапа выполняется окраска лицевой стороны.
      Шаг 4: Создание заднего экрана и установка светодиодов

      В данном случае, для создания заднего экрана, были склеены отходы листовой фанеры с крупнозернистыми структурными частями, после чего для декорации использовалась газовая горелка, чтобы придать цельному листу приятный отожжённый оттенок. Можно поступить проще и использовать лист OSB или любого другого похожего материала.
      Затем на места где располагаются континенты, приклеивается светодиодная лента, так чтобы после установки заднего деревянного экрана был виден только свет из-под металлических континентов.
      В этом проекте использовалась светодиодная лента WS2812B содержащая 30 светодиодов на метр. Этот тип светодиодной ленты содержит индивидуально адресуемые светодиоды, что позволяет запрограммировать большое количество разнообразных эффектов, а не только включать и выключать ее.
      Шаг 5: Микроконтроллер Arduino и его кодирование

      На этом этапе светодиодные ленты WS2812B, при помощи проводов соединяются с микроконтроллером Arduino Uno, подключается источник питания и устанавливается дополнительный конденсатор, чтобы сгладить нагрузку. Эту часть можно выполнить различными способами, делайте так, как вам удобно, чтобы это было красиво и безопасно. 
      Микроконтроллер запрограммирован на работу в качестве часов, есть уже готовые программные коды (эскизы). Согласно этой программе, светодиоды на карте горят ярче в том месте, где в настоящее время наступил полдень, символизируя движение солнца.
      Источник: instructables
    • ColorPlay
      By ColorPlay
      Световой карманный платок для пиджака Draper 2.0
      Это руководство пригодится всем современным джентльменам, которые хотят выделиться с помощью электронных приспособлений. Световой платок представляет собой небольшой светящийся прямоугольник, торчащий из верхнего кармана пиджака (как обычный платок), привлекая к вашей персоне внимание окружающих людей.

      Шаг 1: Материалы
      Для этого проекта вам потребуется: Микроконтроллер Pro Trinket 5v; Контроллер заряда батареи Pro Trinket; Литий-ионный полимерный аккумулятор (выбирайте емкость по больше!); Программируемая светодиодная лента с высокой плотностью светодиодов; Конденсатор (не обязательно); Провод в силиконовой изоляции (три цвета будет идеально); Монтажная плата Perma; Выключатель; Лента для подвешивания картин (диффузионный материал); Двусторонний скотч; Электроизоляционная лента; Белый платок. Вероятно, это первый проект носимой электроники, который имеет достаточно места для большой батареи, так что не стесняйтесь выбирать емкость батареи побольше. По результатам эксплуатации, было обнаружено, что аккумулятора емкостью 1200 мА/ч хватает примерно на три дня использования.
      Шаг 2: Пайка платы

      Контроллер заряда батареи Pro Trinket
      Используя дополнительные длинные контакты, которые идут в комплекте с контроллером заряда батареи, припаяйте плату контроллера заряда к микроконтроллеру сквозь контакты BAT, G и 5V. С нижней стороны микроконтроллера должны остаться длинные контакты для установки на монтажную плату. Контроллер Pro Trinket
      С помощью прилагаемых игольчатых контактов расположите микроконтроллер Pro Trinket так, чтобы порт USB находился в нижней части монтажной платы. Припаяйте игольчатые контакты ко всем цифровым и аналоговым выходам по бокам контроллера Pro Trinket (контакты BAT, G и 5V уже припаяны на предыдущем шаге). Установите микроконтроллер Pro Trinket на монтажную плату и припаяйте все его контакты. Используя маленькие кусачки, сократите лишние концы игольчатых контактов с обратной стороны монтажной платы. Для этого очень удобно использовать кусачки для ногтей. Выключатель питания
      Используя острый нож, разделите контакты на плате для выключателя. Аккуратно согните ножки на выключателе под углом 90 градусов, так чтобы выключатель располагался заподлицо с платой контроллера заряда батареи Pro Trinket. Припаяйте выключатель к плате. Конденсатор и провода
      Припаяйте конденсатор на шину питания слева от платы (обязательно обратите внимание на полярность конденсатора и шины питания). Конденсатор не обязателен, но он существенно повышает стабильность работы. Припаяйте провод между контактом BAT и положительным рядом шины питания. Припаяйте провод между контактом G и отрицательным рядом шины питания. Припаяйте провод строки данных к контакту, который вы будете использовать в качестве цифрового выхода для светодиодов (в данном случае он зеленого цвета, и припаян к контакту №6, но его плохо видно из-за контроллера заряда батареи). Припаяйте силовые провода для светодиодов к шине питания (но не АТ) в верхней части шины питания. Шаг 3: Пайка программируемой светодиодной ленты

      Этот шаг, возможно, является очень хитрым делом, так как:
      Нужно припаять крошечные контакты к микроконтроллеру; Контакт данных на светодиодной ленте находится очень близко к первому светодиоду. Чтобы лучше справится с этим сложным шагом, рекомендуется облудить контакты на светодиодной полосе и концы проводов по отдельности, а затем спаять их вместе.
      Вам потребуется отрезок LED полосы содержащий 12 светодиодов (была использована полоса, содержащая 144 светодиода на метр); Чтобы увеличить контактную площадку, можно сместить срез от линии разделения светодиодного отрезка; Используйте очень текучий припой в обильном количестве (разумно!). Будьте очень осторожны, старайтесь как можно меньше по времени нагревать контакты на светодиодной ленте, т.к. можно нарушить поверхностный монтаж светодиодов или просто расплавить их.
      Шаг 4. Установка ленточного диффузора

      На этом этапе, надо закрепить светодиодный отрезок NeoPixel в верхней части монтажной платы. Для этого надо:
      С обратной стороны монтажной платы наклеить двухсторонний скотч; Отцентрировать отрезок полосы NeoPixel и прочно приклеить к двухстороннему скотчу; При необходимости использовать изоленту для дополнительной фиксации светодиодного отрезка. Рассеивание света
      Даже при том, что ткань карманного платка способствует некоторому рассеиванию света, этого не достаточно, чтобы получить равномерное свечение по всей площади.
      Было найдено простое решение, использовать в качестве диффузора небольшие вспененные ленты, которые обычно используются для монтажа рамок с фотографиями на стену. Лента просто приклеивается с лицевой стороны светодиодного отрезка.
      Шаг 5: Укладка в платок

      Существует огромное количество карманных квадратных платков и вариантов их складывания. Если вас не устраивает способ, приведенный на картинках выше, вы можете найти для себя более подходящий способ в интернете.
      Конечно, для работы устройства потребуется загрузить программный код в микроконтроллер, но этот этап здесь описываться не будет ввиду большого разнообразия световых эффектов. 
      Шаг 6: Будущие усовершенствования
      Датчики
      На этой монтажной плате еще очень много свободного места, например, можно установить какие-нибудь виды датчиков:
      Датчик цвета (изменение цвета в зависимости от цвета одежды); Акселерометр (изменение цвета во время движения); Модуль Bluetooth 4.0 (может предоставить возможность перепрограммирования на лету). Джентльменский совет: Ваш карманный платок никогда не должен светиться в цвет вашего галстука. Всегда стремитесь сочетать цвета с рубашкой или внешней одеждой.
      Источник: instructables
    • ColorPlay
      By ColorPlay
      Цифровые светодиодные часы из филаментных светодиодных ламп
      Вот такое необычное использование, обычной светодиодной лампы, предложил нам один из людей увлекающийся светодиодной техникой. Суть его решения заключается в по элементном извлечении светодиодов из обычной светодиодной лампы. На основе извлечённых линейных светодиодов, ему удалось собрать цифровые часы. Идея довольно оригинальна, за счёт того, что такие элементы не продаются по отдельности и применяются исключительно в производстве светодиодных источников света. Соответственно, он использовал свои познания в микроэлектронике, что бы создать схему управления этими элементами. 
      Возможно, и у вас возникнут подобные идеи!

      Извлеченные светодиодные элементы:

      Проверка исправности извлеченного светодиодного элемента:

      Изготовление цифрового табло на светодиодных элементах:

      Плата управления и используемый микроконтроллер:

       
    • ColorPlay
      By ColorPlay
      Цветомузыка - барабаны со светодиодной подсветкой
      Зажгите свои барабаны от звука ударов. Это руководство поможет вам обновить ваши барабаны, чтобы получить надежную динамическую  светодиодную подсветку. Этот проект использует микрофон в качестве датчика и контроллер 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
  • PROJECTS LIGHTING:

  • NEW IDEAS IN LIGHTING

  • Who's Online   55 Members, 0 Anonymous, 113 Guests (See full list)

    • Захар
    • Anne Legrand
    • andrei_el
    • luksdeluxe
    • Tokuhiko Kusakabe
    • Nevsky Official Store
    • SANDIY Official Store
    • QIYIMEI Official Store
    • UDDALight Store
    • ГОСТ ДизайН
    • Shop5412023 Store
    • jessica_t_bird
    • Ольга33
    • OSIDEN Official Store
    • XUNATA Lighting Factory Store
    • BUMBEE Lighting Store
    • 98294668 Store
    • Kinlams lighting Store
    • Evgeniya
    • 君 落羽
    • LASHA Official Store
    • Света Маркелова
    • electric-light
    • F.jack
    • LEDSKLAD (Obukhov Mikhail)
    • newtech
    • Wan Xuan Lim
    • Nevsky Interior Design Store
    • desigstudio
    • Auxmer Official Store
    • SCON Official Store
    • _蔡蔡_
    • COOLIGHT Store
    • HONGHELIGHTING Official Store
    • karolina.design
    • Design<8>
    • Light Up Your World Store
    • ygfeel Store
    • HONG DE LI Official Store
    • Molli_T
    • lucassedrez
    • shiningmoon lighting Store
    • lightecho
    • Andrea Rubatto
    • NICOLEHOLLIS
    • Alexander Fedorov
    • ZODOLAMP Official Store
    • Mechanic
    • Roman Kutikov
    • BTF-LIGHTING
    • Interior Light Store
    • 24K Lighting Store
    • Winlams Official Store
    • SR-lighting Store
    • Monica King
  • Member Statistics

    2,333
    Total Members
    761
    Most Online
    avinash Singh chouhan
    Newest Member
    avinash Singh chouhan
    Joined
×
×
  • Create New...