Yesterday, Bits & Pieces took a closer look at an Instructable that described how to automate smart window blinds with an Arduino Fio. Today, we’re going to be covering a solar-tracking automatic motorized window blind project powered by an Atmel-based Arduino Uno (ATmega328 MCU).
“Sunlight can be broken into essentially two components: direct and diffuse. The direct component comes straight from the sun, whereas the diffuse component is created when a portion of direct sunlight scatters due to molecules in the atmosphere,” project creator Nickzibin explained in a recent Instructables post.
“This project aims to control shade position to always block direct sunlight when present and maximize the diffuse component entering the workspace.”
As such, the motor moves the shade position depending on the of the location of the sun and the amount of light hitting a specific (targeted area). One of the best parts of this Instructable? Makers don’t need to purchase a brand new roller shade to make it work.
Aside from the Atmel-powered Arduino board, key project specs include:
- Adafruit motor shield
- Digital luminosity sensor
Stepper motor with planetary gear box
- Power supply (12V)
3D printed gear via shapeways.com
- Parametric CAD file of ball-chain gear
Perhaps the most important part of Nickzibin’s retrofitted solar-tracking blinds project is the control strategy algorithm based on the Tzempelikos method, where the shade height is controlled based on the calculated position of the sun and corresponding brightness.
“Their algorithm was based on open loop procedures which moved shade height to the position where it just blocks direct sunlight from falling on the workplane. The code in this project adopted their open loop aspects and added closed loop control during certain conditions,” said Nickzibin.
“The position of the sun is known in terms of its solar altitude (α) and solar surface azimuth (γ). The solar altitude is the angle between the horizon and the sun. The solar surface azimuth is the angle between the outward normal of a surface (e.g., vertical window) and the sun.”
More specifically, Nickzibin’s code calculated α and γ based on latitude, longitude altitude and angle from south to outward normal of vertical surface (azimuth) – all based on the following variables:
- The sun is on the window surface: α > 0° & |γ| < 90°
- The sun is not on the window surface: α > 0° & γ > 90°
- The sun is below the horizontal α < 0°
“Developing prototypes using Arduino specific to building technology has [significant] potential to substantially reduce energy use in buildings,” Nickzibin added.
“This project can be easily integrated with a lighting system. In the future, the system could also be integrated with an HVAC system in order to minimize cooling and heating loads.”
Interested in learning more? You can check out Nickzibin’s official project page here.