ROBO Pro Coding (UA)
Загальна інформація про використання продукту
Загальна інформація про використання продукту
ROBO Pro Coding — середовище розробки для програмування нового контролера TXT 4.0 і, отже, для програмування моделей fischertechnik. Випущено версії ROBO Pro Coding для Windows, macOS, Linux, iOS та Android. Завантажити це програмне забезпечення можна з наступних джерел:
Цей код можна використовувати для цієї моделі (ліворуч). Веб-інтерфейс ROBO Pro Coding має таку структуру (цифри відповідають областям зображення, на яких вони вказані):
- Тут показані блоки коду, написані мовою Python
- У це поле перетягуються блоки для програмування
- У консолі показано хід виконання програми
- Точки зупинки використовуються для налагодження програм. Вони визначають ділянки коду, у яких виконання програми зупиняється. Точки зупинки задаються через редактор і складаються з імені файлу та номера рядка.
- В області "Ausdruck" ("Вираз") можна переглянути вміст змінних.
- В області Aufrufstapel (Стек викликів) відображаються вкладені виклики. Стек викликів корисний, зокрема, під час виконання функцій.
- Тут ти знайдеш всі блоки для програмування, відсортовані за категоріями Aktoren (Виконавчі елементи), Sensoren (Датчики) та Verarbeitung (Обробка)
- Цей рядок роз'яснюється окремо в розділі «Головний рядок»
- Тут можна вибрати рівень навчання, що підходить даному користувачеві. Залежно від рівня можуть відображатися, наприклад, лише найважливіші блоки.
Головний рядок
Головний рядок містить (зліва направо) елементи керування для запуску програми, зупинки програми, запуску налагоджувача, виклику тестування інтерфейсу, завантаження поточної програми та з'єднання з контролером.
Запуск програм
Щоб запустити свою програму з середовища ROBO Pro Coding, натисніть на цю іконку.
Зупинення програм
Щоб зупинити свою програму до того, як вона зупиниться сама, торкнися цієї іконки.
Налагоджувач
Налагоджувач спрощує пошук помилок у програмі. Через меню у верхньому правому куті можна крок за кроком пройти код, імітуючи виконання програми. При цьому програма реагуватиме на взаємодію з датчиками, наприклад натискання клавіші. Під час проходження програми у великому полі зліва показано, в якому блоці, а праворуч – в якому місці коду на мові Python Ви знаходитесь.
Тестування інтерфейсу
Натисніть на цю іконку з трьома регуляторами і відкриється це вікно:
Тут показані всі підключені пристрої. За допомогою повзунків можна перевірити, чи працюють виконавчі елементи. Для датчиків вказується виміряне значення (наприклад, тут навпроти клавіші Mini-Taster показана цифра 1, тому що ця кнопка натиснута). У випадаючому меню (маленький трикутник) можна вибрати підключені елементи.
Завантаження програм
Якщо Ви написали програму і хочете, щоб вона автономно виконувалась на контролері, її можна завантажити в контролер за допомогою цієї іконки. Після завантаження ваша програма з'явиться в списку файлів у контролері. Натисканням на ім'я програми в цьому списку Ви перейдете у її підпапку. У ній є файл на ім'я «main.py». Натисніть його - кнопка "open" внизу справа повинна загорітися зеленим. Натисніть кнопку "open" - відкриється ще одне меню з чотирма опціями:
- Laden (Завантаження): завантажте програму, щоб запустити її з початкового екрана
- Auto load (Автозавантаження): при наступному запуску контролера програма завантажується автоматично
- Auto start (Автозапуск): при наступному запуску контролера програма автоматично завантажується та запускається
- Delete project (Видалити проект): програма видаляється з контролера
З'єднання з контролером
Тут зображено процес з'єднання з контролером.
Конфігурація контролера
Щоб використовувати різні компоненти – датчики та виконавчі елементи – у програмі, їх треба підключити до контролера, причому не тільки фізично, а й у програмі. Конфігурація контролера завжди відкрита (автоматично). Вкладка для переходу до неї (Controllerkonfiguration) знаходиться зверху праворуч від вкладки основної програми (Hauptprogramm). Натисніть на цю вкладку.
Зараз зліва відображаються контролер та всі компоненти, які можна підключити до нього. Перетягніть контролер у область програмування. Тепер можна підключити необхідні компоненти до контролера, перетягуючи і опускаючи їх.
Збереження програм
Щоб зберегти програму, натисніть на три лінії зверху ліворуч на веб-сайті ROBO Pro Coding. Торкниться опції "Exportieren" ("Експортувати"). Зараз Ви можете вибрати місце збереження програми: на Вашому пристрої або GitLab.
Локальне збереження: після введення імені Вашої програми просто натисніть на Exportieren - і файл програми збережеться на твоєму пристрої.
GitLab: після введення імені Вашої програми та виконання вказаних кроків, необхідних для введення особистого токена доступу, просто натисніть на Exportieren - і файл програми збережеться у Вашому акаунті на GitLab.
Виконавчі елементи
Виходи
Блок "Starte jedes mal" ("Запускати щоразу")
Блок "Starte jedes mal" дозволяє запускати програму при виконанні будь-якої умови. Тобто він працює аналогічно розгалуженню, але виконується не одноразово, а щоразу, коли виконується умова, протягом усього прогону програми. Блок "Starte jedes mal":
Є скороченням наступної конструкції:
В блок "Starte jedes mal" категорії "Ausgänge" ("Виходи") можна ввести всі умови цієї категорії.
Вказівка: сегмент програми всередині блоку "Starte jedes mal" повинен бути максимально коротким і не повинен містити блокуючі виклики або нескінченні цикли, щоб ця частина програми виконувалася швидко.
Світлодіоди
Присвоїти
За допомогою блоків setze LED... (присвоїти LED...) та setze LED Helligkeit... (присвоїти LED яскравість...) можна вмикати та вимикати LED та вибирати певне значення його яскравості (від 0 до 512).
Викликати
За допомогою блоку hole LED Helligkeit (отримати яскравість LED) можна викликати яскравість LED, щоб обробити її як значення.
Запитати
За допомогою блоків ist LED… (LED …) та ist LED Helligkeit… (LED має яскравість…) активність та яскравість потрібного LED можна використовувати як умову. У прикладі ми встановили яскравість LED на 512, якщо її значення ще не дорівнює цьому.
Двигуни
Іконка на блоках двигунів означає всі двигуни, які не є двигунами з енкодером або серводвигунами.
Присвоїти
За допомогою блоку setze Motorgeschwindigkeit auf [] … (привласнити швидкості двигуна значення [] ...) можна задати певне значення швидкості двигуна (від 0 до 512).
Викликати
За допомогою блоку hole Motorgeschwindigkeit (отримати швидкість двигуна) можна викликати швидкість двигуна, щоб обробити її як значення.
Запитати
За допомогою блоків läuft Motor (двигун працює) та ist Motorgeschwindigkeit … (швидкість двигуна…) активність та швидкість двигуна можна використовувати як умову.
Запитати
За допомогою блоку stoppe Motor… (зупинити двигун…) можна зупинити потрібний двигун.
Компресор
Присвоїти
За допомогою блоку setze Kompressor [] (присвоїти компресору []) можна вмикати та вимикати компресор.
Запитати
За допомогою блоку ist Kompressor [] (компресор []) активність компресора можна використовувати як умову.
Електромагнітний клапан
Присвоїти
За допомогою блоку setze Magnetventil [] (присвоїти електромагнітному клапану []) можна вмикати та вимикати електромагнітний клапан. Тут "ein" ("увімк.") означає, що клапан відкритий, а "aus" ("вимк.") - що клапан закритий.
Запитати
За допомогою блоку ist Magnetventil [] (електромагнітний клапан []) активність електромагнітного клапана можна використовувати як умову.
Звук
Блок "Starte jedes mal" ("Запускати щоразу")
Блок "Starte jedes mal" дозволяє запускати програму при виконанні будь-якої умови. Тобто він працює аналогічно розгалуженню, але виконується не одноразово, а щоразу, коли виконується умова, протягом усього прогону програми. Блок "Starte jedes mal":
Є скороченням наступної конструкції:
В блок "Starte jedes mal" категорії "Sound" ("Звук") можна ввести всі умови цієї категорії.
Вказівка: сегмент програми всередині блоку "Starte jedes mal" повинен бути максимально коротким і не повинен містити блокуючі виклики або нескінченні цикли, щоб ця частина програми виконувалася швидко.
Відтворити
Встановлені аудіофайли
За допомогою наступного блоку можна відтворити один із 29 встановлених звуків. Потрібний аудіофайл вибирають у випадаючому меню (маленький трикутник). Також можна виконати нескінченний цикл відтворення звуку. Для цього встановіть прапорець навпроти іконки нескінченного циклу.
Власні аудіофайли
Якщо Ви хочете відтворювати свій звук, використовуй блок
Щоб вбудувати в блок свій звук, треба:
- Встановити з'єднання з контролером
- Ввести IP-адресу контролера в браузер (вибирайте IP, який Ви використовували для з'єднання з контролером)
- Ввести на завантаженій сторінці «USER: ft, PASSWORD: fischertechnik»
- Відкрити папку sounds і, натиснувши в ній за знаком «плюс», завантажити потрібний аудіофайл у контролер (важливо: аудіофайл повинен мати формат WAV)
- У блоці ROBO Pro Coding прописати шлях «./dateiname.wav»
Свій звук також можна зациклити.
Запитати
Щоб дізнатися, чи програється аудіофайл, скористайтесь блоком gibt Ton wieder (відтворює звук). Його можна використовувати як умову в програмі.
Зупинити
Щоб зупинити відтворення аудіо, просто використовуйте у програмі блок stoppe Tonwiedergabe (зупинити відтворення звуку).
Дисплей
За допомогою блоків категорії «Display» («Дисплей») можна налаштувати та підготувати до використання дисплей контролера TXT 4.0. Цей процес складається із двох етапів:
- Конфігурування, тобто:
- відкрити новий файл категорії «Display»; натиснувши на іконку сторінки з плюсом вгорі ліворуч,
- перетягнути потрібні елементи в область, розграфлену на клітинки (вона є частиною дисплея, що настроюється);
- за необхідності змінити характеристики.
- Програмування, тобто:
- В основній програмі за допомогою блоків категорії Display запрограмувати результат взаємодії з дисплеєм.
Блоки
Запит події
Блок Ereignis [] (Подія []) викликає значення елемента, що повертається. Цей блок можна використовувати лише у програмах подій. У програмах подій цей блок автоматично посилається на подію, в програмі якої він використовується. Відповідний тип значення, що повертається, можна вибрати у випадаючому меню (маленький трикутник):
Поле позначки
За допомогою елемента «Поле позначки» на дисплеї можна розмістити текст. Символ цього елемента у конфігураторі дисплея – ярлик. Якщо перетягнути цей символ в область, розграфлену на клітинки, праворуч відкриється вікно. Тут у вкладці "Inspektor" ("Меню властивостей") можна задати
- розмір поля позначки у пікселях;
- положення поля мітки в пікселях (у точці із зазначеними тут координатами перебуватиме верхній лівий кут текстового поля);
- ім'я поля мітки та
- вміст поля мітки (цей текст відображатиметься під час запуску дисплея).
- За допомогою блоку setze Beschriftungsfeld Text … (привласнити полю мітки текст ...) можна змінювати показаний текст під час виконання програми.
Введення даних
Елемент "Введення" дозволяє користувачеві вводити текст через контролер. Символ цього елемента в конфігураторі дисплея - літера "Т". Якщо перетягнути цей символ в область, розграфлену на клітинки, праворуч відкриється вікно. Тут у вкладці "Inspektor" ("Меню властивостей") можна задати
- розмір поля введення у пікселях;
- положення поля введення в пікселях (у точці із зазначеними тут координатами перебуватиме верхній лівий кут поля введення);
- ім'я поля введення та
- вміст поля введення (цей текст відображатиметься під час запуску дисплея).
За допомогою блоку setze Eingabefeld Text ... (присвоїти полю введення текст ...) можна змінювати показаний текст під час виконання програми
Програма введення
Програма введення виконується після завершення введення даних. Вона пишеться окремо від основної програми. Змінні працюють в обох програмах. Програма введення виконується в блоці wenn Eingabe abgeschlossen (якщо завершено введення даних). У програмі введення блоку Ereignis [] (Подія []) вибирають тип «text». У цьому прикладі змінної Name (ім'я) надається введений текст, і потім вона використовується в основній програмі для виведення введеного тексту:
Вимірювальний інструмент
Функція «Вимірювальний інструмент» може відображати значення (за винятком значень менше 1). Символ вимірювального інструмента у конфігураторі дисплея – лінійка. Якщо перетягнути цей символ в область, розграфлену на клітинки, праворуч відкриється вікно. Тут у вкладці "Inspektor" ("Меню властивостей") можна задати
- розмір вимірювального інструменту в пікселях;
- положення вимірювального інструменту в пікселях (у точці із зазначеними тут координатами перебуватиме верхній лівий кут засобу вимірювань);
- ім'я вимірювального інструменту;
- орієнтацію вимірювального інструмента;
- діапазон значень вимірювального інструменту та
- значення вимірювального інструмента, що відображається під час запуску дисплея.
За допомогою блоку setze Messinstrument auf Wert … (привласнити вимірювальному інструменту значення ...) вимірювальному інструменту надається введене значення. Це значення має належати до попередньо заданого діапазону значень. Якщо це значення не належить попередньо заданому діапазону значень, то відображається верхня або нижня межа цього діапазону значень залежно від того, яке значення вказано: занадто велике або занадто маленьке.
Відображення статусу
Індикатор статусу показує активність чогось. Залежно від статусу він горить (активний) або не горить (неактивний). Символ індикатора статусу в конфігураторі дисплея - діод, що горить. Якщо перетягнути цей символ в область, розграфлену на клітини, праворуч відкриється вікно. Тут у вкладці "Inspektor" ("Меню властивостей") можна задати
- розмір індикатора статусу в пікселях;
- положення індикатора статусу в пікселях (у точці із зазначеними тут координатами перебуватиме верхній лівий кут індикатора статусу);
- ім'я індикатора статусу;
- колір індикатора статусу та
- вихідний стан індикатора статусу: aktiv (активний) чи ні.
За допомогою блоку setze Statusanzeige aktiv [] (зробити індикатор статусу активним []) індикатор статусу можна активувати та деактивувати. У випадаючому меню (маленький трикутник), можна вибрати стан індикатора статусу: активний або неактивний.
Повзунок
Положення повзунка відображає те чи інше значення. Користувач може змінити положення повзунка через сенсорний екран. Викликати значення можна через блок Ereignis [], як повзунок зупиниться. Викликане значення має вигляд десяткового числа. Якщо Ви хочете, щоб значення, яке відображає повзунок, мало вигляд цілого числа, треба вставити блок runde (округлити). Символ повзунка в конфігураторі дисплея – лінія з кружком. Якщо перетягнути цей символ в область, розграфлену на клітини, праворуч відкриється вікно. Тут у вкладці "Inspektor" ("Меню властивостей") можна задати
- розмір повзунка в пікселях;
- положення повзунка в пікселях (тоді у точці із зазначеними тут координатами буде перебувати верхній лівий кут повзунка);
- ім'я повзунка;
- активність повзунка;
- орієнтацію повзунка;
- діапазон значень, який покриває повзунок, та
- значення, на якому знаходиться повзунок під час запуску дисплея.
За допомогою блоку Setze Schieberegler Wert ... (Присвоїти повзунку значення ...) можна перемістити повзунок на інше значення.
За допомогою блоку setze Schieberegler aktiviert [] (активувати повзунок [])
можна змінювати активність у випадаючому меню (маленький трикутник).
Програма повзунка
Програма повзунка виконується після пересування повзунка. Вона пишеться окремо від основної програми. Змінні працюють в обох програмах. Програма повзунка виконується у блоці wenn Schieberegler bewegt (якщо повзунок переміщений). У програмі введення блоку Ereignis [] (Подія []) вибирають тип «value». У цьому прикладі швидкість двигуна регулюється повзунком. Значення, що відповідає положенню повзунка, має округлятися, тому що частота обертання двигуна може бути виражена тільки цілим числом:
Екранна кнопка
Екранна кнопка – це поле з написом, на яке можна натискати. При натисканні на екранну кнопку відразу після відпускання виконується програма екранної кнопки. Символ екранної кнопки у конфігураторі дисплея – квадрат із літерами «ОК». Якщо перетягнути цей символ в область, розграфлену на клітинки, праворуч відкриється вікно. Тут у вкладці "Inspektor" ("Меню властивостей") можна задати
- розмір екранної кнопки в пікселях;
- положення екранної кнопки в пікселях (у точці із зазначеними тут координатами перебуватиме верхній лівий кут кнопки);
- ім'я екранної кнопки;
- текст, написаний на екранній кнопці, та
- активність екранної кнопки
За допомогою блоку setze Schaltfläche aktiviert [] (активувати екранну кнопку []) можна змінювати активність у випадаючому меню (маленький трикутник).
Програма екранної кнопки
Програма екранної кнопки виконується після відпускання екранної кнопки. Вона пишеться окремо від основної програми. Змінні працюють в обох програмах. Програма екранної кнопки виконується в блоці wenn Schaltfläche angeklickt (якщо екранна кнопка натиснута). У програмі екранної кнопки не можна використовувати блок Ereignis [], тому що в екранної кнопки немає значення, що повертається. У цьому прикладі СІД активується натисканням екранної кнопки.
Перемикач
Перемикач може приймати два положення та завжди знаходиться точно в одному з цих двох положень. Залежно від положення, він повертає значення wahr (істина) або falsch (брехня). Символ перемикача у конфігураторі дисплея – овал з точкою. Якщо перетягнути цей символ на область, розграфлену на клітинки, праворуч відкриється вікно. Тут у вкладці "Inspektor" ("Меню властивостей") можна задати
- розмір перемикача у пікселях;
- положення перемикача в пікселях (у точці із зазначеними тут координатами перебуватиме верхній лівий кут перемикача);
- ім'я перемикача;
- текст, що розташований біля перемикача;
- активність перемикача та
- стан, у якому буде перемикач під час запуску програми.
Блок
виконує дві функції. Можна привласнити значення wahr (істина) або falsch (брехня) або активності (вибрати enabled (увімкнено) у випадаючому меню), або стану (вибрати checked (позначено) у випадаючому меню).
Програма перемикача
Програма перемикача виконується кожного разу, коли змінюється положення перемикача. Вона пишеться окремо від основної програми. Змінні працюють у обох програмах. Програма перемикача виконується в блоці wenn Schalter umgeschaltet (якщо перемикач перемикається). У програмі перемикача блок Ereignis [] встановлюється на checked і повертає значення wahr (істина) або falsch (брехня). Програма в цьому прикладі включає LED, якщо перемикач перемикається, інакше LED вимикається:
Прапорець
Прапорець може приймати два стани і завжди знаходиться точно в одному з цих двох станів. Залежно від стану він повертає значення wahr (істина) чи falsch (брехня). Символ прапорця — квадратик з галочкою. Якщо перетягнути цей символ в область, розграфлену на клітинки, праворуч відкриється вікно. Тут у вкладці "Inspektor" ("Меню властивостей") можна задати
- розмір прапорця в пікселях;
- положення прапорця в пікселях (у точці із зазначеними тут координатами перебуватиме верхній лівий кут поля введення);
- ім'я прапорця;
- текст, розташований біля прапорця;
- активність прапорця та
- стан, у якому перебуватиме прапорець під час запуску програми.
Наступний блок виконує дві функції. У випадаючому меню (маленький трикутник) можна вибрати функцію, яку Ви хочете використовувати. Можна привласнити значення wahr (істина) або falsch (брехня) або активності (вибрати enabled (включено) у випадаючому меню), або стану (вибрати checked (позначено) у випадаючому меню).
Програма прапорця
Програма прапорця виконується щоразу при натисканні на прапорець. Вона пишеться окремо від основної програми. Змінні працюють в обох програмах. Програма введення виконується в блоці wenn Kontrollkästchen umgeschaltet (якщо прапорець перемикається). У програмі перемикача блок Ereignis [] встановлюється на checked і повертає значення wahr (істина) або falsch (брехня). Програма у цьому прикладі включає LED, якщо прапорець позначений, інакше LED вимикається.
Двигун
Блок "Starte jedes mal" ("Запускати щоразу")
Блок "Starte jedes mal" дозволяє запускати програму при виконанні будь-якої умови. Тобто він працює аналогічно розгалуженню, але виконується не одноразово, а щоразу, коли виконується умова, протягом усього прогону програми. Блок "Starte jedes mal":
Є скороченням наступної конструкції:
В блок "Starte jedes mal" категорії "Motor" ("Двигун") можна ввести всі умови цієї категорії.
Вказівка: сегмент програми всередині блоку "Starte jedes mal" повинен бути максимально коротким і не повинен містити блокуючі виклики або нескінченні цикли, щоб ця частина програми виконувалася швидко.
Двигун
Іконка на блоках двигунів означає всі двигуни, які не є двигунами з енкодером або серводвигунами.
Присвоїти
За допомогою блоку setze Motorgeschwindigkeit auf [] … (привласнити швидкості двигуна значення [] ...) можна задати певне значення швидкості двигуна (від 0 до 512). У випадаючому меню (маленький трикутник) можна вибрати напрямок обертання.
Викликати
За допомогою блоку hole Motorgeschwindigkeit (отримати швидкість двигуна) можна викликати швидкість двигуна, щоб обробити її як значення.
Запитати
За допомогою блоків läuft Motor (двигун працює) та ist Motorgeschwindigkeit … (швидкість двигуна…) активність та швидкість двигуна можна використовувати як умову.
Зупинити
За допомогою блоку stoppe Motor [] (зупинити двигун []) можна зупинити потрібний двигун. При цьому в блоці stoppe Motor [] передбачена можливість вибору однієї з двох опцій: негайна зупинка або зупинка вибігом. Потрібну опцію вибирають у випадаючому меню (маленький трикутник):
Серводвигун
Присвоїти
За допомогою блоку setze Position auf … (привласнити положенню значення) можна вибрати певне положення серводвигуна (від 0 до 512). 0 і 512 - значення максимального відхилення праворуч і ліворуч. Відповідно, якщо вказати 256, то серводвигун займе центральне положення.
Викликати
За допомогою блоку rufe Position ab (викликати положення) можна викликати положення серводвигуна, щоб обробити його як значення.
Двигун з енкодером
Двигун з энкодером виконує ті самі функції, як і звичайний двигун, плюс дає можливість рахувати число оборотів і синхронно управляти кількома двигунами. При цьому оборот розбивається приблизно на 64 кроки.
Присвоїти
За допомогою блоку
можна вибрати певне значення швидкості двигуна (від 0 до 512). У випадаючому меню (маленький трикутник) можна вибрати напрямок обертання. Також можна ввести кількість кроків, які має пройти двигун. У цьому прикладі двигун проходить 100 кроків, тобто одну цілу та одну третю обороту. Як видно з прикладу, цей блок містить плюс, за допомогою якого можна синхронно керувати декількома двигунами. Можна синхронізувати між собою двигуни головного пристрою або двигуни додаткового пристрою; перехресна синхронізація, а саме між двигунами головного пристрою з одного боку та двигунами додаткового пристрою з іншого боку, неможлива.
Вказівка: швидкі виклики функції синхронізації, що йдуть слідом один за одним, наприклад при виконанні циклу (див. приклад), можуть вплинути на синхронність або взагалі перешкодити їй.
Зупинити
За допомогою блоку stoppe Motor… (зупинити двигун…) двигун зупиняється. Якщо треба зупинити кілька двигунів одночасно, натисканням по плюсику ліворуч у блоці можна додати інші двигуни (не більше трьох).
Запитати
Блок hat Position erreicht (досягнув положення) служить для того, щоб використовувати досягнення положення як умову. Під положенням тут мається на увазі кінцеве положення двигуна з енкодером після проходження всієї довжини кроку.
Датчики
Введення даних
Блок "Starte jedes mal" ("Запускати щоразу")
Блок "Starte jedes mal" дозволяє запускати програму при виконанні будь-якої умови. Тобто він працює аналогічно розгалуженню, але виконується не одноразово, а щоразу, коли виконується умова, протягом усього прогону програми. Блок "Starte jedes mal":
Є скороченням наступної конструкції:
В блок "Starte jedes mal" категорії "Eingaben" ("Введення даних") можна ввести всі умови цієї категорії.
Вказівка: сегмент програми всередині блоку "Starte jedes mal" повинен бути максимально коротким і не повинен містити блокуючі виклики або нескінченні цикли, щоб ця частина програми виконувалася швидко.
Клавіша
Клавіша — це цифровий датчик, що розрізняє стани «Струм тече» і «Струм не тече». При цьому те, що тече струм чи ні, залежить як від кабельної розводки, так і від того, чи натиснута клавіша. Отже, клавішу можна використовувати двома різними способами:
- Як «нормально розімкнутий контакт»: приєднані контакти 1 та 3. Клавіша натиснута: струм тече. Клавіша не натиснута: струм не тече.
- Як «нормально замкнутий контакт»: приєднані контакти 1 та 2. Клавіша натиснута: струм не тече. Клавіша не натиснута: струм тече
Викликати
За допомогою hole Mini-Taster Status (отримати статус міні-клавіші) можна дізнатися, чи тече струм через клавішу. Якщо струм тече, повертається значення 1, якщо ні – 0.
Запитати
Щоб дізнатися, чи є клавіша в певному стані, використовуй блок ist Taster … (клавіша є …). У випадаючому меню (маленький трикутник), можна вибрати стан, запит про який надсилається. Цей блок можна використовувати як умову.
Ультразвуковий датчик
Ультразвуковий датчик використовується для вимірювання відстаней.
Викликати
За допомогою hole Ultraschallsensor Abstand (отримати відстань ультразвукового датчика) можна дізнатися, наскільки віддалений датчик від найближчого предмета. Відстань повертається у см.
Запитати
Щоб дізнатися, чи знаходиться датчик на певній відстані від найближчого предмета, використовуй блок ist Ultraschallsensor Abstand … (ультразвуковий датчик знаходиться на відстані …). У випадаючому меню (маленький трикутник) можна вибрати спосіб порівняння виміряної відстані з введеним значенням (<, ≤, =, ≠, ≥, >) . Еталонне значення вводиться в числове поле в кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, якщо виміряна відстань менше ніж 2 см.
Датчик кольору
Датчик кольору випромінює червоне світло та вимірює кількість відбитого світла. В залежності від інтенсивності відображення датчик кольору повертає значення в діапазоні від 0 до 2000. Він добре підходить для розпізнавання попередньо відкаліброваних кольорів.
Викликати
За допомогою hole Farbsensor Wert (отримати значення датчика кольору) можна дізнатися, наскільки інтенсивно та чи інша поверхня відбиває світло.
Запитати
Щоб дізнатися, чи є перед датчиком певний колір, використовуйте блок ist Farbsensor Wert … (датчик кольору має значення …). У випадаючому меню (маленький трикутник), можна вибрати спосіб порівняння виміряного значення кольору з введеним значенням (<, ≤, =, ≠, ≥, >) . Еталонне значення вводиться в числове поле в кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, якщо виміряне значення кольору менше 1000.
ІЧ-датчик слідів
Інфрачервоний датчик слідів - це цифровий датчик, що розпізнає чорний слід на білому тлі та працює на відстані 5-30 мм від фону.
Викликати
Якщо hole IR-Spursensor Status (отримати статус ІЧ-датчика слідів) поверне Вам значення 0, це означає, що датчик не виявив слід. Якщо датчик виявив слід, поверненим значенням буде 1.
Запитати
Щоб дізнатися, чи знайшов ІЧ-датчик слід, треба порівняти поточний статус сліду з 0 або 1. Для цього підходить блок ist IR-Spursensor Status [] … (ІЧ-датчик слідів має статус [] ...) . У виподаючому меню (маленький трикутник), можна вибрати спосіб порівняння статусу сліду з введеним значенням (<, ≤, =, ≠, ≥, >). Еталонне значення вводиться в числове поле в кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, якщо статус сліду дорівнює 0.
Фототранзистор
Фототранзистор – це цифровий датчик, що розрізняє світло та темряву
Викликати
Якщо hole Fototransistor Status (отримати статус фототранзистора) поверне Вам значення 0, це означає, що датчик не виявив світло. Якщо датчик виявив достатньо світла, поверненим значенням буде 1.
Запитати
Щоб дізнатися, що виявив фототранзистор (світло чи темряву), треба порівняти статус освітленості з 0 або 1. Для цього підходить блок ist Fototransistor Status [] (Фототранзистор має статус []). У випадаючому меню (маленький трикутник) можна вибрати стан, запит про який надсилатиметься, а саме світле або темне.
Фототранзистор можна використовувати у фоторелейній завісі, як у цій моделі.
Фоторезистор
Опір фоторезистора зменшується зі зростанням освітленості. Таким чином, значення, яке видається фоторезистором, є мірилом освітленості.
Викликати
За допомогою hole Fotowiderstand Wert (отримати статус фоторезистора) Ви можете дізнатися, наскільки світло у тому чи іншому місці. Чим менше видане значення, тим світліше.
Запитати
Щоб дізнатися, чи виміряв фоторезистор певне значення освітленості, використовуй блок ist Fotowiderstand Wert [] … (фоторезистор має значення [] ...). У випадаючому меню (маленький трикутник), можна вибрати спосіб порівняння значення освітленості з введеним значенням (<, ≤, =, ≠, ≥, >). Еталонне значення вводиться в числове поле в кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, якщо значення освітленості менше 3000.
NTC - Резистор
NTC - Резистор– це небінарний температурний датчик. Його електричний опір зменшується зі зростанням температури, і тому є мірилом температури.
Викликати
За допомогою hole NTC-Widerstand [] (отримати NTC резистор []) Ви можете дізнатися або значення опору або розраховану по ньому температуру. Повернене значення вибирають у випадаючому меню (маленький трикутник).
Запитати
Щоб дізнатися, чи виміряв резистор з негативним ТКС певне значення, використовуй блок ist NTC-Widerstand [] [] … (NTC резистор має [] [] ...) У випадаючому меню (маленький трикутник) можна вибрати, що порівнюється і який оператор порівняння при цьому використовується. Еталонне значення вводиться в числове поле в кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється якщо температура нижче 20.
Лічильник
Двигун з енкодером можна використовувати як лічильник. При цьому рахується число обертів цього двигуна, причому не тільки коли обертається він сам як двигун, але і коли він наводиться в рух механічним способом ззовні.
Блок "Starte jedes mal" ("Запускати щоразу")
Блок "Starte jedes mal" дозволяє запускати програму при виконанні будь-якої умови. Тобто він працює аналогічно розгалуженю, але виконується не одноразово, а щоразу, коли виконується умова, протягом усього прогону програми. Блок "Starte jedes mal":
Є скороченням наступної конструкції:
У блок Starte jedes mal категорії Zähler (лічильник) можна ввести всі умови цієї категорії.
Вказівка: сегмент програми всередині блоку "Starte jedes mal" повинен бути максимально коротким і не повинен містити блокуючі виклики або нескінченні цикли, щоб ця частина програми виконувалася швидко.
Викликати
За допомогою hole Zähler Wert (отримати значення лічильника) Ви можете отримати показання лічильника.
Запитати
Щоб дізнатися, чи нарахував лічильник певне значення, використовується блок
У випадаючому меню (маленький трикутник), можна вибрати спосіб порівняння показання з введеним значенням (<, ≤, =, ≠, ≥, >).
Скидання
При виконанні блоку setze Zähler zurück (скинути лічильник) лічильник обнуляється.
I2C
Блок "Starte jedes mal" ("Запускати щоразу")
Блок "Starte jedes mal" дозволяє запускати програму при виконанні будь-якої умови. Тобто він працює аналогічно розгалуженню, але виконується не одноразово, а щоразу, коли виконується умова, протягом усього прогону програми. Блок "Starte jedes mal":
Є скороченням наступної конструкції:
У блок "Starte jedes mal" категорії "I2C" можна ввести всі умови цієї категорії.
Вказівка: сегмент програми всередині блоку "Starte jedes mal" повинен бути максимально коротким і не повинен містити блокуючі виклики або нескінченні цикли, щоб ця частина програми виконувалася швидко.
Комбінований датчик
Комбінований датчик поєднує три функції: датчик прискорення, гіроскоп, датчик-компас.
Датчик прискорення
Викликати
За допомогою hole Kombisensor Beschleunigung in [] (отримати від комбінованого датчика прискорення в []) Ви отримаєте значення прискорення в одному з просторових напрямків. Потрібний просторовий напрямок вибирається в випадаючому меню (маленький трикутник). Прискорення наводиться в g.
Запитати
Щоб дізнатися, чи виміряли певне прискорення, використовуйте блок ist Kombisensor Beschleunigung in [] [] … (комбінований датчик визначив прискорення в [] [] …). У випадаючому меню (маленький трикутник) можна вибрати спосіб порівняння прискорення з введеним значенням (<, ≤, =, ≠, ≥, >) і просторовий напрямок, запит про який надсилатиметься. Еталонне значення вводиться в числове поле в кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, якщо прискорення у бік x більше 10.
Гіроскоп
Викликати
За допомогою hole Kombisensor Rotation in [] (отримати від комбінованого датчика обертання []) Ви отримаєте значення обертання в одному з просторових напрямків. Потрібний просторовий напрямок вибирається в випадаючому меню (маленький трикутник). Обертання наводиться в °/с
Запитати
Щоб дізнатися, чи виміряна певна кутова швидкість, використовуйте блок ist Kombisensor Rotation in [] [] … (комбінований датчик визначив обертання в [] [] …). У випадаючому меню (маленький трикутник) можна вибрати спосіб порівняння обертання з введеним значенням (<, ≤, =, ≠, ≥, >) та просторовий напрямок, запит про який надсилатиметься. Еталонне значення вводиться в числове поле в кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, якщо обертання у напрямку x більше 10.
Датчик-компас
Викликати
За допомогою hole Kombisensor Magnetfluss in [] (отримати від комбінованого датчика магнітний потік у []) Ви отримаєте значення магнітного потоку в одному з просторових напрямків. Потрібний просторовий напрямок вибирається в випадаючому меню (маленький трикутник). Магнітний потік наводиться у мкТл.
Запитати
Щоб дізнатися, чи було виміряно певний магнітний потік, використовуйте блок ist Kombisensor Magnetfluss in [] [] … (комбінований датчик визначив магнітний потік в [] [] …). У випадаючому меню (маленький трикутник) можна вибрати спосіб порівняння магнітного потоку з введеним значенням (<, ≤, =, ≠, ≥, >) та просторовий напрямок, запит про який надсилатиметься. Еталонне значення вводиться в числове поле в кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, якщо магнітний потік у бік x більше 10.
Датчик стану довкілля
Датчик стану навколишнього середовища поєднує чотири функції: датчик якості повітря, датчик вологості повітря, барометр і термометр.
Датчик якості повітря
Викликати
За допомогою блоку hole Umweltsensor Luftqualität als [] (отримати від датчика стану навколишнього середовища якість повітря у вигляді []) можна виміряти якість повітря. У випадаючому меню (маленький трикутник) можна вибрати спосіб повернення якості повітря: у вигляді числового значення (від 0 до 500) або у вигляді тексту
Запитати
Щоб дізнатися, чи було виміряно певну якість повітря, використовуйте блок ist Umweltsensor Luftqualität []... (датчик стану навколишнього середовища визначив якість повітря []...). У випадаючому меню (маленький трикутник) можна вибрати спосіб порівняння якості повітря з введеним значенням (<, ≤, =, ≠, ≥, >). Еталонне значення вводиться в числове поле кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, якщо якість повітря вища за 10.
Барометр
Викликати
За допомогою блоку hole Umweltsensor Luftdruck (отримати від датчика стану навколишнього середовища тиск повітря) можна виміряти тиск повітря.
Запитати
Щоб дізнатися, чи виміряно певний тиск повітря, використовуйте блок ist Umweltsensor Luftdruck [] ... (датчик стану навколишнього середовища визначив тиск повітря [] ...). У випадаючому меню (маленький трикутник) можна вибрати спосіб порівняння тиску повітря з введеним значенням (<, ≤, =, ≠, ≥, >) . Еталонне значення вводиться в числове поле в кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, якщо тиск повітря більше 10.
Термометр
Викликати
За допомогою блоку hole Umweltsensor Temperatur (отримати від датчика стану навколишнього середовища температуру) можна виміряти температуру
Запитати
Щоб дізнатися, чи було виміряно певну температуру, використовуйте блок ist Umweltsensor Temperatur [] ... (датчик стану навколишнього середовища визначив температуру [] ...). У випадаючому меню (маленький трикутник), можна вибрати спосіб порівняння температури з введеним значенням (<, ≤, =, ≠, ≥, >). Еталонне значення вводиться в числове поле в кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється якщо температура вище 10.
Датчик вологості повітря
Викликати
За допомогою блоку hole Umweltsensor Luftfeuchtigkeit (отримати від датчика стану навколишнього середовища вологість повітря) можна виміряти вологість повітря.
Запитати
Щоб дізнатися, чи було виміряно певну вологість повітря, використовуйте блок ist Umweltsensor Luftfeuchtigkeit [] ... (датчик стану навколишнього середовища визначив вологість повітря [] ...). У випадаючому меню (маленький трикутник) можна вибрати спосіб порівняння вологості повітря з введеним значенням (<, ≤, =, ≠, ≥, >). Еталонне значення вводиться в числове поле в кінці блоку. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, якщо вологість повітря більша за 10.
USB
Через USB-порт можна підключити камеру з вбудованим мікроскопом. Тут камера та мікроскоп розглядаються окремо. Для використання функцій камери спочатку потрібно налаштувати її в конфігураторі камери. Тут розповідається, як перейти до конфігуратора камери.
Камера
Камеру можна використовувати, зокрема, як детектор руху, детектор кольору, детектор кулі та детектор ліній.
Детектор руху
Щоб використовувати камеру як детектор руху, у конфігураторі камери треба перетягнути іконку чоловічка в область, розграфлену на клітинки. Праворуч відкриється вікно, у якому у вкладці Inspektor (Меню властивостей) можна задати
- область пікселів, де здійснюється контроль на наявність руху;
- положення цієї області (у точці із зазначеними тут координатами перебуватиме верхній лівий кут області);
- ім'я детектора руху та
- допустиме відхилення.
Програма детектора руху
Програма введення виконується, якщо введення даних завершено. Вона пишеться окремо від основної програми. Змінні працюють у обох програмах. Програма введення виконується у блоці wenn Bewegung erkannt (якщо розпізнано рух).
Детектор кольору
Щоб використовувати камеру як детектор кольору, у конфігураторі камери треба перетягнути іконку піпетки в область, розграфлену на клітинки. Праворуч відкриється вікно, у якому у вкладці Inspektor (Меню властивостей) можна задати
- область пікселів, у якій здійснюється контроль кольору;
- положення цієї області (у точці із зазначеними тут координатами перебуватиме верхній лівий кут області);
- ім'я детектора кольору та
- контраст.
Викликати
За допомогою hole Farbe als [] (отримати колір у вигляді []) Ви отримаєте розпізнаний колір у шістнадцятковому поданні або у форматі RGB. Потрібний формат можна вибрати у випадаючому меню (маленький трикутник).
Запитати
Щоб дізнатися, чи датчик розпізнав будь-який колір, використовуйте блок ist Farbe detektiert (розпізнаний колір). Цей блок можна використовувати як умову.
Щоб отримати інформацію про те, чи розпізнав датчик певний колір, використовується блок
За допомогою цього блоку розпізнаний колір можна порівняти із введеним кольором. У випадаючому меню (маленький трикутник) можна вибрати, чи повинен заданий колір дорівнювати або не дорівнювати кольору, зафіксованому датчиком. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, якщо розпізнаний колір — червоний.
Програма детектора кольору
Програма детектора кольору виконується, якщо був розпізнаний колір. Вона пишеться окремо від основної програми. Змінні працюють у обох програмах. Програма введення виконується в блоці wenn Farbe erkannt (якщо розпізнаний колір).
Детектор м'ячів
Щоб камеру можна було використовувати як детектор м'яча, необхідно перетягнути символ м'яча на екранну область у конфігураторі камери; звідси видно пряме вікно, де можна визначити під інспектором
площа пікселя, яка перевірятиметься на наявність куль,
у цій галузі (верхній лівий кут знаходиться у сфері торгівлі),
- назва детектора м'ячів,
- діапазон, в якому знаходиться діаметр куль,
- діапазон х вісь,
- колір м'яча та
- колірний допуск
Виклик
використовуйте get [] ball щоб отримати x, положення y, радіус або діаметр кулі.
Запит
Щоб запитати, чи виявлено детектор м'яча, використовуйте блок, якщо знайдено м'яч. Цей блок можна використати як умови.
Щоб запросити, чи виявити детектор кулі з широкою позицією x, позицією y, радіусом або діаметром, використовуйте
отвір для свердління. Ви можете використовувати блок для порівняння характеристик виявленого м'яча із введеним значенням. Ви можете використовувати меню, що розкривається (маленький трикутник), щоб вибрати, що слід порівнювати і з яким оператором порівняння. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, коли діаметр виявленої кулі дорівнює 5.
Програма детектора м'ячів
Програма детектора м'ячів запускається під час виявлення кольору. Пишеться окремо від програми. Змінні працюють глобально в обох програмах. Програма введення запускається в блоці при виявленні м'яча.
Лінійний детектор
Щоб використовувати камеру як детектор ліній, необхідно перетягнути символ з точками на лінії екранну область в конфігураторі камери; потім праворуч відкриється вікно, де можна визначити під інспектором
площа пікселя, яка перевірятиметься на лінії,
положення цієї області (верхній лівий кут області знаходиться у вказаній точці),
назва лінійного детектора,
кількість рядків, які необхідно виявити, та
діапазон, у якому лежить ширина лінії (ліній)
Виклик
Використовуйте get [] the line [] для отримання положення або ширини одного з п'яти рядків.
Використовуйте колір рядка [] як [] для отримання кольору рядка виводу у шістнадцятковому форматі або форматі RGB. Ви можете встановити формат, використовуючи меню, що випадає (маленький трикутник).
Запит
Щоб запитати, чи детектор виявляє лінію, використовуйте блок if line found . Цей блок можна використовувати як умову.
Щоб запитати, чи детектор виявляє лінію з певною позицією або шириною, використовуйте цей
отвір для свердління. Ви можете використовувати блок, щоб порівняти характеристики виявлених ліній із введеним значенням. Ви можете використовувати меню, що розкривається (маленький трикутник), щоб вибрати, що слід порівнювати і з яким оператором порівняння. Цей блок можна використовувати як умову. У прикладі двигун зупиняється, коли
ширина виявленої лінії менше 2.
Щоб запитати, чи детектор виявляє лінію певного кольору, використовуйте цей
отвір для свердління. Ви можете використовувати блок для порівняння знайденого кольору лінії з тим, який було введено. Ви можете використовувати меню, що розкривається (маленький трикутник), щоб вибрати, чи повинен заданий колір бути таким же, як і колір на плівці, або відрізнятися від нього. Цей блок можна використовувати як умову.
Програма детектора ліній
Програма виявлення ліній запускається при виявленні однієї або кількох ліній. Пишеться окремо від програми. Змінні працюють глобально в обох програмах. Програма введення запускається в блоці, якщо лінія виявлена..
Мікрофон
Мікрофон, вбудований у камеру, можна використовувати як детектор гучності.
Блок «Почати щоразу»
Блок «Запускати щоразу» пропонує можливість запуску програми під час виконання умови. Таким чином, він працює аналогічно розрізненню регістрів, але виконується не один раз, а щоразу, коли умова виконується протягом усього ходу програми. Блок « Почати щоразу» :
Є абревіатурою наступної конструкції:
Ви можете вставити всі умови цієї категорії в категорію мікрофона в блоці Починати щоразу .
Примітка. Розділ програми в блоці «Почати щоразу» повинен бути коротким і не повинен містити блокуючі виклики або нескінченні цикли, щоб ця частина програми могла бути оброблена швидко.
Детектор об'єму
Виклик
Гучність мікрофона показує гучність у децибелах.
Запит
Щоб запитати, чи детектор гучності виявляє певний рівень гучності, використовуйте цей
отвір для свердління. Ви можете використовувати блок для порівняння знайденого обсягу з тим, який був введений. Ви можете використовувати меню, що розкривається (маленький трикутник), щоб вибрати, який оператор порівняння слід використовувати для порівняння. Цей блок можна використовувати як умову.
Обробка
Логіка
Умовні інструкції
Умовні інструкції необхідні програмування. Вони дозволяють сформулювати відмінкові диференціації, такі як:
- Якщо є шлях ліворуч, поверніть ліворуч.
- Якщо кількість балів = 100, натисніть «Молодець!».
якщо блоки
Найпростішою умовою є блок if:
При його виконанні значення змінної x порівнюється зі 100. Якщо воно більше, то "Яке велике число!" виводиться. В іншому випадку нічого не відбувається.
якщо блокує
Також можна вказати, що щось має статися, коли умова хибна, як у цьому прикладі:
Як і в попередньому блоці «Яке велике число!» виводиться, коли x > 100. Інакше виводиться «Це дуже велика».
Блок if може мати розділ do , але не більше одного.
якщо зробити ще якщо блок
Також можна перевірити кілька умов за допомогою одного блоку if, додавши пропозиції do else:
Блок спочатку перевіряє, чи є x > 100, і виводить «Яке велике число!» якщо це так. Якщо це не так, то перевіряється, чи дорівнює x = 42. Якщо так, то виводиться «Це моє щасливе число!». В іншому випадку нічого не відбувається.
Блок if може мати будь-яку кількість розділів if do. Умови оцінюються зверху вниз, поки одна з них не буде виконана або поки не залишиться більше умов.
якщо зробити ще якщо зробити ще блок
if блоки можуть мати розділи if do та else if :
Розділ else if гарантує виконання дії, навіть якщо жодна з попередніх умов не виконується.
Розділ else if також може розташовуватися після будь-якої кількості розділів if do , включаючи нуль, що тоді було б нормальним блоком if do .
Модифікація блоку
У списку інструментів відображаються лише простий блок if та блок if do :
Щоб додати речення if do та else , натисніть символ (+). Символ (-) можна використовувати для видалення умов else if :
Зверніть увагу, що форми блоків дозволяють додавати будь-яку кількість підблоків else if, але не більше одного блоку if.
Булева логіка
Булева логіка - це проста математична система з двома значеннями:
- істинний
- неправильний
Логічні блоки в ROBO Pro Coding зазвичай призначені для управління умовами та циклами.
Ось приклад:
Якщо значення x не більше 100, то умова є хибною і «це не дуже велике». виводиться. Якщо значення x не більше 100, то умова є хибною і «це не дуже велике». виводиться. Логічні значення також можуть бути збережені в змінних і передані до функцій, так само, як числа, тексти та значення списку.
Якщо блок очікує логічне значення як вхідні дані, то ніякі вхідні дані не будуть інтерпретуватися як помилкові . Нелогічні значення не можна вставляти безпосередньо там, де очікуються логічні значення, хоча можливо (але не рекомендується) зберегти нелогічне значення змінної, а потім вставити його у вхідні дані умови. Цей метод не рекомендується, і його поведінка може бути змінена в майбутніх версіях ROBO Pro Coding.
Цінності
Для доступу до логічного значення можна використовувати окремий блок зі списком, в якому вказано значення true або false:
Порівняльні оператори
Є шість операторів порівняння. У кожен із них вводяться два входи (зазвичай два числа), і оператор порівняння повертає true чи false залежно від цього, як вхідні дані порівнюються друг з одним.
Шість операторів: одно, не одно, менше, більше, менше чи одно, більше чи одно.
Логічні оператори
Блок and повертає істину тоді й тільки тоді, коли два його вхідні значення є істинними.
Блок or повертає значення true якщо хоча б одне з двох його вхідних значень істинно.
робити
Блок не перетворює логічний вхід у його протилежність. Наприклад, результат:
є хибним.
Якщо немає вхідних даних, передбачається значення true , тому наступний блок згенерує значення false :
Проте залишати поле введення порожнім не рекомендується.
Трикомпонентний оператор
Оператор із трьох частин діє як мініатюрний блок if do . Він використовує три вхідні значення. Перше логічне умова для перевірки - це перше вхідне значення, друге вхідне значення - це значення, що повертається, якщо перевірка вірна, а третє вхідне значення - це значення, що повертається, якщо перевірка помилкова. У наступному прикладі колір змінної визначається червоним, якщо змінна x менше 10, в іншому випадку колір змінної задається зеленим.
Блок із трьох частин завжди можна замінити блоком if do. Наступні два приклади такі самі.
Петлі
Область «Контролер» містить блоки, що управляють виконанням інших блоків, розміщених усередині них. Блоки управління бувають двох видів: блоки if do ( вони описані на окремій сторінці) та блоки, що контролюють, як часто виконується дія всередині них. Останні називаються циклами, тому що дія всередині них, що називається тілом циклу або тілом, може повторюватися багаторазово. Кожен запуск циклу називається ітерацією.
Блоки для створення петель
повторювати безперервно
Блок безперервного повторення виконує код у тілі, доки програма не завершиться.
повторення
Блок повторення виконує код у тілі вказану кількість разів. Наступний блок, наприклад, виведе Hello! десять разів:
повторювати доти, доки
Уявіть собі гру, в якій гравець кидає кістки і складає всі показані значення, поки сума менша за 30. Наступні блоки реалізують цю гру:
- Змінна з назвою total містить початкове значення 0.
- Цикл починається з перевірки, чи менше 30. Якщо так, то запускаються блоки в тілі.
- Генерується випадкове ціле число від 1 до 6 (для імітації значення кістки) і зберігається змінна з ім'ям кубик .
- Виводиться викинуте («кубик») число.
- Змінна total збільшується на кількість кинутих чи випалих кубиків.
- Після досягнення кінця циклу контролер повертається до кроку 2.
Після завершення циклу контролер виконує всі наступні блоки (не показано). У прикладі цикл завершується після того, як буде виведено певну кількість випадкових цілих чисел від 1 до 6, а потім змінна total матиме значення суми цих чисел, що дорівнює як мінімум 30.
повторювати до
повторювати до тих пір, поки цикли повторюють своє тіло, поки виконується умова. Повторюйте, доки петлі не стануть аналогічними, з тією різницею, що вони повторюють тіло доти, доки не буде виконано певну умову. Наступні блоки еквівалентні попередньому прикладу, оскільки цикл виконується до тих пір, поки значення total не стане більше або дорівнює 30.
рахувати від до
Цикл count from to збільшує значення змінної, починаючи з початкового значення і закінчуючи другим значенням, а також крок за кроком від третього значення, при цьому тіло виконується один раз для кожного значення змінної. Наступна програма, наприклад, виводить числа 1, 3 та 5.
Як показують наступні два цикли, кожен з яких виводить числа 5, 3 і 1, перше значення може бути більшим за друге. Поведінка однакова, незалежно від цього, чи є величина збільшення (третє значення) позитивної чи негативної.
для кожного
Блок для кожного подібний до циклу count from to , але замість змінних циклу в числовій послідовності він послідовно використовує значення зі списку. Наступна програма виводить кожен елемент списку "альфа", "бета", "гамма":
Розбивайте блоки
Більшість циклів виконуються до тих пір, поки не буде виконана умова переривання (для повторних блоків) або поки не будуть прийняті всі значення змінної циклу (для підрахунку і для кожного циклу). Два необхідні рідко, але іноді блоки пропонують додаткові можливості управління поведінкою циклу. Їх можна використовувати з будь-яким циклом, хоча в наступному прикладі показано їх використання в циклі for each.
продовжити з наступною ітерацією
continue with next iteration змушує пропустити блоки, що залишилися, в тілі циклу і почати наступну ітерацію циклу.
Наступна програма виводить альфа під час першої ітерації циклу. Під час другої ітерації виконується блок продовження наступної ітерації, у результаті виведення «бета» пропускається. В останній ітерації друкується "гамма".
Прорив
Блок break out дозволяє передчасно вийти із циклу. Наступна програма виводить "альфа" для першої ітерації, потім перериває цикл під час другої ітерації, коли змінна циклу дорівнює "бета". Третя точка у списку ніколи не досягається.
Математика
Блоки категорії математики використовуються для активації обчислень. Результати обчислень можна використовувати, наприклад, як значення змінних. Більшість математичних блоків відносяться до загальних математичних обчислень та не вимагають пояснень.
Блоки
Факти та цифри
Використовуйте числовий блок для введення будь-якого числа у вашу програму або надайте це число змінної як значення. Ця програма надає змінної age число 12 :
Прості розрахунки
Цей блок має структуру значення – оператор – значення. Доступні оператори: +, -, ÷, × і ^. Оператора можна вибрати через меню, що випадає. Його можна застосовувати безпосередньо до чисел або значень змінних. Приклад:
Цей блок виводить результат 144 (122).
Спеціалізовані розрахунки
Цей блок застосовує тип розрахунку, вибраний з меню, що розкривається, до нього або змінної за ним. Доступні операції:
- Квадратний корінь,
- Сума,
- Натуральний логарифм,
- Десятковий логарифм,
- Експонентні функції з основою e (e^1, e^2,...),
- Експонентні функції з основою 10 (10^1, 10^2,...),
- Зміна знака (множення -1.
e тут число Ейлера. Цей блок витягує квадратний корінь із 16 і надає результат змінної i
Тригонометричні функції
Цей блок працює аналогічно блоку, описаному вище, з тією відмінністю, що використовуються тригонометричні функції синус, косинус, тангенс та їх зворотні функції. Таким чином, вказане число або значення зазначеної змінної вставляється у функцію, вибрану в меню, що розкривається, і потім результат може бути оброблений в програмі. Крім того, є блок arctan2 для X: ... Y: ... , який дозволяє використовувати два дійсних числа (вводяться як X і Y) для виведення значення функції arctan2 в діапазоні 360°.
Часто використовувані константи
Цей блок працює аналогічно до блоку чисел, однак ви не вводите тут числове значення самостійно. Натомість часто використовувані константи (наприклад, π) зберігаються тут як значення за промовчанням. Константи можна вибрати в меню, що розкривається.
Залишок дивізії
Залишок блоку ... використовується для виведення залишку від розподілу. Ця програма надає змінному залишку залишок від розподілу 3:2 або 1:
Круглий
Блок round... можна використовувати для заокруглення введеного десяткового числа значення введеної змінної до цілого числа. Ви можете вибрати один з трьох варіантів у меню, що розкривається:
- використовуйте "округлення" для стандартного округлення (наприклад, від 4,5 до 5)
- використовуйте округлення для округлення (наприклад, від 5,1 до 6)
- використовуйте «закруглення вниз» для заокруглення в меншу сторону (наприклад, від 5,9 до 5).
Оцінка списків
Ви можете використовувати ... блоку списку для виведення
- сума всіх значень у списку із «sum»,
- найменше значення у списку з «min»,
- найбільше значення у списку з "max",
- середнє значення всіх значень у списку зі словом «середнє»,
- медіана списку з медіаною,
- значення, що найчастіше зустрічається в списку з «режимом»,
- стандартне відхилення всіх значень у списку зі стандартним відхиленням,
випадкове значення зі списку із «випадковим елементом». Ви можете вибрати всі ці параметри, використовуючи меню, що випадає для блоку:
Обмежити вхідні значення
Блок обмеження від ... до дозволяє обмежити вхідні значення певним інтервалом. Перед обробкою вхідного значення проводиться тест, щоб перевірити, чи воно у заданому інтервалі. Існує три варіанти обробки введеного значення:
- Значення перебуває в інтервалі, тому передається без змін.
- Значення нижче нижньої межі інтервалу, тому нижня межа передається.
- Значення вище верхньої межі інтервалу, тому передається ця верхня межа.
У цьому прикладі блок використовується для обмеження значення змінної швидкості до швидкостей, що підтримуються двигуном:
Генерація випадкових значень
Два блоки випадкових чисел від … до … і випадковий розрив виводять випадкове значення. Блок випадкових чисел від … до… виводить число із заданого інтервалу. Випадковий блоковий розрив , навпаки, виводить значення від 0,0 (і може включати це число) до 1,0 (може не включати це число).
Тексти
Тексти Приклади текстів:
«Річ 1»
«12. Березень 2010»
«» (порожній текст)
Текст може містити літери (великі або малі), цифри, розділові знаки, інші символи та пробіли.
Блоки
Створення тексту
Наступний блок створює текст Hello і зберігає його в змінній з ім'ям Greeting:
Блок створення тексту з комбінує значення змінної вітання та новий текст "світ" для створення тексту "Helloworld". Зверніть увагу, що між двома текстами немає пробілу, оскільки його не було у вихідних текстах.
Щоб збільшити кількість текстових вводів, клацніть символ (+). Щоб видалити останній висновок, натисніть символ (-).
Зміна тексту
Блок to ... append додає текст до заданої змінної. У цьому прикладі він змінює значення змінної Greeting з Hello на Hello, there!
Довжина тексту
Довжина блоку підраховує кількість символів (літер, цифр тощо), які у тексті. Довжина "Ми №1!" дорівнює 12 а довжина порожнього тексту дорівнює 0.
Перевірити наявність порожнього тексту
Порожній блок перевіряє, чи введений текст є порожнім (довжина дорівнює 0). Результат істинний у першому прикладі та покладено у другому прикладі.
Пошук тексту
Ці блоки можна використовувати для перевірки того, чи є текст в іншому тексті, і якщо так, то де. Наприклад, цей блок перевіряє перше входження "e" в "Hello", і результат дорівнює 2:
Цей перевіряє останнє входження «e» в Hello, що також дорівнює 2:
Незалежно від того, чи вибрано перше або останнє входження, цей блок повертає результат 0, оскільки Hello не містить z.
Вилучення тексту
Вилучення одного символу
Це повертає "b", другу літеру в "abcde":
Це повертає "d", передостанню букву в "abcde":
Це повертає «a», першу літеру в «abcde»:
Це повертає "e", останню букву в "abcde":
Це містить кожну з 5 букв у «abcde» з однаковою ймовірністю:
Жоден їх не змінює текст, з якого витягуються ці результати.
Вилучення текстового діапазону
Підстроку in text... get з блоку можна використовувати для вилучення текстового діапазону, який починається з:
- лист #
- літера # з кінця
- перший лист
і закінчується:
- лист #
- літера # з кінця
- останній лист
У наступному прикладі виходить «abc»:
Змінити великі літери тексту
Цей блок генерує версію вхідного тексту або написану на
- ВЕРХНИЙ РЕЄСТР (усі букви великими) або
- нижній регістр (усі літери в нижньому регістрі) або
- Іменник (перші букви великі, інші малі).
Результатом наступного блоку є «HELLO»:
Неалфавітні символи не торкаються. Зверніть увагу, що цей блок не працює з текстом мовами без великих і малих літер, таких як китайська.
Змінити великі літери текстуОбрізка (видалення) прогалин
Наступний блок прибирає пробіли залежно від налаштувань у меню, що випадає (маленький трикутник):
- на початку тексту
- наприкінці тексту
- з обох боків тексту
Результат наступного блоку - "Привіт, ти".
Прогалини всередині тексту не торкаються.
Роздрукувати текст
Блок друку викликає друк вхідного значення у вікні консолі:
Він ніколи не відправляється на друк, хоч ім'я може вказувати на це.
Виведення тексту з форматуванням
Ви можете використовувати форматований текстовий блок для виведення текстів із форматованим змінним вмістом. Усі заповнювачі {} у тексті замінюються вмістом змінних, доданих після тексту. Форматування можна ввести у дужках. Форматування {:.1f} , наприклад, виводить лише перший десятковий розряд змінної t .
Списки
Як і в повсякденній мові, ROBO Pro Coding список являє собою впорядкований набір елементів, таких як список справ або список покупок. Елементи в списку можуть бути будь-якого типу, і те саме значення може з'являтися в списку кілька разів.
Створення списку
створити список з
Ви можете використовувати список створення блоку для введення початкових значень у новий список. У цьому прикладі список слів створюється та зберігається у змінній з іменем letter :
Ми позначаємо цей список як "альфа", "бета", "гамма"].
Це показує блок для створення списку чисел
Ось як створити список кольорів:
Це менш поширене, але можна створити список значень різних типів:
Змінити кількість входів
Щоб змінити кількість входів, натисніть або торкніться символу шестерні. Це відчинить нове вікно. Ви можете перетягнути підблоки елементів з лівої частини вікна в блок списку з правого боку, щоб додати нове введення:
Хоча новий елемент у цьому прикладі вставлено внизу, його можна додати будь-куди. Так само непотрібні підблоки елементів можна перетягнути вліво та за межі блоку списку
Створити список із елементом
Ви можете використовувати блок створення списку з елементом , щоб створити список, який містить вказану кількість копій елемента. Наступні блоки, наприклад, задають змінні слова у списку ["very", "very", "very"].
Перевірити довжину списку
порожньо
Значення порожнього блоку дорівнює true , якщо його введенням є порожній список, і false якщо це щось ще. Чи вірне це введення? Значення наступного блоку буде false тому, що змінна color не порожня: в ній три елементи.
Зауважте, як це схоже на порожній блок для тексту..
Довжина
Значення довжини блоку — це кількість елементів, які знаходяться у списку, який використовується як вхідні дані. Наприклад, значення наступного блоку дорівнюватиме 3, оскільки колір складається з трьох елементів:
Значення довжини блоку – це кількість елементів у списку, який використовується як вхідні дані. Наприклад, значення наступного блоку дорівнюватиме 3, хоча слова складаються з трьох копій одного і того ж тексту:
Зверніть увагу на те, як це схоже на довжину блоку для тексту.
Пошук елементів у списку
Ці блоки знаходять позицію елемента у списку. У наступному прикладі значення дорівнює 1, оскільки слово "дуже" зустрічається на початку списку слів ("дуже", "дуже", "дуже"]).
Результатом наступного є 3, оскільки останнє входження слова «дуже» у словах перебуває у позиції 3.
Якщо елемента взагалі немає у списку, то результатом буде значення 0, як у цьому прикладі:
Ці блоки поводяться так само, як і блоки пошуку літер у тексті.
Отримання предметів зі списку
Отримання одного елемента
Пам'ятайте визначення кольорів списку:
Наступний блок містить синій колір, тому що це другий елемент у списку (починаючи зліва):
Цей містить зелений, тому що це другий елемент (починаючи з правого кінця):
Це містить перший елемент, червоний:
Це містить останній елемент, жовтий:
Цей вибір вибирає випадковий елемент зі списку з однаковою ймовірністю повернення одного з елементів червоного, синього, зеленого або жовтого кольору.
Отримати та видалити елемент
Ви можете використовувати меню, що розкривається, щоб змінити блок у списку... перейти до блоку в списку... отримати і видалити , що дає той же результат, але також змінює список:
у цьому прикладі першій літері змінної надається значення «альфа», а решта літер («бета», «гамма»]) залишаються у списку.
Видалення запису
Якщо ви виберете видалити з меню, вкладка ліворуч від блоку буде видалена:
Потім перший елемент листа буде видалено.
Отримати підпис
Блок у підсписку list...get аналогічний блоку в list...get з тією різницею, що він отримує підсписок, а не окремий елемент. Існує кілька варіантів введення початку та кінця підписку:
У цьому прикладі створюється новий список перших букв. Новий список і двох елементів: ["альфа", "бета"].
Зверніть увагу, що блок не змінює вихідний список.
Додавання елементів до списку
Заміна елементів у списку
Блок у списку... набір замінює елемент у певній точці списку іншим елементом..
Значення окремих параметрів списку, що розкривається, описані в попередньому розділі.
Наступний приклад робить дві речі:
- Список слів складається з 3 пунктів: ["дуже", "дуже", "дуже"].
- Третій пункт у списку замінено на «добре». Нове значення слів ["дуже", "дуже", "добре"]
Вставка елементів із певної точки до списку
Доступ до блоку in list...insert at здійснюється через меню, що розкривається, для блоку in list...set :
Він вставляє новий елемент у вказану точку списку перед елементом, який там розташовувався. Наступний приклад (який заснований на попередньому прикладі) робить три речі:
- Список слів складається з 3 пунктів: ["дуже", "дуже", "дуже"].
- Третій пункт у списку замінено на «добре». Таким чином, нове значення слів ["дуже", "дуже", "добре"].
- Слово «Be» вставляється на початок списку. Отже, кінцеве значення слів [«Бути», «дуже», «дуже», «добре»].
Розділяйте рядки символів та об'єднуйте списки
Зробити список із тексту
Список створення блоків із тексту використовує роздільник для поділу даного тексту на частини:
У наведеному вище прикладі буде повернено новий список, що містить три сегменти тексту: «311», «555» та «2368».
Зробити текст зі списку
Цей блок make text from list збирає список в один текст, використовуючи роздільник:
У наведеному вище прикладі повертається новий текст із значенням: "311-555-2368".
Пов'язані блоки
Друк списку
Блок друку в текстовій категорії може відображати списки. Результатом наступної програми є показаний висновок консолі:
Завершіть щось для кожного елемента у списку
Для кожного блоку категорії контролера виконується операція для кожного елемента у списку. Цей блок, наприклад, друкує кожен елемент у списку окремо:
Елементи в цьому випадку не видаляються зі списку.
також приклади для блоків розбивки.
використання
Категорія використання містить блоки наступного типу в ROBO Pro Coding:
- Вибір кольору
- Чекати
- Код Python
- Починати
- Виконання функції
Вибір кольору
Цей блок служить вхідним значенням, якщо запитується колір (наприклад, якщо камера виконує порівняння кольорів). Ви можете клацнути або торкнутися кольору, щоб вибрати один із 70 кольорів
Чекати
Зачекайте, поки час не закінчиться
Блок очікування []... запобігає продовженню виконання програми протягом визначеного часу очікування. Ви можете вибрати одиницю часу в меню, що розкривається (маленький трикутник), а також бажану тривалість паузи в полі введення поряд з ним.
Зачекайте за умови
У блоці очікування пауза пов'язана не з часом, а з виконанням умови (наприклад, кнопка). Умову додається до блоку очікування.
Код Python
Якщо ви хочете інтегрувати існуючий Python код в ROBO Pro Coding, ви можете вставити його в блок коду Python . Потім програма виконає все, що написано в блоці Python..
Починати
Блок start when також пов'язаний із умовою. Програма в тілі блоку запуститься лише після виконання цієї умови.
Виконання функції
Ви можете використовувати функцію виконання... в потоці, щоб виконати вибрану функцію в окремому потоці. У деяких випадках цей захід може дозволити програмі продовжувати реагувати на вхідні дані та виконуватися швидше.
Змінні
Ми використовуємо термін змінна так само, як він використовується в математиці та інших мовах програмування: іменоване значення, яке можна змінити (змінити). Змінні можна створювати по-різному.
- Деякі блоки, такі як count with і for each використовують змінну і визначають її значення. Традиційний ІТ-термін для таких змінних – циклічні змінні.
- Функції користувача (також звані «процедурами») можуть визначати вхідні дані, які можна використовувати для створення змінних, які можна використовувати тільки в цій функції. Такі змінні зазвичай називаються «параметрами» або «аргументами».
- Користувачі можуть змінювати змінні будь-коли за допомогою блоку set. Їх традиційно називають «глобальними змінними». Їх можна використовувати будь-де коду ROBO Pro Coding.
Випадаюче меню
Коли ви клацаєте символ списку (маленький трикутник) для змінної, з'являється наступне меню:
Меню пропонує такі опції.
- відображати імена всіх доступних змінних, визначених у програмі.
- "перейменувати змінну...", наприклад, змінити ім'я цієї змінної, де б воно не з'являлося в програмі (вибір цієї опції відкриє запит на нове ім'я)
- "Видалити змінну...", наприклад, Видалити всі блоки, які посилаються на цю змінну, де б вони не знаходилися в програмі.
Блоки
Набір
Блок set надає значення змінної і створює змінну, якщо вона ще немає. Наприклад, ось як встановити значення змінної age рівним 12:
Виклик
Блок виклику доставляє змінну, збережену в змінній, не змінюючи її:
Можна написати програму, що містить блок дзвінка без відповідного блоку установки, але це погана ідея.
Змінювати
Блок зміни вставляє число змінної.
Блок змін є абревіатурою наступної конструкції:
Приклад
Подивіться наступний приклад коду:
Перший ряд блоків створює змінну з ім'ям age і встановлює її початкове значення число 12. Другий ряд блоків викликає значення12, додає до нього 1 і зберігає результат (13) в змінних. В останньому рядку з'являється таке повідомлення: «Вітаємо! Тобі зараз 13».
Функції
Функції використовуються для повторного використання частин коду і таким чином забезпечують всеосяжну структуру коду. Якщо ви завершите функціональний блок, у меню «Функції» з'явиться новий блок з тим самим ім'ям, що й цей функціональний блок. Тепер можна просто вставити блок із назвою функції в основну програму. При запуску програми цей блок призведе до коду однойменної функції і обробить цей код.
Проста функція
Ви можете використовувати простий функціональний блок для створення функції з ім'ям, введеним у текстовому полі. Ця функція може містити будь-яку кількість змінних, які додаються символом шестерні. Ця функція aging додає 1 до змінної age:
Потім цю функцію можна використовувати в основній програмі:
Функція зі значенням, що повертається
Цей блок дозволяє створити функцію зі значенням, що повертається. Потім значення, що повертається, можна використовувати в основній програмі. Ось приклад: