Добавить в корзинуПозвонить
Найти в Дзене
Эпсилон - Про

Программирование на микроконтроллере - как способ дополнительного развития

Приветствую тебя на своем канале. Сегодня мы поговорим про самый лучший способ занимать себя чем-то очень полезным и действительно актуальным. Если смотреть на технологию микроконтроллеров, то это целая эпоха в микроэлектронике. Самый первый микроконтроллер - Intel i8048 который был выпущен в 1976 году и стал первым в своем роде. Понятие микроконтроллер (МК) - на самом деле очень разнообразное, так как это не просто микросхема с набором команд, или с набором управляемых транзисторов (триггеров), а система, которая очень близка к однокристальным компьютерам (SoC) - которые появились как раз за 5 лет до МК. МК - можно сравнивать с SoC но выполняет немного другие действия и для выполнения определенных команд, их нужно "вшить" в память МК. Для примера, направление использования МК в современном мире весьма разнообразно. От простых часов с метеостанцией, до систем автоматизации и управления целыми заводами, 3D-принтеры, ЧПУ-станки и многое другое. Но в качестве хобби, программирование ми

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

Если смотреть на технологию микроконтроллеров, то это целая эпоха в микроэлектронике. Самый первый микроконтроллер - Intel i8048 который был выпущен в 1976 году и стал первым в своем роде.

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

Микроконтроллер ATtiny2313 американской фирмы Atmel. - изображение взято из ресурса Википедия.
Микроконтроллер ATtiny2313 американской фирмы Atmel. - изображение взято из ресурса Википедия.

Для примера, направление использования МК в современном мире весьма разнообразно. От простых часов с метеостанцией, до систем автоматизации и управления целыми заводами, 3D-принтеры, ЧПУ-станки и многое другое. Но в качестве хобби, программирование микроконтроллеров - это отдельное удовольствие для радиотехников.

Но что нужно знать о МК? А очень много, так как на кристалле кремния или германия может находится практически микроЭВМ, если сделать грубое сравнение. В предыдущей статье я немного затронул вопрос структуры МК и сегодня я подробно расскажу про то, что все таки поместили инженеры на кристалл.

Неполный список периферийных устройств, которые могут использоваться в микроконтроллерах, включает в себя:
универсальные цифровые порты, которые можно настраивать как на ввод, так и на вывод;
различные интерфейсы ввода-вывода, такие, как UART, I²C, SPI, CAN, USB, IEEE 1394, Ethernet;
аналого-цифровые и цифро-аналоговые преобразователи;
компараторы;
широтно-импульсные модуляторы (ШИМ-контроллер);
таймеры;
контроллеры бесколлекторных двигателей, в том числе шаговых;
контроллеры дисплеев и клавиатур;
радиочастотные приемники и передатчики;
массивы встроенной флеш-памяти;
встроенные тактовый генератор и сторожевой таймер;

Источник информации: Статья в википедии.

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

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

Если рассматривать микроконтроллер как микроЭВМ - то нужен свой персональный подход, если рассматривать как командное устройство, то подход совершенно отличается. Дело в том, что на основе микроконтроллеров или специальных современных плат расширений, можно создать от простого устройства, которое будет при определенных условиях мигать светодиодом, до устройств - которые будут "создавать" что-то свое. Например станок с ЧПУ или 3D принтер, и даже дрон, который будет управляться с помощью радиосвязи. Иными словами - цифровая микроэлектроника - это отдельный вид радиотехники, который относится к самым перспективным еще с конца 1970 начала 1980х годов.

Но вот чтобы программировать данные микросхемы, существуют основные языки программирования такие как Ассемблер и Си, а также упрощенные и даже графические варианты, которые позволяют даже неопытным программистам микроконтроллеров научиться делать это даже в пару кликов.

Самым распространенным комплектом программирования МК стала система моделирования Arduino которая построена на МК 8 - 16 - 32 разрядной технологии.

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

Программа проектирования "прошивки" построена на "обрезанном" варианте языков семейства Си, и называется Arduino IDE. Ввиду того, что популярность данной платформы стала очень широкой, то и платформер для написания кода выведен в отдельный вид языка программирования Arduino IDE из семейства C++.

Однако, программирование даже на упрощенном языке может вызывать много сложностей, по этому для изучения данной платформы нужно как минимум 6 - 9 месяцев плотно заниматься этой платформой и программированием на ней. Структура языка очень похода на семейство Си, а значит может быть полностью совместима с ними. Основная среда разработки на языках Си, полностью совместима с платформой и даже "блокноты" прогнаммистов уже поддерживают подсветку синтаксиса как на Arduino IDE. А программирование начинается как раз не с того, чтобы писать огромные и не совсем понятные коды, а с того, что нужно для начала понять, какие элементы микроконтроллера будут задействованы, найти соответствующие библиотеки и настройки элементов - которые будут задействованы (профессиональный подход).

Пустая программа на Arduino IDE имеет следующий вид:

void setup()
{
// put your setup code here, to run once:
}
void loop()
{
// put your main code here, to run repeatedly:
}

Где void setup - собственно настройка и void loop - выполнение.

И самая популярная программа-пример, с которой все начинают:

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

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

А в дальнейшем, я посветить время хочу самоделкам, потому что ввиду того, что происходит, это перспективное направление.