Зображення користувача Андрій Гончаренко.
Андрій Гончаренко
  • Відвідувань: 6
  • Переглядів: 6

STM32: Стартуємо! Навчаємось! Реалізуємо!

Розпочинаю серію статей за допомоги яких, крок за кроком, оволодіємо навичками програмування і реалізації в кінцеві діючи пристрої на базі мікроконтролерів STM32. Берусь за цю справу по декільком причинам. По-перше, статей по STM32 українською мовою немає. Може і є, але google про них не знає, або щось і є типу рефератів. По-друге, статті будуть розраховані зовсім на новачків. Сам розпочав з нуля і вже щось виходить, то і у вас вийде. Буду ретельно розглядати ті моменти які мені давались важко як новачку. По-трете, шкірне питання - з написанням статей буду разом з вами вдосконалюватись.

Авангард авіації
Процес Навчання
Прискорює!
Пізнання
Сили Творця
Вдосконалюємо!

Передмова

Розпочинаю серію статей за допомоги яких, крок за кроком, оволодіємо навичками програмування і реалізації в кінцеві діючи пристрої на базі мікроконтролерів STM32. Перераховувати переваги саме цих мікроконтролерів перед іншими немає сенсу, бо таких статей в мережі безліч. Наприклад, хороша стаття російською мовою "STM32: эпоха 32-битных микроконтроллеров наступила". Головна перевага цих контролерів це низька ціна. А можливостей "для дому, для сім'ї" просто безмежно. Статей про те як легко і просто стартувати на цих мікроконтролерах з прикладами теж безліч, але я берусь за цю справу по декільком причинам. По-перше, статей по STM32 українською мовою немає. Може і є, але google про них не знає, або щось і є типу рефератів. По-друге, статті будуть розраховані зовсім на новачків. Сам розпочав з нуля і вже щось виходить, то і у вас вийде. Буду ретельно розглядати ті моменти які мені давались важко як новачку. По-трете, шкірне питання - з написанням статей буду разом з вами вдосконалюватись.

І ще один момент зазначу. В мережі, в статтях про легкий старт та як зробити те чи інше, часто-густо йдуть з прикладами заради прикладу. Наприклад, увімкнути/вимкнути світлодіод. Це звісно дуже потрібні приклади і з цього потрібно починати. Це основа основ, бо мікроконтролером ми будемо вмикати/вимикати не тільки світлодіоди, а і реле, двигуни, клапани, та керувати більш складними модулями. Це, так би мовити - база, основа без якої не обійтись. Але вмикання/вимикання світлодіода просто так - це, погодьтесь, дуже нудна справа. Все ж веселіше задумати якусь гру-забавку, зробивши яку, ще й в неї можна погратись і весело провести час у компанії. Граючись - веселіше навчаємось. Ну а вже потім, коли зрозуміємо разом як то все працює, перейдемо до більш складних і корисних речей. Наприклад зробимо домашню метеостанцію з двома сенсорами температури (вулиця, приміщення) з годинником і календарем. А потім перейдемо до якоїсь автоматики системи "Розумний Дім".

Стартуємо

Залізо

Плата розробника

Я обрав STM32VLDISCOVERY на мікроконтролері STM32F100RB. Вибір був простий: доступність, низька ціна і щоб було можливостей - "на виріст". Придбати плату можна тут, або тут. Чи ще деінде.

Виглядає плата розробника так: 
 
Плата неначе поділена на дві частини. Ліворуч сам піддослідний чип з двома кнопками, одна RESET інша користувача. Двома світлодіодами користувача. І два кристали кварцу. Один кристал на 8МГц для тактування самого процесора і кварц на 32.768KHz для тактування годинника реального часу. Частина праворуч - програматор з роз'ємом miniUSB для зв'язку з комп'ютером і живлення всієї плати. Цей програматор можна використовувати для програмування "зовнішніх" мікроконтролерів. Для цього на платі є 4-х піновий роз'єм SWD. По периметру плати розташовані виводи мікроконтролера. Невеличкий відео-огляд цієї плати розробника:
Це може бути інша плата розробника, головне щоб мікроконтролер на ній був серії STM32F10x. Тоді приклади, які будуть розглядатись, можна не адаптувати, а просто копіювати. Ось наприклад чудова плата на базі мікроконтролера STM32F103C8T6. Маленька - можна її застосовувати в кінцеві проекти. Дешева - не дорожче п'яти доларів. І всі програми які будемо з вами писати, будуть до неї підходити. Але для неї ще потрібен програматор, або окремий , або у складі плати розробника. Так що пропоную таки спершу придбати плату розробника з програматором, а вже потім купувати такі платки для кінцевих проектів, які потрібно застосувати на практиці, а не для навчання.

Контактна макетна плата

 Хоч і не обов'язково, але дуже зручно мати контактні макетні плати "breadboard". З часом я завів декілька різних контактних макетних плат, як на світлині, щоб було де "розгулятись" навчаючись, чи коли створювати свої проекти, мати запас для творчості. Але все зразу купувати не треба, це як приклад. Час покаже що конкретно вам буде потрібно.

З-за того що у плати STM32VLDISCOVERY виводи порту "B" PB10 - PB15 розташовані не вздовж плати а поперек, як видно на світлині, то мусив піти на маленьку хитрість по встановленню плати на "breadboard" таким чином:

З'єднувальні дроти

Ще потрібні з'єднувальні дроти різної довжини "тато - тато" і "мама - тато" для з'єднання елементів схеми-проекту. Та кабель USB - miniUSB тип B для зв'язку мікроконтролер - комп'ютер.
Це все що стосується "заліза" (hardware) для старту.

Програмне забезпечення

Також нам потрібно "software", те на чому ми будемо писати наші "шедеври" і "заливати" їх до нашого мікроконтролеру. Я використовую безкоштовну оболонку для програмування мікроконтролерів CooCox CoIDE, і компілятор ARM Embedded Processors.  
Писати програми будемо на мові програмування C++. Сам я новачок і роблю перші кроки в C++, але нічого страшного і супер складного в цій мові немає. Колись давно придбав книгу на книжковому ринку Брайана Оверленда "С++ БЕЗ СТРАХУ". Чому саме цю, бо в анотації було зазначено - "В більшості книг по програмуванню на мові С++ передбачається, що читач вже програмував на іншій мові, а ще краще на декількох. Цю книжку можна читати з нуля". Що мені підходило дуже і дуже. Бо той досвід що мав за плечіма, асемблер для Z80 і пару видів Basic ну ніяк не наближали мене до великих знань в програмуванні на мові C++. Ви можете навчатись по якійсь іншій книзі, або якщо вже знаєте С++ , то вам взагалі буде легко стартувати. Тож лежала та книга в мене на поличці без діла і ось вона мені згодилась. Зараз користуюсь нею як настільною книгою куди я постійно підглядаю. І звісно, мережа internet дуже і дуже допомагає в навчанні.
 Встановлення програмного забезпечення на ПК з ОС Windows в наступному дописі "STM32: CooCox IDE встановлення і запуск". А поки можна запасатись потрібними речами.

 

Якщо ви помітили помилку, то виділіть фрагмент тексту не більше 20 символів і натисніть Ctrl+Enter
Підписуюсь на новини

Зверніть увагу

Френк Герберт: Ну як вам друге дно Вулика Геллстрома?

«Вулик Геллстрома», «Дюна» і 10 принципів Джигаду – політичний проект Френка Герберта

«Життя у вулику передбачає не регламентовану монотонність, а МЕТАМОРФОЗУ. Коли комаха досягає межі своїх можливостей, вона чудесним чином перетворюється на абсолютно нову істоту. У цій метаморфозі я...

Останні записи

Кращий коментар

Зображення користувача Андрій Гончаренко.
0
Ще не підтримано

Радий що подумки повернув вас у дитинство пане Володимир :-)
9-12 років на мою думку, це ще замалий вік. Орієнтуюсь по собі. Бо радіоаматорством самотужки і свідомо захопився десь з 13 - 14 років. До цього батько навчив паяти і пояснив саме елементарне.
Але як під наглядом дорослого і це буде цікаво для дитини, то думаю що можна. Небезпечної напруги і струму не буде. Паяти нічого не треба, але треба бути дуже уважним при монтажу, бо все одно можна щось спалити так що все ж таки потрібні якісь базові знання про елементи схем, транзистор, резистор, конденсатор, струм, напруга, з'єднання паралельне/послідовне. Логічні одиниці і типи чисел, логічні операції над числами. І таке інше.
Так що дивіться, на ваш розсуд.

Зірковий корабель серед зірок золотистих надає Землі і Людям стрімке спонукання до руху.

Коментарі

Зображення користувача Вадим Кононенко.
0
Ще не підтримано

Пане, Орію. Був радий побачити цей допис, мене особисто, як радіолюбителя в минулому, цікавить цей напрямок. Я раніше програмував ATMEL 8051 (http://www.atmel.com/ru/ru/products/microcontrollers/8051Architecture/default.aspx) та КР1878ВЕ1 (http://www.angstrem.ru/products/micro/tesey-8/KP1878BE1.html)

Може, долучуся до Ваших пошуків. А для дітвори, як на мене, це найкращий спосіб спробувати себе й увійти у світ програмування.

Зображення користувача Андрій Гончаренко.
0
Ще не підтримано

РаДію, що хоч комусь на НО ця тема близька. Я вас зрозумів пане Вадим. Зазначу що STM32 є дуже перспективною темою. Все ж таки 32 розряди проти 8 розрядів, що ви навели, мають очевидні переваги. Розраховую на аудиторію саме новачків (підлітків), бо це не тільки програмування, а і схеми, електроні елементи, робототехніка і всіляка автоматика. Мені б таке в дитинстві я б від щастя просто луснув би :-)
Щодо вашої пропозиції, то приймається. Поки готові дві статті, пишу третю (дуже об'ємну). Коли вже їх опублікую, то було б дуже корисно взнати від того хто на практиці за допомоги моїх статей спробував все це і повідомив на слабкі місця, наприклад, може якісь моменти треба детальніше, а якісь моменти зайві. Оце б була велика допомога.

Зірковий корабель серед зірок золотистих надає Землі і Людям стрімке спонукання до руху.

Зображення користувача Володимир Майборода.
0
Ще не підтримано

Вчора прочитав Вашу статтю і мене ця тема знову повернула в дитинство, коли захоплювався конструюванням дуже дитячих електронних саморобок за готовими схемами - "Канарейка", наприклад )). Тому, маю "дитячий рівень" знань електроніки. Вважаю це гарним і достойним заняттям для молоді і РаДію, що з'явився учитель!
Тому, запитання:
- для дитини віком 9-12 років це буде доступно? Якщо "так", то перші учні у Вас будуть (разом зі мною ;) )!

Хто шукає - той знаходить, бо: 1. Завжди стається те, чого ми хочемо. 2. Ми ніколи не знаємо шляхів реалізації наших задумів.

Зображення користувача Андрій Гончаренко.
0
Ще не підтримано

Радий що подумки повернув вас у дитинство пане Володимир :-)
9-12 років на мою думку, це ще замалий вік. Орієнтуюсь по собі. Бо радіоаматорством самотужки і свідомо захопився десь з 13 - 14 років. До цього батько навчив паяти і пояснив саме елементарне.
Але як під наглядом дорослого і це буде цікаво для дитини, то думаю що можна. Небезпечної напруги і струму не буде. Паяти нічого не треба, але треба бути дуже уважним при монтажу, бо все одно можна щось спалити так що все ж таки потрібні якісь базові знання про елементи схем, транзистор, резистор, конденсатор, струм, напруга, з'єднання паралельне/послідовне. Логічні одиниці і типи чисел, логічні операції над числами. І таке інше.
Так що дивіться, на ваш розсуд.

Зірковий корабель серед зірок золотистих надає Землі і Людям стрімке спонукання до руху.

Зображення користувача Миро Продум.
0
Ще не підтримано

Чудова ідея - поглибити самоосвіту шляхом публікації статей. Це справді працює, знаю по собі.

Освячуйся! Озброюйся! Плодися!

Зображення користувача Андрій Гончаренко.
0
Ще не підтримано

Саме так. Бо іноді так "застопорюсь", що просто дим з вух йде. І наче почитаю, і наче ще глибше копну, почитаю - а дим йде і йде. А потім просто дружині розказую як маленькій дитині, бо вона ніц не розуміє з того всього. І під час пояснення приходить і розуміння, і прозріння :-)

Зірковий корабель серед зірок золотистих надає Землі і Людям стрімке спонукання до руху.

Зображення користувача Анатолій Висота.
0
Ще не підтримано

Друже Орію, радий, що з"явилася тут ваша стаття на ГОЛОВНІЙ СТОРІНЦІ про мікроконтролери. Був би молодший - і сам би зайнявся цим. Прошу висловитися про мій допис у блозі про пічку Мілано-2, а також взяти участь у голосуванні моєму під назвою "Спілкування...".