Програмування arduino - фізика процесу

Наша свіжозліплений Ардуіно. як і комп'ютер без софта - просто залізо. Щоб плата ожила і почала робити хоч що-небудь потрібна програма або як часто кажуть - прошивка. Написати її під Ардуіно можна на різних мовах - асемблері, сі, паскале, хоч на бейсике, але, зазвичай, пишуть на Wiring'е. з під особистою ардуіновской середовища розробки - ArduinoIDE і завантажують (прошивають) звідти ж.







Як писати прошивки (у Ардуіно вони називається - скетчі) нам докладно розповів шановний admin, а тим хто захоче розібратися з фізичним процесом запіхіванія нашого віртуального творчості в плату допоможе (сподіваюся) ця серія статей.

Завантажити прошивку в МК сімейства Mega (а саме така коштує в Ардуіно) можна різними способами:
Послідовним программатором по інтерфейсу SPI
Через інтерфейс JTAG
Паралельним ( «високовольтним») программатором.

У всіх цих випадках необхідний програматор. який треба або робити, або десь купувати (коштують вони все пристойно), а в Ардуіно все шиється звичайним USB-шнурком (ну або com як у випадку з хоуммейдовой платою), як же так. Ні розробники не стали запихати на кожну плату за программатору, а використовували одну зручну функцію МК Atmega під назвою «самопрограмування». Якщо в певну область пам'яті програм атмегі прошити спеціальну програму-завантажувач (далі бутлоадер) то можна змусити її (атмегу) прошивати саму себе з будь-якого наявного на борту інтерфейсу - I2C, UART або SPI. У Ардуіно використовується саме UART (com порт практично) - в USB-шних версіях плат варто перетворювач USB-to-COM (зазвичай ft232), а на COM-івських - перетворювач рівнів COM-to-TTL (max232 або на дискретних транзисторах)

Працює все це в такий спосіб - коли Arduino перезавантажується - запускається бутлоадер (якщо він є). Він посилає імпульси на цифровий висновок 13 (до такого висновку підключений світлодіод - він буде блимати) - це означає, що бутлоадер встановлений і працює.
Далі бутлоадер чекає команди або дані від комп'ютера. Зазвичай, це скетч, який бутлоадер записує в flash-пам'ять МК. Потім, бутлоадер запускає свежезагруженную програму на виконання.
Якщо ніяких даних не надходить - бутлоадер запускає попередню програму, яка була завантажена в мікроконтролер.
Якщо ж ніякої програми немає, то бутлоадер запускає себе знову (цикл повторюється).







Плату ми зробили. завантажувач прошили. подивимося що можна в неї завантажити.
Для завантаження скетчів потрібен прямий COM-шнурок тато-мама тобто просто подовжувач - фактично можна увіткнути плату прямо в COM-порт (без шнурка =)

Програмування arduino - фізика процесу

Запускаємо ArduinoIDE (хто не в курсі - запускати треба файл run.bat з папки arduino-0015, свіжу ArduinoIDE можна скачати тут)
Вибираємо тип нашої плати
Програмування arduino - фізика процесу

Вибираємо COM-порт

Програмування arduino - фізика процесу

.
.
.
.
Вибираємо скетч із прикладів, наприклад блинк - будемо блимати светодіодом- стандартний для МК спосіб сказати Хело волд =)
Програмування arduino - фізика процесу
Програмування arduino - фізика процесу

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Будемо хоч трохи оригінальні - змінимо код =) моргнути зовнішнім світлодіодом (13 піном і так бутоладер блимає)

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

Програмування arduino - фізика процесу

подамо харчування, воткнём шнурок в плату і COM-порт,
Програмування arduino - фізика процесу

.
.
.
.
.
.
.
.
.

Чекаємо ... завантаживши =)

Програмування arduino - фізика процесу

Встромляємо світлодіод в землю і в 11 пін, тиснемо резет, чекаємо поки бутлоадер потупивши в очікуванні нового скетчу ... блимає!
Програмування arduino - фізика процесу







Схожі статті