Съобщения

  • (слайд) Вторник
    • ден на паметта на Дъглас Адамс, авторът на „Пътеводител на автостопа за галактиката“
    • на този ден всеки добър тракер има хавлията си на видимо място;)

Въведение

(слайд) Купих тази книга преди няколко години. Това е и весела книга за най-малките (отдавна се запознах с възрастовата категория) за роботи, с които можете да създадете свои собствени роботи (различни интелигентни и от различни компоненти). Купих го по няколко причини, но две от тях бяха: терминология и илюстрации, съответно. примери. И в няколко неща тя също ми беше полезна при подготовката на тази лекция.

arduino
Роботи

(слайд) Тази книга е последовател на т.нар. Направи си сам принцип, което е съкращение от „Направи си сам“, така че направете го сами. То е за такива майстори и любители.

(слайд) Тази област се нарича също подобен термин Make и следователно всеки, който се занимава с подобни дейности, е Създател:-).

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

Пример за самолет

Пример за самолет

Самолетът съдържа компютър, който оценява данните от текущия полет. Но той трябва да ги събере за това. Напр. той трябва да знае колко високо лети, колко бързо лети там, където е. Самолетът се нуждае от цялата тази информация, за да може да реши какво да прави, респ. където трябва да бъде в близко бъдеще. Въз основа на събраните данни той регулира височината с помощта на крила, забавя или ускорява с помощта на двигатели.

събиране на информация за текущото състояние и положение на самолета, принадлежи към фазата смисъл,

оценка на информацията и изпълнение на следващата стъпка на самолета, принадлежи към фазата мисля, а

озвучаване, респ. увеличаването на мощността на самолетните двигатели, регулирането на позицията на крилата, принадлежи към фазата действай.

Въведение в микроконтролерите

Микроконтролерът е компютър със специално предназначение на един чип.

Arduino UNO

Arduino Uno

Забележка

Нека разгледаме по-отблизо всичко на дъската:

Забележка

За да може всичко да работи както трябва, трябва да използвате т.нар. преобразуватели на логическо ниво между 3.3V и 5V (от превключвател на ниво английски).

Програмиране на Arduino

Забележка

Ако използвате операционна система Linux, можете също да инсталирате IDE на Arduino директно от пакетите за разпространение. Препоръчвам обаче да инсталирате този инструмент директно с помощта на инсталаторите от www.arduino.cc, тъй като версията, налична в пакетите за разпространение, може да е доста стара в сравнение с последната версия на проекта, достъпна от.

Забележка

Настройте вашата IDE

Ако обаче искате да промените тези настройки:

отидете в менюто Tools> Board, за да промените дъската по подразбиране, или

отидете в менюто Инструменти> Порт, за да промените порта по подразбиране.

Пример за мигане

Проектът Blink може да бъде намерен в примери директно в IDE на Arduino. Можете да го намерите в менюто Файл> Примери. Нека го качим в Arduino. След записа програмата стартира автоматично и светодиодът на платката започва да мига светодиод.

Забележка

Тези, които вече са изпитали Arduine, вече знаят, че този светодиод е свързан с цифров пин Д. 13. Това означава, че макросът LED_BUILTIN всъщност е 13 .

Ако натиснем бутона RESET, програмата ще започне отново от началото.

Структура на скицата

Нека разгледаме по-отблизо самия код:

където значението на тези функции е следното:

setup () - функцията се използва за инициализиране на щифтовете и се стартира само веднъж (в началото)

loop () - функцията представлява основния цикъл на приложение (т.нар. супер луп) и след инициализация от функцията setup (), тази функция се връща непрекъснато

Arduino и памет

Забележете колко отнема полученият код - 924B от 32256B. И обърнете внимание колко памет имаме на разположение - 9B от 2047B. Защо има две максими? Не трябва да разполагаме само с една памет за програмата и данните?

Забележка

Инструментът avr-size, който е AVR алтернатива на инструмента за размер, е отговорен за този списък. Той се намира в инсталацията на Arduino (в папката хардуер/инструменти/avr/bin /) или в дистрибуциите на Linux в съответния пакет (например във Fedora това е пакетът avr-binutils).

За да стартирате инструмента, трябва да включите Повече информация в Свойствата по време на превода и да намерите ред в отчета за превод, който съдържа пътя, водещ до файла .elf. След това го използвайте като параметър на командата avr-size:

Системна Архитектура

Картата на паметта на ATmega328P

  1. Секция Boot Loader, който заема 512B, a
  2. Раздел за приложна програма, където се намира самата програма

Адресната шина на флаш паметта се различава от SRAM паметта (тя има различно адресно пространство). Неговият експлоатационен живот е поне 10 000 цикъла.

Използване на SRAM памет

Пример за код

Внимание

Забележка

Проблеми с паметта

(слайд) Въпреки че сме се справили в достатъчна степен с динамичното разпределение на паметта в рамките на обекта (и главно назначен), използването му в случай на вградени устройства може да не е идеално. Много е лесно да се случи така фрагментация на паметта.

Фрагментация на паметта

Забележка

опитвам се да веригите бяха възможно най-къси - всеки символ в паметта заема 1B, което означава, че можете да напишете низ с дължина макс. 2048 знака

опитайте се да продължите минимален размер на полето - ако по-късно установите, че трябва да промените размера, просто го редактирайте и прекомпилирайте програмата

Забележка

(слайд) Артерията на Бечински, един от популяризаторите и авторите на проекта Arduino 101, заяви в един от своите семинари, че „Програмирането за Arduino също може да бъде доста добро упражнение при написването на ефективен код за тест на опит“.

.kkrieger

(слайд) В заключение, нека просто разгледаме какво може да се направи с по-малко от 95kB код - нека разгледаме проекта .kkrieger.

.kkrieger (от Krieger, немски за войн) е видео игра за първо лице, създадена от немската демогрупа .theprodukkt (бивш подразделение на Farbrausch), която спечели първо място в състезанието за 96k игри в Breakpoint през април 2004 г. Играта остава бета версия към 2012г

Допълнителни ресурси

Начална страница на Arduino - начална страница на проекта Arduino

S S паметта на микроконтролера - Не всеки знае, че RAM паметта (нека пропуснем „S“) е разделена на няколко области с данни, някои от които не са добре известни. Нека ги видим заедно

Харвард Архитектура - Харвардската архитектура е компютърна архитектура с отделни съхранение и сигнални пътища за инструкции и данни. Той контрастира с архитектурата на фон Нойман, където програмните инструкции и данни споделят една и съща памет и пътища.

Оптимизиране на използването на паметта на Arduino - Когато работите с вградени устройства, RAM (памет с произволен достъп) е един от най-ценните и ограничени ресурси на системата. Фокусът на тази статия е върху оптимизацията на използването на RAM за Arduino MCU, но същият принцип се прилага и за много други вградени устройства.