Patent Description:
Architectural opening covering assemblies such as roller blinds provide shading and privacy. Such assemblies generally include a motorized roller tube connected to covering fabric or other shading material. As the roller tube rotates, the fabric winds or unwinds around the tube to uncover or cover an architectural opening. <CIT> describes a system for synchronizing movement of roller shades each from a first position to a common second position. The system includes a master controller, a plurality of optical assemblies each configured to obtain information related to the position of one of the roller shades, and a plurality of motor assemblies. Each of the motor assemblies is configured for receiving the position information from one of the plurality of optical assemblies, receiving a master shade movement time from the master controller, and moving one of the of roller shades from the first position to the common second position in response to the received position information so that the roller shade arrives at the common second position simultaneously with the other roller shades in a time equal to the master shade movement time. <CIT> describes calibration of a motorized roller shade by calculating a radius of a roller tube and thickness of a shade fabric rotatably supported by the roller tube. First, a lower edge of the shade fabric is moved to a first position at a first linear distance from a predetermined position. Second, a first number of revolutions of the roller tube between the first position and the predetermined position is determined. Next, the lower edge of the shade fabric is moved to a second position at a second linear distance from the predetermined position and a second number of revolutions between the second position and the predetermined position is determined. Finally, the tube radius and the fabric thickness are calculated from the first and second linear distances and the first and second numbers of revolutions. The tube radius and the fabric thickness are used to control the linear speed of the lower edge of the shade fabric. <CIT> describes a system and device for insuring the integrity of an automatic garage door having a sensor to determine the status of the door with respect to a predetermined position and a programable actuator which provides a positive signal for automatically activating a warning or alert system when the door is in predetermined position when the programmable actuator is activated and the sensor indicates that the door is at other than the predetermined position. Preferably the programmable actuator is a timer and the predetermined position is closed. The timer can be remotely programmable. The actuator can also be triggered by a sensor of an event such as darkness. Remote means are provided for manually activating the door to return to the desired position by an RF frequency transmitter. According to the present invention, there is provided a method and an apparatus as defined in the appended claims.

Methods and apparatus to control an architectural opening covering assembly are disclosed herein. An example method disclosed herein includes determining, via a processor, a position of a covering of an architectural opening covering assembly, and determining a speed at which the covering is to move via a motor based on the position and a period of time. The example method also includes operating the motor to move the covering at the speed.

An example tangible computer readable storage medium disclosed herein includes instructions that, when executed, cause a machine to at least determine a distance between a portion of a covering of an architectural opening covering assembly from a reference position and determine a speed at which the covering is to move via a motor based on the distance and a period of time. The example instructions also cause the machine to at least operate the motor to move the portion of the covering at the speed.

An example apparatus disclosed herein includes a motor operatively coupled to a rotary component of an architectural opening covering assembly. The example rotary component is operatively coupled to an architectural opening covering. The example apparatus also includes a sensor to determine an angular position of the rotary component. The example apparatus further includes a controller to determine a speed at which the motor is to rotate the rotary component based on the angular position of the rotary component and a period of time. The architectural opening covering is to raise or lower when the motor rotates the rotary component.

An example controller of an architectural opening covering assembly is disclosed herein. The example architectural opening covering assembly includes a motor to rotate a rotary component of the architectural opening covering assembly operatively coupled to a covering. The example controller includes a motor controller to control the motor. The example controller also includes a angular position determiner to determine an angular position of the rotary component. The example controller further includes a rotational speed determiner to determine a speed at which the motor is to rotate the rotary component based on a period of time and the angular position of the rotary component relative to a reference position.

Example architectural opening covering assemblies disclosed herein are controlled by one or more controllers. In some examples, a controller is communicatively coupled to a motor, which rotates a rotary component of the architectural opening covering assembly such as, for example, a tube, an output shaft of a motor, a lead screw, a wheel and/or any other component that rotates to raise or lower a covering. The example controllers disclosed herein control speeds at which the coverings move via the motors based on visual appearances of the architectural opening covering assemblies during a speed setting mode. Example controllers disclosed herein enable the speeds at which the coverings are moved via the motors (e.g., rotational speeds at which motors rotate tubes to wind or unwind the coverings) to be established (e.g., determined and/or set) based on a position of the covering relative to a reference position (e.g., a fully unwound position of the covering, a lower limit position of the covering, an upper limit position of the covering, etc.). When some example controllers disclosed herein are in the speed setting mode, the positions of the coverings may be individually adjusted via input devices to desired positions (e.g., speed setting positions). For example, the position of the covering may be adjusted by control of the motor, operation of manual controls such as pull cords, physically positioning the covering by raising or pulling on the covering, and so forth. Based on the desired positions of the coverings, the controllers determine and/or set the speeds at which the motors are to move the coverings.

For example, if each of the coverings are moved to substantially the same position (e.g., a given distance from the fully unwound positions of the coverings), the controllers establish substantially the same speed at which the coverings are to move during operation (e.g., even if, for example, the tubes on which the coverings are wound are different sizes). In this manner, a plurality of example architectural opening covering assemblies disclosed herein may be coordinated to move their coverings in unison. In some examples, if the positions of the coverings are moved to different positions, the controllers establish different speeds at which the motors are to move the rotary component (e.g., tubes, lead screws, shafts, wheels, and/or additional and/or alternative rotary components) and, thus, the coverings during operation. For example, if a first covering is moved to a first position that is three times as far from a reference position as a second position of a second covering, the motor operatively coupled to the first covering may move the first covering three times faster than a motor operatively coupled to the second covering.

<FIG> is an isometric illustration of an example architectural opening covering assembly <NUM> in accordance with the teachings of this disclosure. The example architectural opening covering assembly <NUM> of <FIG> is merely an example and, thus, other architectural opening covering assemblies may be used to implement the example methods and/or apparatus disclosed herein. For example, the architectural opening covering assemblies described in the following applications may be used: <CIT>; <CIT>; <CIT>; and U. In the example of <FIG>, the covering assembly <NUM> includes a headrail <NUM>. The headrail <NUM> is a housing having opposed end caps <NUM>, <NUM> joined by front <NUM>, back <NUM> and top sides <NUM> to form an open bottom enclosure. The headrail <NUM> also has mounts <NUM> for coupling the headrail <NUM> to a structure above or behind an architectural opening such as a wall via mechanical fasteners such as screws, bolts, etc. A roller tube <NUM> is disposed between the end caps <NUM>, <NUM>. Although a particular example of a headrail <NUM> is shown in <FIG>, many different types and styles of headrails exist and could be employed in place of the example headrail <NUM> of <FIG>. Indeed, if the aesthetic effect of the headrail <NUM> is not desired, it can be eliminated in favor of mounting brackets.

In the example illustrated in <FIG>, the architectural opening covering assembly <NUM> includes a covering <NUM>, which is a cellular type of shade. In this example, the covering <NUM> includes a unitary flexible fabric (referred to herein as a "backplane") <NUM> and a plurality of cell sheets <NUM> that are secured to the backplane <NUM> to form a series of cells. The cell sheets <NUM> may be secured to the backplane <NUM> using any desired fastening approach such as adhesive attachment, sonic welding, weaving, stitching, etc. The covering <NUM> shown in <FIG> can be replaced by any other type of covering including, for instance, single sheet shades, blinds (e.g., Venetian blinds), other cellular coverings, sheers, honeycombs, shutters, and/or any other type of covering. In the illustrated example, the covering <NUM> has an upper edge mounted to the roller tube <NUM> and a lower, free edge. The upper edge of the example covering <NUM> is coupled to the roller tube <NUM> via a chemical fastener (e.g., glue) and/or one or more mechanical fasteners (e.g., rivets, tape, staples, tacks, etc.). The covering <NUM> is movable between a raised position and a lowered position (illustratively, the position shown in <FIG>). When in the raised position, the covering <NUM> is wound about the roller tube <NUM>. In some examples, the architectural opening covering assembly <NUM> is implemented without the tube <NUM>. For example, the covering <NUM> may be coupled to a rotary component such as, for example, a lead screw, a wheel, a shaft, and/or additional and/or alternative rotary components employed to raise and/or lower the covering <NUM>. In some such examples, the rotary component(s) raise and/or lower the covering <NUM> by releasing and/or retracting one or more strings and/or cables coupled to the covering <NUM>.

The example architectural opening covering assembly <NUM> is provided with a motor <NUM> to move the covering <NUM> between the raised and lowered positions. The example motor <NUM> is controlled by a controller <NUM>. In the illustrated example, the controller <NUM> and the motor <NUM> are disposed inside the tube <NUM> and communicatively coupled via a wire <NUM>. Alternatively, the controller <NUM> and/or the motor <NUM> may be disposed outside of the tube <NUM> (e.g., mounted to the headrail <NUM>, mounted to the mounts <NUM>, located in a central facility location, etc.) and/or communicatively coupled via a wireless communication channel. As described in greater detail below, the example controller <NUM> controls speeds at which the covering <NUM> moves relative to an architectural opening.

The example architectural opening covering assembly <NUM> of <FIG> includes a tube angular position sensor <NUM> communicatively coupled to the controller <NUM>. In the illustrated example, the tube angular position sensor <NUM> is a gravitational sensor (e.g., an accelerometer, the gravitational sensor made by Kionix® as part number KXTC9-<NUM>, etc.). In other examples, the tube angular position sensor may include one or more other types of sensors (e.g., a potentiometer, a Hall Effect type sensor, a resolver, a rotary encoder employing, for example, light, a magnet, and/or any other type of angular position sensor). The example tube angular position sensor <NUM> of <FIG> is coupled to the tube <NUM> via a mount <NUM> to rotate with the tube <NUM>. In some examples, the tube angular position sensor <NUM> is coupled to one or more additional and/or alternative rotary components of the example architectural opening covering assembly <NUM> such as, for example, a shaft of the motor <NUM>. In the illustrated example, the tube angular position sensor <NUM> is disposed inside the tube <NUM> along an axis of rotation <NUM> of the tube <NUM> such that an axis of rotation of the tube angular position sensor <NUM> is substantially coaxial to the axis of rotation <NUM> of the tube <NUM>. In the illustrated example, a central axis of the tube <NUM> is substantially coaxial to the axis of rotation <NUM> of the tube <NUM>, and a center of the tube angular position sensor <NUM> is on (e.g., substantially coincident with) the axis of rotation <NUM> of the tube <NUM>. In other examples, the tube angular position sensor <NUM> is disposed in other locations such as, for example, on an interior surface <NUM> of the tube <NUM>, on an exterior surface <NUM> of the tube <NUM>, on an end <NUM> of the tube <NUM>, on the covering <NUM>, and/or any other suitable location. The example tube angular position sensor <NUM> generates tube position information, which is used by the controller <NUM> to determine an angular position of the tube <NUM> and/or monitor movement of the tube <NUM> and, thus, the covering <NUM>. In some examples, the tube position information includes values corresponding to a position of the covering <NUM>. In some examples, the controller <NUM> controls an angular position of the tube <NUM> and/or a speed of rotation of the tube <NUM> based on the tube position information.

In some examples in which the tube position sensor <NUM> is operatively coupled to a rotary component (e.g., a shaft, a lead screw, a wheel, and/or any other rotary component) other than the tube <NUM>, the tube angular position sensor <NUM> generates position information on the rotary component. In some such examples, the controller <NUM> determines an angular position of the rotary component and/or monitors movement of the covering <NUM> based on the position information generated by the tube position sensor <NUM>. In some such examples, the controller <NUM> controls an angular position of the rotary component and/or a speed of rotation of the rotary component by controlling the motor <NUM> based on the position information.

The architectural opening covering assembly <NUM> is operatively coupled to an input device <NUM>, which may be used to automatically and/or selectively move the covering <NUM> between the raised and lowered positions. The input device <NUM> sends a signal to the controller <NUM> to enter a programming mode (e.g., a speed setting mode) in which a speed of rotation of the tube <NUM> is determined, set and recorded. In some examples, one or more positions (e.g., a lower limit position, an upper limit position, a position between the lower limit position and the upper limit position, etc.) of the covering <NUM> are determined and/or recorded when the controller <NUM> enters the program mode. In the case of an electronic signal, the signal may be sent via a wired or wireless connection.

In some examples, the input device <NUM> is a mechanical input device such as, for example, a cord, a lever, a crank, and/or an actuator coupled to the motor <NUM> and/or the tube <NUM> to apply a force to rotate the tube <NUM>. In some examples, the input device <NUM> is implemented by the covering <NUM> and, thus, the input device <NUM> is eliminated (e.g., the covering <NUM> is lowered by pulling the covering <NUM> downward and the covering <NUM> is raised by lifting the covering <NUM>). In some examples, the input device <NUM> is an electronic input device such as, for example, a switch, a light sensor, a computer, a central controller, a smartphone, and/or any other device capable of providing instructions to the motor <NUM> and/or the controller <NUM> to raise or lower the covering <NUM>. In some examples, the input device <NUM> is a remote control, a smart phone, a laptop, and/or any other portable communication device, and the controller <NUM> includes a receiver to receive signals from the input device <NUM>. Some example architectural opening covering assemblies include other numbers of input devices (e.g., <NUM>, <NUM>, etc.).

In some examples, the input device <NUM> is disposed on the architectural opening covering assembly <NUM>. In other examples, the input device <NUM> is not disposed on the architectural opening covering assembly100 (e.g., the input device <NUM> is disposed in a control room of a building in which the architectural opening covering assembly <NUM> is employed) and is remotely communicatively coupled to the controller <NUM> via, for example, wires, a wireless transmitter, and/or other manner. The example architectural opening covering assembly <NUM> may include any number and combination of input devices.

A speed at which the covering <NUM> is raised and/or lowered via the motor <NUM> is determined, set and recorded (e.g., stored in a memory) during a speed setting mode (e.g., a programming or calibration mode). The example controller <NUM> of <FIG> enters the speed setting mode in response to a first command from the input device <NUM>. When the example controller <NUM> is in the speed setting mode, a user may move (e.g., raise or lower) the covering <NUM> to a desired position (e.g., a speed setting position) a given distance away from a reference position such as, for example, a fully unwound position, a lower limit position, an upper limit position, a previously stored position, and/or any other position. In some examples, the reference position is determined during the speed setting mode. In other examples, the reference position is previously determined and/or recorded during, for example, a programming mode described in <CIT>, International Application No.
<CIT>, and/or U. International Application No. <CIT>. In the illustrated example, the example controller <NUM> monitors the angular positions of the tube <NUM> based on the tube position information generated by the example tube angular position sensor <NUM> to determine the position of the covering <NUM> as the covering <NUM> is moved to the speed setting position.

In response to a second command from the input device <NUM>, the example controller <NUM> establishes (determines, sets and records) a speed at which the motor <NUM> is to rotate the tube <NUM> based on the speed setting position of the covering <NUM>. In some examples, the rotational speed of the tube <NUM> is determined by dividing a number of rotations of the tube <NUM> from the reference position to the speed setting position by a predetermined value. For example, the predetermined value may be an amount of time over which the covering <NUM> is to move the distance from the reference position to the speed setting position (e.g., ten seconds, twenty seconds, etc). For example, if the speed setting position is ten revolutions of the tube <NUM> away from the reference position and the predetermined amount of time is <NUM> seconds, the controller <NUM> determines, sets and/or stores the rotational speed at which the motor <NUM> is to rotate the tube <NUM> to be ten revolutions per fifteen seconds (i.e., <NUM> revolutions per minute). As a result, during operation of the example architectural opening covering assembly <NUM> of <FIG>, the example covering <NUM> raises and/or lowers at a speed corresponding to <NUM> revolutions of the tube <NUM> per minute.

<FIG> is a side, schematic view of a first architectural opening covering assembly <NUM> and a second architectural opening covering assembly <NUM> disclosed herein. The example architectural opening covering assembly <NUM> and/or the example architectural opening covering assembly <NUM> may be implemented using the example architectural opening covering of <FIG>. The example architectural opening covering assemblies <NUM>, <NUM> may be located in the same room or building, positioned along a wall, and/or any other locations. As described in greater detail below, the example first architectural opening covering assembly <NUM> and the example second architectural opening covering assembly <NUM> are different sizes but are otherwise substantially similar.

In the illustrated example, the architectural opening covering assemblies <NUM>, <NUM> of <FIG> each include the following: a covering <NUM>, <NUM> at least partially wound about a tube <NUM>, <NUM>; a motor <NUM>, <NUM> operatively coupled to the tube <NUM>, <NUM>; and a controller <NUM>, <NUM> to control the motor <NUM>, <NUM>. In some examples, the architectural opening covering assemblies <NUM>, <NUM> are implemented without the tubes <NUM>, <NUM>. For example, the architectural opening covering assemblies <NUM>, <NUM> may include coverings employing, for example, strings and shutters and/or slats. Thus, in some such examples, the coverings are raised and/or lowered via motors operatively coupled to one or more rotary components such as a shaft, a wheel, a lead screw and/or one or more additional and/or alternative rotary components that move (e.g., retract and/or release) one or more of the strings. In the illustrated example, the example coverings <NUM>, <NUM> each include an end rail <NUM>, <NUM> to provide stability to the example coverings <NUM>, <NUM>. The example architectural opening covering assemblies <NUM>, <NUM> are each supported by a frame <NUM>, <NUM> having a sill extending from the frame <NUM>, <NUM> into a path of the end rail <NUM>, <NUM>. For example, if the coverings <NUM>, <NUM> are lowered a given distance, the end rails <NUM>, <NUM> of the coverings <NUM>, <NUM> contact the sills <NUM>, <NUM>, respectively.

In the illustrated example, the sills <NUM>, <NUM> are at substantially similar heights relative to, for example, a floor. However, the example architectural opening covering assemblies <NUM>, <NUM> of <FIG> are different sizes. For example, in the illustrated example, a first radius <NUM> of the tube <NUM> of the first architectural opening covering assembly <NUM> is less than a second radius <NUM> of the tube <NUM> of the example second architectural opening covering assembly <NUM>. In some examples, an amount of the covering <NUM> wound around the tube <NUM> (e.g., a number of layers formed by the covering <NUM> wound around the tube <NUM>) and/or a thickness of the covering <NUM> (e.g., a sheet thickness) is different than an amount of the covering <NUM> wound around the tube <NUM> and/or a thickness of the covering <NUM>. Also, the example frames <NUM>, <NUM> support the example architectural opening covering assemblies <NUM>, <NUM> at different heights (e.g., axes of rotation of the first tube <NUM> and the second tube <NUM> are at different distances from the respective sills <NUM>, <NUM>). In other examples, the frames <NUM>, <NUM> and/or the architectural opening covering assemblies <NUM>, <NUM> are substantially the same size, supported at substantially the same height and/or the coverings <NUM>, <NUM> have substantially the same thickness.

The example architectural opening covering assemblies <NUM>, <NUM> include a local input device <NUM>, <NUM>. In the illustrated example, the local input devices <NUM>, <NUM> are substantially similar to the example input device <NUM> of <FIG>. Thus, the example local input devices <NUM>, <NUM> may be input devices operatively coupled to the tubes <NUM>, <NUM> and/or the motors <NUM>, <NUM> (e.g., a cord, crank, actuator, etc.) and/or input devices communicatively coupled to the controllers <NUM>, <NUM> and/or the motors <NUM>, <NUM> (e.g., a switch, a remote control, etc.), respectively, that enable a user to operate the respective architectural opening covering assemblies <NUM>, <NUM> (e.g., a user may raise and/or lower the covering <NUM> via the local input device <NUM>, and the user may raise or lower the covering <NUM> via the local input device <NUM>).

The example controllers <NUM>, <NUM> of <FIG> are substantially similar to and/or may be implemented using the example controller <NUM> of <FIG>. Thus, the example controllers <NUM>, <NUM> of <FIG> monitor angular positions of the tubes <NUM>, <NUM> via tube angular position sensors <NUM>, <NUM> (e.g., gravitational sensors and/or any other type of angular position sensors), determine positions of the coverings <NUM>, <NUM>, determine rotational speeds of the tubes <NUM>, <NUM>, etc. In the illustrated example, the example controllers <NUM>, <NUM> are communicatively coupled to a central input device <NUM> such as, for example an input device similar to or identical to the example input device <NUM> of <FIG>. In some examples, the central input device <NUM> is located remotely relative to the architectural opening covering assemblies <NUM>, <NUM> of <FIG>. For example, the central input device <NUM> may be located in a different room than one or both of the architectural opening covering assemblies <NUM>, <NUM>.

In the illustrated example, the controllers <NUM>, <NUM> receive a first command from the central input device <NUM> to enter a speed setting mode. In some examples, the first command is transmitted in response to a user action (e.g., pressing a button). In the illustrated example, the speeds at which the coverings <NUM>, <NUM> are to move during operation are independently established while each of the controllers <NUM>, <NUM> are in the speed setting mode. In some examples, a user may coordinate the speeds at which the coverings <NUM>, <NUM> are to move during operation based on visual appearances of the respective architectural opening covering assemblies <NUM>, <NUM> such as, for example, distances of the end rails <NUM>, <NUM> from the sills <NUM>, <NUM>, a distance between the end rail <NUM> and the end rail <NUM>, and/or other positions of the coverings <NUM>, <NUM>. For example, the coverings <NUM>, <NUM> may be horizontally aligned to establish substantially the same speed at which the coverings <NUM>, <NUM> are to move during operation or the coverings <NUM>, <NUM> may be spaced apart vertically to establish different speeds at which the coverings <NUM>, <NUM> are to move during operation.

In the illustrated example, the reference positions of the coverings <NUM>, <NUM> are lower limit positions. In other examples, the reference positions are other positions (e.g., upper limit positions, fully unwound positions, and/or any other positions). In the illustrated example, the lower limit positions and thus, the reference positions of the coverings <NUM>, <NUM> are positions of the coverings <NUM>, <NUM> at which the end rails <NUM>, <NUM> contact the sills <NUM>, <NUM>, respectively. Further, while the example coverings <NUM>, <NUM> of <FIG> have substantially the same reference position, in other examples the coverings <NUM>, <NUM> have different reference positions from each other. For example, the reference position utilized by the example controller <NUM> may be the lower limit position of the covering <NUM>, and the reference position utilized by the controller <NUM> may be the upper limit position of the covering <NUM>. In some examples, the reference positions are established during the speed setting mode. In other examples, the reference positions are previously established during a programming mode such as one or more of the programming modes described in <CIT>, International Application No. <CIT>, and/or U. International Application No. <CIT>.

While the example controllers <NUM>, <NUM> are in the speed setting mode, the coverings <NUM>, <NUM> may be moved to speed setting positions that are desired distances away from the reference positions. For example, the user may operate the local input devices <NUM>, <NUM> to move the coverings <NUM>, <NUM> relative to the reference positions. In some examples, the controllers <NUM>, <NUM> monitor movement and/or angular positions of the tubes <NUM>, <NUM>, respectively (e.g., relative to the reference position and/or other position(s)), in a manner similar or identical to the example controller <NUM> of <FIG> disclosed above and/or in a manner described in <CIT>, International Application No. <CIT>, and/or U. International Application No. <CIT>. In the illustrated example, the controllers <NUM>, <NUM> determine the speed setting positions based on the angular positions of the tubes <NUM>, <NUM> when the central input device <NUM> communicates a second command. The coverings <NUM>, <NUM> illustrated in <FIG> are in speed setting positions a first distance D1 away from the sills <NUM>, <NUM>, respectively. Thus, in the illustrated example, the speed setting positions of the coverings <NUM>, <NUM> are substantially the same distance away from the respective reference positions of the coverings <NUM>, <NUM>.

Once the example controllers <NUM>, <NUM> receive the second command from the example central input device <NUM> (e.g., in response to a user action), the controllers <NUM>, <NUM> establish the speeds at which the example coverings <NUM>, <NUM> are to be moved via the motors <NUM>, <NUM> during operation. In the illustrated example, the controllers <NUM>, <NUM> establish the speeds based on the speed setting positions of the coverings <NUM>, <NUM>. In the illustrated example, the controller <NUM> of the first architectural opening covering assembly <NUM> determines that the covering <NUM> is to move at a speed substantially equivalent to moving the first distance D1 in a predetermined amount of time (e.g., <NUM> seconds, <NUM> seconds, <NUM> seconds, etc.). Likewise, the controller <NUM> of the second architectural opening covering assembly <NUM> determines that the covering <NUM> is to move at a speed substantially equivalent to the first distance D1 in the predetermined amount of time. For example, if the predetermined amount of time is ten seconds and the first distance D1 is one foot, the controllers <NUM>, <NUM> determine that the coverings <NUM>, <NUM> are to be moved via the motors <NUM>, <NUM> (e.g., be raised or lowered by the motor <NUM>, <NUM>) at a speed of approximately one foot per ten seconds.

Although the same predetermined amount of time is used by the controller <NUM> of the first architectural opening covering assembly <NUM> and the controller <NUM> of the second architectural opening covering assembly <NUM> of <FIG> in the illustrated example, in other examples the first controller <NUM> and the second controller <NUM> use different predetermined amounts of time to determine the speeds at which the coverings <NUM>, <NUM>, respectively, are to move during operation. In some examples, the predetermined amounts of time are established during the example speed setting mode. In other examples, the controller <NUM> and/or the controller <NUM> utilizes one or more previously stored predetermined amounts of time.

In some examples, the controllers <NUM>, <NUM> determine the speeds based on a number of revolutions of the tubes <NUM>, <NUM> corresponding to the first distance D1. For example, if the controller <NUM> of the first architectural opening covering assembly <NUM> determines that the first distance D1 corresponds to one revolution of the tube <NUM> (e.g., the tube <NUM> in the speed setting position is one revolution away from the reference position), the controller <NUM> determines that a rotational speed at which the motor <NUM> is to rotate the tube <NUM> is one revolution per ten seconds. If the example controller <NUM> of the second architectural opening covering assembly <NUM> determines that the first distance D1 corresponds to <NUM> revolutions of the tube <NUM> (e.g., the tube <NUM> in the speed setting position is <NUM> revolutions away from the reference position), the controller <NUM> determines that a rotational speed at which the motor <NUM> is to rotate the tube <NUM> is <NUM> revolution per ten second. In some examples, the controllers <NUM>, <NUM> determine the speeds of the coverings <NUM>, <NUM> in other units of measurement (e.g., revolutions per minute, etc.).

Thus, by positioning the coverings <NUM>, <NUM> of the example architectural opening covering assemblies <NUM>, <NUM> of <FIG> to desired positions during the speed setting mode, the speeds at which the coverings <NUM>, <NUM> are to move during operation of the example architectural opening covering assemblies <NUM>, <NUM> are configured. In the illustrated example of <FIG>, by aligning the example rails <NUM>, <NUM> of the coverings <NUM>, <NUM> to the same height during the speed setting mode, the speeds at which the coverings <NUM>, <NUM> will move during operation will substantially match. More specifically, in the illustrated example, by moving the coverings <NUM>, <NUM> to the same speed setting positions during the speed setting mode, the motors <NUM>, <NUM> rotate the differently sized tubes <NUM>, <NUM> at different speeds to raise and lower the coverings <NUM>, <NUM> at substantially the same speed. As a result, the coverings <NUM>, <NUM> may move substantially in unison in response to a command from the central input device <NUM> to move the coverings <NUM>, <NUM> to a given position (e.g., an upper limit position, a lower limit position, an intermediate position, etc.). In this manner, the user may coordinate the speeds at which coverings of a plurality of architectural opening covering assemblies (e.g., located along a side of a building, in a room, etc.) raise and lower based on the visual appearance (e.g., covering positions) of the architectural opening covering assemblies.

<FIG> illustrates the example architectural opening covering assemblies <NUM>, <NUM> of <FIG> at different speed setting positions during the speed setting mode. In the illustrated example, the covering <NUM> of the first architectural opening covering assembly <NUM> is at a first speed setting position that is the first distance D1 from the reference position (e.g., the lower limit position). Thus, in response to a command from the central input device <NUM> to establish the speed at which the motor <NUM> is to move the covering <NUM> during operation, the controller <NUM> establishes the speed based on a number of rotations of the tube <NUM> to move the covering <NUM> the first distance D1 in a predetermined amount of time. In the illustrated example, if the predetermined amount of time is ten seconds and the covering <NUM> moves the first distance D1 in one revolution of the tube <NUM>, the example controller <NUM> determines that the speed at which the tube <NUM> is to rotate during operation of the example architectural opening covering assembly <NUM> is one revolution per ten seconds (i.e., six revolutions per minute).

The covering <NUM> of the example second architectural opening covering assembly <NUM> is raised (e.g., via the local input device <NUM>) to a second speed setting position that is a second distance D2 away from the reference position (e.g., the lower limit position). Thus, the example controller <NUM> establishes the speed at which the motor <NUM> is to move the covering <NUM> during operation based on a number of rotations of the tube <NUM> to move the covering <NUM> the second distance D2 (from the second speed setting position to the reference position) in a predetermined amount of time. In the illustrated example, if the predetermined amount of time is ten seconds and the second distance D2 corresponds to <NUM> revolutions of the tube <NUM>, the example controller <NUM> determines that the speed at which the tube <NUM> is to rotate via the motor <NUM> during operation of the example architectural opening covering assembly <NUM> is <NUM> revolutions per ten seconds (i.e., nine revolutions per minute).

By moving the example coverings <NUM>, <NUM> to different speed setting positions during the speed setting mode in the illustrated example of <FIG>, the speeds at which the coverings <NUM>, <NUM> move via the motors <NUM>, <NUM> are configured such that the speeds are different. More specifically, because the reference position utilized by the example controllers <NUM>, <NUM> are substantially at the same height (e.g., relative to a floor) in the illustrated example, a difference between the speeds at which the coverings <NUM>, <NUM> are determined to move is based on a distance between the speed setting positions (D1, D2) of the coverings <NUM>, <NUM>. For example, if the second distance D2 is twice the first distance D1, the covering <NUM> of the second example architectural opening covering assembly <NUM> moves twice as fast as the covering <NUM> of the first architectural opening covering assembly <NUM> during operation.

<FIG> is a block diagram of an example controller <NUM> disclosed herein, which implements the example controller <NUM> of <FIG>, the example controller <NUM> of <FIG> and/or the example controller <NUM> of <FIG>. In the illustrated example, the controller <NUM> includes an instruction processor <NUM>, a motor controller <NUM>, a tube rotational direction determiner <NUM>, a tube angular position determiner <NUM>, a covering position determiner <NUM>, a tube rotational speed determiner <NUM> and a memory <NUM>.

The example instruction processor <NUM> of <FIG> receives instructions or commands from a first input device <NUM> (e.g., the input device <NUM> of <FIG>, the local input device <NUM> of <FIG>, the local input device <NUM> of <FIG>, etc.) and/or a second input device <NUM> (e.g., the central input device <NUM> and/or any other input device). In some examples, a polarity of a voltage source (e.g., a power supply provided by the first input device <NUM> and/or the second input device <NUM>) is modulated (e.g., alternated) to communicate one or more instructions. The instructions may include a command to, for example lower a covering <NUM>, raise the covering <NUM>, enter the speed setting mode, move the covering <NUM> at a given speed, and/or other instructions. In some examples, the first input device <NUM> and/or the second input device <NUM> sends a signal (e.g., RF signals, network communications, etc.), which corresponds to a client action (e.g., raise the covering <NUM>, lower the covering, enter the speed setting mode, move the covering <NUM> at a given speed, etc.). The example instruction processor <NUM> determines which of a plurality of actions are instructed by the signal and/or communication transmitted from the first input device <NUM> and/or the second input device <NUM>. In some examples, the first input device <NUM> and/or the second input device <NUM> instructs the example instruction processor <NUM> to store a given position of a tube <NUM> (e.g., an angular position) as a reference position (e.g., a lower limit position, an upper limit position, a position between the upper limit position and the lower limit position, etc.) in the memory <NUM>. Although the example controller <NUM> of <FIG> is used in conjunction with an architectural opening covering assembly having the tube <NUM>, the example controller <NUM> may be used in conjunction with architectural opening covering assemblies that employ additional and/or alternative rotary components to raise or lower a covering such as, for example, a shaft, a wheel, a lead screw, and/or any other rotary component.

The example motor controller <NUM> of <FIG> controls a motor <NUM> (e.g., the example motor <NUM>, the example motor <NUM>, the example motor <NUM>, etc.). For example, the example motor controller <NUM> of <FIG> sends a signal to the motor <NUM> to cause the motor <NUM> to operate the covering <NUM> (e.g., rotate the tube <NUM> to raise or lower the covering <NUM>, prevent (e.g., brake, stop, etc.) rotation of the tube <NUM>, etc.). The example motor controller <NUM> also controls a speed at which the motor <NUM> rotates the tube <NUM> rotates during operation of an example architectural opening covering assembly (e.g., the example architectural opening covering assembly <NUM>, the example first architectural opening covering assembly <NUM> of <FIG>, the example second architectural opening covering assembly <NUM> of <FIG>, etc.). In some examples, the motor controller <NUM> controls the speed of rotation of the tube <NUM> via a speed controller such as, for example, a pulse width modulation speed controller, a brake, a voltage rectifier that supplies a voltage (e.g., power) to the motor <NUM> and/or any other component or device for operating the motor <NUM> and/or the tube <NUM>.

The example tube rotational direction determiner <NUM> of <FIG> determines a direction of rotation (e.g., clockwise or counterclockwise) of the tube <NUM>. In some examples, the tube rotational direction determiner <NUM> determines the direction of rotation of the tube <NUM> based on tube position information communicated by a tube angular position sensor <NUM> (e.g., the tube angular position sensor <NUM> of <FIG>, the example tube angular position sensor <NUM> of <FIG>, the example tube angular position sensor <NUM> of <FIG>, etc.). In some examples, the tube angular position sensor <NUM> of <FIG> is a gravitational sensor (e.g., an accelerometer, the gravitational sensor made by Kionix® as part number KXTC9-<NUM>, etc.). In other examples, the tube angular position sensor <NUM> may include one or more other types of sensors (e.g., a potentiometer, a Hall Effect type sensor, a resolver, rotary encoder employing, for example, light, a magnet, and/or any other type of angular position sensor). In some examples, the tube angular position sensor <NUM> outputs a plurality of values as the tube <NUM> rotates. In some examples, based on how those values are changing (e.g., increasing or decreasing, changing signs (e.g., positive to negative, negative to positive, etc.)), the tube rotational direction determiner <NUM> determines the direction of rotation of the tube <NUM>. In some examples, the tube rotational direction determiner <NUM> associates the direction of rotation of the tube <NUM> with raising or lowering the example covering <NUM>.

The example tube angular position determiner <NUM> determines an angular position of the tube <NUM> relative to a reference point, a reference position and/or a frame of reference (e.g., a gravitational field vector of Earth, an indicator (e.g., a marking, a light, a magnetic field, etc. on the tube <NUM> and/or other portion of the architectural opening covering assembly, a wall, an architectural opening frame (e.g., the example first frame <NUM> of <FIG>, the example second frame <NUM> of <FIG>, etc.), and/or any other structure). In some examples, the tube angular position determiner <NUM> determines the angular position of the tube <NUM> based on tube position information communicated by the tube angular position sensor <NUM> and/or the rotational direction of the tube <NUM> determined by the example tube rotational direction determiner <NUM>. In some examples, the tube angular position determiner <NUM> processes the tube position information (e.g., performs geometric calculations, converts a current signal to a voltage signal, etc.) to determine the angular position of the tube <NUM>.

The example covering position determiner <NUM> of <FIG> determines a position of the covering <NUM> relative to a reference position (e.g., a previously stored position, a lower limit position, an upper limit position, and/or any other reference position). In some examples, the covering position determiner <NUM> determines the position of the covering <NUM> based on an angular displacement (e.g., an amount of rotation) of the tube <NUM> from the reference position. In some examples, the covering position determiner <NUM> determines that a given position of the covering <NUM> is the reference position based on a command from the first input device <NUM> and/or the second input device <NUM>. For example, the first input device <NUM> and/or the second input device <NUM> communicates an instruction to the controller <NUM> to establish a reference position at a position of the covering <NUM> at a time when the instruction is received. In some examples, in response to the instruction, the covering position determiner <NUM> establishes the reference position and substantially continuously monitors subsequent positions of the covering <NUM> relative to the reference position. In some examples, the covering position determiner <NUM> determines the position of the covering <NUM> in units of degrees of rotation (e.g., <NUM> degrees, <NUM> degrees, etc.) of the tube <NUM> relative to the reference position, a number of rotations (e.g., <NUM>, <NUM>, <NUM>, <NUM>, etc.) of the tube <NUM> from the reference position and/or any other unit of measurement.

The example tube rotational speed determiner <NUM> of <FIG> determines a speed at which the example covering <NUM> is to move during operation of the example architectural opening covering assembly. In some examples, the example tube rotational speed determiner <NUM> determines the speed at which the example covering <NUM> is to move by determining a speed at which the motor controller <NUM> is to cause the motor <NUM> to rotate the tube <NUM>. In the illustrated example, the tube rotational speed determiner <NUM> determines the speed of rotation of the tube <NUM> based on a value (e.g., a number of rotations, a distance measurement, and/or any other value. ) corresponding to a position of the covering <NUM>.

In some examples, the tube rotational speed determiner <NUM> determines the speed of rotation of the tube <NUM> based on the position (e.g., a speed setting position) of the covering <NUM> relative to a reference position. In some examples, the first input device <NUM> and/or the second input device <NUM> communicates a command to the instruction processor <NUM> to establish (e.g., determine, set, adjust and/or change) the speed of rotation of the tube <NUM> based on the position of the covering <NUM> relative to the reference position at a given time. Based on the distance between the position of the covering <NUM> and the reference position (e.g., a number of rotations of the tube <NUM> away from the reference position) at the given time (e.g., when the command is received), the tube rotational speed determiner <NUM> determines (e.g., calculates) the speed at which the covering <NUM> is to move during operation of the example architectural opening covering assembly.

In some examples, the tube rotational speed determiner <NUM> determines the speed of rotation of the tube <NUM> based on a predetermined amount of time in which the covering <NUM> is to move from the speed setting position (e.g., a position of the tube <NUM> at a time when the command is received to the reference position). For example, if the predetermined amount of time is fifteen seconds and the covering <NUM> is two rotations of the tube <NUM> from the reference position when the example controller <NUM> receives a command to establish the speed, the tube rotational speed determiner <NUM> determines that the tube <NUM> is to rotate two rotations per fifteen seconds (i.e., eight revolutions per minute). In this case, during subsequent operation of the example architectural opening covering assembly (e.g., raising the covering <NUM>, lowering the covering <NUM>, etc.), the example motor controller <NUM> controls the motor <NUM> to rotate the tube <NUM> at two rotations per fifteen seconds. Other examples use other predetermined amounts of time (e.g., <NUM> seconds, <NUM> seconds, <NUM> seconds, etc.) to determine the speed of rotation of the tube <NUM> based on the speed setting position of the tube <NUM>. In some examples, the tube rotational speed determiner <NUM> uses a predetermined amount of time stored in the memory <NUM>.

The example memory <NUM> of <FIG> organizes and/or stores information such as, for example, tube position information generated by the example tube angular position sensor <NUM>, a position of the covering <NUM>, a direction or rotation of the tube <NUM> to raise the covering <NUM>, a direction of rotation of the tube <NUM> to lower the covering <NUM>, one or more reference positions of the covering <NUM> (e.g., a fully unwound position, an upper limit position, a lower limit position, etc.), a speed at which the tube <NUM> is to rotate during operation of the example architectural opening covering assembly, one or more predetermined amounts of time, one or more instructions or commands corresponding to signals (e.g., a number of polarity changes) to be communicated by of the first input device <NUM> and/or the second input device <NUM>, and/or any other information that may be utilized during the operation of the example architectural opening covering assembly.

While an example manner of implementing the example controller <NUM> of <FIG>, the example controller <NUM> of <FIG> and/or the example controller <NUM> of <FIG> is illustrated in <FIG>, one or more of the elements, processes and/or devices illustrated in <FIG> may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example instruction processor <NUM>, the example motor controller <NUM>, the example tube rotational direction determiner <NUM>, the example tube angular position determiner <NUM>, the example covering position determiner <NUM>, the example tube rotational speed determiner <NUM>, the example memory <NUM>, the example first input device <NUM>, the example second input device <NUM>, the example tube angular position sensor <NUM> and/or, more generally, the example controller <NUM> of <FIG> may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, any of the example instruction processor <NUM>, the example motor controller <NUM>, the example tube rotational direction determiner <NUM>, the example tube angular position determiner <NUM>, the example covering position determiner <NUM>, the example tube rotational speed determiner <NUM>, the example memory <NUM>, the example first input device <NUM>, the example second input device <NUM>, the example tube angular position sensor <NUM> and/or, more generally, the example controller <NUM> of <FIG> could be implemented by one or more analog or digital circuit(s), logic circuits, programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)). When reading any of the apparatus or system claims of this patent to cover a purely software and/or firmware implementation, at least one of the example, instruction processor <NUM>, the example motor controller <NUM>, the example tube rotational direction determiner <NUM>, the example tube angular position determiner <NUM>, the example covering position determiner <NUM>, the example tube rotational speed determiner <NUM>, the example memory <NUM>, the example first input device <NUM>, the example second input device <NUM>, the example tube angular position sensor <NUM> and/or, more generally, the example controller <NUM> of <FIG> are hereby expressly defined to include a tangible computer readable storage device or storage disk such as a memory, a digital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc. storing the software and/or firmware. Further still, the example controller <NUM> of <FIG> may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated in <FIG>, and/or may include more than one of any or all of the illustrated elements, processes and devices.

A flowchart representative of example machine readable instructions for implementing the example controller <NUM> of <FIG> is shown in <FIG>. In this example, the machine readable instructions comprise a program for execution by a processor such as the processor <NUM> shown in the example processor platform <NUM> discussed below in connection with <FIG>. The program may be embodied in software stored on a tangible computer readable storage medium such as a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), a Blu-ray disk, or a memory associated with the processor <NUM>, but the entire program and/or parts thereof could alternatively be executed by a device other than the processor <NUM> and/or embodied in firmware or dedicated hardware. Further, although the example program is described with reference to the flowchart illustrated in <FIG>, many other methods of implementing the example controller <NUM> may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined.

As mentioned above, the example process of <FIG> may be implemented using coded instructions (e.g., computer and/or machine readable instructions) stored on a tangible computer readable storage medium such as a hard disk drive, a flash memory, a read-only memory (ROM), a compact disk (CD), a digital versatile disk (DVD), a cache, a random-access memory (RAM) and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term tangible computer readable storage medium is expressly defined to include any type of computer readable storage device and/or storage disk and to exclude propagating signals. As used herein, "tangible computer readable storage medium" and "tangible machine readable storage medium" are used interchangeably. Additionally or alternatively, the example process of <FIG> may be implemented using coded instructions (e.g., computer and/or machine readable instructions) stored on a non-transitory computer and/or machine readable medium such as a hard disk drive, a flash memory, a read-only memory, a compact disk, a digital versatile disk, a cache, a random-access memory and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term non-transitory computer readable medium is expressly defined to include any type of computer readable device or disk and to exclude propagating signals. As used herein, when the phrase "at least" is used as the transition term in a preamble of a claim, it is open-ended in the same manner as the term "comprising" is open ended.

The example program <NUM> of <FIG> begins at block <NUM> when the covering position determiner <NUM> monitors a position of the covering <NUM> of an architectural opening covering assembly (e.g., the example architectural opening covering assembly of <FIG>, the example first architectural opening covering <NUM> assembly of <FIG>, the example second architectural opening covering assembly <NUM> of <FIG>, etc.). In some examples, the controller <NUM> receives a signal from the first input device <NUM> and/or the second input device <NUM> communicating a command to enter a speed setting mode. The example instruction processor <NUM> of <FIG> processes the signal, and the example controller <NUM> enters the speed setting mode and monitors the position of the covering <NUM> relative to a reference position such as, for example, a lower limit position, an upper limit position, etc. In some examples, while the controller <NUM> is in the speed setting mode, the covering <NUM> is moved via the first input device <NUM> and/or the second input device <NUM> (e.g., a user actuates a cord, actuates a switch, etc.), and the example covering position determiner <NUM> monitors the movement of the covering <NUM> based on tube position information generated via the tube angular position sensor <NUM>. In some examples, the tube angular position sensor <NUM> generates position information on additional and/or alternative rotary components of the architectural opening covering, and the covering position determiner <NUM> monitors the movement of the covering <NUM> based on that position information. In some examples, the controller <NUM> determines, sets and/or stores the reference position in response to the command to enter the speed setting mode. In other examples, the reference position is previously established in a programming or calibration mode.

At block <NUM>, the covering position determiner <NUM> determines a speed setting position of the covering <NUM> in response to a first command from the first input device <NUM> and/or the second input device <NUM> (e.g., the input device <NUM> of <FIG>, the central input device <NUM> of <FIG>, etc.). In some examples, the speed setting position is a position of the covering <NUM> relative to the reference position at a time when the example controller <NUM> receives the first command.

At block <NUM>, based on the speed setting position of the covering <NUM>, the tube rotational speed determiner <NUM> determines a speed at which to move the covering <NUM>. In some examples, the tube rotational speed determiner <NUM> determines the speed to move the covering <NUM> based on a distance from the speed setting position to the reference position and a predetermined amount of time (e.g., <NUM> seconds, <NUM> seconds, <NUM> seconds, <NUM> seconds, etc.). In some examples, the tube rotational speed determiner <NUM> uses a predetermined amount of time that is stored in the example memory <NUM>. For example, if the distance between the speed setting position and the reference position is one foot and the predetermined amount of time is <NUM> seconds, the tube rotational speed determiner <NUM> determines that the speed to move the covering <NUM> is one foot per fifteen seconds (i.e., <NUM> feet per minute).

In some examples, the tube rotational speed determiner <NUM> determines the distance between the speed setting position and the reference position by determining a number of rotations of the tube <NUM> and/or a number of rotations of one or more additional and/or alternative rotary components to move the covering <NUM> from the speed setting position to the reference position. For example, if the reference position is one rotation of the tube <NUM> in a first direction from a fully unwound position of the covering <NUM>, and the covering position determiner <NUM> determines that the speed setting position is five rotations of the tube <NUM> in the first direction from the fully unwound position, the distance between the speed setting position and the reference position is four rotations of the example tube <NUM>. In some examples, the tube rotational speed determiner <NUM> determines the speed at which to move the covering <NUM> by dividing the number of rotations by the predetermined amount of time. For example, if the tube rotational speed determiner <NUM> determines that the distance corresponds to four rotations and the predetermined amount of time is <NUM> seconds, the tube rotational speed determiner <NUM> determines the speed to move the covering <NUM> is four rotations of the tube <NUM> per fifteen seconds (i.e., <NUM> rotations of the tube per minute). In some examples, the tube rotational speed determiner <NUM> stores the speed in the memory <NUM>.

At block <NUM>, in response to a second command from the first input device <NUM> and/or the second input device <NUM> to move the covering <NUM> (e.g., raise or lower the covering <NUM>), the example motor controller <NUM> of <FIG> sends a signal to the motor <NUM> to move the covering at the determined speed. For example, the motor controller <NUM> sends a signal to the motor <NUM> to rotate the tube <NUM> at a speed of four rotations per fifteen seconds. In some examples, in response to the second command and/or another command, the example controller <NUM> exits the speed setting mode.

<FIG> is a block diagram of an example processor platform <NUM> capable of executing the instructions of <FIG> to implement the example controller <NUM> of <FIG>. The processor platform <NUM> can be, for example, a server, a personal computer, a mobile device (e.g., a cell phone, a smart phone, a tablet such as an iPad™), a personal digital assistant (PDA), an Internet appliance, or any other type of computing device.

The input device(s) <NUM> permit(s) a user to enter data and commands into the processor <NUM>. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a switch, a track-pad, a trackball, isopoint and/or a voice recognition system.

The output devices <NUM> can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a light emitting diode (LED), and/or speakers). The interface circuit <NUM> of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip or a graphics driver processor.

The coded instructions <NUM> of <FIG> may be stored in the mass storage device <NUM>, in the volatile memory <NUM>, in the non-volatile memory <NUM>, and/or on a removable tangible computer readable storage medium such as a CD or DVD.

Claim 1:
An apparatus for controlling an architectural opening covering assembly, the apparatus comprising:
a motor (<NUM>);
a sensor (<NUM>);
an input device (<NUM>); and
a controller (<NUM>); wherein:
the motor (<NUM>) is operatively coupleable to a rotary component (<NUM>) of the architectural opening covering assembly (<NUM>), the rotary component (<NUM>) operatively coupled to an architectural opening covering (<NUM>);
the sensor (<NUM>) is configured to determine an angular position of the rotary component (<NUM>);
the input device (<NUM>) is configured to send signals to the controller;
characterized in that:
the controller (<NUM>) is configured to enter a speed setting mode in response to a first signal from the input device (<NUM>);
when the controller (<NUM>) is in the speed setting mode, a user may move the covering (<NUM>) to a speed setting position at a distance away from a reference position;
the controller (<NUM>) is configured to, in response to a second signal from the input device (<NUM>) after the architectural opening covering (<NUM>) has been moved to the speed setting position, determine a distance between the speed setting position of the architectural opening covering (<NUM>) and the reference position, and determine, set and store a speed at which the motor (<NUM>) is to rotate the rotary component (<NUM>) based on the distance and a predetermined period of time; and
the controller (<NUM>) is configured to, during operation of the architectural opening covering assembly (<NUM>), operate the motor (<NUM>) to rotate the rotary component (<NUM>) to raise or lower the architectural opening covering (<NUM>) to or from the reference position at the stored speed.