Розробка та експлуатація ультразвукового сенсора наповнення бака

Передмова

Закінчилося літо, і мені хотілося б поділитися результатами однієї цікавої роботи — а саме розробкою, складанням, налагодженням і експлуатацією комбінованого ультразвукового датчика. Хочу відразу сказати, що всі пристрій збиралося «на колінах», тому що було важливо зрозуміти, наскільки система може бути життєздатною. Тому не було зроблено ніякого захисту від дощу, сонця і вітру. Сам прилад був встановлений зовні приміщення. Забігаючи вперед, скажу, що надійність виявилася вельми вражаючою, незважаючи на те, що пристрій було зібрано із залишків обладнання від старих проектів.

Постановка завдання
Завдання було поставлено ранньою весною — разом з придбанням у розпліднику 120 кущів малини. Як відомо, малина дуже чуйна до поливу, але одночасно не любить і надлишку води. Тому було вирішено з підручних матеріалів зібрати систему, яка б вирішувала такі питання:

1. Управління занурювальним вібраційним насосом.
2. Вимір рівня води в 220 літровій бочці.
3. Включення електромагнітного клапана за запитом — початок поливу. Відключення виконується за сигналом від вимірювача рівня води.
4. По завершенню циклу поливу запуск циклу заповнення бочки. Відключення виконується за сигналом від вимірювача рівня води.

Склад обладнання
— US-100 — ультразвуковий вимірювач відстані. Старший брат знаменитого HC-SR04. Головна відмінність — наявність температурної компенсації і можливість роботи в режимі передачі даних по UART. По точності порівняти мені їх не вдалося через відсутність HC-SR04.
— Плата, обладнаною мікропроцесором STM8S003F3P6.
— LCD 2x16, сумісний з HD44780.
— HLK-PM01 — блочний малогабаритний джерело живлення AC-DC. Вхідна напруга 220В змінного струму, вихідна 5В 600 мА постійного струму.
— Електромагнітний клапан з настановним діаметром 3\4 на напругу 24В постійного струму. Споживаний струм досягає 2 А.
— Корпус для основного приладу.
— Корпус для ультразвукового сенсора. Виконання цього корпусу IP67, і як показала практика, таке виконання було обрано не даремно.

Засоби розробки
Хочу відразу сказати, що я є щасливим власником двох чудових плат Arduino Mini. Але на жаль — ардуинизация свідомості для мене закінчилася тоді, коли виявилося, що навіть з використанням операційної системи реального часу дана плата ну ніяк не бажає працювати в якості Modbus RTU slave з тайм-аутами менше 100 мсек на швидкості 57,6 кбіт при запиті всього 64 регістрів і при цьому робити хоч якусь корисну роботу. Саме тому була обрана плата на платформі STM8 з набагато меншою кількістю ресурсів. В якості середовища програмування і налагодження був обраний IAR Embedded Workbench for STM8. Дана середовище прекрасно працює з програматором — відладчиком ST-LINK V2. Програматор має інтерфейс USB підключається до отлаживаемому виробу всього 4-ма проводами. При цьому найчастіше струму від відладчика достатньо для живлення налагоджують плати. Я трохи старомодний, і тому мені подобається мати можливість онлайн — налагодження. Я просто хочу бачити, що робить мій код в режимі виконання. Цей підхід не раз економив час і гроші.

Операційна система
Цікавий факт: відомий російський зодіакальний виробник випускає ПЛК без операційної системи реального часу.

В самому початку шляху я встав перед вибором — використовувати чи ні операційну систему реального часу для мікропроцесора, що володіють такими ресурсами. І вибір був зроблений досить несподіваний — ChibiOS RT v2.6.9. Не буду в цій публікації розглядати всі особливості цієї системи — лише відзначу, що створення двох потоків з однаковими пріоритетами зайняло 2547 байт флеш — пам'яті і 461 байт оперативної. Власне, чимало — але результатом цієї втрати стало те, що тепер я маю 8 — розрядний недорогий мікроконтролер, який управляється операційною системою реального часу. І отже, я можу керувати виконанням моїх завдань так, як мені треба.br/>

Хід робіт: складання прототипу та написання програми
Збірка прототипу пройшла досить швидко, особливих проблем не виникало. Що вийшло в результаті, показано на картинці нижче:

image
При програмуванні єдиною проблемою було те, що для дисплея і ультразвукового сенсора не було знайдено готових драйверів. Підсумок — довелося писати самому. Результатом роботи стало стабільно працююча програма, вихідний код якої ви можете знайти на архів.

Зовнішній вигляд прототипу, встановленого в корпус, показаний нижче. Як раз видно процес тестів в домашніх( читайте — тест для сферичного процесора у вакуумі) умовах. Саме в таких режимах зазвичай тестують ардуиноводы, і результатом є відгуки про виняткової надійності одержуваних рішень». Поведінка мого вироби в такому тесті було просто ідеальним ніяких збоїв або відхилень помічено не було.

image
Хід робіт: монтаж і запуск системи
Для монтажу було обрано будова, розташоване в безпосередній близькості від об'єкта управління. Як я говорив вище, ніякого захисту від атмосферних опадів не було передбачено. Зрештою, затяжна злива зробив свою справу — але про це трохи пізніше. Нижче на малюнку показана установка ультразвукового датчика.

image
Пристрій управляє включенням системи крапельного поливу, причому управляється від програмованого логічного контролера. Контролер має вбудовану шину 1-wire з можливістю підключення до 128 пристроїв на один комунікаційний порт. Датчик вологості комбінований, ємнісний, працює на частоті 80 МГц і має як раз інтерфейс 1-wire. Разом з вологістю передає величину освітленості на рівні установки сенсора. Дані пристрої в цій публікації не розглядаються.

Хід роботи: експлуатація
Подавши харчування, було приємно побачити, що алгоритм, закладений в програму, працює так, як і хотів розробник. Блок виміряв відстань до води, визначив, що бочка порожня, і включив насос для заповнення. В процесі заповнення відхилення показань датчика рівня склали не більше 15 мм, що досить прийнятно. Заповнивши бочку, вимкнув насос. Тепер система готова до початку процесу поливу. На початковому етапі все було гладко і красиво — але багаторічний досвід підказував, що найцікавіше буде попереду.

Хід робіт: проблеми та рішення
Як виявилося, установка дискового фільтра для очищення води виявилася зовсім не зайвою — через 3 тижні експлуатації фільтр виявився забитий настільки, що просто не пропускав воду у систему. Картинка нижче.

image
Незважаючи на те, що вода прозора, вона виявилася досить агресивною для стінок залізної бочки. Бочка почала іржавіти, і результат ви бачите нижче. Рішення виявилося простим — беремо і фарбуємо бочку зсередини в два шари міцною емаллю.

image
Але це ще не все — як виявилося, бочка з водою є дуже привабливою для різного роду водоростей, і вони охоче селяться в ній. В моєму випадку вийшла навіть ось така невелика екосистема — картинка нижче.

image
Рішення теж просте — як відомо, для розвитку водоростей необхідний сонячне світло. Просто накриваємо бочку непрозорим матеріалом. Мені не вдалося повністю припинити доступ світла, і тому раз на місяць необхідна профілактична промивка ємності.

Але рішення однієї проблеми викликає появу іншого — на накрывающем покритті став збиратися конденсат. І якщо б не виконання IP67 сенсора, то дуже швидко блок прийшов би в непридатність. До речі, незважаючи на гадану ніжність конструкції, ультразвуковий датчик показав себе дуже позитивно. Але довелося його доопрацювати — поставити кільцевої відбивач для того, щоб компенсувати помилкові ехо — сигнали на окремих дистанціях. Мабуть, ехо-сигнали з'являються в результаті відображення пачки звукових імпульсів від стінок бочки. У моєму випадку ця дистанція склала 230-250 мм

Висновок: подальший шлях
Як я згадав вище, злива пізньої осені припинив тестування — різкий хлопок ознаменував собою вихід з ладу термінального з'єднувача живлення 220 В. та і настав той час року, коли відпала необхідність в самому пристрої.

Аналізуючи отриманий матеріал, я прийшов до несподіваного висновку — немає необхідності в приладі в такому вигляді. Якщо доопрацювати сам сенсор, і дати йому доступ до стандартних протоколів обміну типу modbus rtu — то можна буде управляти прямо з програми контролера, не використовуючи ніяких проміжних ланок. Я також розглядав варіант використання шини 1-wire — але передачу 4-х 16 розрядних величин краще робити на більш швидкісному варіанті протоколу обміну.

На закінчення хочу сказати, що якщо ця публікація викличе інтерес, то я з задоволенням продовжу серію публікацій про проекти, які зібрані мною з паяльником і програматором в руках.
Джерело: Хабрахабр

0 коментарів

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