Микроконтроллеры это просто. С чего начать.

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

Arduino предлагает множество платформ на разных микропроцессорах, основные отличия в количестве портов, разрядность микропроцессоров (8 разрядные или 32 разрядные), наличием USB порта у микропроцессора и наличием wi-fi.

Cегодня среда разработки ArduinoIDE поддерживает не только оригинальные платы Arduino, но и множество других микропроцессоров, программа в Arduino IDE называется «скетч».

Все платы Arduino являются оценочными, то есть для удобства разработки и отладки, Вам не надо на этапе разработки паять микропроцессор, разрабатывать плату, можно сначала на отладочной плате проверить подключенные датчики и переферию, проверить работу программы, а потом уже окончательно делать схему на микропроцессоре, хотя можно делать и конечные устройства на отладочных платах.  Но я всё таки рекомендую использовать их как отладочные, а окончательное изделие делать на микропроцессоре, это обусловлено тем, что если делать окончательные изделия на отладочных платах, то размер получается достаточно большой, особенно это относится к платам типа Arduino размер которых 100 х 53 мм в то время как микропроцессор имеет размер 7 х 7 мм, есть конечно и меньшего размера платы.

Одним из наших с ребенком проектов была модернизация набора лего с двигателем, сам блок с двигателем имеет разъем питания и переключатель направления движения, соответственно внутрь надо было поместить микропроцессор и драйвер двигателя, при ограниченном месте плату разработки внутрь разместить невозможно, размещение спаружи нарушало эстетический вид и мешало бы собирать конструктор, разработка платы с модулем ESP-12 позволило вместить всё внутрь

Быстрый старт.

Для прошивки я рекомендую приобрести USB-UART преобразователь на чипе FTDI с возможностью переключения напряжения 5 — 3,3 в

USB-UART преобразователь

Для старта я рекомендую начинать с 32-х разрядного микропроцессора с wi-fi на борту esp8266 (на сегодня 4 микропроцессора с wi-fi популярны, это ESP8266, ESP-32, RTL8710), стоимость esp8266 на Aliexpress около 100 рубей.

ESP-12E плата для ESP-12

у него нет usb порта и программировать его надо через USB-UART преобразователь, но имеются платы с usb-uart преобразователем, такие как NodeMCU или WeMos D1

NodeMCU v3

WeMos D1

обе платы имеют свои преимущества, у NodeMCU имеется шилд расширения для управления моторами, у WeMos имеется несколько разных плат расширения с различными датчиками.

Преимущество esp8266 в том, что за достаточно не большую цену мы имеет беспроводноую коммуникацию, то есть можем подключиться к модулю по wi-fi с компьютера или смартфона. Во все модули не требуется загрузчик (bootloader) поскольку они програмируются через UART порт с помощью USB-UART адаптера.

Забег на средние дистанции.

Следующие три платы для разработчика в такой же ценовой категории, около 100 рублей, это Arduino Nano, Arduino micro и STM32F103C8T6. Все они достаточно маленькие (самая большая из них 53 х 23 мм)

Arduino Nano 8 разрядный микропроцессор Atmega328p, микропроцессор не имеет USB порта, на плате имеется USB-UART преобразователь. Загрузчик в микропроцессор прошивается с помощью ISP программатора. Плата уже с прошитым загрузчиком. Питание 5 вольт.
Arduino micro 8 разрядный микропроцессор Atmega32U4, микропроцессор имеет USB порт. Загрузчик в микропроцессор прошивается с помощью ISP программатора. Плата уже с прошитым загрузчиком. Питание 5 вольт.
STM32F103C8T6 32 разрядный микропроцессор STM32F103C8T6, микропроцессор имеет USB порт. Загрузчик в микропроцессор прошивается с помощью USB-UART адаптера. Плата не имеет прошитого загрузчика. Питание 3.3 вольта.

Arduino Nano и Arduino micro подключаются к USB и программируется из Arduino IDE поскольку в микропроцессор уже зашит загрузчик (bootloader), вот STM32 не получиться сразу запрограммировать по USB поскольку у него нет загрузчика, но прошить загрузчик в STM32 можно легко имея USB-UART адаптер (стоимость адаптера 100 рублей) и дальше программировать через стандартный USB порт, однако это недостаток при разработке является преимуществом, поскольку когда в конечном изделии Вы будете использовать микроконтроллер, а не плату разработки и загрузчик в микропроцессор записывать надо будет при использовании любого из перечисленных микропроцессоров (Atmega328p, Atmega32U4 или STM32F103C8T6), однако в отличии от STM32 в который загрузчик прошивается с помощью 100 рублевого USB-UART адаптера, в Atmega328p, Atmega32U4 загрузчик прошивается с помощью специального ISP программатора, в прочем который стоит тоже не сильно дорого (около 3 долларов на Aliexpress)

Микропроцессор STM32F103 на данной плате применяется самый младший из этой линейки и имеет 48 контактов (согласно даташиту есть ещё 64 и 100 контактов чипы)

Какой смысл использовать эти микропроцессоры если esp8266 стоит столько же? Смысл имеет если Вам надо сделать устройство которое не требует wi-fi и может продолжительное время работать на батарейке или маленьком аккумуляторе. Некоторые приводят в качестве аргументов ещё и количество портов, у ESP8266 их фактически 10 против 20 у Arduino Nano и Arduino micro, но на самом деле количество портов увеличиваются соответствующей микросхемой расширителем портов например.

Большегрузы.

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

На первом месте достаточно интересная плата Arduino Zero

Arduino Zero

Она имеет 32 разрядный микропроцессор SAM D21G у которого есть USB порт, на плате применяется средний микропроцессор имеющий 48 контактов (согласно даташиту есть 32 (D21E) и 64 (D21J) контакта версии), однако в Arduino IDE Вы можете программировать не все выходы, а только те, что выведены, то есть 22 вместо 34-х, в прочем возможно все выводы использовать этого микроконтроллера в ArduinoIDE, для этого надо установить поддержку SAM 15×15, там же есть информация как прошить загрузчик в чистый микроконтроллер SAM D21G. Однако по сравнению с STM32 на этом этапе принципиально не отличается, но стоит в 5 раз дороже. Есть и другие платы с данным микропроцессором.

Следующие 2 микропроцессора это 8-и разрядный Mega 2560 (Arduino Mega) и 32 разрядный SAM3U4E (Arduino Due). У данных плат много выводов, по 54 цифровых и чуть больше десятка аналоговых, у Due выведен 2 пина ЦАП и Can шина.

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

Для старта достаточно вышеперечисленного списка.

Для добавления вышеперечисленных микроконтроллеров которые не являются родными для Arduino (esp8266, STM32, SAM 15×15) необходимо указать дополнительные ссылки для менеджера плат, я собрал все ссылки в одном месте, в поле в настройки добавьте строку:

http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://raw.githubusercontent.com/avandalen/SAM15x15/master/package_avdweb_nl_index.json,https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json, https://github.com/Ameba8195/Arduino/raw/master/release/package_realtek.com_ameba_index.json, https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json

И установите поддержку плат в соответствующем меню.

Другие платформы.

Есть и другие платформы, хочу обратить внимание на некоторые достаточно интересные.

Kniwwelino — интересная платформа на ESP-12 разработанная в Люксембурге, имеет свою библиотеку для ArduinoIDE и онлайн редактор с использованием Blockly

Adafruit — несколько мини плат для интересных проектов.

Как сделать свою плату

Думал вынести это в отдельную статью, но фактически всё сводится к рекомендации по выбору PCB программы и на отдельную статью это не тянет.

Есть много программ для разработки печатных плат, можно долго спорить какая лучше, но я рекомендую использовать в качестве программы для разработки мультиплатформенную программу KiCAD, он достаточно легкий в освоении, а если Вы научитесь работать с горячими клавишами то достаточно быстро будете редактировать Вашу схему.

После того как Вы разработаете свою плату в KiCAD надо экспортировать её в формат GERBER и заказать изготовление на JLCPCB, на сайте есть инструкция как экспортировать плату для заказа, в одной из следующих статей я подробно опишу этот процесс на русском.

Микроконтроллеры это просто. С чего начать.

Навигация по записям