<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          自調(diào)節(jié)窗簾

          作者:Alexander Lee(AWL9);Henry Chan(HC352) 時間:2025-02-08 來源: 收藏

          介紹

          自動調(diào)節(jié)窗簾會自動升高、降低、打開和關(guān)閉您的百葉窗。計(jì)算機(jī)終端充當(dāng)遙控器,通過 RF 向窗簾廣播指令。這些手動調(diào)整與房間當(dāng)前的環(huán)境光和溫度設(shè)置一起存儲在微控制器系統(tǒng)中。當(dāng)在房間內(nèi)找到這些照明和溫度條件時,窗簾會自動重新調(diào)整到之前的水平。

          本文引用地址:http://www.ex-cimer.com/article/202502/466751.htm

          高級設(shè)計(jì)

          理由

          我們的設(shè)計(jì)基于 Lutron 的 Sivoia 遮陽解決方案(在此處找到 youtube 視頻)。我們特別感興趣的 Lutron 系統(tǒng)功能是遠(yuǎn)程功能和遮陽簾的自動功能。我們注意到,在窗簾內(nèi)創(chuàng)建一個內(nèi)存系統(tǒng)也可能是有利的,該系統(tǒng)將允許它記住用戶以前的設(shè)置并根據(jù)環(huán)境中的當(dāng)前條件自動調(diào)整。此外,我們還創(chuàng)建了一個射頻裝置,將窗簾連接到計(jì)算機(jī)系統(tǒng),該系統(tǒng)不僅能夠手動調(diào)整窗簾設(shè)置,還可以控制家中的整個系統(tǒng)。

          背景數(shù)學(xué)

          內(nèi)存表組織

          內(nèi)存表中的節(jié)點(diǎn)是使用切比雪夫節(jié)點(diǎn)設(shè)置的。切比雪夫節(jié)點(diǎn)沿單位圓采用均勻的距離,使端點(diǎn)的點(diǎn)彼此更接近,而中間的點(diǎn)則更遠(yuǎn)。我們之所以使用這種設(shè)計(jì),是因?yàn)槲覀冋J(rèn)為在中間范圍的陰影條件下比在極端范圍內(nèi)有更多的容忍度。

          切比雪夫節(jié)點(diǎn)由以下公式定義:對于 n+1 個節(jié)點(diǎn),x_i = (a+b)/2 + (b-a)/2*cos((2*i+1)/(2*n+2)*pi),其中 (a,b) 是范圍,0 = i = n。為了確定輕節(jié)點(diǎn),我們設(shè)置 n = 7(8 個節(jié)點(diǎn))以獲得 0 到 255 之間的 9 個區(qū)域。為了獲得溫度節(jié)點(diǎn),我們設(shè)置 n = 3(4 個節(jié)點(diǎn))以獲得 100 到 180 之間的 5 個區(qū)域。我們選擇這些邊界點(diǎn)是因?yàn)?,?dāng)房屋溫度低于 50 F 或高于 90 F 時,我們預(yù)計(jì)陰影設(shè)置不會發(fā)生變化。即使這些也可能是光照設(shè)置的情況,我們決定保留它們,因?yàn)橐玫墓庹赵O(shè)置是基于光照的差異。

          光的切比雪夫公式中的節(jié)點(diǎn)如下:
          [2.4499 21.876 56.6648 102.6260 152.3740 198.3352 233.5124 252.5501]

          溫度的切比雪夫公式中的節(jié)點(diǎn)如下:
          [51.7127 63.8896 81.1104 93.2873]

          這些節(jié)點(diǎn)被四舍五入為整數(shù)值,以節(jié)省內(nèi)存使用量并使其更易于比較。

          邏輯結(jié)構(gòu)

          我們的設(shè)計(jì)包含兩個 ATMEL Mega644 微控制器:一個用于控制計(jì)算機(jī)接口,另一個用于作窗簾。第一個 ATmega644 連接到計(jì)算機(jī)終端。Hyperterm 允許用戶向 MCU 輸入命令以發(fā)送和/或接收數(shù)據(jù)。然后,它們通過 RCT433 傳輸?shù)搅硪粋€ MCU 上的接收器

          圖 2.計(jì)算機(jī)終端 MCU 設(shè)置

          第二個 MCU 包含兩種作模式:自動和手動。在手動模式下,MCU 接收從第一個 MCU 傳輸?shù)臄?shù)據(jù)并處理指令,將窗簾移動到所需位置。當(dāng)它沒有收到指令時,MCU 切換到自動模式,根據(jù)房間內(nèi)的照明和溫度條件將百葉窗調(diào)整到用戶之前的設(shè)置。然后,MCU 向電機(jī)發(fā)送信號,使其旋轉(zhuǎn)正確的量以調(diào)整陰影。

          圖 3.窗簾 MCU 設(shè)置

          這些設(shè)計(jì)的詳細(xì)原理圖可在附錄中找到。

          硬件/軟件權(quán)衡

          電機(jī)可以采用半步或全步配置驅(qū)動。半步是首選,因?yàn)樗峁┝烁嗟尿?qū)動力。不幸的是,這增加了功耗。由于功耗不是該項(xiàng)目的指標(biāo),因此這是提高弱步進(jìn)電機(jī)強(qiáng)度的可接受解決方案。

          百葉窗和擋板位置的分辨率必須與內(nèi)存大小相平衡。該位置將針對特定配置存儲在表中。位置的大小為一個字節(jié),允許 256 個可能的位置。如果位置的大小為 int,允許 65536 個位置,則將配置映射到可能位置所需的內(nèi)存將增長大約是表長度的 256 倍。存儲可能的配置選項(xiàng)的表的長度由設(shè)置自動點(diǎn)所需的調(diào)整程度決定。為了對條件做出更精細(xì)的響應(yīng),需要更多的條目。雖然當(dāng)前配置沒有充分利用數(shù)據(jù)空間,但它也提供了對條件的充分響應(yīng)。

          在討論實(shí)現(xiàn)第二個 UART 的方法時,ATMega644P 上的輔助硬件 UART 的解決方案被忽略了。雖然硬件解決方案更有利,但由于實(shí)現(xiàn)簡單,軟件 UART 允許對傳輸速率進(jìn)行更精細(xì)的控制。為了降低由于波特率接近其規(guī)格而導(dǎo)致射頻發(fā)射器/接收器對發(fā)生故障的風(fēng)險(xiǎn),可以選擇較低的波特率。由于定時器的性質(zhì),此波特率不需要通過硬件 USART 控制寄存器的分辨率進(jìn)行量化(即不限于微控制器的有限波特率選擇)。由于 RF 通道的共享總線特性和沒有任何頻率多路復(fù)用,因此還需要半雙工通信。

          由于各種中斷之間的交互,尤其是通過 RF 鏈路發(fā)送/接收數(shù)據(jù)的關(guān)鍵區(qū)域,電機(jī)更新中斷和軟件 UART 中斷的時序必須足夠長,以避免數(shù)據(jù)丟失。例如,軟件 UART 采樣率必須足夠長,以便電機(jī)中斷的延遲完成處理,因此在正確的時間一致地采樣位。此斷言將限制波特率,但由于波特率已經(jīng)受到 RF 模塊的限制,因此可以安全地忽略此因素。

          窗簾的可控性帶來了可用性的權(quán)衡。雖然應(yīng)該讓用戶可以自由輸入任何任意的調(diào)整值,但高估調(diào)整值會導(dǎo)致陰影做出劇烈調(diào)整,用戶感到恐慌。從交互的角度來看,將調(diào)整范圍限制為常數(shù)可以讓用戶看到足夠的反饋,而不會削弱立即響應(yīng)劇烈變化的能力。

          現(xiàn)有專利

          電動窗簾的概念在當(dāng)前的節(jié)能策略中并不是什么新鮮事。專利 7389806 討論了一種電動窗簾和用于升高和降低窗簾的通信系統(tǒng)。電動窗簾的想法已經(jīng)被 Lutron 和 Draper 等幾家公司實(shí)施。然而,這些公司都沒有實(shí)施允許窗簾獨(dú)立于人工控制運(yùn)行的內(nèi)存系統(tǒng)

          硬件

          RF 通信網(wǎng)絡(luò)

          從一開始,該項(xiàng)目的目標(biāo)之一就是提供一種與多個遠(yuǎn)程設(shè)備連接的方法。用于此目的的最簡單的網(wǎng)絡(luò)拓?fù)渲皇切切瓮負(fù)洹?/p>

          圖 4.射頻連接到基站

          由于遠(yuǎn)程設(shè)備之間缺乏交互,因此這種拓?fù)浣Y(jié)構(gòu)是合理的?;究刂扑羞h(yuǎn)程設(shè)備,因此它是網(wǎng)絡(luò)上最權(quán)威的節(jié)點(diǎn),位于星形的中間。為了減輕基站的負(fù)載,從而減輕控制基站的網(wǎng)關(guān)設(shè)備(例如計(jì)算機(jī))的負(fù)載,當(dāng)基站正在接收時只有一個遠(yuǎn)程設(shè)備在發(fā)射,而當(dāng)基站正在發(fā)射時,所有遠(yuǎn)程設(shè)備都在接收,這一斷言必須成立。RF 通信鏈路本質(zhì)上是一條共享總線。因此,頻率多路復(fù)用(允許多個遠(yuǎn)程設(shè)備與基站通信)對于本項(xiàng)目來說太復(fù)雜了。

          圖 5.RF 發(fā)射器和接收器電路。

          盲區(qū)移動

          百葉窗使用 2 個 PF35T-48L 步進(jìn)電機(jī)上下移動。電機(jī)使用 4N35 隔離器進(jìn)行光隔離,并由 ULN2003A 達(dá)林頓陣列供電。使用步進(jìn)電機(jī)是因?yàn)樗鼈兊臏?zhǔn)確性,因?yàn)轭A(yù)計(jì)百葉窗會根據(jù)用戶以前的偏好停在特定位置。它們都驅(qū)動一個齒輪,增加系統(tǒng)中的扭矩,從而可以平穩(wěn)地調(diào)整窗簾。線軸用于卷起固定窗簾的繩子?;営糜谥囟ㄏ蚶Γ员銌蝹€齒輪和桿能夠升高和降低陰影。該字符串穿過原始窗簾框架的孔,使其外觀看起來與普通窗簾完全一樣。

          圖 6.光隔離器和達(dá)林頓陣列電路

          圖 7.用于升高和降低陰影的線軸。

          圖 8.滑輪用于調(diào)整拉力的方向。

          傳感器輸入

          溫度輸入通過使用 LM34 傳感器(與實(shí)驗(yàn)室 5 中使用的傳感器相同)完成。在進(jìn)入 MCU 中的 ADC 之前,使用 LM358 將其放大增益 2 以獲得更高的精度。溫度傳感器輸入進(jìn)入 MCU 的端口 A.0。然后根據(jù) ADC 值計(jì)算當(dāng)前室溫,并用于確定陰影的設(shè)置。

          我們使用的光傳感器是 TI 的單片光電二極管和單電源跨阻放大器 OPT101。光輸出隨光強(qiáng)度線性增加。光電二極管有一個內(nèi)部放大器,電阻為 1MO,當(dāng)引腳 4 和 5 連接在一起時使用。由于這個放大器,我們可以將光電二極管的輸出直接插入 MCU 中的 ADC。光傳感器進(jìn)入端口 A.1(傳感器內(nèi)部)和 A.2(傳感器外部)。我們使用了來自 MCU 的 5V 穩(wěn)壓輸入。在強(qiáng)光下,傳感器在電壓表上的讀數(shù)高達(dá) 4.27V,而在遮蓋時讀數(shù)為 .06V。

          圖 9.內(nèi)部傳感器電路。

          硬件復(fù)雜功能

          我們的第一個硬件復(fù)雜化問題來自拉起窗簾。我們創(chuàng)建了初始設(shè)計(jì)和測試代碼,以作電機(jī)來升高和降低窗簾的一側(cè),而一個人則手動抬起另一側(cè)。我們很快意識到電機(jī)的強(qiáng)度不足以抬起它的陰涼處。然后,我們購買了滑輪并創(chuàng)建了一個滑輪系統(tǒng)來幫助抬起遮陽傘。這也失敗了,因?yàn)樵陔姍C(jī)不再有足夠的扭矩之前,陰影只上升了大約一半。最后,我們購買了一個齒輪,以顯著增加系統(tǒng)的扭矩。這提供了足夠的扭矩來抬起陰影。我們希望購買第二個齒輪來為陰影的另一側(cè)實(shí)施對稱系統(tǒng),但我們無法找到另一個,因?yàn)楣?yīng)商只有一個齒輪具有正確的齒。因此,我們連接了第二個電機(jī)并對其進(jìn)行了測試,發(fā)現(xiàn)這提供了足夠的扭矩,可以用一個軸和齒輪抬起窗簾的兩側(cè)。

          軟件

          用于 RF 通信的輔助 UART

          為了方便使用 RCR/T-433 進(jìn)行通信,使用 UART 連接似乎尤為突出。遺憾的是,在基站上,硬件 UART 已經(jīng)用于與網(wǎng)關(guān)設(shè)備通信。由于缺乏對替代微控制器(如 ATMega644P)的研究,并且預(yù)算有限,因此實(shí)施了中斷驅(qū)動的軟件 UART。雖然軟件解決方案的效率遠(yuǎn)不如硬件解決方案,但它便宜、成本低,并且在概念上易于理解。

          軟件實(shí)現(xiàn)大致基于 AVR304,它描述了使用定時器的半雙工中斷驅(qū)動 UART 和基于位拆解方法的外部中斷。正如 RF 網(wǎng)絡(luò)設(shè)計(jì)中所指出的,由于基帶頻率的共享性質(zhì),半雙工串行通信方法對于該項(xiàng)目來說是足夠且理想的。此實(shí)現(xiàn)的唯一硬件成本是使用兩個 GPIO 引腳。在軟件成本方面,使用了外部中斷和定時器。

          軟件實(shí)現(xiàn)涉及通過多個控制狀態(tài)轉(zhuǎn)換軟件 UART。

          圖 10.軟件 UART 狀態(tài)機(jī)

          SW_UART_IDLE_S 通道空閑或剛剛接收或發(fā)送了一個字節(jié)。
          SW_UART_RX_S 通道被占用,等待接收字節(jié)。
          SW_UART_TX_S 通道被占用,正在傳輸一個字節(jié)。

          sw_uart_send_byte 激活一個定時器中斷,該中斷以波特率發(fā)送一個起始位(傳輸下降沿),后跟一個字節(jié)的數(shù)據(jù)和一個停止位(傳輸上升沿)。由于子例程僅啟用中斷,因此它是非阻塞的,并且可以在傳輸字節(jié)時執(zhí)行其他作。傳輸完整字節(jié)后,通道是空閑的。

          sw_uart_receive_byte 激活外部中斷以捕獲狀態(tài)位 (下降沿)。觸發(fā)中斷后,計(jì)時器開始以連接的波特率對傳入的數(shù)據(jù)流進(jìn)行采樣。同樣,此 sub 例程僅啟用相關(guān)的 interrupts。它是非阻塞的,可以在未接收到字節(jié)時執(zhí)行其他作。收到完整字節(jié)后,將釋放通道。捕獲字節(jié)后,接收到的數(shù)據(jù)將存儲到變量中。

          RF 數(shù)據(jù)封裝

          傳輸?shù)膸蛇B續(xù)傳輸?shù)?15 個字節(jié)組成。

          [0][1...4][5][6...13][14]
          0x00同步序列開始編碼的有效負(fù)載


          第一個字節(jié)(索引 0)是調(diào)整接收器增益和清除接收器捕獲的任何噪聲觸發(fā)的中斷字節(jié)所必需的。同步序列用于允許接收器將即將到來的幀確認(rèn)為實(shí)際幀,而不是噪聲。起始字節(jié)用于向接收方發(fā)出信號,以便在后續(xù)字節(jié)捕獲期間開始存儲編碼的有效負(fù)載。最后,雖然項(xiàng)目中未使用停止字節(jié),但它既可以用作終止符標(biāo)記,也可以用作錯誤檢查。

          必須對有效負(fù)載進(jìn)行編碼才能提供 DC 規(guī)范化。在 Meghan Desai 完成工作之后,以下方案用于對有效負(fù)載進(jìn)行編碼,有效負(fù)載字節(jié)首先發(fā)送有效字節(jié)最少。

          編碼字節(jié)編碼字節(jié)編碼字節(jié)編碼字節(jié)
          0x00b100010110x4編號:0b100101100x80b101000110xC0b10101100
          0x1編號 0b100011010x50b100110010x9編號:0b101001010xD0b10110001
          0x20b100100110x60b100110100xA編號:0b101001100xE0b10110010
          0x3編號 0b100101010x70b100111000xB編號:0b101010010xF0b10110100


          有效載荷的格式可支持 254 臺設(shè)備,每臺設(shè)備有 254 個可能的傳感值/命令。發(fā)射器解碼的 payload 格式遵循此格式。

          [0][1][2][3]
          設(shè)備地址命令參數(shù) 1參數(shù) 2


          0x00保留在基站的地址空間和傳感器 ID 空間中以供確認(rèn)。在自調(diào)節(jié)百葉窗的特定情況下,支持以下命令并從基站傳輸。

          命令代碼參數(shù) 1參數(shù) 2描述
          'O'相對數(shù)量不在乎將翻蓋打開相對量。
          'C'相對數(shù)量不在乎將擋板關(guān)閉相對量
          'U'相對數(shù)量不在乎相對程度地提高盲注
          'D'相對數(shù)量不在乎將盲注降低相對量
          'A'絕對盲區(qū)絕對翻蓋位置將百葉窗定位到絕對盲板和翻蓋位置。
          'R'傳感器 ID不在乎使用傳感器 ID 輪詢傳感器以獲取值


          相比之下,遠(yuǎn)程設(shè)備僅傳輸以下有效負(fù)載格式。

          [0][1][2][3]
          0x00遠(yuǎn)程設(shè)備地址傳感器 ID價值


          對于非值返回作(如盲注調(diào)整),值 0x00 保留給傳感器 ID,“A”用作確認(rèn)收到命令的值。對于值返回作(如“R”),傳感器 ID 對應(yīng)于請求的信息,值是返回的值。故障檢測和錯誤處理(例如在超時時重新發(fā)送命令)由網(wǎng)關(guān)設(shè)備驅(qū)動程序處理。以下從基站到網(wǎng)關(guān)設(shè)備的信息編碼有助于這種交換。

          法典意義
          'W'正在向遠(yuǎn)程設(shè)備發(fā)送命令。
          'D'完成命令處理
          'F'處理命令時出錯。可能未被識別
          對遠(yuǎn)程設(shè)備的命令超時。未收到 ACK。
          Rxyzx 為遠(yuǎn)端設(shè)備地址,y 為信息 ID,z 為返回值。(0x00 保留給 y 用于確認(rèn)沒有返回值的命令。z 將為 'A' 表示確認(rèn)。


          射頻通信鏈路控制

          RF 控制組件有助于發(fā)送和接收整個數(shù)據(jù)包。RF 控制必須與串行通信保持非阻塞性,但由于在工程的其余部分大量使用中斷,因此將使用來自主 while 循環(huán)的非中斷驅(qū)動控制。通過此實(shí)現(xiàn),必須斷言控制過程將被調(diào)用得足夠快,而不會錯過任何數(shù)據(jù)包。

          圖 11.射頻連接到基站

          RF_IDLE_S RF 信道被清除或剛剛發(fā)送或接收到有效幀。
          RF_TX_S RF 通道用于通過軟件 UART 爆破幀。
          RF_RX_S RF 通道正在等待接收有效幀。
          Rf_payload Valid ( Valid) 接收到的幀已經(jīng)解碼完畢,rf_payload 變量中包含了解碼后的數(shù)據(jù)。

          rf_transmit_msg() 對有效負(fù)載進(jìn)行編碼并將其加載到傳輸緩沖區(qū)中。未啟用任何中斷,并且實(shí)際上不會處理該幀。
          rf_receive_msg() 啟用軟件 UART 字節(jié)捕獲并重置接收幀緩沖區(qū)的條件。
          rf_process_byte() 要么在準(zhǔn)備好時從軟件 UART 中讀取字節(jié),要么通過軟件 UART 傳輸字節(jié)。這將調(diào)用 sw_uart_receive_byte() 或 sw_uart_send_byte()。承認(rèn)從接收到的字符串中處理一個字節(jié)與及時啟動軟件 UART 以捕獲下一個字節(jié)之間的爭用條件。但是,接收到的停止字節(jié)的停止位和同步序列的長度應(yīng)提供足夠的時間,以便在任何編碼的有效負(fù)載數(shù)據(jù)丟失之前再次調(diào)用 process_byte()。

          施加超時是為了處理遠(yuǎn)程設(shè)備可能關(guān)閉或超出范圍的情況?;驹诎l(fā)送命令后等待確認(rèn)消息。如果在超時持續(xù)時間內(nèi)未收到確認(rèn),則會向網(wǎng)關(guān)發(fā)送錯誤消息。

          電機(jī)控制

          步進(jìn)電機(jī)通過按順序給線圈通電來運(yùn)行,以便轉(zhuǎn)動電樞并產(chǎn)生旋轉(zhuǎn)。在單步配置中,一次只有一個線圈通電。然而,在該項(xiàng)目中,步進(jìn)電機(jī)被配置為以半步為增量轉(zhuǎn)動。以半步驅(qū)動電機(jī)提供額外的驅(qū)動功率,同時消耗更多的電力。此外,它還提供兩倍于全步配置的精度。用于驅(qū)動步進(jìn)電機(jī)旋轉(zhuǎn)的順序如下圖所示。

          圖 12.步進(jìn)電機(jī)狀態(tài)機(jī)

          為了以特定速度驅(qū)動電機(jī),使用了計(jì)時器。電機(jī)的轉(zhuǎn)動速率由步長(使用半步配置)的一半乘以計(jì)時器的頻率決定。增加頻率并更快地完成電機(jī)控制序列將導(dǎo)致更快的旋轉(zhuǎn)。以恒定速度驅(qū)動電機(jī)是平穩(wěn)盲動的重要因素。因此,電機(jī)控制被降級為定時器,該定時器觸發(fā)中斷以每秒約 2 轉(zhuǎn)的速度改變電機(jī)輸出。電機(jī)中斷部分由當(dāng)前電機(jī)輸出決定。為了確保實(shí)現(xiàn)平穩(wěn)移動,在 timer 的單個周期內(nèi)只能進(jìn)行一次到相鄰狀態(tài)的轉(zhuǎn)換。

          timer interrupt 通過縮放因子處理將步長轉(zhuǎn)換為位置。位置描述遮板的垂直位置或翻蓋的角度。位置的分辨率是陰影的高度除以 256(以一個字節(jié)表示)??s放因子由移動一個位置所需的步驟數(shù)決定。通過仔細(xì)記賬,可以準(zhǔn)確地保持絕對空間的位置。對陰影的調(diào)整僅限于這些位置,同時權(quán)衡內(nèi)存大小和微調(diào)控制。完成每個位置的步數(shù)后,調(diào)整位置簿記并遞減調(diào)整變量。

          定時器根據(jù)四個調(diào)整變量將電機(jī)連續(xù)調(diào)整到相鄰狀態(tài):

          • adjup_pos 向上調(diào)整陰影

          • adjdown_pos 向下調(diào)整陰影

          • adjopen_pos 調(diào)整打開角度

          • adjclose_pos 調(diào)整閉合角度

          通過將調(diào)整變量設(shè)置為非零正數(shù),計(jì)時器將自動控制物理電機(jī)運(yùn)動以完成調(diào)整,而不會阻止通信組件的任何控制。最初,使用兩個變量允許我們將走勢向上和向下排隊(duì),這樣它就會在向下走勢之前完成所有向上的走勢(或在收盤前完成所有開倉)。然而,經(jīng)過進(jìn)一步考慮,這個理想似乎很新穎,并不是特別有用。因此,在設(shè)置調(diào)整變量時,互補(bǔ)調(diào)整(例如,設(shè)置 adjup_pos 時為 adjdown_pos)應(yīng)歸零。在某個點(diǎn)將 configuration 存儲到內(nèi)存中的能力比在 movement 結(jié)束時存儲位置更有利。

          結(jié)果

          執(zhí)行速度

          運(yùn)行遮陽簾的電機(jī)是非阻塞的,可以隨時被手動命令覆蓋。輸入手動命令時,將擦除先前的命令并執(zhí)行新命令。這非常適合快速和即時調(diào)整,當(dāng)用戶可能希望停止自動調(diào)整陰影并將該點(diǎn)作為存儲值時。這也消除了以前的閃爍,該閃爍是由于陰影具有同時上下移動的命令而導(dǎo)致的,這會導(dǎo)致陰影著色并經(jīng)常在旋轉(zhuǎn)中丟失步驟,從而降低陰影的準(zhǔn)確性。現(xiàn)在只有一個命令,因此陰影沒有沖突的調(diào)整。

          陰影的兩個調(diào)整都會閃爍,然后傳感器值會生成一個非常接近節(jié)點(diǎn)的值。這是因?yàn)楣?jié)點(diǎn)處的數(shù)據(jù)連接不順暢,而是設(shè)置被分割成段。因此,如果傳感器值懸停在某個節(jié)點(diǎn)周圍,則當(dāng)傳感器高于和低于時,它將嘗試在兩個范圍設(shè)置之間來回調(diào)整。電機(jī)不斷嘗試重新調(diào)整,但從未關(guān)閉。為了解決這個問題,我們需要為內(nèi)存系統(tǒng)實(shí)現(xiàn)一種新的方法,也許使用雙線性插值函數(shù)并創(chuàng)建一條連續(xù)曲線。我們沒有實(shí)現(xiàn)這個內(nèi)存模型的原因是實(shí)現(xiàn) smooth 函數(shù)所需的計(jì)算。每個變量 (高度或角度) 的計(jì)算都需要 8 次乘法。這意味著我們在整個代碼中每個循環(huán)都需要 16 次乘法。

          準(zhǔn)確性

          步進(jìn)電機(jī)為系統(tǒng)提供了非常好的精度,使其能夠獲得窗簾水平的精確點(diǎn)。我們將陰影分成 255 個步驟,或陰影可以停止的位置。這些步驟中的每一個都需要一定的旋轉(zhuǎn)次數(shù),這在 steps_per_position 中給出。當(dāng)電機(jī)沒有足夠的扭矩來旋轉(zhuǎn)窗簾或打開百葉窗并且電機(jī)滑動或發(fā)出咔嗒聲時,窗簾精度的唯一缺陷就會出現(xiàn)。這種情況更多地發(fā)生在陰涼處頂部附近,此時電機(jī)必須舉起陰涼處的全部重量。發(fā)生這種情況時,臺階將被丟棄,并且陰影現(xiàn)在位于不正確的位置。為了解決這個問題,我們有一個 calibrate 函數(shù),它將陰影一直帶到頂部(無需點(diǎn)擊或跳過),然后將位置重置為零。

          安全

          步進(jìn)電機(jī)通常會大量發(fā)熱,因?yàn)檫\(yùn)行電機(jī)需要大量的功率。為了解決這個問題,當(dāng)電機(jī)不移動窗簾時,我們會關(guān)閉電機(jī)。我們通過向電機(jī)發(fā)送一個字節(jié)的低位來實(shí)現(xiàn)這一點(diǎn),這意味著沒有電壓進(jìn)入任何電機(jī)輸入。這不僅可以防止電機(jī)過熱,還可以降低功耗。除此之外,我們的窗簾與家中常見的另一種窗簾一樣安全。

          干擾

          發(fā)射機(jī)以 433 MHz 的頻率發(fā)出射頻信號。這將干擾以該頻率發(fā)射或接收的任何其他設(shè)備。我們的項(xiàng)目通過為每個接收器關(guān)聯(lián)一個地址來對干擾進(jìn)行分類。如果存在多個遠(yuǎn)程設(shè)備,則使用地址字節(jié)來確定哪些數(shù)據(jù)對該特定設(shè)備有用。任何不包含設(shè)備地址的信號都將被忽略。

          可用性

          我們的項(xiàng)目在現(xiàn)實(shí)世界中非常實(shí)用。盡管在每個窗口陰影中都有內(nèi)存可能不是最好的情況(非常取決于位置和內(nèi)存設(shè)計(jì)),但它在大多數(shù)情況下非常有用。整個設(shè)備安裝在一個小框架中,可以很容易地被窗簾覆蓋,就像普通的窗簾一樣。此工程可以應(yīng)用于多個窗簾,以使用單個控制源控制所有窗簾。

          另一個可用性功能是我們的計(jì)算機(jī)界面。如前所述,它不僅能夠處理到窗簾的傳輸,還能夠處理到任意數(shù)量的遠(yuǎn)程設(shè)備的傳輸(只要有足夠的地址)。這意味著單個基站最多可以控制 256 個遠(yuǎn)程設(shè)備。基站可以擴(kuò)展以作照明、風(fēng)扇和許多其他家用組件。

          結(jié)論

          期望值

          我們很驚訝預(yù)算對我們的項(xiàng)目影響如此之大。最初,我們計(jì)劃使用太陽能和電池來實(shí)施窗簾,以使其更加環(huán)保。然而,經(jīng)過一番研究,我們意識到,買得起能夠持續(xù)運(yùn)行電機(jī)并同時為電池充電的電池和面板太昂貴了。因此,我們采用了典型的壁式插座電源。

          我們在抬起和調(diào)整窗簾的極端點(diǎn)(將窗簾一直抬高或完全朝一個方向旋轉(zhuǎn))時遇到了一些麻煩。然而,當(dāng)我們嘗試使用功率較小的步進(jìn)電機(jī)來創(chuàng)建內(nèi)存系統(tǒng)時,我們預(yù)料到會遇到一些困難。最后,我們最好使用更堅(jiān)固的電機(jī),并使用更堅(jiān)固的材料(如木材)設(shè)計(jì)我們的框架。但是,由于時間和資源限制,我們無法完成這些任務(wù)。

          知識產(chǎn)權(quán)注意事項(xiàng)

          產(chǎn)品唯一不是從頭開始創(chuàng)建的部分是窗簾本身。除了窗簾,我們用原材料制造了所有東西。

          我們軟件 UART 的一部分代碼來自 Atmel 給出的基本代碼。除此之外,我們所有的代碼都是在我們小組內(nèi)部自行編寫和設(shè)計(jì)的。

          道德考慮

          在整個項(xiàng)目中,我們盡最大努力維護(hù) IEEE 道德準(zhǔn)則,以創(chuàng)造一種安全且有用的產(chǎn)品來推動技術(shù)進(jìn)步。我們在設(shè)計(jì)項(xiàng)目時高度重視公益和安全。在項(xiàng)目過程中,我們沒有遇到任何沖突。我們盡我們所能設(shè)計(jì)了這款產(chǎn)品的電路和布線。沒有賄賂案件,如果有,我們不會接受。我們采用了我們熟悉的技術(shù),并嘗試以有用的方式將它們結(jié)合起來。我們不僅得到了 Land 教授和助教的幫助,還得到了一些以前參加過 ECE 476 的朋友的幫助。我們經(jīng)常與其他團(tuán)體或不同的種族、性別、宗教和其他各種不同的人討論他們的項(xiàng)目,并收到關(guān)于我們項(xiàng)目的反饋。

          法律注意事項(xiàng)

          我們以 433MHz 的速度傳輸,這在自由傳輸范圍內(nèi)。除了傳輸之外,我們的窗簾還充當(dāng)完全可作的普通手動窗簾。沒有其他法律問題需要考慮。

          附錄

          源代碼

          程序文件

          main.c
          rfcomm.c
          serial.c
          softuart.c
          stepper.c
          uart.c

          頭文件

          main.h
          ops.h
          端口聲明.h
          rfcomm.h
          serial.h
          softuart.h
          步進(jìn)器.h
          uart.h

          圖表

          圖 13.Base Station Schematic 全尺寸 sch 文件

          圖 14.遠(yuǎn)程站原理圖全尺寸 sch 文件

          圖 15.Motor Driver Schematic 全尺寸 sch 文件

          圖 16.傳感器原理圖 sch 文件

          圖 17.OPT101 光電二極管原理圖

          成本

          部分項(xiàng)目數(shù)量價格



          72.45
          電機(jī)PF35T-48L 步進(jìn)電機(jī)31.003.00
          電機(jī)ULN2003達(dá)林頓陣列20.641.28
          電機(jī)4N35 光隔離器80.252.00
          電機(jī)/RF/傳感器小型 PC 板51.005.00
          電機(jī)滑輪22.755.50
          電機(jī)線軸2報(bào)廢--
          電機(jī)橡皮筋4二手--
          電機(jī)筷子1報(bào)廢--
          電機(jī)齒輪14.004.00
          單 片 機(jī)ATmega6442采樣--
          單 片 機(jī)DIP 插座30.501.50
          單 片 機(jī)MCU 焊錫板21.002.00
          單 片 機(jī)最大 2331采樣--
          單 片 機(jī)RS232 接口11.001.00
          射頻RCR-433 射頻接收器24.008.00
          射頻RCT-433 射頻發(fā)射器24.008.00
          MCU/電機(jī)電源35.0015.00
          傳感器OPT101 光電二極管25.5011.00
          傳感器LM34 溫度傳感器12.512.51
          陰影窗簾12.662.66
          陰影紙板好多報(bào)廢--




          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();