Що таке мікроконтролер та чому у нас багато прогрмування

Всі вже звикли до того, що нас оточують безліч електронних пристроїв, які працюють за певною програмою. Програмою керуються смартфони, температура в приміщенні може автоматично підтримуватися програмою, дрон, керуючись програмою, може рухатися в потрібному напрямку. І в попередніх серіях ми вже розповідали про те, що студенти нашої освітньої програми «Телекомунікації та радіотехніка» за спеціальністю 172 «Електронні комунікації та радіотехніка» багато програмують, і вже на початку навчання працюють з комплектами Arduino, де починають опановувати мікроконтролери. Пізніше, на старших курсах вони вже переходять до тієї елементної бази, з якою будуть працювати на підприємствах та у компаніях.

Річ йде про сучасні 32-бітні мікроконтролери фірми ST Microelectronics. Однак, для початку пояснимо, чим мікроконтролер відрізняється від мікропроцесора. Мабуть всі ви знайомі з процесорами, вони використовуються у комп’ютерах, ноутбуках, планшетах, смартфонах… Їх основною задачею є виконання великого обсягу обчислень в одиницю часу (мільярди та десятки мільярдів операцій за секунду!). Але, для нормальної роботи процесору потрібні допоміжні мікросхеми: оперативна та постійна пам’ять (і чим більше – тим краще, щоб ігри не гальмували, звичайно ж), система живлення, графічна карта, генератор тактової частоти, різні інтерфейсні мікросхеми. Також за високу обчислювальну потужність доводиться платити високим енергоспоживанням (десятки і навіть сотні Ват для ПК та ноутбуків і одиниці-десятки ват для смартфонів та планшетів). У випадку автономних пристроїв, які живляться від акумуляторів, і повинні бути в робочому стані дуже довго, це є проблемою (всі знають, скільки ноутбук пропрацює від акумулятора під час гри). Але, для багатьох пристроїв така високопродуктивна обчислювальна система є надлишковою, наприклад, недоцільно використовувати комп’ютер для керування швидкістю обертання електродвигуна, обробки даних кількох сенсорів у системі “розумний будинок”, або керування безпілотником, що летить по заданій програмі. В таких випадках використовують так званий мікроконтролер.

Мікроконтролер – це маленький комп’ютер, що знаходиться у середині мікросхеми, де на одному кристалі розміщені і процесор і всі необхідні для нього елементи (пам’ять, інтерфейси тощо). Обчислювальна потужність мікроконтролера на порядки менша ніж у процесора, але, разом з тим, на порядки менше і енергоспоживання, та й габарити пристрою також менші, що важливо для вбудованих та автономних систем.

На розробку програм та загалом систем на базі мікроконтролерів спрямовані «Вступ до фаху», «Мікропроцесорні системи» та низка вибіркових дисциплін, за цей напрям відповідає доцент кафедри Хоменко М.А., який має значний практичний досвід розробки мікроконтролерних систем для українських та закордонних компаній. В якості мови для програмування мікроконтролерів використовується мова Сі, яка є найбільш поширена в області програмування вбудованих систем. Разом з тим розглядається також і мова низького рівня (асемблер), що дозволяє краще познайомитися з архітектурою мікроконтролера та може стати у нагоді для розробки програм для платформ з обмеженими можливостями. З найпростіших 8-бітних мікроконтролерів AVR студенти починають опановувати програмування цих приладів. А вже в рамках курсу «Мікропроцесорні системи» студенти опановують високопродуктивні сучасні 32-бітні мікроконтролери STM32 з архітектурою ARM Cortex-M, які зараз є одними з найбільш розповсюджених як в Україні так і в світі, зо підтверджується вимогами до розробників на платформах пошуку роботи в сфері ІТ та вбудованих систем. На цих контролерах побудовано безліч електронних приладів починаючи від “розумних” датчиків і до польотних контролерів для дронів. В курсі передбачено лабораторний практикум, де студенти працюють з сучасним обладнанням – платами OpenH743I від WaveShare (STM32H743I з архітектурою ARM Cortex-M7) з платами промислових дротових та бездротових інтерфейсів, сенсорним рідиннокристалічним дисплеєм, акселерометром та гіроскопом, іншими датчиками. Це обладнання – спонсорська допомога від партнерів – компанії AgileVision.io (AgileVision.io) , за що і колектив кафедри і студенти безмежно вдячні. Також для написання програм використовується сучасне програмне середовище розробки STM32CubeIDE, яке має вбудований кодогенератор, що дозволяє швидше та легше почати працювати зі складною периферією цих мікроконтролерів.

Після опанування з цією елементною базою студенти застосовують отримані знання у низці вибіркових дисциплін, де мікроконтролери використовуються в якості інструменту для обробки даних, керування сенсорами, відображенням інформації на дисплеях, організації передачі даних у бездротових мережах тощо. Крім цього, в курсах спрямування «мікропроцесорна техніка та мікроконтролери» використовуються й інше лабораторне обладнання – комплекти на базі модулів ESP32, набори датчиків, що дозволяє студенту в рамках курсового проектування реалізувати всі свої можливі фантазії.

Як результат – студенти мають компетентності з розробки вбудованого програмного забезпечення на мові С та застосування сучасних мікроконтролерів у складі різних радіоелектронних пристроїв для забезпечення задач керування та обробки даних, та можуть починати працювати на Trainee та Junior посадах Embedded Developer, Embedded Engineer, Embedded Software Developer, Embedded C Developer тощо.Тому, якщо для Вас цікаве програмування, і Ви хочете розробляти програмне забезпечення, яке буде керувати електронними системами автомобілів, розумних будинків, дронів – чекаємо на Вас на нашій бакалаврській програмі!