Етап 12: прошивка і принципи управління
Прошивка для модуля Imp написана в интерпретируемом мовою під назвою Squirrel. Мова схожий на JavaScript, тому якщо ви знаєте С ++ або JavaScript, то синтаксис до нього підібрати легко. Це об'єктно-орієнтована мова, так що в ньому є можливість реалізувати инкапсуляцию.
У Squirrel інтегроване середовище розробки IDE - повністю сумісна з браузером. Це чудово, тому що вам не потрібно встановлювати набір прикладних програм, а також можна отримати доступ до свого коду з будь-якого браузера. Проте, наявний редактор дуже простий, старої версії з помилками - доведеться щоразу прописувати свій код підтвердження, замість доступу по контрольній точці, наприклад. Для тих, хто виріс з редактором DOS і примітивних компіляторах, це буде знайоме точно. Але, в цілому система працює добре, і дає можливість отримати доступ до свого коду з будь-якого місця.
Одна з труднощів, яку довелося подолати, була передача послідовних імпульсів для крокових двигунів через розширювач IO Expander від модуля Imp. Запуск з близької відстані забезпечує дуже стабільну і гладку роботу, але якщо доступ до кроковим двигунів здійснюється з далека, з затримкою в кілька секунд, то блок Imp не в змозі обробити стеки з інтернету протягом короткого часу, і відбувається збій - про що видається попередження на веб-сайті. Так що, це не вина Electric Imp, ви повинні просто знати про це, перш ніж намагатися міняти частоту імпульсів крокових двигунів.
Довелося у Imp використовувати функцію сну, яка неточна для відключення пристрою, але все ж дозволяє згенерувати потрібну кількість імпульсів, за які двигун провернеться на потрібне число обертів - при відчутному тремтінні, яке робить двигуни на деякий час гучними. В цьому є невелике обмеження застосування функції сну блоку Imp.
Управління здійснюється шляхом обчислення азимута і кута піднесення сонця з урахуванням часу доби. Алгоритм управління був перенесений і в C ++, реалізація якого доступна тут: //www.psa.es/sdg/sunpos.htm
Алгоритм обчислення положення сонця є базовим, але буде досить складним для обивателів, яким є сам автор саморобки, тому вставте URL-адресу та скачайте готовий код.
Після того, як розрахунок положення сонця для даної хвилини завершено, перевіряється по гіроскопа і компасу положення сонячних батарей, потім розраховуються відхилення між необхідними кутами азимута, піднесення і дійсним станом панелей. Величини цих зсувів використовуються в якості керуючих імпульсів кроковим двигунів для виправлення наявного відхилення.
Заміри азимута, піднесення здійснюється платою визначення положення LSM303. Цей пристрій складається з 3-осьового акселерометра і магнітометри в одному корпусі. Реалізовано як компас з компенсацією нахилу. Плата кріпиться безпосередньо до монтажній рамі сонячних батарей. Для зняття інформації про повороті і нахилі панелей, магнітний компас повинен бути налаштований з компенсацією нахилу. Алгоритм для цього є в інструкції ST Application, яку ви можете скачати в Прикріплених файлах в кінці статті.
Алгоритм з інструкції добре працює для кутів нахилу 45 і нижче, тому плата була прикручена до площини панелі під кутом приблизно 45 градусів. Так що, коли панель перебувати в екстремальних позиціях 90 і 0, акселерометр вимірює прийнятному діапазоні в +/- 45 градусів.
Як відомо, потужність, що віддається фотоелектричним елементом, змінюється в залежності від косинуса кута падіння сонячних променів. Ми можемо допустити розумне відхилення ідеального положення по азимуту і зеніту від фактичних кутів повороту сонячних панелей. Наприклад, при відхиленні в 5 ° від ідеального азимута, віддається непогана потужність в 99,6% від максимуму. З огляду на, що компас з компенсацією нахилу має точність лише до 2 градусів, то важливо зрозуміти неможливість ідеального наведення сонячних батарей.
Можна значно знизити енергоспоживання схеми стеження, залишивши мікроконтролер і приводні двигуни в сплячому режимі на тривалий час. З огляду на, що сонце змінює своє положення по азимуту на 15 градусів кожну годину, досить панелі повертати на 5 градусів кожні 12 хвилин, з урахуванням неточності магнітного компаса в 2 градуси плюс поправка 3 градуси на рух сонця.
Прикріплені файли: ЗАВАНТАЖИТИ
Автор: Віталій Петрович. Україна, Лисичанськ.