Лаборатория 1 - Arduino

съдържание

  • 1 Какво е Arduino и как да НЕ го убием
  • 2 Къде да закупите Arduino
  • 3 Инсталиране на драйверите
  • 4 основни неща, които трябва да знаете за Arduino
  • 5 IDE
  • 6 Пример
    • 6.1 Примигване
    • 6.2 Изпращане на данни към серийния порт на компютъра.
    • 6.3 Получаване на информация от серийния интерфейс (или от шпакловката).
  • 7 Упражнения
    • 7.1 Задача 1 (10pt)

Какво е Arduino и как да НЕ го убием

Arduino е платформа, използвана за програмиране на поредица процесори от семейството на Atmel. Arduino използва процесори SoC (система на чип), спецификациите на всеки тип Arduino могат да бъдат намерени на https://www.arduino.cc/en/Products/Compare .

могат бъдат

Поредица от копия на платформата Arduino Uno ще бъдат използвани в лабораториите DSFUM, копията са взети от Китай и, с изключение на един модул за зареждане на програмите, които китайците са сметнали за подходящи да заменят с изградени от тях, модулът експлоатацията и спецификациите са идентични. Така че процесорът, който ще се използва, е ATmega328P, работи при напрежение 5V (въпреки че входното напрежение за Arduino може да бъде между 7V и 12V) и има 16Mhz. Въпреки че изглежда малък, 16Mhz са достатъчни за създаване на много сложни програми, но те няма да ви дадат толкова свобода, колкото процесора на компютър: този път ще трябва да оптимизирате кода до максимум, в противен случай имате шанс програмата да не се побере в RAM (2Kb) или да не работи със задоволителна скорост (надявам се да знаете как е със сложността на алгоритмите).

Тъй като сме се срещали със студенти, които се страхуват от Arduino, трябва да споменем, че напрежението, което може да бъде опасно за хората, е над 24V (въпреки че само над 50V може да стане фатално) - така че можете да работите с Arduino без никакъв страх, че можете да получите ток. По-скоро бихте могли да навредите на Arduino, ако не поставите проводниците правилно или ако го поставите в неподходящ трансформатор (над 12V). В тази лаборатория ще свържете Arduino към USB портовете на компютрите и тъй като те осигуряват 5V (500mA), захранването е достатъчно, за да работи Arduino. Има някои устройства, които могат да бъдат прикрепени към Arduino и които се нуждаят от токове по-високи от 5V, но ние ще ги обсъдим в бъдеща лаборатория. Като начало, ето някои ограничения, които трябва да имате предвид, за да не изгорите дъските на Arduino, които имаме:

Въпреки че горното има за цел да ви изплаши малко, Arduino не е толкова скъп (около 30 леи), така че изгарянето му не е толкова голяма драма. Също така, USB портовете изгоряха поради Arduino, който не съм виждал много (но не е невъзможно).

Къде да купя Arduino

Някои връзки към онлайн магазини в Румъния:

https://www.robofun.ro - тук те са по-скъпи, но оригинални

Или, ако искате, можете да закупите Arduinos и други компоненти от нашите китайски братя, които са из целия ebay (вижте, че човекът, от когото купувате, има висок процент положителни отзиви или е сертифициран от ebay). Сайтове като alibaba, aliexpress, extreme hill и др. те ви предоставят и компоненти Arduino +. Препоръчваме да купувате строго това, от което се нуждаете, а не цели пакети сензори, които по-късно няма къде да използвате.

Можете също така да опитате колегите, които направиха Arduino миналата година.

Инсталиране на драйвер

За неоригинални Arduinos (особено тези от китайски или от румънски сайтове на по-ниски цени) ще ви е необходим драйвер за компонента, който зарежда програмата в процесора на Arduino. Тя може да бъде намерена на страницата на курса или директно на: https://profs.info.uaic.ro/

За да инсталирате драйвера, първо свържете платката Arduino към компютъра и след това посочете мястото, където сте разархивирали драйвера. В случай, че не работи по този начин, в драйвера ще намерите и изпълним файл, който ще извърши принудителна инсталация (но все пак трябва да свържете arduino предварително и да го поддържате по време на инсталацията - за да може инсталаторът да открие кой тип arduino сте го свързали). Arduinos, който имаме, не работи с MacOS (доколкото ни е известно), студенти, които имат тази операционна система, инсталирана на лаптопи, са поканени да работят на съществуващи компютри в лабораторията.

Основите, които трябва да знаете за Arduino

Arduino е създаден специално за използване в образованието, особено за техническите училища, ориентирани към електрониката. Платформата Arduino може да се захранва от USB порта на всеки компютър (или дори от зарядно устройство, което предлага USB порт). Той може да бъде програмиран с помощта на език, много подобен на езика C, чиито спецификации могат да бъдат намерени на сайта arduino.cc, официалния сайт на платформата Arduino (по-точно на https://www.arduino.cc/en/Reference/HomePage).

Различни сензори и изпълнителни механизми могат да бъдат свързани към arduino. Сензорите взимат информация от околната среда, а задвижванията се използват, за да я променят по определен начин (например можем да вземем през датчик за светлина факта, че е потъмнял отвън и можем да затворим реле, свързано към електрическата крушка в хола, за да улов). За свързване на хардуер, Arduino UNO предлага редица 14 цифрови връзки (номерирани от 0 до 13) и 6 аналогови връзки (номерирани от 0 до 5). Обикновено цифровите връзки се използват за свързване на изпълнителни механизми и аналогови за свързване на сензори (въпреки че това не е правило).

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

Има няколко IDE за програмиране на платформата Arduino (нищо чудно, ако вземем предвид, че всичко тук се случва в двора на текущия OpenSource), този, който ще използваме в този курс, е официалният, намиращ се на страницата arduino.cc ( по-точно на https://www.arduino.cc/en/Main/Software).

Считаме, че най-важните/интересни местоположения в този интерфейс, които ви каним да намерите, са:

Примери

Примигвай

Първият пример, който ще видим в лаборатория 1, е Blink (от менюто File-> Examples-> Basics-> Blink). Ролята на тази програма е да включи и след това да изключи светодиода на платката Arduino и който е свързан към щифт 13. Обикновено тази програма се използва за проверка на добра комуникация между компютър и платформата Arduino (можете да проверите дали програмата е качена, и че работи правилно - обикновено новите Arduinos идват с тази предварително инсталирана програма, точно защото тя се използва за проверка на правилната работа). Стойността LED_BUILTIN (която е константа) може да бъде заменена с 13 - цифровия щифт, към който е свързан светодиода. Тъй като когато качите програма на платформата Arduino, това се случва през серийния порт, можете да видите мигането на два светодиода TX/RX на дъската на Arduino. Ако не виждате тези два светодиода да мигат, това означава, че не сте избрали правилно порта, към който е свързан Arduino, или не сте инсталирали драйверите.

Изпращане на данни към серийния порт на компютъра.

Серийният порт е може би най-старият от съществуващите. Той изпраща символи един след друг (както подсказва името: сериен). Въпреки че серийният порт е надстроен и вече е известен като USB (Universal Serial Port), режимът на предаване е подобен. За да се синхронизират двете устройства, и двете трябва да знаят скоростта, с която се осъществява комуникацията. Тази скорост за серийния порт се измерва в бод и показва броя на кодовете, които могат да бъдат предадени за секунда. Колкото по-висока е тази стойност, толкова по-бърза е комуникацията и по-бърза е инструкцията, която изпраща кода. За този пример ще използваме обем от 9600 (въпреки че Arduino може да достигне 2 000 000 знака в секунда). В IDE ще напишем и след това ще качим следния код, обясненията ще бъдат предложени от лабораторния учител:

Ако сте видели как работи програмата (използвайки Serial Monitor при бод 9600 - вижте по-горе как да получите достъп до нея), отворете приложението за шпакловка, което можете да изтеглите от Интернет, при тип връзка изберете "Serial" и след това изберете порта на който е свързан с Arduino (може да се види в долния десен ъгъл на IDE) и изберете скоростта от 9600. След натискане на бутона Open ще можете да видите информацията, предавана от Arduino.

Получаване на информация от серийния интерфейс (или от шпакловката).

Можете да използвате или Serial Monitor в IDE интерфейса, или приложението Putty, за да видите как работи следващото приложение.

Упражнения

Задача 1 (10pt)

Създайте програма Arduino, която получава една от 1,2 или 3 опции от серийния порт.

  • (3pt) Ако избраната опция е 1, думата "on" ще се покаже на серийния порт и светодиодът от щифт 13 ще светне.
  • (3pt) Ако избраната опция е 2, думата "off" ще се покаже на серийния порт и светодиодът от щифт 13 ще изгасне.
  • (3pt) Ако избраната опция е 3, думата "мигане" ще се покаже на серийния порт и светодиодът от щифт 13 ще мига (подобно на приложението за мигане).
  • (1pt) Ефектът от изпращането на кода е незабавен (моментален). Ще бъде тествано, ако по време на мига. когато крушката свети, опция 1 се поставя, светодиодът ще остане съответно светещ, ако по време на мигането, ако когато светодиодът е изключен, опцията 2 е включена, светодиодът остава изключен.