国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Arduino無線高度發射器的制作

454398 ? 來源:wv ? 2019-09-10 16:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:構建發射器

Arduino無線高度發射器的制作

小而光很漂亮。

由于發射器位于無線電控制的飛機上,我必須保持結構光。我建議在焊接任何電線之前考慮容納盒的最終尺寸。

將調節器裝配在一塊帶有平滑電容器的小條板上。連接一對電線供電。如果您使用備用伺服連接作為電源添加一個沒有數據線的伺服插座。 NB檢查飛機的接收器是否能夠提供400-500mA。如果您使用的是Lipo平衡插頭,請添加一段單行接頭(0.1英寸間距),除去0和最大電壓引腳外。然后熱縮以密封。

使用合適的2-3S Lipo檢查調節器的輸出是明智的

NB 不要反向連接 到脂質平衡插頭。您將 吹 調節器和壓力傳感器。如果這是一個問題,請使用與正極導聯串聯的1n4001二極管

將組件連接到 8MHz 3v3 Pro Mini 按照圖表。保持引線短路并使用優質電線。

Arduino需要在復位按鈕的另一端有一個6針單極插頭引腳條。根據您的FTDI,您可能會發現90度插頭引腳是更好的選擇。

注意Arduino 6引腳端的標記顏色,并與FTDI編程器匹配。我發現用Tippex標記Arduino和編程器特別有用。

在導線離開pcb后,架空導線應該 17.3 cm 。我將一個連接到RFM69CW的天線點,第二個連接到arduino上的零電壓點,用于接地RFM69CW。在將地面天線切割成長度之前,我從17.3cm處扣除了從RFM到arduino的地線長度。天線用一根90秒的araldite固定,以防止剪切。

Arduino引腳5和6的開關可以通過將2針插座焊接到電路板上來構建。將單極頭中的兩個引腳焊接在一起,形成跳線連接。最好焊接一小段電線然后拆下并更新塑料連接器。 Araldite開關頂部的任何裸露金屬用于絕緣。刪除鏈接允許串行輸出。

或者 - 將單極頭的兩個引腳焊接到電路板上并使用0.1英寸跳線。

我使用過巴沙木和薄異氰酸酯膠的碎片制作一個盒子。我把3個組件與小巴沙跑者分開。壓力傳感器是光敏感的,所以我做了一個小托盤來遮擋它。我在外盒上切了一個圓孔直接在矩形傳感器上方,然后用一塊泡沫覆蓋。

切割通風孔以確保空氣流通。一根天線導線和導線需要出口孔。我用碳棒固定托盤和調節器就位。

軟件和準備

壓力傳感器需要針對壓力和溫度進行校準。

由于海拔高度是海平面大氣壓力和未知海拔壓力的函數,我們需要估算海平面氣壓。也是溫度的函數,但我們可以留下這個因素o在合理的近似值下。

通過讀取已知高度的壓力 - 基準水平,可以獲得對海平面氣壓的良好估計。在我的情況下kichen表。因此,查看房屋的高度并調整變送器的位置。在校準期間,您還需要可靠的海平面大氣壓值。我使用了互聯網天氣網站的報告。

下載RFM69_transmitter3.zip 并在Arduino程序文件夾中安裝該文件夾。將RFM69庫文件夾移動到Arduino庫文件夾。

打開Arduino IDE(https://www.arduino.cc/en/Main/Software)

打開文件 RFM69_transmitter3

在工具中將電路板設置為Ardino Pro或Pro Mini。將處理器設置為ATmega328P(3.3V,8MHz)

不要使用Lipo為Arduino供電。

移除Arduino-recheck上的引腳5和6上的鏈接 你的 接線。我不負責!

將FTDI編程器的電壓設置為3v3。

將Arduino連接到FTDI編程器,檢查它是否正確定位。

使用USB線將FTDI編程器插入計算機。

等待計算機識別USB設備 - 使用工具端口選擇新獲得的com端口。

找到代碼中的審核和修訂部分:

// ________ Review and amend this section ______

// use your own 16 character encryption key!

#define ENCRYPTKEY “DRPattEncryptkey” // exactly the same 16 characters/bytes on all nodes!

#define SERIAL_BAUD 74880

#define DATA_SIZE 20

// set default base altitude

// kitchen table 51.3 m

// cadmac flying field 46-47 m

const float ALTBASIS = 51.3; // base altitude in m

// pressure correction

// Pa 4Pa per bit -512 to +508

const int pcorrection = -64;

// temperature coefficients

// unboxed

float mUB = 0.6;

float ccUB = 0.5;

float aUB = 0.001535;

float bUB = -0.05264;

float cUB = 0.666409;

float dUB = 0.575;

// boxed

float mB = 0.7;

float ccB = 0.30;

float aB = 0.00255;

float bB = -0.11437;

float cB = 1.722786;

float dB = -0.73676;

const boolean isBoxed = true;

const boolean Tcalibrate = false;

const boolean useBase = false;

// true: offset altitude by base height rather than calibrated base height

// false: use calibrated base as altitude offset

// _______________________________________________

壓力和溫度校正適用于我的傳感器。您需要更改這些:

將 ENCRYPTKEY 設置為您自己的16個字符

將 pcorrection 設置為0

SERIAL_BAUD 不應超過74880

將 ALTBASIS 設置為當前位置的海拔高度(小數點后1位)米)

將 Tcalibrate 設置為True以保持溫度不校準

將 isBoxed 設置為false并期望校準un-盒裝

獲取您所在位置的海平面大氣壓(以帕斯卡為單位)的準確值。您還需要攝氏溫度。

現在選擇右箭頭上傳代碼!

完全打開串行監視器并設置波特率到上面第2點中指定的 SERIAL_BAUD 。

在顯示器上關閉自動滾動。

步驟2:變送器校準

1)壓力

我們使用當地的壓力和海估計高度的水平壓力。通過減去基準高度,我們獲得高于地平面的高度:

float myaltitude = altitude(currpress, seapress) - newbasealt; // get altitude above base

float altitude(float lpressure, float seapressure){

// h = 44330.77( 1 - (p/Po)^ 0.1902632 )

float alt = pow(lpressure / seapressure, 0.1902632);

alt = 44330.77 * (1 - alt);

return alt;

}

要獲得壓力,我們首先寫入傳感器的寄存器0x26:

void oneshotP(){ // Pressure

if(maxoversample){

IIC_Write(0x26, 0b00111001); // bits 3-5 control oversample

IIC_Write(0x26, 0b00111011); // bit 1 toggled- get immediate value

}else{

IIC_Write(0x26, 0b00110001);

IIC_Write(0x26, 0b00110011);

}

}

使用maxoversample true,我們得到最高的準確度(和最慢的采樣率)。

現在等到STATUS寄存器標志數據就緒:

if ((IIC_Read(STATUS) & 2) == 2){

float currpress = Baro_Read(); // read the pressure

oneshotP(); // request next reading float Baro_Read(){

//this function takes values from the read buffer and converts them to pressure units

IIC_ReadData(); //reads registers from the sensor

unsigned long m_pressure = IICdata[0];

unsigned long c_pressure = IICdata[1];

float l_pressure = (float)(IICdata[2]》》4)/4; //dividing by 4, since two lowest bits are fractional value

return((float)(m_pressure《《10 | c_pressure《《2)+l_pressure); //shifting 2 to the left to make room for LSB

}

大氣壓通常在天氣現場的海平面上報告。

www.xcweather.co.uk報告今天的壓力為1013mB。

www.wunderground.com報告(更準確)1013.46 hPa

毫巴(mB)和HectoPascals(hPa)是等效單位。 1hPa = 100Pa

在我所在的位置,今天的壓力是101346帕斯卡。

室溫是23.2℃

串行監視器連接到變送器顯示:

____________________________________________

初始化變送器

初始化傳感器

傳感器正常。

壓力校準。..。..

OverSample On

基準高度51.3 m

使用newbase = xy。 z從串口設置新的高度

壓力偏移0(每位4 Pa)

氣壓輸入,(高197低231)101326 Pa

溫度偏移(0)0.0000 C(每位0.0625 C)

海拔偏移0(每位1 m)

未校準46.4 m

平均氣壓100771.3 Pa

海壓101386.4 Pa

(允許溫度)101365.51 Pa

傳感器功能的海拔高度51.3米

海拔高度51.56米

基準溫度23.6°C

____________________________________________

報告的海平面氣壓為40 Pa比氣象站。對于這種傳感器,我們需要對變量pcorrection應用一個小的負校正。 校正必須能被4整除。

我建議您在校準傳感器之前應用類似的正或負校正。

注意未校準海拔高度值非常好。這是因為今天的壓力接近傳感器在高度計算中使用的大氣壓力默認值(101326Pa)。另一天,內部傳感器的高度值將會很好。

出于這個原因,我們用校準的傳感器建立海平面壓力,然后根據當地壓力執行我們自己的高度計算。

2)溫度

這有點問題!

根據制造商的網站,溫度傳感器是從來沒有打算提供環境溫度值。顯然它提供了“傳感器芯片”的溫度。

由于芯片溫度必須受到大氣溫度的影響,我們應該能夠校準溫度數據以提取環境值。

在建立始終高于環境溫度的溫度值之前,傳感器似乎在最初的17分鐘內自熱。這種加熱必須影響返回壓力值的內部溫度補償。我相信這是靜止的MPL3115A2傳感器觀察到的壓力漂移的原因。我們沒有固定這種內部校正的方法,但我們可以校準大氣溫度。

準備一張時間和溫度表:

時間。. |溫度

0.000 |

13/60 |

1.000 |

2.000 |

。.最多17分鐘。

零時的溫度

變送器以這種格式報告:

D》將是基準溫度和13秒時報告的第一個值。

P:0.0,0.0,25.0 C(Presure 100767.75 Pa)0:13

D》 P:當前海拔高度,最高海拔高度,當前溫度(當地壓力)分鐘:秒

讓變送器冷卻。耐心點。模具似乎保持熱量并會影響初始啟動溫度。

記錄當前的室溫,最好是小數點后1位。

使用 Serial Inhibit 鏈接將變送器插入PC。

記錄溫度。打開電子表格 calibrateTemp.xlsx

在單元格F3中輸入室溫,在B3到B21中輸入溫度數據

電子表格將產生溫度校正參數。

在第一分鐘,我進行了線性校正:

更正= mUB *時間+ ccUB

剩余時間:

更正= aUB *時間^ 3 + bUB *時間^ 2 + cUB *時間+ dUB

使用電子表格值編輯RFM69_transmitter3草圖中的溫度系數

修改未裝箱的部分中的溫度修正值。

上傳修改后的程序。

裝箱發射器

讓它冷卻然后重復校準過程。如果這有問題等到你構建了接收器并無線校準。

編輯草圖。

。. isBoxed = true;

。. Tcalibrate = false;

上傳草圖

插入無序列鏈接

Rebox

步驟3:構建接收器

如果像我一樣,你想要將接收器維可牢尼龍搭扣安裝在RC發射器的頂部,你必須要小心思考。

我使用的是一個175 x 50 x 25 mm腹肌盒,與Tardis不同,它的尺寸較小內部。

計劃如何在連接之前將所有組件放在適當的位置。

該框將包含:

Arduino Pro mini 5V0 16 Mhz

電源充電插座

穩壓器

2開關

3 LED

Oled screen

433Mhz收發器

外部雙極天線

我為所有人安排了從盒子上掛下的組件,在盒子的內側底座上用尼龍搭扣防止移動。

the scre en配有4個小型12BA螺栓 - 注意! oled中的安裝孔靠近屏幕。不要試圖使用更大的螺栓。我在內部使用堅果作為空間,然后使用額外的堅果來保護。在將屏幕連接到電線之前,標記并切割oled屏幕的孔。檢查螺栓位置。鉆孔,將螺栓切成一定長度并固定墊片螺母。

RFM可以與天線頂部成一定角度安裝。我用了兩個短的12BA螺栓和螺母。這樣可以節省大量空間。

您可能還需要為其他組件鉆蓋子的其余部分。我的盒蓋有一個內唇。我將幾個部分切開以擠壓組件。

將調節器安裝在一小塊條形板上。測試輸出。

按照圖表連接組件。 arduino上的引腳11和13各需要2根電線。

使用質量好的短線電線。

將LED添加到arduino中記住使用串聯電阻

充電點必須小心連接。 開關端子用于向arduino電路提供0V電壓。

在供應之前,脂肪供應通過SW1。監管機構和Arduino。 arduino使用Raw終端從完整的Lipo電壓供電。

RFM由Arduino 5V供電。

oled屏幕需要3V3

注意,開關電源線上有2個匹配的100K電阻。它們連接到A0以監控Lipo電壓。不要讓Lipo電壓降至每個電池3.88V以下(總共7.76V)。 充電時必須關閉電源開關

添加17.3厘米雙極天線,添加一滴Araldite來支撐它們。

我連接了穩壓器最后并重新檢查電路(再次。..。..)

關閉。連接lipo。

步驟4:測試接收器

上傳軟件包RFM69_Receiver。壓縮。

將RFM69_Receiver文件夾添加到Arduino程序文件夾中。將兩個封閉的庫移動到Arduino庫區域。

打開Arduino IDE。

打開文件RFM69_Receiver。

在工具中將電路板設置為Ardino Pro或Pro Mini。將處理器設置為ATmega328P(5V,16MHz)

確保電路已關閉。將串行開關設置為關閉(關閉=未連接到0v =串行開啟!)

重新檢查接線。我不負責!

將FTDI編程器的電壓設置為5V。將Arduino連接到FTDI編程器,檢查它是否正確定向。使用USB線將FTDI編程器插入計算機。等待計算機識別USB設備 - 使用工具端口選擇新獲得的com端口。

上傳RFM69_Receiver程序。

經過短暫的延遲后,oled屏幕將顯示00:00后跟一個電壓 - 因為我們在USB引線上它反映了USB電壓 - 如果此時聲明低電量,則改變float vok(布爾顯示)功能中的以下行:

void IIC_ReadData(){ //Read Altitude/Barometer and Temperature data (5 bytes)

//This is faster than reading individual register, as the sensor automatically

//increments the register address, so we just keep reading.。.

byte i=0;

Wire.beginTransmission(SENSORADDRESS);

Wire.write(0x01); // Address of CTRL_REG1

Wire.endTransmission(false);

Wire.requestFrom(SENSORADDRESS,5); //read 5 bytes: 3 for altitude or pressure, 2 for temperature

while(Wire.available()) IICdata[i++] = Wire.read();

}

to:

if ((V 》4.4) && (V 《 7.77)){ // 7.77 for 2 cells

隨后出現一個屏幕徽標 - 可以在HT_SSD1306庫中修改logo.h。

顯示屏現在將顯示“Awaiting Ak”

打開發射機電源。

大約13秒后顯示屏將會清除。

增加時間將顯示在第一行。這是為了顯示發射器以及RC平面已經通電多長時間。

低于此目前的海拔高度,最高海拔和溫度。

期望看到變化海拔幾米。我把它歸結為內部溫度補償。

嘗試升高發射器并檢查接收器的高度增加。

綠色指示燈將在收到數據時顯示。

設置高度警告

紅色高度警告指示在void printData中設置(字符串S,int字體):

if ((V 》5.1) && (V 《 7.77)){ // 7.77 for 2 cells

將 121.9 (400英尺)更改為任何首選值。

確認測量的Lipo電壓

使用儀表測量內部脂質的電壓。

比較反對開始時顯示的電壓。如果不準確,則修改函數vok中的常量 0.0096997 (布爾顯示):

if(T.toFloat() 》 121.9) digitalWrite(7, HIGH); else digitalWrite(7, LOW);

因為我們在兩個分壓電阻器(R1連接)上應用了lipo對于脂質陽性且R2連接到脂質陰性),由A0讀取的中點電壓由下式給出:

V Lipo = A0 * v參考*(R1 + R2)/(R2 * 1024)

vReference是“5V”端子的電壓

如果R1 = R2 = 100K且vReference = 5

v Lipo = A0 * 0.009765625

正如您所見,我不得不賠償測量值。

使用脂質充電器檢查充電電路

充電期間請勿打開電池

最終裝配

如果一切正常,則組件,注意不要破壞任何電線。如果沒有。.再次檢查電路!

我建議使用兩根塑料吸管作為空中保護器 -

將12mm的切口放入一根稻草的末端,將它推入另一根稻草。

切開2個相距約15mm的小孔,小心地將電線以相反的方向推入吸管。

使用Blenderm膠帶將吸管固定在蓋子上。

屏幕確實需要屏蔽太陽。我制作了一個薄的鍍錫板護罩并用膠水和攪拌器膠帶將其固定。

將尼龍搭扣添加到接收器底座和RC發射器上,以便攜帶接收器。

為飛行場做好準備

目前,發射器正在使用PC桌的默認基準高度。

刪除發射器中的No Serial跳線并將其連接到PC。

將Arduino IDE重置為Arduino Pro Mini 3V3 8Mhz并打開串行監視器。

以米為單位查找高度為你的領域。

鍵入:newbase = xxx.x(例如 newbase = 123.4 )進入監視器并選擇發送

NB 1小數位并在米

此值存儲在Eeprom中。它會覆蓋默認的基準高度,可以重寫用于其他網站。

替換無串行鏈接并重新開箱。

安全

433Mhz遠離2.4Ghz電磁頻譜中的35Mhz。

在測試飛行前,我用兩種RC發射器類型(在不同的平面上)進行了測距。

做同樣的事情是明智的。

在現場

為RC發射器供電

關閉433Mhz接收器上的串行輸出

為433Mhz接收器供電

為飛機供電

將433Mhz變送器連接到飛機上的脂/備用伺服器 - 觀察極性!

等待13秒進行433Mhz握手

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 發射器
    +關注

    關注

    7

    文章

    919

    瀏覽量

    55342
  • Arduino
    +關注

    關注

    190

    文章

    6526

    瀏覽量

    196954
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    探究LTC4125:5W無線功率發射器的卓越性能與應用

    探究LTC4125:5W無線功率發射器的卓越性能與應用 在無線充電技術日益普及的今天,電子工程師們對于高效、安全且多功能的無線功率發射解決方
    的頭像 發表于 02-24 10:50 ?175次閱讀

    STWBC86JR:5W無線功率發射器的卓越之選

    STWBC86JR:5W無線功率發射器的卓越之選 在無線充電技術飛速發展的今天,電子工程師們對于高效、集成度高的無線功率發射解決方案的需求日
    的頭像 發表于 01-28 09:35 ?489次閱讀

    CC1175:高性能窄帶系統射頻發射器的卓越之選

    CC1175:高性能窄帶系統射頻發射器的卓越之選 在當今的無線通信領域,高性能、低功耗的射頻發射器是眾多應用的核心需求。德州儀器(TI)的CC1175正是這樣一款出色的產品,它專為窄帶系統設計,在
    的頭像 發表于 01-06 09:15 ?536次閱讀

    CC1150低功耗亞1GHz射頻發射器:設計與應用全解析

    CC1150低功耗亞1GHz射頻發射器:設計與應用全解析 在當今的電子設備中,無線通信技術的應用越來越廣泛,尤其是在低功耗、短距離通信領域。CC1150作為一款低功耗亞1GHz射頻發射器,憑借其出色
    的頭像 發表于 01-05 14:55 ?404次閱讀

    900MHz全雙工無線發射器參考設計

    900MHz全雙工無線發射器參考設計
    發表于 10-30 15:31 ?3次下載

    900MHz全雙工無線發射器參考設計原理圖資料

    900MHz全雙工無線發射器參考設計原理圖
    發表于 10-30 15:24 ?10次下載

    ?STWBC86 5W Qi兼容無線供電發射器芯片深度解析與技術應用指南

    STMicroelectronics STWBC86 Qi兼容無線功率發射器是一種高度集成的單片解決方案,適用于高達5W的應用。STWBC86具有集成式低阻抗全/半橋逆變器,可實現高效率和低功率耗散。
    的頭像 發表于 10-29 15:10 ?1628次閱讀
    ?STWBC86 5W Qi兼容<b class='flag-5'>無線</b>供電<b class='flag-5'>發射器</b>芯片深度解析與技術應用指南

    TX75E16五級16通道超聲發射器技術解析與應用指南

    Texas Instruments TX75E16五級16通道發射器是一款高度集成的高性能發射器,用于超聲成像系統。該設備具有16脈沖電路和16個發送/接收開關(T/R或TR開關),并支持片上波束形成器 (TxBF)。該器件還集
    的頭像 發表于 09-05 14:59 ?884次閱讀
    TX75E16五級16通道超聲<b class='flag-5'>發射器</b>技術解析與應用指南

    用于 CDMA 和 PCS 家庭小區應用的雙頻發射器 skyworksinc

    電子發燒友網為你提供()用于 CDMA 和 PCS 家庭小區應用的雙頻發射器相關產品參數、數據手冊,更有用于 CDMA 和 PCS 家庭小區應用的雙頻發射器的引腳圖、接線圖、封裝手冊、中文資料、英文
    發表于 08-21 18:33
    用于 CDMA 和 PCS 家庭小區應用的雙頻<b class='flag-5'>發射器</b> skyworksinc

    藍牙發射器AT串口指令通訊方案

    文檔介紹了藍牙發射器方案 參數、應用、通訊方式等內容
    的頭像 發表于 07-23 10:17 ?610次閱讀
    藍牙<b class='flag-5'>發射器</b>AT串口指令通訊方案

    MIPI發射器能否在此 CSI 時鐘頻率下與 CYUSB3065 連接?

    我們有時鐘頻率為 600Mhz 的 MIPI 發射器,處理后的圖像以 30fps YUV422 8 位、2 通道輸出,分辨率為 1510x1510。 該發射器能否在此 CSI 時鐘頻率下
    發表于 07-16 06:54

    Analog Devices Inc. AD9986 4T2R射頻發射器和觀察接收數據手冊

    Analog Devices Inc. AD9986 4T2R直接射頻發射器和觀察接收是一款高度集成的器件,采用16位、12GSPS最大采樣率射頻DAC內核和12位、6GSPS速率射頻ADC內核。AD9986提供四個
    的頭像 發表于 06-30 14:34 ?961次閱讀
    Analog Devices Inc. AD9986 4T2R射頻<b class='flag-5'>發射器</b>和觀察接收<b class='flag-5'>器</b>數據手冊

    LE 發射器和接收測試返回錯誤結果是什么原因導致的?

    我有特定的代碼運行來啟動和停止一些無線電頻率測試。 目前只關注 BLE 發射器和接收測試。 然而,此處第 6 節 LE 測試結束時的文檔指出,當 le 發射器測試處于活動狀態時,接收
    發表于 06-30 08:08

    JCMsuite:旋轉對稱發射器

    示例取自Gregersen等人[1]。幾何形狀為非理想微柱結構: 單光子柱發射器(旋轉對稱) 多層膜是在布局文件layout.jcm中由外部形狀為梯形的特殊原始多層創建的(見下文)。 參數掃描
    發表于 05-26 08:47

    JCMsuite:旋轉對稱發射器

    示例取自Gregersen等人[1]。幾何形狀為非理想微柱結構: 單光子柱發射器(旋轉對稱) 多層膜是在布局文件layout.jcm中由外部形狀為梯形的特殊原始多層創建的(見下文)。參數掃描
    發表于 04-29 08:46