Програмиране на Arduino във визуална среда. Програмиране на Arduino със Scratch и mBlock

През последните години кръжоците по програмиране и роботика станаха изключително популярни и са достъпни дори за ученици от началните класове. Това стана възможно благодарение на използването на среди за графично програмиране, които, трябва да се отбележи, се използват активно от големи компании. За да говорим за среди за графично програмиране, сме избрали три от най-популярните от тях.

Visuino е безплатна графична среда, която работи на Arduino-съвместими индустриални контролери Controllino (PLC). Той прави възможно създаването на сложни системи за автоматизация и IoT (Интернет на нещата, Интернет на нещата) решения и това може да стане просто чрез преместване и свързване на визуални блокове. Софтуерната среда автоматично генерира код за индустриални контролери.

И така, какво трябва да се направи. Изберете компоненти (модули) от панела с компоненти и ги преместете в зоната за проектиране. След това те трябва да бъдат свързани и да настроят свойства. Това се прави с помощта на инспектора на обекти.

Предимствата на Visuino включват голям набор от компоненти за математически и логически функции, серво, дисплеи, интернет и др.

Когато PLC е програмиран, графичната среда подсказва наличния начин за свързване към контролера. Може да бъде сериен порт, Ethernet, Wi-Fi или GSM.

Най-накрая вашият проект е готов: всички контролери са регистрирани, всичко работи. Сега, като щракнете върху логото на Arduino, разположено в горния панел, вие ще принудите Visuino да създаде кодове за Arduino и да отвори неговата среда за разработка (Arduino IDE), чрез която вече можете да компилирате кода и да го изтеглите на PLC.

съвет. Ако инсталираната платка не съответства на вашия Arduino, можете да я промените с помощта на командата "Избор на платка".

Тази среда за графично програмиране е създадена през 2003 г., когато група служители на MIT Media Lab решават да разработят език за програмиране, достъпен за абсолютно всеки. В резултат на това след известно време Scratch беше представен на обществеността.

Може би най-вече прилича на Лего. Поне принципът е същият: това е обектно-ориентирана среда, в която програмите са сглобени от детайли, цветни и ярки. Тези детайли могат да се местят, модифицират, да си взаимодействат по различни начини. Scratch се основава на блокове от команди, като сензори, променливи, движение, звук, оператори, външен вид, писалка, контрол и т.н. Вграденият графичен редактор прави възможно рисуването на всеки обект. По-малко от пет години след създаването на Scratch се роди проектът Scratch за Arduino (съкратено S4A), който ви позволява да програмирате Arduino PLC.

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

съвет. За начинаещите в Scratch има специален ресурс: https://scratch-ru.info.

Когато човек вече е усвоил напълно Scratch, но все още не е израснал до Wiring, на който са програмирани платки, съвместими с Arduino, е време да го посъветвате с инструмента ArduBloсk, написан на Java. Това е особено добро за тези, които обичат роботиката.

Каква е разликата? Факт е, че Scratch не знае как да флашне Arduino, той управлява само своя PLC през USB. Така Ардуино не може да работи сам, защото зависи от компютъра.

Всъщност ArduBloсk е междинен етап между детския Scratch и доста професионалния, макар и достъпен Visuino, тъй като, подобно на последния, има възможност за флашване на Arduino-съвместими контролери.

съвет. Не забравяйте да инсталирате Java машина на вашия компютър. Не отнема много време.

И така, повече графични среди - добри и различни. Нека Arduino бъде с вас.

Снимка: производствени компании, pixabay.com Занимавате ли се с програмиране? Да, програмист съм Да, това е много интересно нещо Не съм пристрастен, но детето ми е Да Не, не се интересувам Вижте резултатите Зареждане ... Прочетете също: Arduino: как да завъртите LCD монитор в термометър

Mini-PC Raspberry Pi 3 Model B+ може да се превърне в център на "интелигентния" дом

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

Официалната среда за разработка на модули Arduino се предлага на потребителите под името Arduino IDE ( ориз. 1).

Програмирането в него се извършва на езика ProcesSing / Wiring - диалект на езика C (по-скоро C ++). Средата всъщност е обикновен текстов редактор с възможност за превеждане на програмния текст в машинни кодове и зареждането им в микроконтролера на модула. Алтернатива на Arduino IDE е интегрираната среда AVR Studio, предназначена за микроконтролери от семейството AVR ( ориз. 2). Използва се за разработване и отстраняване на грешки в програми на асемблер, но към него може да се свърже и компилатор C. През 2006 г. смени името си на Atmel Studio.

С появата на езиците за визуално програмиране не само радиолюбителите, но и много професионалисти доброволно преминаха към тях. Съществуващите инструменти за разработка от този тип могат условно да бъдат разделени на три вида:

FBD (функционална блокова диаграма) е графичен език за програмиране на стандарта IEC 61131-3. Програмата представлява списък от вериги, попълнени последователно отгоре надолу. Веригите се формират от библиотечни блокове. Блок (елемент) е подпрограма, функция или функционален блок (И, ИЛИ, НЕ, тригер, таймер, брояч, блок за обработка на аналогов сигнал, математическа операция и др.).

Всяка верига е съставена от отделни блокове, свързващи на екрана на компютъра към изхода на всеки блок входа на следващия. Вътре във веригата програмата изпълнява блоковете стриктно в реда, в който са свързани. Програмата записва резултата, получен на изхода на последния блок от веригата, във вътрешна променлива или го изпраща на изхода на контролера. Пример за визуално представяне на програма на езика FBD е показан в ориз. 7.

LAD (Ladder Diagram) е език на стълбищната логика, известен също като LD и RKS.

Синтаксисът на този език е удобен за описване на логически възли, направени по релейна технология. Езикът е насочен към специалисти по автоматизация, работещи в индустриални предприятия. Той осигурява визуално показване на логиката на контролера, което улеснява не само реалното програмиране и пускане в експлоатация на системата, но и бързото отстраняване на неизправности в оборудването, свързано към контролера. Програмата на езика на релейната логика има визуална и интуитивна форма за електроинженер, представяща логически операции под формата на електрически вериги със затворени и отворени контакти. Потокът или липсата на ток в такава верига съответства на резултата от логическа операция (ток тече - вярно, ток не тече - невярно). Пример за схема на езика LAD е представен на ориз. 8.

Основните елементи на езика LAD са контактите, които могат да бъдат оприличени на контактни двойки релета или бутони. Контактна двойка се идентифицира с логическа променлива, а състоянието на тази двойка се идентифицира със стойността на променливата. Има нормално затворени и нормално отворени контактни елементи. Те могат да бъдат сравнени с нормално затворени и нормално отворени бутони в електрически вериги.

Този подход се оказа много удобен за лесно навлизане на електроинженерите в разработването на системи за автоматизация. Когато разработват проекти за инсталации, те могат лесно да свържат работата си с алгоритмите за работа на контролера. При обслужване на инсталации на място е много важно персоналът по поддръжката да може лесно да провери работата на системата, да открие и отстрани проблема, без да вика програмист от "центъра" за всяка дреболия. Днес с помощта на такива инструменти за разработка се създават почти всички системи за индустриална автоматизация.

Въз основа на тези концепции системата за разработка на програми FLProg работи с модули за микроконтролер Arduino. Тези модули са много удобни за бързо разработване и отстраняване на грешки на устройства, което е важно не само за радиолюбителите, но и много полезно, например, в училищни кръгове и в учебни лаборатории. Едно предимство е, че не е необходим програмист. Достатъчно е да свържете модула Arduino към компютъра и да изтеглите подготвената програма директно от средата за разработка.

В момента има богат избор от двете различни опции за Arduino микроконтролерни модули ( ориз. 9), както и модули, които ги допълват, например сензори и изпълнителни механизми. Освен това в Интернет (например на уебсайта http://robocraft.ru/) можете да намерите огромен брой готови проекти, базирани на тези модули и да ги адаптирате към вашите нужди.

В момента системата FLProg работи със следните версии на модула: Arduino Diecimila, Arduino Duemila-nove, Arduino Leonardo, Arduino Lilypad, Arduino Mega 2560, Arduino Micro, Arduino Mini, Arduino Nano (ATmega168), Arduino Nano (ATmega328), Arduino Pro Mini , Arduino Pro (ATmega168), Arduino Pro (ATmega328), Arduino UNO. Наскоро в списъка се появи и платката Intel Galileo gen2. В бъдеще се планира да се попълни този списък и евентуално да се добавят модули, базирани на STM микроконтролери.

За създаването на FLProg е използван опитът на програмисти от Siemens, ABB, Schneider Electric и разработките в техните среди за програмиране. В същото време класическата функционалност на езиците за работа с индустриални контролери беше донякъде разширена чрез добавяне на функционални блокове, отговорни за работа с външни устройства. Програмата работи на компютри с Windows и Linux.

Потребителският интерфейс на FLProg е подреден по такъв начин, че проектът е набор от виртуални платки, всяка от които съдържа пълен модул на разработваната система. Всяка дъска има име и коментари. За да спестите място в работната зона, тя може да се свие, ако работата по нея приключи, и ако е необходимо, да се разположи отново и да се направят корекции.

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

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

С развитието на програмата се планира да се организира обмен на информация чрез Bluetooth, радиоканал и интерфейс RS-485, работа с триосен жироскоп, светломер и други сензори. По-нататъшните планове включват разработването на SCADA система за достъп до системи, разработени с помощта на средата FLProg от персонален компютър или мобилно устройство.

FLProg превежда разработената "принципиална диаграма" на езика за обработка/окабеляване. Когато компилацията приключи, програмата Arduino IDE автоматично се отваря със заредена скица на проекта. В Arduino IDE трябва да посочите COM порта на компютъра, към който е свързан модулът на микроконтролера, да изберете типа на модула и да заредите програмата в неговия микроконтролер.

Средата за програмиране FLProg може да бъде адаптирана към програмируеми логически контролери, различни от модулите Arduino, което ще ви позволи да използвате руски софтуер за работа с тях.

ЛИТЕРАТУРА

  1. Създаване на помощ за програмата FLProg. - URL http://flprogwiki.ru/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5Помощ -%DO%BO%D0%B4%D0%BB%D1%8F_%D0%8F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC% D1%8BFLProg (23.06 15).
  2. оборудване, използвано в проекта. - URL

Ардублок


Графичен програмен език за Arduino

Ardublock Kit Ver 1.0 Ръководство за потребителя

Какво е Ardublock

Ardublock е графичен език за програмиране за Arduino, предназначен за непрограмисти и лесен за използване.

(не забравяйте, че програмата в Arduino IDE се нарича скица)

Инсталация
Изтеглете архива ardublock-all.jar
Отворете „Arduino IDE/Menu /Arduino/ Preferences“, там ще намерите реда „Местоположение на скицник“

3. Създайте папка „tools/ArduBlockTool/tool“ в папката „Arduino“ в реда
„Местоположение на скица“ и копирайте архива „ardublock-all.jar“ в папката „инструмент“.

Ако потребителското име е „abu“,

На Mac, /Users/abu/Documents/Arduino/tools/ArduBlockTool/tool/ardublock-all.jar

Под Linux, /home/abu/sketchbook/tools/ArduBlockTool/tool/ardublock-all.jar

В Windows, C:\Users\abu\Documents\Arduino

4 Рестартирайте Arduino IDE и трябва да имате елемента „ArduBlock“ в менюто „Инструменти“.

Обърнете внимание на изписването на имената на папките с главни и малки букви.


Използване

Блоковете ArduBlock са разделени на няколко категории.

контрол
Блоковете от категорията „Контрол“ са контролни блокове.

Числа, константи и променливи

Оператори

Помощни програми

Тези блокове са функции, които обикновено се използват в скици.

тухли

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

ПИН

Тези блокове действат като виртуални щифтове на платката Arduino.

Как да програмирате

1. Компилацията трябва да завърши успешно. Ако посоченият порт в средата на Arduino или самата платка не бъдат намерени, се появява прозорец за грешка.

2. Графичните единици с конектори с еднаква форма могат да бъдат свързани помежду си.

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

3. Веднага след натискане на бутона "качване", ArduBlock автоматично ще генерира кода на Arduino, който след това ще бъде качен на платката на Arduino (в този случай текстът на програмата, получен по време на компилацията, ще се появи в прозореца на скицата на средата за разработка Arduino).

Как да стартирате програмата

просто извеждане

1 Пример 1 - Здравей свят (Здравей свят!)

1.1 Хардуерна връзка

Arduino е свързан към пин 13.

1.2 Работа

Светодиодът ще мига 1 път в секунда.

1.3 Скица

1.4 Изтегляне

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

Файлът abp може да бъде зареден чрез щракване върху бутона "зареждане".


След това трябва да посочите изтегления файл и да кликнете върху бутона "отвори".

2 Пример 2 - Аларма

2.1 Хардуерна връзка


Цифров син LED светлинен модул се свързва към пин 12.

2.2 Работа

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

2.3 Скица

2.4 Изтегляне

Просто въвеждане

3 Включва светодиода при натискане на бутон

3.1 Хардуерна връзка

Цифров бял LED светлинен модул е ​​свързан към пин 13.

3.2 Работа

При натискане на бутона светодиодът светва.

3.3 Скица


3.4 Изтегляне

4 Морзова азбука

4.1 Хардуерна връзка

Цифровият RED LED светлинен модул е ​​свързан към пин 13.
Модулът за цифров зумер е свързан към пин 12.
Цифровият бутон е свързан към пин 8.

4.2 Работа

При натискане на бутона светва червения светодиод и се чува звук. Звуковият период е подобен на морзовия код.

4.3 Скица

4.4 Изтегляне

Аналогов вход и изход

5 Сензор за въртене

5.1 Хардуерни настройки

Аналоговият сензор за въртене V1 е свързан към щифт A0.

5.2 Работа

В тази програма можете да разберете стойността на ъгъла на завъртане.
Когато изтеглите програмата, можете да превключите към arduino IDE, щракнете върху иконата на монитора. Прозорците на серийния монитор ще ви покажат ъгъла на въртене в стойности от 0 до 1023.

5.3 Скица

5.4 Изтегляне

6 Затихваща светлина

6.1 Хардуерни настройки

Цифров бял LED светлинен модул е ​​свързан към пин 11.

6.2 Работа

Тази програма ще ви покаже как светлината светва и изгасва бавно.

6.3 Скица

6.4 Изтегляне

7 Измерване на шума 1

7.1 Хардуерни настройки

Цифров бял LED светлинен модул е ​​свързан към пин 11.

7.2 Работа

Този детектор може да измерва нивото на околния шум, светодиодът ще свети по-силно, ако звукът е по-силен.

7.3 Скица


7.4 Изтегляне

8 Измерване на шума 2

8.1 Хардуерни настройки

Цифров бял LED светлинен модул е ​​свързан към пин 11.
Аналоговият звуков сензор е свързан към щифт A0.

8.2 Работа

Този детектор може да измерва нивото на околния шум, светодиодът ще мига по-бързо, ако звукът е по-силен.

8.3 Скица


8.4 Изтегляне

Сергей Глушенко

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

Как започна всичко и как се разви

От момента на появата на микропроцесорите развитието на принципите за работа с тях върви по пътя на растежа на абстракцията. Първият етап представлява програмиране директно в машинни кодове. Програмирането беше сложно, отнемаше време и изискваше много специфичен начин на мислене. Следователно имаше много малко програмисти.

Но човекът е мързеливо същество, а мързелът, както знаете, е двигателят на прогреса. Изобретил първото ниво на абстракция - асемблер. Писането на програми стана по-лесно и по-забавно. Броят на програмистите се увеличи. Но все пак асемблерът не се различава много от машинните кодове.

Следователно се появи следващото ниво на абстракция. Езици на високо ниво. Основната цел на тези езици беше възможността да обяснят на машината какво искат от нея на език, възможно най-близък до човешкия. Това позволи на хора с по-малко специфично мислене да се занимават с програмиране. Следователно, с развитието на езиците от високо ниво, броят на програмистите нараства и броят на полезните програми, които те създават, нараства съответно.

Как стоят нещата сега

Разбира се, за да започнете работа директно с контролера, е необходима известна подготовка. Тоест имате нужда от програмист, персонализирана среда за програмиране на компютър и, разбира се, владеене на език за програмиране. Освен това са необходими умения за работа с поялник, проектиране на печатни платки и познания по електротехника и електроника. Така че прагът за навлизане в областта на създаването на собствени устройства на микроконтролери остава висок.

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

При електрониката и електротехниците нещата стават все по-зле. Доскоро, за да създадат свое собствено устройство с помощта на микроконтролер, те имаха два начина. Или научете сами езика за програмиране C, или помолете програмист за помощ. И двата начина не са най-добрите. За да станете програмист, имате нужда от определен начин на мислене, който не винаги е съвместим с опита от четенето на електрически вериги. Познат програмист може да не е под ръка.

В същото време отдавна има среди за програмиране, адаптирани за обикновен електронен инженер или просто електротехник. Имам предвид среди за програмиране на промишлени контролери. PLC. Те ви позволяват да създавате софтуер за контролери на езици FBDИ ЛАД. Всъщност като такива те не са езици. По-скоро те са графични среди за чертане на схеми или логически диаграми.

FBD (функционална блокова диаграма)

- графичен език за програмиране на стандарта IEC 61131-3. Програмата се формира от списък от вериги, изпълнявани последователно отгоре надолу. При програмиране се използват набори от библиотечни блокове. Блок (елемент) е подпрограма, функция или функционален блок (И, ИЛИ, НЕ, тригери, таймери, броячи, блокове за обработка на аналогови сигнали, математически операции и др.). Всяка отделна верига е израз, съставен графично от отделните елементи. Следващият блок е свързан към изхода на блока, образувайки верига. Вътре във веригата блоковете се изпълняват стриктно в реда на тяхното свързване. Резултатът от изчислението на веригата се записва във вътрешна променлива или се подава към изхода на контролера.

Стълбова диаграма (LD, LAD, RKS)


- езикът на реле (стълбата) логика. Синтаксисът на езика е удобен за замяна на логически схеми, направени по релейна технология. Езикът е насочен към инженери по автоматизация, работещи в промишлени предприятия. Осигурява ясен интерфейс към логиката на контролера, което улеснява не само задачите по реално програмиране и пускане в експлоатация, но и бързо отстраняване на проблеми в оборудването, свързано към контролера. Програмата за стълбищна логика има визуален и интуитивен графичен интерфейс за електроинженери, представящ логически операции като електрическа верига със затворени и отворени контакти. Потокът или липсата на ток в тази верига съответства на резултата от логическа операция (вярно - ако тече ток; невярно - ако не тече ток). Основните елементи на езика са контактите, които образно могат да бъдат оприличени на чифт релейни или бутонни контакти. Двойка контакти се идентифицира с логическа променлива, а състоянието на тази двойка се идентифицира със стойността на променливата. Прави се разлика между нормално затворени и нормално отворени контактни елементи, които могат да бъдат сравнени с нормално затворени и нормално отворени бутони в електрически вериги.

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

Siemens, ABB, Schneider Electric… и почти всички производители на PLC имат такава среда за разработка. Изглежда, че идеалното решение за любителите на домашно приготвени продукти. Но, както винаги, има едно "но". Всички тези среди за програмиране са обвързани с индустриални контролери на определен производител. И цените за тези контролери са малко вдъхновяващи. Много рядко се случва семейният бюджет да ви позволи да закупите контролер на цена от няколко десетки хиляди рубли.

От друга страна, дъските Arduino са идеални за домашни майстори и кулибини, на които страната ни винаги е била, е и ще бъде богата. Но пак "но". Тези дъски са програмирани на C. За повечето от тези умни хора, с много прави ръце, които растат не на място, C е китайската азбука. Те могат да измислят, чертаят, сглобяват, отстраняват грешки и управляват най-сложните схеми, но If, For, Case, Void и т.н. - не е за тях. Разбира се, можете да прочетете инструкциите в Интернет, да си поиграете известно време, да мигате светодиода, като използвате пример. Но за по-сериозно приложение е необходимо подробно изучаване на езика. И защо трябва?

Те няма да бъдат професионални програмисти. Те имат различен път. Те измислиха нещо. Да, по-лесно и по-красиво е да се сглоби с микроконтролер, но става ли програмист за това, след като прекара месеци в изучаване на езика? Разбира се, че не. Събрани по старомодния начин, по-прости, разбира се, но в собствената си област.

Въз основа на всички тези изчисления беше създаден проектът FLProg. Основната идея на проекта е да съчетае принципите на индустриалното програмиране с евтиността и удобството на Arduino. Проектът предлага ново ниво на абстракция с доста смело изявление -

За да програмирате микроконтролери не е необходимо да знаете езици за програмиране!

Резултатът е инструмент, който позволява на всеки, запознат с електротехниката и електрониката, да създава свои проекти на Arduino, което ви позволява да създадете свой собствен продукт, използвайки тези платки.

Проектът се състои от две части.

Първата част е настолното приложение FLProg, която е графична среда за програмиране на Arduino платки.

Когато създавате нов проект, ще бъдете подканени да изберете езика за програмиране, на който ще създадете проекта, и контролера, на който ще бъде реализиран този проект.

Ето списък на платките Arduino, поддържани в момента от програмата:

Arduino Diecimila
Arduino Duemilanove
Ардуино Леонардо
Arduino Lilypad
Arduino Mega 2560
Arduino Micro
Ардуино Мини
Arduino Nano (ATmega168)
Arduino Nano (ATmega328)
Arduino Pro Mini
Arduino Pro (ATmega168)
Arduino Pro (ATmega328)
Ардуино Уно

Скоро очакваме нови попълнения към семейството на поддържаните табла. Arduino Due е на път, а платката Intel Galileo (gen.2) беше обещана да бъде предоставена от ръководителя на лабораторията за Интернет на нещата в Държавния университет по телекомуникации в Санкт Петербург. проф. М.А. Бонч-Бруевич. С течение на времето, тъй като се придобива, се планира да поддържа платки, базирани на STM контролери.

Проектът във FLProg е набор от платки, всяка от които съдържа пълен модул с обща схема. За удобство всяка дъска има име и коментари. Освен това всяка дъска може да се навие (за да се спести място в работната зона, когато работата по нея приключи) и да се разгърне. Червен индикатор в името на дъската показва, че има грешки в оформлението на дъската.

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

Ето списък на наличните днес блокове.

Основни елементи



Специални блокове

задейства



Таймери


Броячи


Математика



Алгебра




Сравнение

Ком порт

изпрати
SendVariable
ReceiveVariable

Превключване


Двигатели

Сервомотор
стъпков двигател

Часовник за реално време


Дисплеи

Дисплей на чип HD44780
Подсветка на дисплея на HD44780 I2C чип

струни

Добавяне на низове

Сензори



SD карта

Запишете променлива на SD карта
Качване на файл от SD карта

Преобразуване на типа

Преобразуване на низове

Разширителни ИС

Терминален разширител 74HC595

битови операции

Енкодер
Декодер
Чете малко
Записване на ритъм

Разни

Матрична клавиатура
Пиезо говорител

Пишете в EEPROM
Четене от EEPROM

Комуникации

SendVariableFromCommunication
RessiveVariableFromCommunication
WebServerPage
WebClient

Базови блокове

Контакт
Намотка
Защита от бърборене
Откриване на водещия ръб

Специални релета

Бистабилно реле
Реле за време
Генератор
Реле за сравнение

Алгебра

ГРЯХ
COS
ТЕН
коремни мускули
МАКС
МИН
кв
SQRT
военнопленник
СЛУЧАЙНО

Аналогови блокове

Мащабиране
Математика
Брояч
аналогов превключвател
Много към едно превключване
Превключване от един към много
Аналогов вход на контролера
Аналогов изход на контролера
Вход за аналогов конектор
Изход за аналогов конектор
брояч на скоростта

CommPort

Прехвърляне към ComPort
Предаване на променлива през Comm Port
Получаване на променлива чрез Comm порт

Двигатели

Серво мотор
стъпков мотор

Часовник за реално време

За да получите данни
Аларма
Настройка на времето

Дисплеи

Дисплей на чип HD44780
Блок за управление на подсветката на дисплея, базиран на чип HD4480 I2C
Декодиращ блок на седемсегментния индикатор

струни

Добавяне на низове

Сензори

Ултразвуков дистанционер HC-SR04
Сензор за температура и влажност DHT11 (DHT21, DHT22)
Датчик за температура DS18x2x
IR Resive
БМП-085

SD карта

Запишете променлива на SD карта
Качване на файл от SD карта

Преобразуване на типа

Преобразуване на низове
Преобразувайте Float в Integer

Разширителни ИС

Терминален разширител 74HC595

битови операции

Енкодер
Декодер
Чете малко
Записване на ритъм

Разни

Матрична клавиатура
Пиезо говорител

Пишете в EEPROM
Четене от EEPROM

Комуникации

Блокирайте изпращането на променлива чрез комуникации
Приемане на променлива чрез комуникации
Страница на уеб сървър
уеб клиент

В момента се разработват функционални блокове за работа с триосен жироскоп, луксометър и други сензори и сензори. Работи се и по организиране на обмен на данни чрез bluetooth, радиоканал и интерфейс RS-485. В бъдещи планове. разработка на SCADA система за организиране на интерфейса на системи, разработени в програмата FLProg на персонален компютър или графични дисплеи.

Списъкът на периферното оборудване, поддържано от програмата, е достъпен на уебсайта на проекта на връзката:

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

В горната част на работната зона има списък с етикети (променливи и входове/изходи) (FBD) или инсталирано оборудване (LAD). Етикети или оборудване се прехвърлят към диаграмата чрез просто плъзгане и пускане.

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

Къде да изтегля FLProg?

В рамките на проекта има сайт http://flprog.ru. Основната задача на сайта е да даде възможност на потребителите да изтеглят най-новата версия на програмата, да научат за иновациите и промените.

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

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

Също така на страницата за изтегляне можете да видите списък с иновации и коригирани грешки за тази версия и да отидете в архива на предишните версии.

Този урок предоставя минималните знания, необходими за програмиране на Arduino системи в C. Можете само да го видите и да го използвате като справка в бъдеще. Тези, които са програмирали на C на други системи, могат да пропуснат тази статия.

Отново, това е минимумът. Описание на указатели, класове, низови променливи и др. ще бъдат дадени в следващите уроци. Ако нещо няма смисъл, не се притеснявайте. В следващите уроци ще има много примери и обяснения.

Структурата на програмата Arduino.

Структурата на програмата Arduino е доста проста и в минималната си форма се състои от две части setup() и loop().

void setup()(

void loop() (

Функцията setup() се изпълнява веднъж, когато контролерът е включен или нулиран. Обикновено в него се извършват първоначалните настройки на променливите и регистрите. Функцията трябва да присъства в програмата, дори и да няма нищо в нея.

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

Оригиналните синтактични правила на езика C.

; точка и запетаяИзразите могат да съдържат произволно голям брой интервали, прекъсвания на редове. Знакът за край на израза е символът "точка и запетая".

z = x + y
z= x
+y;

( ) фигурни скобидефинирайте функция или изразен блок. Например във функциите setup() и loop().

/* … */ блок за коментарине забравяйте да затворите.

/* това е блок за коментар */

// коментар на един ред, няма нужда от затваряне, важи до края на реда.

// това е един ред за коментар

Променливи и типове данни.

Променливата е място в паметта, което съхранява информация. Програмата използва променливи за съхраняване на междинни изчислителни данни. За изчисления могат да се използват данни с различни формати, различни битови дълбочини, така че променливите в езика C имат следните типове.

Тип данни Бит дълбочина, малко Диапазон на номера
булево 8 вярно невярно
въглен 8 -128 … 127
неподписан char 8 0 … 255
байт 8 0 … 255
вътр 16 -32768 … 32767
unsigned int 16 0 … 65535
дума 16 0 … 65535
дълго 32 -2147483648 … 2147483647
неподписан дълъг 32 0 … 4294967295
къс 16 -32768 … 32767
плавам 32 -3.4028235+38 … 3.4028235+38
двойно 32 -3.4028235+38 … 3.4028235+38

Типовете данни се избират въз основа на изискваната точност на изчисление, формати на данни и т.н. Не е необходимо, например, за брояч, който брои до 100, да изберете дългия тип. Ще работи, но операцията ще отнеме повече данни и програмна памет, ще отнеме повече време.

Деклариране на променливи.

Посочва се типът данни, последван от името на променливата.

intx; // декларация на променлива с име x от тип int
float-widthBox; // декларация на променлива с име widthBox от тип float

Всички променливи трябва да бъдат декларирани преди да бъдат използвани.

Променливата може да бъде декларирана във всяка част на програмата, но зависи от това кои блокове на програмата могат да я използват. Тези. променливите имат обхвати.

  • Променливите, декларирани в началото на програмата, преди функцията void setup(), се считат за глобални и са достъпни навсякъде в програмата.
  • Локалните променливи се декларират във функции или блокове като for цикъл и могат да се използват само в рамките на декларирани блокове. Възможни са множество променливи с едно и също име, но различни обхвати.

intmode; // променливата е достъпна за всички функции

void setup()(
// празен блок, не са необходими първоначални настройки
}

void loop() (

дълго броене; // променливата count е достъпна само във функцията loop().

за (int i=0; i< 10;) // переменная i доступна только внутри цикла
{
i++;
}
}

Когато декларирате променлива, можете да зададете нейната начална стойност (initialize).

int x = 0; // променливата x е декларирана с начална стойност 0
char d = 'a'; // променлива d се декларира с начална стойност, равна на символен код ”a”

Когато извършвате аритметични операции с различни типове данни, типовете данни се преобразуват автоматично. Но е по-добре винаги да използвате изрично преобразуване.

intx; // int променлива
любезен; // char променлива
intz; // int променлива

z = x + (int) y; // променлива y изрично преобразувана в int

Аритметични операции.

релационни операции.

логически операции.

Операции върху указатели.

битови операции.

& И
| ИЛИ
^ ЕКСКЛУЗИВНО ИЛИ
~ ИНВЕРСИЯ
<< ИЗМЕСТВАНЕ НАЛЯВО
>> ПРЕМЕСТВАНЕ НАДЯСНО

Смесени операции за присвояване.

Избор на опции, управление на програмата.

IF изявлениетества условието в скоби и изпълнява последващия израз или блок във къдрави скоби, ако условието е вярно.

if (x == 5) // ако x=5, тогава z=0 се изпълнява
z=0;

ако (x > 5) // ако x >
( z=0; y=8; )

АКО... ИНАЧЕви позволява да избирате между две опции.

if (x > 5) // ако x > 5, тогава се изпълнява блок z=0, y=8;
{
z=0;
y=8;
}

{
z=0;
y=0;
}

ИНАЧЕ АКО- позволява ви да правите множество селекции

if (x > 5) // ако x > 5, тогава се изпълнява блок z=0, y=8;
{
z=0;
y=8;
}

иначе ако (x > 20) // ако x > 20, изпълни този блок
{
}

else // в противен случай този блок се изпълнява
{
z=0;
y=0;
}

КАЛЪФ ЗА ПРЕВКЛЮЧВАНЕ- множествен избор. Позволява ви да сравните променлива (в примера е x) с няколко константи (в примера 5 и 10) и да изпълните блок, в който променливата е равна на константата.

превключвател(x)(

случай 5:
// кодът се изпълнява, ако x = 5
прекъсване;

случай 10:
// кодът се изпълнява, ако x = 10
прекъсване;

по подразбиране:
// кодът се изпълнява, ако нито една от предишните стойности не съвпада
прекъсване;
}

FOR цикъл. Конструкцията ви позволява да организирате цикли с определен брой итерации. Синтаксисът изглежда така:

for (действие преди началото на цикъла;
условие за продължаване на цикъла;
действие в края на всяка итерация) (

// код на тялото на цикъл

Пример за цикъл от 100 итерации.

за (i=0; i< 100; i++) // начальное значение 0, конечное 99, шаг 1

{
сума = сума + I;
}

WHILE цикъл. Операторът ви позволява да организирате цикли с конструкцията:

докато (израз)
{
// код на тялото на цикъл
}

Цикълът се изпълнява, докато изразът в скобите е верен. Пример за цикъл за 10 итерации.

х = 0;
докато (x< 10)
{
// код на тялото на цикъл
x++;
}

ПОЧИВАЙТЕе цикъл с условие на изхода.

направи
{
// код на тялото на цикъл
) докато (израз);

Цикълът се изпълнява, докато изразът е верен.
БРЕЙК- оператор за излизане от цикъл. Използва се за прекъсване на изпълнението на for, while, do while цикли.

х = 0;
докато (x< 10)
{
if (z > 20) прекъсване; // ако z > 20, тогава излезте от цикъла
// код на тялото на цикъл
x++;
}

ОТМИНЕТЕе операторът за безусловен скок.

отидете на етикет1; // превключване към metka1
………………
метка1:

ПРОДЪЛЖИ- Прескачане на оператори до края на тялото на цикъла.

х = 0;
докато (x< 10)
{
// код на тялото на цикъл
ако (z > 20) продължи; // ако z > 20, връщане към началото на тялото на цикъла
// код на тялото на цикъл
x++;
}

Масиви.

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

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

int възрасти; // масив от 10 int променливи

плаващо тегло; // масив от 100 плаващи променливи

При деклариране масивите могат да бъдат инициализирани:

int възрасти = (23, 54, 34, 24, 45, 56, 23, 23, 27, 28);

Достъпът до променливите на масива се осъществява по следния начин:

x = възрасти; // x се присвоява стойността на елемент 5 от масива.
възраст=32; // елемент на масив 9 е зададен на 32

Елементите на масива винаги се номерират от нула.

Функции.

Функциите ви позволяват да извършвате едни и същи действия с различни данни. Функцията има:

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

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

void setup()(
// кодът се изпълнява веднъж при стартиране на програмата
}

void loop() (
// основен код, изпълнява се в цикъл
}

// декларация на персонализирана функция с име functionName
тип functionName(тип аргумент1, тип аргумент1, …, тип аргумент)
{
// тяло на функцията
връщане();
}

Пример за функция, която изчислява сумата от квадратите на два аргумента.

int sumQwadr (int x, int y)
{
return(x* x + y*y);
}

Извикването на функцията върви така:

d=2; b=3;
z= sumQwadr(d, b); // z ще бъде сумата от квадратите на променливите d и b

Функциите могат да бъдат вградени, потребителски, plug-in.

Много кратко, но тези данни трябва да са достатъчни, за да започнете да пишете C програми за Arduino системи.

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

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

Имена на език C.

Имената, представляващи типове данни, трябва да се изписват със смесен регистър. Първата буква на името трябва да бъде главна (главна).

Сигнал, TimeCount

Променливите трябва да бъдат написани със смесени имена, като първата буква е малка (малка буква).

Категория: . Можете да маркирате.