Працюємо з 09:00 до 20:00 без вихідних.
Київ лівий берег біля ТЦ Квадрат

Отже продовжимо розмову про плату Arduino. Поговоримо про різні електронні компоненти на ній. Їх там вистачає. Якась частина з цієї інформації вам знадобиться, а якась - ні. Я торкнуся трохи більше, ніж вам можливо знадобиться, але раптом. Боюсь, що якщо розкажу занадто поверхнево,  то ви рано чи пізно зіткнетеся з питаннями, на які не будете знати відповіді. Тому буде корисно, якщо я видам трохи більше інфи ніж вам зазвичай буде потрібно і, коли щось піде не так, вам буде відома причина неполадки. Так що знань не буває забагато. 

Це контакти входів-виходів. Я позначив ці виводи червоним. У всіх цих контактів є внутрішній отвір, куди вставляються дроти. Для таких роз'ємів є спеціальні з'єднувальні дроти. Отже, ви вставляєте дріт в отвір і цей отвір зверху картинки або знизу з'єднаний за допомогою доріжок на платі. Вони з'єднані з ніжками самої мікросхеми головного процесора, що знаходиться внизу плати. На платі видно не всі доріжки, вони можуть проходити всередині багатошарової плати, або під нею, але вони з'єднані. Тому, якщо вам потрібно підключитися до цього чіпу мікроконтролера, підключайтесь до портів входів-виходів зверху або знизу, до тих, що помічені червоним. Зверху ми бачимо дискретні канали. Ці канали призначені для виконання ролі дискретних входів і виходів. Вони генерують і приймають дискретні сигнали. В якості дискретного сигналу у цієї плати Arduino Uno виступають рівні нуль вольт і 5 В. Нуль вольт означає логічний нуль, і 5 В означає логічну одиницю. При цьому є інші плати з лінійки Arduino, які характеризуються  напругою входів-виходів 3,3 В. Тобто від нуля до 3,3 В, але зараз ми будемо працювати з рівнями 0 В/5 В. Дискретні входи-виходи знаходяться зверху на картинці. А частина з тих виводів, що знизу, є аналоговими входами. Це ті, що знизу справа. Вони можуть приймати аналогові дані. На них можна подавати не тільки нуль або 5 В, а і всі проміжні значення. І ця інформація може бути прочитана мікроконтролером. Ми поговоримо про те, як це робиться, пізніше. Аналогові сигнали можна подавати тільки на ці входи. Ще запам'ятайте, що такі плати не підтримують аналогові виходи. Просто ці процесори так спроектовані. Так що, тут немає аналогових  виходів, а тільки аналогові входи. Конвертер аналогових входів вбудований всередині мікроконтролера.

Лівіше від аналогових входів знаходяться виводи живлення і перезавантаження. Зазвичай це вихідні виводи. Там є виводи загального проводу і плюсів живлення. Там є виводи 5 В, 3,3 В, декілька загальних дротів, та керуючі сигнали. Це все на цих виводах, до яких можна підключати будь-які зовнішні схеми. Вам можливо доведеться брати 5 В з цієї плати Arduino, підключаючи до цих виводів будь-який електронний ланцюг, або з'єднати землі між платами Arduino. Ви можете взяти землю серед цих виводів і з'єднати її з частиною свого зовнішнього кола за допомогою перемички. Виводи загального дроту ви будете використовувати досить часто, тому що вони необхідні для підключення датчиків і виконавчих механізмів. 

Тепер зупинимось на двох важливих складових плати Arduino. В складі даної плати є два мікроконтролери. Головний - той, що побільше, ATmega328. В ньому виконується програма, яку ви завантажили в плату. Ваш написаний і скомпільований код записується в цей мікроконтролер ATmega328, який потім виконує його. 


На додаток до цього контролера ми бачимо тут ще один мікроконтролер, з найменуванням ATmega16U2, і він займається тільки комунікацією з USB-портом. USB - це протокол, а цей процесор все, що вміє, - це просто розуміє USB-протокол. І данні, що приходять з USB, він перетворює в те, що розуміє головний процесор, і передає їх в наш головний процесор. А, коли головний процесор хоче щось передати в USB, додатковий процесор  конвертує це в USB-протокол і відправляє на порт. Це та річ, під назвою ATmega16U2, з якою ви навряд чи захочете зіткнутись на програмному рівні. В його флеш пам'яті записана програма, якої ви не будете торкатися. Вона просто завжди буде там залишатися для спілкування з USB. Вона дозволяє завантажувати програму в ATmega328 прямо через USB без використання спеціальних програматорів. 

ATmega328, з яким вам прийдеться працювати, та інші мікроконтролери насправді, говорячи зрозумілою мовою, мають два типа програмного забезпечення. Так ось. Перший тип називається ПО додаток. Це той код, який зазвичай пише програміст. Це та програма, якої немає в новому чистому мікроконтролері, ви завантажуєте її для ваших конкретних проектів. Якщо ви хочете розробити проект на Arduino, наприклад, який буде визначати, чи потрібно полити квітку в горщику. Він буде визначати вологість грунту і поливати вазон, наприклад. Ви напишете для цього програму, яка буде відноситись до коду додатку. Ви пишете програму і вона виконує головну функціональність системи, напряму. 

Але, окрім коду додатку, в системах зазвичай є поняття  апаратного програмного забезпечення. Це ПЗ нижчого рівня, яке підтримує апаратні функції, але напряму не стосується функцій верхнього рівня. Це ПЗ забезпечує всі робочі речі, такі як інтерфейс USB. Ардуіні  потрібно спілкуватися через USB. І вам, як програмісту, не обов'язково розбиратись, яким чином відбувається спілкування з USB інтерфейсом, але самій Ардуіні це необхідно знати. Тому в ній передбачений код, призначений для спілкування по USB. Програма завантажувача призначена для чогось подібного і ми обговоримо це пізніше. Режими живлення. Зміна режимів живлення з  низького споживання на звичайне - це відбувається на задньому плані. Ви як програміст не зобов'язані це бачити. Якщо натиснути кнопку перезавантаження, що відбувається з приладом, це та частина ПЗ, в якій програміст розбиратися не зобов'язаний. Ця штука вже запрограмована там від самого початку. Зазвичай ми називаємо це прошивкою. Програміст її не пише, але це програма, яка висить в Arduino, і йде ще з заводу. Коли ви купуєте ардуіно з подібним мікроконтролером, прошивка уже стоїть на ньому. Різниця між прошивкою і прикладною програмою це питання перспективи. Таким чином ясно, що прикладна програма це те, що пише кінцевий програміст. Припустимо ви берете Arduino і використовуєте його для управління камерою. Ви використовуєте його для управління двигунами і переміщення лінз. Для цього ви пишете програму, і ви пишете її на прикладному рівні. Але як тільки ви продасте таку камеру комусь, вони ж не будуть влазити у ваш код? У них не буде доступу до цієї програми. Тому для них ця програма буде вважатись прошивкою. Цей код для них буде вважатись прошивкою тому, що вони ніколи не будуть модифікувати його? Так що таке уявлення про апаратне програмне забезпечення залежиться від вашої перспективи. Від положення, яку ви займаєте в ланцюгу перетворень продукту. Якщо ви купили щось, і це щось вже має ПЗ на борту, яке ви не модифікуєте, то це ПЗ можна називати прошивкою, і воно має доступ до нижнього рівня управління апаратної частини. Найчастіше ми будемо самі писати скетчі на цей Arduino, але доступу до прошивці у нас не буде. Але ми як мінімум повинні пам'ятати що вона там повинна бути. Апаратне ПЗ предвстановлено на всіх Arduino, прошивка вже завантажена в наш ATmega328. 


Автор професор Ian Harris з Каліфорнійського університету

Переклад Гресько Євген

Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Модуль розширення входів-виходів PCF8574A

Модуль розширення входів-виходів PCF8574A

Розширювач портів на основі спеціалізованої мікросхеми PCF8574AКомунікаційний інтерфейс I2CМодуль ро..

61.67грн.

Коліщатко з підшипником 3х10х4 мм

Коліщатко з підшипником 3х10х4 мм

Підшипник з обмежуючим кільцем застосовується у якості колеса для рухомих робочих органів 3D-принтер..

24.59грн.

Панель для камери

Панель для камери

Підвіс для механізованого повертання камери за допомогою серво-двигунів SG90Дозволяє віддалено ..

47.19грн.

Міні кнопка SMD 6 x 6 x 5 мм

Міні кнопка SMD 6 x 6 x 5 мм

Мініатюрна кнопка з SMD виводамиРозміри 6 x 6 x 5 мм..

0.65грн.

Прото модуль для WeMos D1 mini

Прото модуль для WeMos D1 mini

Монтажний шилд під плату контролера WeMos D1 miniВ комплекті традиційно зібрані усілякі гребінк..

28.00грн.