Arduino - всім. Продовження історії

  image
 
З часу виходу мого першого поста про проект FLProg пройшло більше місяця. І ось вийшла нова версія програми, і я хочу розповісти про нові можливості, що з'явилися в останньому релізі. Так само паралельно розповім про деякі підводні камені у програмуванні платформи Arduino знайдених при розробці нового функціоналу.
 
Отже, по порядку.
 
1. На прохання користувачів були записані відео уроки по роботі з програмою.
 Подивитися можна на YouTube:
  FLProg видеоурок 1
  Робота в FLPRog на LAD
  Нове у версії FLProg1.2
  Мотори в FLProg1.2
  Годинники та дисплей в FLProg1.2
 Або завантажити на сайті проекту в розділі «Документація».
 
2. Для роботи з цифровими входами була додана можливість підключення вбудованого подтягивающего резистора і включення захисту від брязкоту контактів.
Для можливості використання аналогових входів як цифрових так само був створений окремий функціональний блок захисту від брязкоту.
 
3. Доданий функціональний блок масштабування сигналу.
 
4. Доданий вбудований монітор Com порту.
 
5. Додані блоки для роботи з годинником реального часу. У мене в наявності були годинник реального часу на мікросхемі DS1302.
 
 image
 
Якщо чесно сказати не кращий варіант для Arduino. Їх робоча напруга 3.3В, відповідно логічні рівні такі ж. Для підключення до плати Arduino можливі два варіанти. Правильний і костильного. Правильний варіант — скористатися двонаправленими перетворювачами рівнів 3.3В <-> 5В. І живити годинник від пина 3.3V.
На жаль, під час розробки блоків я перебував дуже далеко від цивілізації і не міг піти цим шляхом. Тому я пішов по другому. У розрив ланцюга GND між годинами і платою Arduino включається постійний резистор 10кОм. Годинники працюють нормально. Але ще раз повторюю, спосіб костильного і кожен користується ним на свій страх і ризик.
Так само була реалізована можливість початкової установки годин, і синхронізація їх з часом в комп'ютері, за допомогою спеціальної утиліти. Поподробнее можна подивитися у відео уроці, присвяченому годинах реального часу.
 
6. Додані блоки для роботи з сервомоторами і кроковими двигунами. З сервомоторами проблем не виникло, все запрацювало відразу і без нарікань. З кроковими двигунами виявилося складніше. У мене в наявності був кроковий двигун 28BYJ-48 з контролером на мікросхемі ULN2003AN.
 
 image
 
При стандартному оголошенні в скетчі він відмовився крутитися в обидві сторони. На просторах інтернету знайшов відповідь. У бібліотеці Stepper помилка. Мотор треба оголошувати так: stM = Stepper (in1, in3, in2, in4);, тобто поміняти місцями другий і третій параметри. У цьому випадку мотор працює як треба.
 
7. Доданий блок для виведення інформації на дисплей, реалізований на чіпі HD44780.
 
 image
 
Довелося трохи повозитися з питанням оновлення екрану. Якщо не викликати функцію відновлення дисплея, то при зміні довжини виведеної інформації кінець старих даних залишається. Якщо викликати при кожному проході програми, на дисплеї суцільне мельтешение і нічого не видно. У всіх прикладах реалізації виведення на дисплей використовується функція delay, і дані на дисплеї повністю оновлюються кожні 1-2 сек. Мене такий варіант не влаштовує, тому що крім виведення на дисплей контролер може виконувати й інші функції, і зупиняти виконання програми не можна. Вихід був знайдений такий. При кожному виведенні на дисплей запам'ятовується довга виведених даних, і якщо нові дані коротше попередніх у наступному циклі дисплей оновлюється.
  
8. Додана можливість роботи з рядками, і створені відповідні функціональні блоки. Я відмовився від роботи з рядками як масивами Char, і працюю з об'єктом String. Як виявилося з ним працювати набагато простіше, особливо якщо довга рядки заздалегідь невідома.
 
Крім того внесено багато дрібних доопрацювань, і нововведень. Повний список можна подивитися на сайті на сторінці завантаження програми. Як звичайно доступні інсталятор і portable версія.
 
Проект продовжує розвиватися. Наступний етап буде повністю присвячений розробці симулятора.
 
З фінансуванням проекту поки важко. Ми все-таки живемо в Росії, і проект поки орієнтований на наших жителів. А ми не дуже любимо, платити за те, що можна отримати безкоштовно. Тим більше я вдячний тим користувачам програми, які все-таки надають допомогу проекту. Нехай їх небагато, але вони є. Їхня допомога якраз і допомогла придбати ті залізяки, блоки для роботи з якими з'явилися в програмі. Так само вдалося перенести сайт з домашнього сервера, на віртуальний одного з хостерів.
 
З'явилися перші реальні проекти, створені в програмі. Користувач ALEX люб'язно надав свій проект для прикладу на сайт. Це зварювальний контролер для зварювання арматури. Подивитися і скачати можна на сайті програми, в розділі «Документація» -> «Проекти користувачів».
 
Сподіваюся, проект не помре, і наступний мій пост буде присвячений симулятору, вбудованому в програму. Завантажити програму можна на сайті проекту FLProg як кажуть безкоштовно та без реєстрації
  
Джерело: Хабрахабр

0 коментарів

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