Инструкция по Arduino для новичков. Первые шаги.
Введение. Впервые это вижу.
Привет друзья, меня зовут Алексей, и от имени и по поручению команды профессионалов Giant4 я решил написать небольшой курс статей - инструкций по использованию платы Arduino Nano и так называемой адресной лентой, на основе светодиодов ws2812b.
Давайте сначала поговорим о том, что Arduino из себя представляет в общем. Данное понимание просто необходимо, особенно если Вы в данном деле новичок. В этой серии статей мы преследуем цель обеспечить простой и безболезненный старт новичку, поэтому я намерен давать простые и понятные для восприятия термины и определения. Итак, поехали!
Arduino
Для начала нам необходимо разобраться, что же такое Arduino. Если вы почитаете в интернете, то найдете множество разных определений, но я дам Вам свое, в корне отличающееся от остальных. Arduino – это платформа, предназначенная для простой и понятной разработки. Arduino позволит легко разрабатывать свои собственные устройства, не имея ни малейшего понятия об архитектуре микроконтроллера (МК), не имея каких-то серьезных навыков программирования и даже не зная основ электротехники. Arduino – это не программа для написания кода, не интерпретатор, не компилятор, не программатор и даже не сама плата, на которой находится микроконтроллер. Arduino – это все перечисленное выше, но и одновременно нечто гораздо большее. Это целая система, это философия, это то, что объединяет крутейшие идеи ведущих инженеров мира. Это комплекс программных и аппаратных решений. Но при всем при этом, Arduino считается детской игрушкой, с которой справится даже первоклассница. Arduino – это то, что может показаться неоправданно дорогим и то, что составляет конкуренцию мировым лидерам по разработке и производству электроники, как в вопросе себестоимости, так и в функционале. И то, чем будет Arduino в Ваших руках, зависит только от Вас.
Возможно, я написал немало громких слов и немного запутал Вас. Тем не менее, все написанное выше чрезвычайно важно, и если Вы продолжите заниматься разработкой электроники с Arduino, то обязательно поймете это. А пока давайте вернемся к началу и сформулируем внятное определение. Arduino – это платформа, платформа для разработки электроники, позволяющая с минимальными затратами и усилиями программировать МК.
Arduino Nano
На фото изображена та самая плата к которой мы пишем инструкцию, она и называется Arduino Nano. Это уже готовая плата, в основе которой лежит МК ATmega328, а также вся необходимая обвязка, превращающая популярный микроконтроллер в полноценное, самостоятельное устройство. Тут у нас и кварцевый резонатор, позволяющий МК работать на стабильной частоте, и стабилизатор напряжения, и микросхема, связывающая компьютер и устройство (для ее программирования). Также имеется кнопочка сброса программы, индикация в виде светодиодов. Ну и несколько простейших радиокомпонентов, без которых устройство не заработает. В общем, все организовано таким образом, чтобы можно было просто подключить плату к компьютеру (по USB проводу) и начать работать. Как по мне, это очень здорово, при том что Nano имеет небольшой размер и выводы, предназначенные для впаивания в них гребенки с контактами. Имея данные контакты и провода под них, можно даже не пользоваться паяльником.
Подделка или оригинал
Дальше следует упомянуть о том, что плата, которая лежит у меня на столе, - это не совсем оригинал, это китайская реплика или даже можно сказать подделка. Она значительно дешевле оригинала. Но стоит отнестись к данной информации объективно. Во-первых, весь функционал такой же, как и в оригинале. Во-вторых, не потеряно удобство работы с данной платой. В-третьих, итальянцы действительно слишком дорого просят за оригинал и невольно задумываешься об их чрезмерных аппетитах. Если интересно, сравните стоимость Arduino Nano из Китая со стоимостью такой же платы из официального магазина Arduino, и сами все поймете. В общем, смысл простой: если есть возможность и желание переплатить, то можно поддержать разработчиков платформы, все-таки они подарили миру по-настоящему крутое решение. Но при желании сэкономить Вы ничего не теряете. Также если Вы будете читать статьи других авторов, то в них часто можно увидеть упоминания подобного рода: «У Китая, конечно, дешево, но они постоянно глючат, ломаются и требуют «танцев с бубном». Вам это нужно? Вот если взять оригинал, то проблем не будет…» И Вы в растерянности будете думать: «Почему мнения расходятся? Почему объясняют по-разному?» Ответ, как правило, очень простой: в этих же статьях Вы наткнетесь на ссылки, ведущие в официальный магазин Arduino, то есть эти статьи писали не авторы, а продавцы, участвующие в реферальной программе. Как правило, данные статьи частично или полностью скопированы у настоящих авторов и доверять им не стоит, так как велик шанс того, что они только запутают Вас.
Подключение Arduino Nano
Давайте разберемся, как подключать нашу плату, чтобы ее использовать. Прежде всего следует обратить внимание на то, что все выводы на плате подписаны. Давайте начнем с электропитания. Самый простой способ подключить Arduino Nano – это подключить ее по USB проводу к компьютеру. В этом случае плата сразу же будет запитана и появится связь с компьютером для ее программирования. Но этот способ используется, как правило, только для программирования и отладки работы. Согласитесь, будет не удобно таскать компьютер вслед за МК.
Зато на нашей плате имеются специальные выводы питания МК от внешнего источника. Подписаны они как: «+5», «VIN», «GND». Если источник питания от 4,5В до 5,5В, то смело используем «+5» и «GND», если источник питания от 7-12В, то используем «VIN» и «GND». Сразу хочу оговориться: во многих статьях указанно, что напряжение питания на «VIN» возможно подавать 6-20В, но я бы не советовал подключать больше 12в, так как понижающий стабилизатор может не справиться. Так как мы будем рассматривать Ардуино в связке с адресной лентой, нам больше и не потребуется.
Теперь давайте поговорим о других выводах платы. И сразу же ремарка: мы не будем говорить обо всех возможностях, а поговорим только конкретно о тех, что нам необходимы. На Arduino Nano имеются 14 контактов, начинающихся на букву «D». Это цифровые входы и выходы. В зависимости от нашей программы, каждый из этих контактов может быть либо входом, либо выходом.
Объясняю, что это значит. Если, к примеру, вывод «D4» объявлен как выход, тогда своей программой мы можем подать на него напряжение (+5В) или же снять напряжение, и на нем будет общий (GND). Полностью физически отключить вывод (на сленге - "ногу") не получится, так как у нас внутри не выключатель, но это нам и не нужно.
А если вывод «D4» объявлен как вход, то программа может определить, подано напряжение извне или нет. Это можно использовать для внешних элементов управления платой, к примеру, кнопок.
Также хочу сказать, что для простоты понимания мы с Вами, в рамках данного курса, не будем оперировать выводами «D0» и «D1», там есть нюансы, которые только запутают нас на данном этапе.
WS2812B
И, наконец-то, пришло время поговорить об адресной светодиодной ленте на основе светодиодов ws2812b. Суть в том, что можно зажечь на данной ленте любой отдельный светодиод, любым цветом. Управление светодиодами происходит достаточно быстро и при должной сноровке можно организовывать целые световые шоу.
Каждый светодиод в ленте мы будем называть пикселем. Потому что один пиксель имеет внутри себя 3 светодиода разных цветов: красный, зеленый, синий. И, конечно же, пиксель "пляшет" от системы кодирования цветов RGB (red, green, blue). Также в каждом пикселе имеется микросхема, которая управляет степенью яркости того или иного цвета по средству ШИМ. То есть, три ШИМ сигнала с микросхемы, расположенной внутри пикселя, управляют яркостью каждого светодиода по отдельности. Каждый из трех ШИМ сигналов может принимать 0 до 255 значений, то есть 8 бит. Из этого можно сделать вывод, что каждый пиксель на ленте кодируется 24 битами, а это, в свою очередь, 16 777 216 различных цветов, которые можно получить с одного пикселя. С нашей точки зрения, это очень круто?
А теперь небольшое разоблачение: на самом деле пиксели в адресной светодиодной ленте не имеют адресов. Данное название пошло скорее от народа. Работает это примерно так: пиксель, начиная с первого, получает пакет из 24 бит, начинает работать согласно инструкции, а получив за первым пакетом второй, передает его следующему пикселю, - и так до конца. Чтобы прервать этот цикл и начать заполнение с начала, необходимо выдержать временную паузу, причем эта пауза очень мала, а сами биты отправляются на достаточно большой частоте. Но если говорить честно, то мы не будем работать с битами напрямую, всю работу на себя возьмёт программная библиотека (которых, кстати, для Arduino огромное множество).
У нашей светодиодной ленты имеются три контакта: «+5V», «GND» и «D». Причем с одной стороны от светодиода у нас промаркировано «DO», а с другой «DIN». «D» — это как раз линия, по которой идут команды. Команды могут идти только в одном направлении. «DIN» - дискретный вход, «DO» - дискретный выход. И, как правило, направление команд отмечено стрелочками.
Товары
- Комментарии