Этап 12: прошивка и принципы управления
Прошивка для модуля Imp написана в интерпретируемом языке под названием Squirrel. Язык похож на JavaScript, поэтому если вы знаете С++ или JavaScript, то синтаксис к нему подобрать легко. Это объектно-ориентированный язык, так что в нём имеется возможность реализовать инкапсуляцию.
У Squirrel интегрированная среда разработки IDE — полностью совместима с браузером. Это замечательно, потому что вам не нужно устанавливать набор прикладных программ, а также можно получить доступ к своему коду из любого браузера. Тем не менее, имеющийся редактор очень простой, старой версии с ошибками — придется всякий раз прописывать свой код подтверждения, вместо доступа по контрольной точке, например. Для тех, кто вырос с редактором DOS и примитивных компиляторах, это будет знакомо точно. Но, в целом система работает хорошо, и дает возможность получить доступ к своему коду из любого места.
Одна из трудностей, которую пришлось преодолеть, была передача последовательных импульсов для шаговых двигателей через расширитель IO Expander от модуля Imp. Запуск с близкого расстояния обеспечивает очень стабильную и гладкую работу, но если доступ к шаговым двигателям осуществляется из далека, с задержкой в несколько секунд, то блок Imp не в состоянии обработать стеки из интернета в течение короткого времени, и происходит сбой — о чём выдаётся предупреждение на веб-сайте. Так что, это не вина Electric Imp, вы должны просто знать об этом, прежде чем пытаться менять частоту импульсов шаговых двигателей.
Пришлось у Imp использовать функцию сна, которая неточна для отключения устройства, но всё же позволяет сгенерировать нужное количество импульсов, за которые двигатель провернется на нужное число оборотов — при ощутимом дрожании, которое делает двигатели на некоторое время шумными. В этом есть небольшое ограничение применения функции сна блока Imp.
Управление осуществляется путем вычисления азимута и угла возвышения солнца с учетом времени суток. Алгоритм управления был перенесен и в C++, реализация которого доступна здесь: http://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 градуса на движение солнца.
Прикрепленные файлы: СКАЧАТЬ
Встречаются индивидуально на своей территории класса люкс, проститутки в Оренбурге, ели хочешь шикарно отдохнуть - feiorenburg.ru. Перед вами предстанут лучшие девушки интимной жизни города. Очаровательные проститутки в Оренбурге, желанные и восхитительные, они такие модельные и молоденькие, что у любого появится желание. Выбери девушку сейчас.
Автор: Виталий Петрович. Украина, Лисичанск.