Солнечный трекер на ардуино. Двухосевой солнечный трекер на Arduino
Для начала, наверное, стоит рассказать, что в этой статье понимается под солнечным трекером. Коротко говоря, устройство представляет собой подвижную подставку под солнечную панель, нужную, чтобы в условиях наших умеренных широт панель собирала достаточное количество света, меняя своё положение вслед за солнцем.
В данном случае прототип солнечного трекера собирался на базе Arduino. Для вращения платформы в горизонтальной и вертикальной оси используются сервоприводы, угол поворота которых зависит от мощности падающего на фоторезисторы света. В качестве корпуса используется всеми любимый советский металлический конструктор.
Нелишним будет упомянуть, что всё это делалось как курсовой проект, поэтому я не стал заниматься приобретением и креплением собственно, самой солнечной панели и аккумулятора, так как их наличие не имеет отношения к работе трекера. В оправдание могу сказать, что возможности советского металлического конструктора необъятны, так что прикрутить к нему небольшую солнечную панель для зарядки телефона не составит особенного труда, если возникнет такое желание.
Итак, что использовалось при сборке:
- Arduino MEGA 2560 R3
- Сервопривод Tower SG90 - 2x
- Фоторезистор MLG4416 (90mW; 5-10kOhm/1.0MOhm) - 4x
- Звонок пьезоэлектрический KPR-G1750
- Металлический конструктор
- Резистор выводной 10 kOhm; 0,25W; 5% - 4x
- Печатная макетная плата, корпус, шнуры для соединения
Внезапно оказавшийся в списке спикер потребовался для пущего эффекта высокотехнологичности. Дело в том, что сервоприводы могут поворачиваться только на 180 градусов, да большего нам и не требуется, при учёте того, что следим мы за солнцем. Но при тестировании работы проекта, когда за солнцем в две минуты демонстрации особо не последишь, оказалось, что неплохо было бы сигнализировать, в какой момент стоит перестать размахивать фонариком, потому что сервопривод достиг мёртвой зоны. Для этого и был добавлен вышеупомянутый звонок.
Итак, начнём собирать трекер. Для начала разделим предстоящий фронт работ на условные четыре этапа: сборка подставки для солнечных панелей и крепление сервоприводов, крепление к собранной конструкции светочувствительных элементов, пайка и написание кода для Arduino.
Фигура первая: конструкторская
Путём интенсивного поиска была найдена парочка примеров конструкции подобных устройств. Наибольшего внимания удостоились два:- www.youtube.com/watch?v=SvKp3V9NHZY – победитель в номинации «Подача материала» проиграл в надёжности и практичности устройства: конструкция представляет собой соединение двух сервоприводов напрямую.
- www.instructables.com/id/Simple-Dual-Axis-Solar-Tracker - собственно, отсюда и была взята основная идея моей конструкции, за исключением материала и общего внешнего вида поворотного корпуса.
Фигура вторая: схемотехническая
Главной задачей крепления фоторезисторов было даже не их подключение, а обеспечение разделения света для каждого из четырёх элементов. Понятно, что оставить их без каких-нибудь перегородок было нельзя, так как тогда значения, получаемые с фоторезисторов, были бы примерно одинаковы и поворота бы не получилось. Тут, к сожалению, возможности металлического конструктора подвели, главным образом из-за наличия во всех деталях отверстий. Найти подходящей металлической детали не получилось, поэтому мой солнечный трекер обзавёлся инновационной перегородкой из картона. Несмотря на достаточно убогонький вид, своё предназначение она выполняет отлично.Фоторезисторы к корпусу прикреплены вполне надёжно, единственное, с чем стоило бы поработать – это с аккуратностью их расположения на платформе: сейчас они смотрят вверх недостаточно перпендикулярно, что может расстраивать перфекционистов и слегка портить точность поворота.
Немного схемотехники: подключение светочувствительных элементов осуществляется по схеме делителя напряжения, для чего потребовались указанные в списке элементов выводные резисторы. Все фоторезисторы припаяны к общему контакту, подключенному к пятивольтному выходу питания Arduino. Для удобства и эстетики ноги фоторезисторов припаяны к контактам двух трёхжильных изолированных проводов (один контакт остался неиспользуемым и спрятан). Все схемотехнические детали можно рассмотреть на схеме ниже.
Фигура третья: паяльная
Что-либо подробно описывать тут не несёт особого смысла, поэтому просто прилагаю фото используемых материалов и полученную в результате макетную плату.Фигура четвёртая: с новым кодом!
Общий алгоритм работы заключается в обработке данных с фоторезисторов при помощи АЦП. Имеем 4 элемента, то есть 4 показания, находим среднее показание по левой стороне ((верхний левый + нижний левый) / 2), аналогично по правой, верхней и нижней сторонам. Если разница по модулю между левой и правой стороной больше порога, то осуществляем поворот в сторону с большим средним значением. Аналогично для верха и низа. Особые плюшки в коде: можно задавать вручную чувствительность срабатывания и максимальный и минимальный угол в двух плоскостях. Листинг рабочего кода приведён ниже.Код
#include
Результат работы
Заключение – что бы я сейчас изменил в проекте
- Усовершенствование алгоритма работы: зависимость градуса поворота от разницы значений, получаемых с фоторезисторов, то есть поворот сразу на несколько градусов.
- Идеально перпендикулярное крепление фоторезисторов к платформе.
- Bluetooth для отсутствия проводов – конечно, идея неплоха, но потребует значительной доработки конструкции и приобретения второй ардуины.
- Использование сервоприводов с металлическими шестернями (надёжность и более уверенные повороты не помешают, особенно если таки добавить к конструкции солнечную панель и использовать её по назначению).
Для начала, наверное, стоит рассказать, что в этой статье понимается под солнечным трекером. Коротко говоря, устройство представляет собой подвижную подставку под солнечную панель, нужную, чтобы в условиях наших умеренных широт панель собирала достаточное количество света, меняя своё положение вслед за солнцем.
В данном случае прототип солнечного трекера собирался на базе Arduino. Для вращения платформы в горизонтальной и вертикальной оси используются сервоприводы, угол поворота которых зависит от мощности падающего на фоторезисторы света. В качестве корпуса используется всеми любимый советский металлический конструктор.
Нелишним будет упомянуть, что всё это делалось как курсовой проект, поэтому я не стал заниматься приобретением и креплением собственно, самой солнечной панели и аккумулятора, так как их наличие не имеет отношения к работе трекера. В оправдание могу сказать, что возможности советского металлического конструктора необъятны, так что прикрутить к нему небольшую солнечную панель для зарядки телефона не составит особенного труда, если возникнет такое желание.
Итак, что использовалось при сборке:
- Arduino MEGA 2560 R3
- Сервопривод Tower SG90 - 2x
- Фоторезистор MLG4416 (90mW; 5-10kOhm/1.0MOhm) - 4x
- Звонок пьезоэлектрический KPR-G1750
- Металлический конструктор
- Резистор выводной 10 kOhm; 0,25W; 5% - 4x
- Печатная макетная плата, корпус, шнуры для соединения
Внезапно оказавшийся в списке спикер потребовался для пущего эффекта высокотехнологичности. Дело в том, что сервоприводы могут поворачиваться только на 180 градусов, да большего нам и не требуется, при учёте того, что следим мы за солнцем. Но при тестировании работы проекта, когда за солнцем в две минуты демонстрации особо не последишь, оказалось, что неплохо было бы сигнализировать, в какой момент стоит перестать размахивать фонариком, потому что сервопривод достиг мёртвой зоны. Для этого и был добавлен вышеупомянутый звонок.
Итак, начнём собирать трекер. Для начала разделим предстоящий фронт работ на условные четыре этапа: сборка подставки для солнечных панелей и крепление сервоприводов, крепление к собранной конструкции светочувствительных элементов, пайка и написание кода для Arduino.
Фигура первая: конструкторская
Путём интенсивного поиска была найдена парочка примеров конструкции подобных устройств. Наибольшего внимания удостоились два:- www.youtube.com/watch?v=SvKp3V9NHZY – победитель в номинации «Подача материала» проиграл в надёжности и практичности устройства: конструкция представляет собой соединение двух сервоприводов напрямую.
- www.instructables.com/id/Simple-Dual-Axis-Solar-Tracker - собственно, отсюда и была взята основная идея моей конструкции, за исключением материала и общего внешнего вида поворотного корпуса.
Фигура вторая: схемотехническая
Главной задачей крепления фоторезисторов было даже не их подключение, а обеспечение разделения света для каждого из четырёх элементов. Понятно, что оставить их без каких-нибудь перегородок было нельзя, так как тогда значения, получаемые с фоторезисторов, были бы примерно одинаковы и поворота бы не получилось. Тут, к сожалению, возможности металлического конструктора подвели, главным образом из-за наличия во всех деталях отверстий. Найти подходящей металлической детали не получилось, поэтому мой солнечный трекер обзавёлся инновационной перегородкой из картона. Несмотря на достаточно убогонький вид, своё предназначение она выполняет отлично.Фоторезисторы к корпусу прикреплены вполне надёжно, единственное, с чем стоило бы поработать – это с аккуратностью их расположения на платформе: сейчас они смотрят вверх недостаточно перпендикулярно, что может расстраивать перфекционистов и слегка портить точность поворота.
Немного схемотехники: подключение светочувствительных элементов осуществляется по схеме делителя напряжения, для чего потребовались указанные в списке элементов выводные резисторы. Все фоторезисторы припаяны к общему контакту, подключенному к пятивольтному выходу питания Arduino. Для удобства и эстетики ноги фоторезисторов припаяны к контактам двух трёхжильных изолированных проводов (один контакт остался неиспользуемым и спрятан). Все схемотехнические детали можно рассмотреть на схеме ниже.
Фигура третья: паяльная
Что-либо подробно описывать тут не несёт особого смысла, поэтому просто прилагаю фото используемых материалов и полученную в результате макетную плату.Фигура четвёртая: с новым кодом!
Общий алгоритм работы заключается в обработке данных с фоторезисторов при помощи АЦП. Имеем 4 элемента, то есть 4 показания, находим среднее показание по левой стороне ((верхний левый + нижний левый) / 2), аналогично по правой, верхней и нижней сторонам. Если разница по модулю между левой и правой стороной больше порога, то осуществляем поворот в сторону с большим средним значением. Аналогично для верха и низа. Особые плюшки в коде: можно задавать вручную чувствительность срабатывания и максимальный и минимальный угол в двух плоскостях. Листинг рабочего кода приведён ниже.Код
#include
Результат работы
Заключение – что бы я сейчас изменил в проекте
- Усовершенствование алгоритма работы: зависимость градуса поворота от разницы значений, получаемых с фоторезисторов, то есть поворот сразу на несколько градусов.
- Идеально перпендикулярное крепление фоторезисторов к платформе.
- Bluetooth для отсутствия проводов – конечно, идея неплоха, но потребует значительной доработки конструкции и приобретения второй ардуины.
- Использование сервоприводов с металлическими шестернями (надёжность и более уверенные повороты не помешают, особенно если таки добавить к конструкции солнечную панель и использовать её по назначению).
Вы можете помочь и перевести немного средств на развитие сайта