Итак продолжим разговор о плате Arduino. Поговорим о различных электронных компонентах на ней. Их там хватает. Какая-то часть из этой информации вам понадобится, а какая-то нет. Я затрону немного больше, чем вам возможно понадобится, но вдруг. Боюсь, что если расскажу слишком поверхностно, то вы рано или поздно столнетесь с вопросами на которые не будете знать ответ. Так что это будет полезно, если я выдам немного больше инфы чем вам зачастую будет нужно и, когда пойдет что-то не так, вам будет известна причина неполадки. Так что много знаний не бывает.
Это контакты входов-выходов. Я обозначил эти выводы красным. У всех этих контактов есть внутреннее отверстие, куда вставляются провода. Для таких разъемов есть специальные соединительные провода. Так что, вы вставляете провод в отверстие и это отверстие сверху картинки или снизу соединено посредством дорожек на плате. Они соединены с ножками самой микросхемы главного процессора, расположенного внизу платы. На плате видно не все дорожки, они могут проходить внутри многослойной платы, или под ней, но они соединены. По-этому, если вам нужно подключиться к этому чипу микроконтроллера, подключайтесь к портам входов-выходов вверху или снизу, к тем, которые помечены красным. Сверху мы видим дискретные каналы. Эти каналы предназначены для исполнения роли дискретных входов и выходов. Они генерируют и принимают дискретные сигналы. В качестве дискретного сигнала у этой платы Arduino Uno выступают уровни ноль вольт и 5 В. Ноль вольт означает логический ноль, и 5 В означает логическую единицу. При этом есть другие платы из линейки Arduino, которые характеризуются напряжением входов-выходов 3,3 В. Тоесть от нуля до 3,3 В, но сейчас мы будем работать с уровнями 0 В/5 В. Дискретные входы-выходы находятся сверху на картинке. А часть из тех выводов, что снизу, являются аналоговыми входами. Это те, что снизу справа. Они могут принимать аналоговые данные. На них можно подавать не только ноль или 5 В, а и все промежуточные значения. И эта информация может быть прочитана микроконтроллером. Мы поговорим о том, как это делается позднее. Так что аналоговые сигналы можно подавать только на эти входы. Ещё запомните, что такие платы не поддерживают аналоговые выходы. Просто эти процессоры так спроектированы. Так что, тут нет аналоговых выходов, а только аналоговые входы. Конвертер аналоговых входов встроен внутри микроконтроллера.
Левее от аналоговых входов находятся выводы питания и перезагрузки. Обычно это выходные выводы. Там есть выводы общего провода и плюсов питания. Там есть выводы 5 В, 3,3 В, несколько общих проводов, и управляющие сигналы. Это все на этих выводах, к которым можно подключать какие-либо внешние схемы. Вам возможно прийдется брать 5 В с этой платы Arduino, подключая к этим выводам какую-либо електронную цепь, или соединять земли между платами Arduino. Вы можете взять землю среди этих выводов и соединить её с частью своей внешней цепи при помощи перемычки. Выводы общего провода вы будете использовать довольно часто потому что они необходимы для подключения датчиков и исполнительных механизмов.
Теперь остановимся на двух важных составляющих платы Arduino. В составе данной платы есть два микроконтроллера. Главный - тот, который крупнее, ATmega328. В нём выполняется программа, которую вы загрузили в плату. Ваш написанный и скомпилированный код записывается в этот микроконтроллер ATmega328, который потом выполняет его.
В дополнение к этому контроллеру мы видим тут ещё один микроконтроллер, с наименованием ATmega16U2, и он занимается только коммуникацией с USB-портом. USB - это протокол, а этот процессор всё, что умеет, - это просто понимает USB-протокол. И данные, приходящие с USB, он преобразует в то, что понимает главный процессор, и передает их в наш главный процессор. А, когда главный процессор хочет что-то передать в USB, дополнительный процессор конвертирует это в USB-протокол и отправляет на порт. Это та вещь, под названием ATmega16U2, с которой вы вряд ли захотите сталкиваться на программном уровне. В его флеш памяти записана программа, которой вы не будете косаться. Она просто всегда будет там оставаться для общения с USB. Она позволяет загружать программу в ATmega328 прямо через USB без использования специальных программаторов.
ATmega328, с которым вам прийдется работать, и другие микроконтроллеры на самом деле, говоря понятным языком, имеют два типа программного обеспечения. Так вот. Первый тип называется ПО приложение. Это тот код, который обычно пишет программист. Это та программа, которой нет в новом чистом микроконтроллере, вы загружаете ёё для ваших конкретных проектов. Если вы хотите разработать проект на Arduino, например, который будет определять, нужно ли полить цветок в горшке. Он будет определять влажность почвы и поливать вазон, к примеру. Вы напишете для этого программу, которая будет относиться к коду приложению. Вы пишете программу и она выполняет главную функциональность системы, напрямую.
Но, помимо кода приложения, в системах обычно есть понятие аппаратного программного обеспечения. Это ПО нижнего уровня, которое поддерживает аппаратные функции, но напрямую не косается функций верхнего уровня. Это ПО обеспечивает все рабочие вещи, такие как интерфейс USB. Ардуине нужно общаться через USB. И вам, как программисту, не обязательно разбираться, каким образом происходит общение с USB интерфейсом, но самой Ардуине это необходимо знать. По-этому в ней предусмотрен код, предназначенный для общения по USB. Программа загрузчика предназначена для чего-то подобного и мы обсудим это позднее. Режимы питания. Изменение режимов питания с низкого потребления на обычное - это происходит на заднем плане. Вы как программист не обязаны это видеть. Если нажать кнопку перезагрузки, что происходит с устройством, это та часть ПО, в которой программист разбираться не обязан. Эта штука уже запрограммирована там изначально. Обычно мы называем это прошивкой. Программист её не пишет, но это программа, которая висит в Arduino, и идет ещё с завода. Когда вы покупаете ардуино с подобным микроконтроллером, прошивка уже стоит на нём. Различие между прошивкой и прикладной программой это вопрос перспективы. Таким образом ясно, что прикладная программа это то, что пишет конечный программист. Допустим вы берёте Arduino и используете его для управления камерой. Вы используете его для управления двигателями и перемещения линз. Для этого вы пишете программу, и вы пишете её на прикладном уровне. Но как только вы продадите такую камеру кому-то, они ведь не будут влезать в ваш код? У них не будет доступа к этой программе. По-этому для них эта программа будет считаться прошивкой. Этот код для них будет считаться прошивкой потому, что они никогда не будут модифицировать его? Так что такое представление об аппаратном программном обеспечении зависит от вашей перспективы. От положения, которое вы занимаете в цепи преобразований продукта. Если вы купили что-то, и это что-то уже имеет ПО на борту, которое вы не модифицируете, то это ПО можно называть прошивкой, и оно имеет доступ к нижнему уровню управления аппаратной части. Зачастую мы будем сами писать скетчи на этот Arduino, но доступа к прошивке у нас не будет. Но мы как минимум должны помнить что она там должна быть. Аппаратное ПО предустановлено на всех Arduino, прошивка уже загружена в наш ATmega328.
Автор профессор Ian Harris из Калифорнийского университета
Перевод Гресько Евгений
Модуль реле 4-канальный 5В 10А
4-канальный модуль реле для подключения напрямую к дискретному выходу контроллера. Светодиодная инди..
137.39грн.
Джойстик двухосевой
Джойстик двухосевой с кнопкой. Имеет два аналоговых выхода для передачи данных о положении джойстика..
42.92грн.
Контроллер ESP32-WROOM-32 (8MB)
ESP32-WROOM-32 - это мощный универсальный модуль Wi-Fi + BT + BLE MCU, предназначенный для широкого ..
243.36грн.
Датчик света
Интеллектуальный дискретный датчик света. Рабочее напряжение питания 4...6 В постоянного тока. Чувст..
33.04грн.