Оголошення

  • (слайд) Вівторок
    • день пам’яті Дугласу Аддамсу, автору «Путівника автостопом по галактиці»
    • в цей день кожен хороший трекер має свій рушник на видному місці;)

Вступ

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

може бути
Роботи

(слайд) Ця книга є послідовником т. зв. Зроби сам принцип, що скорочено означає «Зроби сам», то зроби це сам. Саме для таких майстрів і любителів.

(слайд) Ця область також називається подібним терміном Make, і тому кожен, хто займається такою діяльністю, є Виробником:-).

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

Приклад літака

Приклад літака

Літак містить комп’ютер, який обробляє дані поточного польоту. Але йому для цього потрібно зібрати їх. Наприклад він повинен знати, наскільки високо він летить, як швидко він летить там, де він знаходиться. Літаку потрібна вся ця інформація для того, щоб мати можливість вирішити, що робити, відповідно. де це має бути найближчим часом. На основі зібраних даних він регулює висоту за допомогою крил, уповільнюючи або прискорюючи за допомогою двигунів.

збір інформації про поточний стан і положення літака, належить до фази сенс,

оцінка інформації та виконання наступного кроку літака, належить до фази подумайте, a

звучання, відп. Збільшення потужності авіаційних двигунів, регулювання положення крил, належить фазі діяти.

Вступ до мікроконтролерів

Мікроконтролер - це комп’ютер спеціального призначення на одному чіпі.

Arduino UNO

Arduino Uno

Примітка

Давайте детальніше розглянемо все на дошці:

Примітка

Для того, щоб все працювало як слід, потрібно використовувати т. Зв. перетворювачі логічного рівня від 3,3 до 5 В (від англійського рівня).

Програмування Arduino

Примітка

Якщо ви використовуєте ОС Linux, ви також можете встановити IDE Arduino безпосередньо з дистрибутивних пакетів. Однак я рекомендую встановлювати цей інструмент безпосередньо за допомогою установників з www.arduino.cc, оскільки версія, доступна в дистрибутивних пакетах, може бути досить старою порівняно з останньою версією проекту, доступною з.

Примітка

Налаштуйте IDE

Однак, якщо ви хочете змінити ці налаштування:

перейдіть до меню Інструменти> Дошка, щоб змінити дошку за замовчуванням, або

перейдіть до меню Інструменти> Порт, щоб змінити порт за замовчуванням.

Приклад блимання

Проект Blink можна знайти на прикладах безпосередньо в IDE Arduino. Ви можете знайти його в меню Файл> Приклади. Давайте завантажимо його в Arduino. Після запису програма запускається автоматично, а світлодіод на платі починає блимати.

Примітка

Ті, хто вже випробував Arduine, вже знають, що цей світлодіод підключений до цифрового штифта D. 13. Це означає, що макрос LED_BUILTIN насправді 13 .

Якщо ми натиснемо кнопку RESET, програма запуститься знову з самого початку.

Структура ескізу

Давайте детальніше розглянемо сам код:

де значення цих функцій полягає в наступному:

setup () - функція використовується для ініціалізації висновків і запускається лише один раз (на початку)

loop () - функція представляє основний цикл програми (так званий. суперцикл) і після ініціалізації функцією setup () ця функція повертається безперервно

Ардуїно та пам’ять

Зверніть увагу, скільки займає отриманий код - 924B від 32256B. І зверніть увагу, скільки у нас є пам’яті - 9B з 2047B. Чому існують дві сентенції? У нас не повинно бути лише однієї пам'яті для програми та даних?

Примітка

Цей список обумовлений інструментом avr-size, який є альтернативою AVR інструменту розміру. Він знаходиться в інсталяції Arduino (у папці hardware/tools/avr/bin /) або у дистрибутивах Linux у відповідному пакеті (наприклад, у Fedora це пакет avr-binutils).

Щоб запустити інструмент, потрібно під час перекладу увімкнути Додаткову інформацію у Властивостях та знайти у звіті про переклад рядок, що містить шлях до файлу .elf. Потім використовуйте його як параметр команди avr-size:

Архітектура системи

Карта пам'яті ATmega328P

  1. Розділ завантажувача, який займає 512В, a
  2. Розділ прикладних програм, де знаходиться сама програма

Адресна шина флеш-пам'яті відрізняється від SRAM (має інший адресний простір). Термін його служби становить щонайменше 10 тис. Циклів.

Використання пам'яті SRAM

Приклад коду

Увага

Примітка

Проблеми з пам’яттю

(слайд) Хоча ми в достатній мірі займались динамічним розподілом пам’яті всередині об’єкта (і головним чином призначеним), його використання у разі вбудованих пристроїв може бути не ідеальним. Дуже просто, що так станеться фрагментація пам'яті.

Фрагментація пам'яті

Примітка

намагатися ланцюжки були якомога коротшими - кожен символ у пам'яті займає 1B, що означає, що ви можете написати рядок довжиною макс. 2048 символів

намагайся йти далі мінімальний розмір поля - якщо пізніше ви виявите, що вам потрібно змінити розмір, просто відредагуйте його та перекомпілюйте програму

Примітка

(слайд) Артерія Бечинського, один з популяризаторів та авторів проекту Arduino 101, сказав в одному зі своїх семінарів, що "Програмування для Arduino також може бути досить гарною вправою для написання ефективного коду для перевірки досвіду".

.kkrieger

(слайд) На закінчення, давайте просто розглянемо, що можна зробити менш ніж 95 кБ коду - давайте розглянемо проект .kkrieger.

.kkrieger (від Krieger, німецька для воїна) - це відеоігра шутера від першої особи, створена німецькою демогрупою .theprodukkt (колишній підрозділ Farbrausch), яка завоювала перше місце в ігрових змаганнях 96k на Breakpoint у квітні 2004 року. версія станом на 2012 рік

Додаткові ресурси

Домашня сторінка Arduino - домашня сторінка проекту Arduino

Пам'ять SRAM мікроконтролера - Не всі знають, що оперативна пам'ять (нехай пропустимо "S") розділена на кілька областей даних, деякі з яких не відомі. Побачимо їх разом

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

Оптимізуйте використання пам'яті Arduino - під час роботи із вбудованими пристроями оперативна пам’ять (оперативна пам’ять) є одним з найцінніших та обмежених ресурсів системи. Основна увага в цій статті приділяється оптимізації використання оперативної пам’яті для MCU Arduino, але той же принцип застосовується до багатьох інших вбудованих пристроїв.