FLProg - школа для Arduino. Перші уроки спілкування та швидкого рахунку

    image
Вийшла нова версія програми FLProg. Попередні пости про програму можна почитати тут і тут .
 
В останньому пості я обіцяв, що в наступній версії буде вбудований симулятор, і чесно почав працювати над ним. Але реальність міняє наші плани. Я розвиваю проект відповідно до побажань користувачів програми, і як виявилося, симулятор поки мало кому цікавий. У рейтингу голосування на сайті він опинився в самому низу. Тому я наступив на горло власній пісні і зайнявся більш затребуваним функціоналом.
 
Отже, що нового.
 Перш за все, була проведена величезна робота по переробці малювання схеми. Дійсно при розмірі схеми в 10 -15 плат отрисовка гальмувала навіть на потужних комп'ютерах. Довелося повністю переписувати малювання у відповідності з новими принципами.
 
Принцип 1 — кешіруем ВСЕ. Мінімум розрахунків в момент малювання. Це потягнуло за собою створення змінних для кеша, підняття дерева повідомлень по ланцюжку об'єктів, і відповідно систему change-й з визначенням необхідності скидання тих чи інших кешей.
 Принцип 2 — малюємо тільки те, що бачимо. Загалом, те тривіальне завдання. Але на мові Smalltalk довелося досить довго длубатися для того що б визначити видимий прямокутник в ScroolBox-е.
Можливо, я винайшов велосипед, але це спрацювало. Перевірка на нетбуці з Atom-му показала, що швидкість малювання ніяк не залежить від розміру схеми.
 
Навчив Arduino спілкуватися між собою через Com порт.
 У програмі з'явилися нові блоки прийому і передачі даних через Com порт. Постарався зробити це максимально просто і прозоро. На схемі передавальної плати ставиться необхідну кількість блоків передачі змінних, на приймаючій стороні ставляться відповідні їм блоки прийому змінної. Докладніше можна подивитися на відео нижче
 
  
Доданий блок швидкісного лічильника.
 Це стандартний блок практично у всіх промислових контролерах. Але досі я не наважувався до нього підступитися, оскільки не дуже розбирався в апаратних переривання контролера. Але користувачі хотіли, і довелося копатися. Начебто вийшло. Блок вважає імпульси на прив'язаному до нього цифровому вході контролера за заданий проміжок часу. Рахунок відбувається по перериванню, відповідно не залежить від решти програми. Опис роботи з лічильником і приклад застосування можна подивитися на відео нижче
 
  
Так само відповідно до побажань додано деяку кількість нових функціональних блоків. Блоки алгебри: Sin, Cos, Tan, Abs, Min, Max, Sq, Sqrt. Генератор випадкових чисел, виділення переднього фронту. Загальний огляд нововведень можна подивитися на відео.
 
  
Сайт програми flprog.ru
 
PS. Прошу не починати як в минулих постах холівар з приводу шкідливості мов FBD і LAD. Якщо Ви вважаєте їх вселенським злом, просто закрийте цю сторінку. Є люди, які так не вважають. Залиште цей пост ім.
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.