Как научиться программировать микроконтроллеры

Как научиться программировать микроконтроллеры

Я начинал с электроники. Увлекался с детства. Выписывал журналы "Радио", читал их от корки до корки. И из этих журналов узнал о микроконтроллерах (МК). Они меня сильно заинтересовали, поскольку схемы устройств на МК были значительно проще, чем на транзисторах или даже микросхемах. Но научиться использовать микроконтроллеры я тогда не смог. В журналах было недостаточно сведений, а книг тогда по этой теме не было.

Другое дело сейчас - способов научиться программировать МК много. Осталось только выбрать подходящий. А самый подходящий - это

>>> хороший видеокурс >>>

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

Что такое микроконтроллер

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

Когда-то давно кто-то умный понял, что на существующей элементной базе (транзисторах и обычных микросхемах) уже невозможно создавать устройства, которые удовлетворяли бы современным требованиям по размерам и массе.

Кроме того, требования к электронному оборудованию всё возрастали, и для их выполнения приходилось создавать всё больше и больше новых микросхем - каждая под свою задачу.

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

Так появились микропроцессоры. Микропроцессор - это тоже программируемая микросхема. Но в микропроцессоре, как правило, была только управляющая программа. А память, модули ввода-вывода и т.п. реализовывались в других микросхемах.

Это было лучше, чем применение обычных транзисторов или микросхем. Но всё равно не очень удобно. Потому что даже для очень простых устройств приходилось использовать несколько микросхем: микропроцессор, микросхемы памяти, микросхемы ввода-вывода, тактовые генераторы и т.п.

Поэтому создание микроконтроллера было неизбежным этапом эволюции микропроцессорных систем.

Микроконтроллер - это программируемая микросхема, которая объединяет в одном корпусе все (или почти все) части микропроцессорной системы.

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

Так что микроконтроллеры очень быстро завоевали популярность среди электронщиков, причём как любителей, так и профессионалов. И сегодня применяются практически везде.

Применение микроконтроллеров

Как уже было сказано выше, сегодня микроконтроллеры применяются почти во всех электронных устройствах: игрушках, утюгах, стиральных машинах, автомобилях, да вообще везде.

Даже в основе таких приборов для промышленной автоматизации, как ПЛК, используются микроконтроллеры.

Микроконтроллеры используются в оборонной промышленности. К таким микроконтроллерам очень высокие требования. И цена их соответствующая. МК для оборонки, которые производятся в России, стоят от 15000 рублей за штуку и выше. Сравните с простейшими МК для гражданки - от 50 рублей.

В космической технике МК также используются. К ним требования ещё выше. Например, они должны быть устойчивы к радиации и низким температурам. Про их стоимость я ничего не знаю. Но, думаю, что она самая что ни на есть “космическая”.

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

Язык программирования микроконтроллеров

Я уже говорил, что микроконтроллер - это программируемая микросхема. Из этого следует, что для создания устройств на микроконтроллерах необходимо научиться их программировать.

А для программирования, как известно, используются языки программирования. Языков программирования сегодня существует огромное количество. И для многих из них имеются средства разработки для микроконтроллеров (средства для написания программ).

Однако я советую использовать стандартные средства разработки, которые предоставляют сами разработчики и производители МК. Во всяком случае на начальном этапе обучения. А стандартные средства разработки, как правило, поддерживают только два языка программирования: ассемблер и Си.

Несмотря на то, что ассемблер сложнее, я советую начинать обучение именно с него. Потому что так вы лучше разберётесь с тем, как работает МК и будете понимать, что и зачем вы делаете. А изучить Си можно будет потом.

Что нужно для программирования МК

Программы для программирования микроконтроллеров

Как я уже говорил, для создания программ потребуется среда разработки - это специальная программа, которая устанавливается на компьютер. С её помощью можно писать, отлаживать и загружать программы в микроконтроллер.

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

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

Программы для прошивки микроконтроллеров

Загрузку готовой программы в микроконтроллер в простонародье называют “прошивкой”.

Когда вы написали программу, вам надо загрузить её в МК (прошить микроконтроллер). Для этого вам, кроме программы, потребуется специальное устройство - программатор, а также соединительные кабели.

Всё это можно купить в магазинах электроники или у производителя микроконтроллеров.

Для прошивки микроконтроллера обычно используется та же программа, что и для создания программы.

ВАЖНО! Некоторые микроконтроллеры допускают только одну прошивку, или количество перепрошивок может быть ограничено. Поэтому, прежде чем загружать программу в МК, постарайтесь её как следует проверить и отладить на компьютере.

Как работает микроконтроллер

Ну вообще вы можете об этом узнать, если внимательно прочитаете руководство на конкретный микроконтроллер. Но если сказать упрощённо, то микроконтроллер работает примерно так:

  • При включении питания выполняется сброс всех модулей микроконтроллера в исходное состояние, а программа загружается в оперативную память и начинает выполняться. Обычно программа выполняется в цикле. То есть все команды выполняются последовательно одна за одной. После выполнения последней команды вновь выполняется первая и так до бесконечности - пока не будет отключено питания или выполнен сброс.
  • Тактовый генератор задаёт тактовую частоту. Это позволяет синхронизировать по времени все процессы, происходящие внутри микроконтроллера. Например, если тактовая частота 1000 Гц, то это означает, что за одну секунду генератор выдаёт 1000 тактовых сигналов.
  • Каждый микроконтроллер имеет определённый набор команд (инструкций), из которых и состоит программа. Например, есть команда для чтения входа, есть команда для установки выхода, есть команды для выполнения арифметических операций и т.е.
  • Выполнение каждой команды программы занимает один или несколько тактов. Например, если команда занимает 2 такта, то это означает, что при тактовой частоте 1000 Гц она выполняется за 1 / (1000 / 2) = 0,002 с. Если в нашей программе будет 100 таких команд, то это будет означать, что вся программа будет выполнена за 0,002 * 100 = 0,2 секунды. Это, конечно, упрошённо. Но суть, я думаю, вы уловили.
  • Программа, как правило, считывает какие-то входные значения, обрабатывает их, и выдаёт на выходы сигналы в соответствии с логикой программы. Например, у нас есть новогодняя гирлянда с двумя режимами работы (пусть это будут “бегущий огонь” и “бегущая тень”), которые устанавливаются переключателем. Тогда микроконтроллер, в зависимости от того, на какой вход замкнут переключатель (какой режим выбран), будет через определённые промежутки времени поочерёдно подавать сигнал на выходы (зажигать светодиод - бегущий огонь), или снимать сигнал с выхода (гасить светодиод - бегущая тень). Временные промежутки также программируются при создании программы.

То есть упрощённый принцип работы МК такой:

  • Прочитать входы
  • Обработать полученные данные
  • Установить выходы

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

Пока всё кажется несложным. Но на самом деле, конечно, всё НАМНОГО сложнее. Я привёл лишь некоторые общие сведения для тех, кто совсем не в теме.

Но любым, даже самым сложным вещам, можно научиться. Было бы желание. Но, кроме обучения, требуется, конечно, практика. Без практики любое обучение не имеет ни смысла, ни результата.

Поэтому очень советую в ходе обучения как можно больше создавать программ. Пусть даже без реального микроконтроллера. Хотя бы просто на компьютере.

А вот что делать потом, когда вы уже чему-то научитесь? Где приложить полученные навыки на практике?

К счастью, сегодня и для этого есть множество путей - выбирайте любой из этих или придумайте свой:

  • Устроиться на работу, связанную с программированием микроконтроллеров
  • Разрабатывать, создавать и продавать свои устройства на МК
  • Преподавать уроки по микроконтроллерам в техническом училище или ВУЗе, ну или в области дополнительного образования
  • Работать как фрилансер - задач по микроконтроллерам на биржах фриланса довольно много
  • Создать свой канал про МК на Ютубе или в соцсетях, и зарабатывать на рекламе
  • Написать свою книгу или видеокурс по микроконтроллерам и также зарабатывать на их продаже
  • В конце концов, просто создавать свои устройства для удовольствия, то есть превратить это в увлекательное хобби, дарить эти устройства друзьям и родственникам, увлекать этим своих детей и т.п.

Основы программирования микроконтроллеров

Конечно, я не расскажу вам в одной статье даже основы. Узнать их вы можете здесь. А я лишь покажу, как примерно выглядит программа для микроконтроллера (точнее, исходный текст программы):

//Заголовочный файл, который подключает определения
//ввода-вывода для устройства, используемого в проекте
#include <avr/io.h>

//Здесь можно объявить функции, константы и т.п.

int main(void)
{
  //Здесь выполняем необходимые приготовления к работе:
  //устанавливаем режимы работы портов и т.п.  
  DDRB = 0xFF;
  PORTB = 0x00;
  DDRB |= (1 << PB0);			//PB0 на вывод

  //Бесконечный цикл основной программы
  while(1)
  {
    //Здесь пишем код программы
    PORTB |= (1 << PB0);	//На PB0 - высокий уровень
  }
}

Это пример программы для микроконтроллера на языке Си. Эта программа бесполезная, потому что она просто устанавливает высокий уровень на одном выходе. Но для понимания структуры программы этого достаточно. Ну а чтобы создавать полезные программы - надо учиться.

И, как я говорил выше, начать лучше всё таки с ассемблера. А потом, если будет желание, можно перейти на Си. Как можно всему этому научиться - см. ниже.

Видеокурсы по программированию микроконтроллеров

В рунете я знаю только одного автора, который создал уже несколько видеокурсов по микроконтроллерам. Но это очень крутой автор. Прям очень-очень. Уж поверьте - мне есть с чем и с кем сравнивать, потому что я за свою программистскую жизнь прочитал огромное количество книг и просмотрел немало видеокурсов.

Если вы новичок, то советую пока изучить первый видеокурс. Изучить тщательно, с практической проработкой всех примеров. Ну а если у вас уже есть какой-то опыт, то выбирайте то, что вам наиболее интересно.

Программирование микроконтроллеров для начинающих


Программирование микроконтроллеров для начинающих Очень, очень, очень крутой курс. Я сам лично его смотрел. Кроме того, я рекомендовал его множеству людей, и все, кто его изучал - все пищат от восторга. Я не получил ни одного плохого отзыва об этом курсе. Здесь есть всё, чтобы новичок прошёл путь от полного нуля до создания собственных устройств на микроконтроллерах. В курсе 109 видео общей продолжительностью более 60 часов. Уверяю вас - вы нигде больше не получите столько ценной информации за такую цену.

Подробнее...

Программирование микроконтроллеров на языке Си


Программирование микроконтроллеров на языке Си Как я уже говорил, начинать обучение лучше с языка ассемблера. И это вы сможете сделать с помощью первого курса. Но если вы хотите шагнуть дальше - на профессиональный уровень, то очень желательно научиться программировать МК на Си. Почему? Есть две основные причины. Язык ассемблера отличается для каждого МК, потому что у каждого микроконтроллера свой набор команд. Поэтому, если вы решите перенести свою готовую программу на новую модель МК, то вам придётся изрядно помучиться. Вторая причина - это время. Программирование на Си требует меньши времени на разработку. Для профессионала это важно, потому что время - это деньги.

Подробнее...

Создание устройств на микроконтроллерах


Создание устройств на микроконтроллерах Следующий шаг на пути профессионала - это прокачивание своих навыков, изучение разных фишек и т.п. Из этого курса вы узнаете о многих крутых фишках, необходимых при создании устройств на МК на профессиональном уровне. Например, вы узнаете как передавать по радиоканалу шифрованные данные, как записывать на карты памяти любые данные (изображения, текст и т.п.), как воспроизводить звуковые файлы, как выводить данные на ЖК-дисплеи, как работать с сенсорными экранами, как использовать RFID-технологии и т.п. В общем, если вы уже имеете опыт программирования МК и предыдущие курсы вам не интересны, то этот вам точно пригодится.

Подробнее...

Программирование дисплеев Nextion


Программирование дисплеев Nextion В предыдущем курсе рассказывается о работе с дисплеями, но не так подробно, как, возможно, кому-то хотелось. К тому же там речь идёт об относительно простых дисплеях. Но современные устройства часто требуют использования экранов, способных отображать сложную и качественную графику. И для этого как раз подходят дисплеи Nextion с возможностью программирования. Эти дисплеи можно использовать совместно с микроконтроллерами, Ардуино и компьютерами.

Подробнее...

Три курса со скидкой


Три курса со скидкой Если вы уже фанатично полюбили микроконтроллеры, и окончательно решили их досконально изучить, то вы можете получить три первых курса со скидкой. Как говорится: оптом - дешевле. Описания курсов вы можете найти по ссылкам выше, а получить их все вместе можно здесь. Экономия по сравнению с покупкой курсов по отдельности составит 780 рублей.

Все четыре курса со скидкой


Все четыре курса со скидкой Вы также можете купить все четыре курса. В этом случае экономия будет ещё больше. По сравнению с покупкой курсов по отдельности она составит 1880 рублей. Ссылка на оформление заказа...

Инженер умных устройств


Инженер умных устройств А это уже серьёзное обучение. Для тех, кто любит погорячее. Из этого курса вы узнаете, что такое интернет вещей - Internet of things (IoT), станете специалистом в этой области с нуля и создадите сеть умных устройств. Вы изучите язык Си, механизмы отладки и программирования микроконтроллеров (STM32, Arduino). Вы получите опыт работы с технологиями Wi-Fi, Bluetooth и LoRa для построения современных встраиваемых систем. В общем, очень крутое обучение. Недостаток только один - очень дорогое. Но зато вы получите диплом, 10 работ в портфолио и помощь в трудоустройстве. А ещё вы получите в подарок набор компонентов и инструментов, необходимых для изучения основ электроники.

Подробнее...

Ну вот и всё, на этом краткое знакомство с МК можно закончить. Надеюсь, вам было интересно. Также советую подписаться на рассылку об МК, в которой я рассказываю чуть подробнее о микроконтроллерах для начинающих, и из которой вы будете узнавать о выходе новых статей, книг и обучающих курсов:

Микроконтроллеры для ЧАЙНИКОВ Микроконтроллеры для ЧАЙНИКОВ

Бесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее...


Реклама. Информация о рекламодателе по ссылкам в статье

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика