Cov txheej txheem:

Arduino Atmospheric Daim Kab Xev Ntsuas/ MS5611 GY63 GY86 Qhia tawm: 4 Cov Kauj Ruam (nrog Duab)
Arduino Atmospheric Daim Kab Xev Ntsuas/ MS5611 GY63 GY86 Qhia tawm: 4 Cov Kauj Ruam (nrog Duab)

Video: Arduino Atmospheric Daim Kab Xev Ntsuas/ MS5611 GY63 GY86 Qhia tawm: 4 Cov Kauj Ruam (nrog Duab)

Video: Arduino Atmospheric Daim Kab Xev Ntsuas/ MS5611 GY63 GY86 Qhia tawm: 4 Cov Kauj Ruam (nrog Duab)
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Lub Xya hli ntuj
Anonim
Arduino Atmospheric Daim Kab Xev Ntsuas/ MS5611 GY63 GY86 Qhia tawm
Arduino Atmospheric Daim Kab Xev Ntsuas/ MS5611 GY63 GY86 Qhia tawm

Nov yog qhov ntsuas cua/qhov ntsuas siab tiag tiag tab sis koj yuav pom qhov laj thawj rau lub npe los ntawm kev saib hauv video.

MS5611 lub siab ntsuas, pom ntawm Arduino GY63 thiab GY86 cov laug cam tawg, muab kev ua tau zoo kawg. Nyob rau ib hnub nyob ntsiag to nws yuav ntsuas koj qhov siab kom tsis pub dhau 0.2m. Qhov no ntsuas tau qhov kev ncua deb ntawm koj lub taub hau mus rau qhov chaw sab nraud thiab rho nws tawm ntawm qhov deb ntawm koj txhais taw mus rau qhov chaw sab nraud (los ntawm kev ntsuas siab - uas yog qhov hnyav ntawm huab cua saum toj no). Cov cuab yeej zoo nkauj no muaj ntau yam uas yuav yooj yim ntsuas qhov siab ntawm Everest - thiab tseem tuaj yeem ntsuas qis dua ob peb ntiv tes.

Txoj haujlwm no tau tsom mus rau: phiaj xwm tsev kawm ntawv, piv txwv ntawm kev hloov kho Arduino code thiab qhov chaw pib zoo los tshawb nrhiav siv MS5611 sensor. Muaj ntau cov lus nug hauv rooj sab laj los ntawm cov uas muaj teeb meem nrog lub ntsuas no. Txoj hauv kev ntawm no ua rau siv nws yooj yim heev. Tom qab ua txoj haujlwm no koj yuav tau ua haujlwm zoo txhawm rau txhim kho lwm yam kev cuam tshuam nrog rau daim ntawv thov.

Txhua lub ntsuas nws muaj nws tus kheej ntsuas ntsuas uas yuav tsum tau nyeem thiab siv los kho cov ntaub ntawv. Muaj lub tsev qiv ntawv muaj los pab tsav cov no. Cov cai pom ntawm no siv lub tsev qiv ntawv los nyeem thiab tom qab ntawd hloov lawv mus rau qhov siab thiab qhia lawv ntawm LCD Shield.

Ua ntej peb yuav xa cov ntaub ntawv mus rau tus saib xyuas hauv PC/laptop rau kev sim ua ntej. Cov no qhia qee lub suab nrov thiab yog li peb ntxiv lub lim los ua kom lawv du. Tom qab ntawd peb yuav ntxiv cov zaub LCD kom chav nyob tuaj yeem ua haujlwm ntawm nws tus kheej thiab koj tuaj yeem sim ntsuas koj qhov siab - lossis lwm yam.

Nco tseg GY63 pawg thawj coj tsuas muaj MS5611 lub siab ntsuas. GY86 hu ua 10 degrees ntawm pawg thawj coj saib xyuas kev ywj pheej thiab tseem suav nrog 3 axis accelerometer, 3 axis gyro thiab 3 axis magnetometer rau tsuas yog ob peb $ ntau dua.

Koj yuav xav tau:

1. Arduino UNO (lossis lwm yam nrog tus qauv pinout) thiab nws USB cable

2. GY63 breakout board lossis GY86

3. 4 Dupont coj tus txiv neej -poj niam - lossis txuas xov hlau

4. Arduino LCD keypad shield

5.9v roj teeb thiab txhuas

6. 2.54mm qhov (socket) tau xaiv tab sis pom zoo)

Kev npaj

Rub tawm Arduino IDE (ib puag ncig txhim kho ib puag ncig) los ntawm:

Qee cov khoom siv rau kev txaus siab

MS5611 muab nws qhov kev ua tau zoo los ntawm qhov nruab nrab tus lej loj ntawm kev ntsuas. Nws tuaj yeem ua 4096 3 byte (24bit) kev ntsuas sib piv hauv tsuas yog 8ms thiab muab tus nqi nruab nrab. Nws yuav tsum ntsuas ob qho tib si siab thiab kub yog li cov ntaub ntawv siab tuaj yeem raug kho rau sab hauv. Yog li nws tuaj yeem xa tawm ib ncig 60 khub ntawm kev ntsuas siab thiab ntsuas kub ib pliag.

Cov ntaub ntawv muaj nyob ntawm:

Kev sib txuas lus yog los ntawm I2C. Yog li lwm qhov I2C cov cuab yeej tuaj yeem sib faib lub npav (zoo li yog rooj plaub ntawm GY86 10DOF pawg thawj coj uas txhua lub chips nyob ntawm I2C).

Kauj ruam 1: Tau txais MS5611 Library

Ntau ntawm Arduino sensors txawm siv lub tsev qiv ntawv txheem uas suav nrog Arduino IDE lossis muab nrog cov ntaub ntawv zip nrog lub tsev qiv ntawv uas tuaj yeem teeb tsa tau yooj yim. Qhov no zoo li tsis yog rooj plaub rau MS5611 cov cim. Txawm li cas los xij tshawb nrhiav pom: https://github.com/gronat/MS5611 uas muaj lub tsev qiv ntawv rau MS5611, suav nrog ua qhov ntsuas kub.

Kev xaiv 1

Mus rau lub vev xaib saum toj no, nyem 'Clone lossis rub tawm' thiab xaiv 'Download ZIP'. Qhov no yuav tsum xa MS5611-master.zip rau koj phau ntawv teev npe rub tawm. Tam sim no, yog tias koj xav tau, txav nws mus rau daim nplaub tshev uas koj tuaj yeem pom nws yav tom ntej. Kuv siv cov npe hu ua 'cov ntaub ntawv' ntxiv rau kuv cov ntawv Arduino.

Hmoov tsis zoo, rub tawm cov ntaub ntawv.zip tsis suav nrog cov qauv piv txwv thiab nws yuav zoo ntxiv lub tsev qiv ntawv thiab piv txwv rau Arduino IDE. Muaj qhov piv txwv yam tsawg kawg hauv README.md cov ntaub ntawv uas tuaj yeem theej thiab muab tso rau hauv daim duab thiab khaws tseg. Nov yog ib txoj hauv kev kom mus.

Kev xaiv 2

Txhawm rau ua kom yooj yim dua los ua cov cai hauv cov lus qhia no kuv tau ntxiv qhov piv txwv yam tsawg kawg nkaus saum toj no thiab cov piv txwv qhia ntawm no rau lub tsev qiv ntawv thiab txuas nrog.zip cov ntaub ntawv hauv qab no uas yuav nruab rau hauv Arduino IDE.

Rub tawm cov ntawv zip hauv qab no. Tsiv qhov no mus rau cov ntawv zoo dua yog tias koj xav tau.

Pib Arduino IDE. Nyem Sketch> suav nrog Tsev Qiv Ntawv> Ntxiv zip cov ntaub ntawv thiab xaiv cov ntawv. Rov pib dua IDE. IDE yuav tam sim no ob leeg muaj lub tsev qiv ntawv teeb tsa ntxiv rau txhua qhov piv txwv qhia ntawm no. Txheeb los ntawm txhaj Cov Ntaub Ntawv> piv txwv >> MS5611-master. Peb daim duab kos yuav tsum tau teev tseg.

Kauj Ruam 2: Txuas lub Sensor mus rau Arduino thiab Xeem

Txuas lub Sensor mus rau Arduino thiab Xeem
Txuas lub Sensor mus rau Arduino thiab Xeem
Txuas lub Sensor mus rau Arduino thiab Xeem
Txuas lub Sensor mus rau Arduino thiab Xeem

GY63/GY86 cov laug cam feem ntau tuaj nrog lub taub hau tab sis tsis muag. Yog li nws yog koj qhov kev xaiv los txhawm rau txuas lub taub hau hauv qhov chaw thiab siv txiv neej-poj niam Dupont ua, lossis (raws li kuv tau txiav txim siab) cov laug txuas ncaj qha rau lub rooj tsavxwm thiab ntxiv tus pin rau cov hlau lead txhawm rau ntsaws rau hauv Arduino. Qhov kev xaiv tom kawg zoo dua yog tias koj xav tias koj yuav xav muab cov laug cam tso rau hauv ib qhov haujlwm tom qab. Tus qub zoo dua yog tias koj xav siv lub rooj tsavxwm rau kev sim. Unsoldering ua yog yooj yim dua li tus pin header.

Cov kev sib txuas xav tau yog:

GY63/GY86 Arduino

VCC - 5v Fais Fab GND - GND Av SCL - A5 I2C moos> SDA - A4 I2C cov ntaub ntawv

Txuas lub sensor board rau Arduino raws li hais los saum toj no thiab txuas Arduino mus rau PC/laptop ntawm nws lub USB. Kuj npog lub ntsuas nrog qee yam khoom tsis zoo/dub. Lub sensor yog rhiab rau lub teeb (zoo li yog qhov xwm txheej rau feem ntau ntawm hom kev ntsuas no).

Pib Arduino IDE. Nyem:

Cov ntaub ntawv> piv txwv >> MS5611-master> MS5611data2serial.

Ib qho piv txwv tshiab ntawm IDE yuav tshwm nrog cov duab kos. Nyem rau khawm upload (xub xub).

Tom ntej no pib cov phiaj xwm phiaj xwm - nyem Cov Cuab Yeej> Cov Plotter thiab yog tias tsim nyog teeb tsa baud rau 9600. Cov ntaub ntawv raug xa mus yog qhov siab hauv Pascals. Tom qab ib pliag los yog li ntawd nws yuav rov ntsuas thiab nce thiab nqis qis dua los ntawm qhov hais tias 0.3m yuav tsum qhia tias qis dua thiab nce ntawm kab (qhov siab qis dua siab dua).

Cov ntaub ntawv muaj qee lub suab nrov. Saib thawj zaj lus saum toj no. Qhov no tuaj yeem ua kom yooj yim siv lub lim digital (cov cuab yeej muaj txiaj ntsig tiag tiag).

Cov kab zauv lim yog:

tus nqi = tus nqi + K (tus nqi tshiab)

qhov twg 'tus nqi' yog cov ntaub ntawv lim, thiab 'tshiab' yog qhov ntsuas tshiab tshaj plaws. Yog tias K = 1 tsis muaj kev lim dej. Txog qhov qis dua ntawm K cov ntaub ntawv tau du nrog lub sijhawm tas li ntawm T/K qhov twg T yog lub sijhawm nruab nrab ntawm kev kuaj. Ntawm no T nyob ib puag ncig 17ms yog li tus nqi ntawm 0.1 muab lub sijhawm tas li ntawm 170ms lossis ib puag ncig 1/6s.

Lub lim tuaj yeem ntxiv los ntawm:

Ntxiv qhov sib txawv rau cov ntaub ntawv lim ua ntej teeb tsa ():

ntab lim = 0;

Tom qab ntawd ntxiv qhov sib npaug lim tom qab lub siab =…. kab.

lim = lim + 0.1*(siab-lim);

Nws yog lub tswv yim zoo los pib ua tus nqi lim rau thawj zaug nyeem. Yog li ntxiv qhov 'yog' cov lus nyob ib ncig ntawm kab ntawv saum toj no uas ua li no nws zoo li:

yog (lim! = 0) {

lim = lim + 0.1*(siab-lim); } lwm yam {lim = siab; // thawj qhov kev nyeem ntawv yog li teeb tsa los nyeem}

Qhov kev xeem '! =' Yog 'tsis sib npaug'. Yog li yog tias 'lim' tsis sib npaug rau 0 lub lim lim tau ua tiav tab sis yog nws yog tom qab ntawd nws tau teeb tsa rau kev nyeem siab.

Thaum kawg peb yuav tsum hloov 'siab' rau 'lim dej' hauv kab lus Serial.println yog li peb pom cov txiaj ntsig lim.

Kev kawm tau zoo tshaj plaws yog ua tiav los ntawm kev hloov pauv saum tus kheej. Txawm li cas los xij kuv suav nrog cov no hauv qhov piv txwv MS5611data2serialWfilter. Yog li yog tias muaj teeb meem piv txwv tuaj yeem thauj khoom.

Tam sim no upload cov cai rau Arduino thiab pom qhov kev txhim kho. Saib cov phiaj xwm thib ob saum toj no thiab nco ntsoov Y nplai tau nthuav dav x2.

Sim tus nqi qis dua rau qhov lim tas li, hais 0.02 hloov 0.1, thiab pom qhov sib txawv. Cov ntaub ntawv yooj yim dua tab sis nrog cov lus teb qeeb dua. Nov yog qhov kev pom zoo uas yuav tsum tau nrhiav thaum siv cov lim yooj yim no. Tus yam ntxwv zoo ib yam li RC (tiv taus thiab muaj peev xwm) lim tau siv dav hauv cov hluav taws xob hluav taws xob.

Kauj Ruam 3: Ua Nws Ib Leeg

Tam sim no peb yuav ntxiv daim iav LCD Keypad, hloov lub siab mus rau qhov siab hauv meters, thiab qhia nws ntawm cov zaub. Peb tseem yuav ntxiv lub peev xwm los xoom tus nqi los ntawm nias lub pob "Xaiv".

Nrog lub LCD tiv thaiv ntawm Arduino lub sensor yuav tsum tau txuas nrog lub LCD tiv thaiv. Hmoov tsis zoo LCD tiv thaiv feem ntau tuaj tsis muaj qhov tsim nyog. Yog li cov kev xaiv yog ua kom txuas txuas lossis tau txais qee lub qhov ntsawb. Cov kab hluav taws xob muaj nyob ntawm ebay tsis ntau ntau dua li tus nqi xa ntawv. Tshawb nrhiav ntawm '2.54mm lub qhov (socket) sawb' thiab nrhiav cov uas zoo ib yam li ntawm ntawm Arduino. Cov no feem ntau tuaj hauv 36 lossis 40 tus pin ntev. Kuv yuav zam qhov tig tus pin vim tias lawv tsis tob txaus rau tus qauv Dupont ua.

Lub qhov (socket) sawb yuav tsum tau txiav kom ntev thiab qhov txiav yuav tsum tau ua nyob rau hauv qhov chaw ib yam li tus pin. Yog li rau ib tus lej 6 tus lej - tshem tus lej 7 nrog qee tus pliers zoo, tom qab ntawd txiav ntawm qhov chaw uas siv lub hacksaw me. Kuv ua daim ntawv xaus kom lawv zoo.

Nco ntsoov tias tsis muaj cov choj txuas thaum siv lawv mus rau ntawm lub rooj tsavxwm.

Nrog rau qhov kev txiav txim siab tsim nyog ntawm kev txuas lub ntsuas hluav taws xob ntsaws lub LCD tiv thaiv mus rau Arduino thiab txuas lub sensor tib tus pin - tab sis tam sim no ntawm LCD daim thaiv.

Kuj tau txais lub roj teeb thiab npaj txhuas. Kuv tau ua kuv cov hmoov txhuas los ntawm cov khoom hauv kuv lub thoob khib nyiab tab sis lawv kuj muaj nyob ntawm ebay - suav nrog qhov kev xaiv zoo uas suav nrog lub thawv roj teeb thiab hloov. Tshawb nrhiav ntawm 'PP3 2.1mm txhuas'.

Kev siv tam sim no nyob ib puag ncig 80ma. Yog li yog tias koj xav khiav ntau dua li ob peb feeb xav txog lub roj teeb 9v loj dua PP3.

Kauj Ruam 4: Ntxiv Code rau Qhov Siab Tshaj thiab LCD

Image
Image

Peb yuav tsum tau ua me ntsis ntxiv coding los hloov lub siab kom siab thiab tsav cov zaub.

Thaum pib ntawm qhov kos duab ntxiv lub tsev qiv ntawv tso saib thiab qhia qhov no pins siv:

#suav nrog

// pib lub tsev qiv ntawv nrog cov lej ntawm tus lej sib cuam tshuam LiquidCrystal lcd (8, 9, 4, 5, 6, 7);

Tom ntej no peb xav tau qee qhov kev hloov pauv thiab muaj nuj nqi los nyeem cov ntawv khawm. Tag nrho cov no txuas nrog cov tswv yim analog A0. Txhua lub khawm muab qhov sib txawv sib txawv rau A0. Kev tshawb fawb ntawm 'arduino lcd shield cov nyees khawm' pom qee qhov zoo ntawm:

www.dfrobot.com/wiki/index.php/Arduino_LCD_KeyPad_Shield_(SKU:_DFR0009)#Sample_Code

Ntxiv cov cai no ua ntej teeb tsa ():

// txhais qee qhov txiaj ntsig siv los ntawm lub vaj huam sib luag thiab cov nyees khawm

int lcd_key = 0; int adc_key_in = 0; #define btnRIGHT 0 #define btnUP 1 #define btnDOWN 2 #define btnLEFT 3 #define btnSELECT 4 #define btnNONE 5 // nyeem cov nyees khawm int read_LCD_buttons () {adc_key_in = analogRead (0); // nyeem tus nqi los ntawm lub sensor // kuv cov nyees khawm thaum nyeem tau nyob hauv cov valies no: 0, 144, 329, 504, 741 // peb ntxiv kwv yees li 50 rau cov txiaj ntsig ntawd thiab tshawb xyuas seb peb puas nyob ze yog (adc_key_in> 1000) rov btnNONE; // Peb ua qhov no 1 qhov kev xaiv rau qhov laj thawj nrawm vim nws yuav yog qhov tshwm sim feem ntau yog (adc_key_in <50) rov btnRIGHT; yog (adc_key_in <250) rov btnUP; yog (adc_key_in <450) rov btnDOWN; yog (adc_key_in <650) rov btnLEFT; yog (adc_key_in <850) rov btnSELECT; rov btnNONE; // thaum txhua tus neeg ua tsis tiav, xa rov qab no …}

Qhov siab feem ntau yog xoom ntawm qhov pib. Yog li peb xav tau qhov hloov pauv rau ob qhov siab thiab siv. Ntxiv cov no ua ntej teeb tsa () thiab ua haujlwm saum toj no:

ntab mtr;

ntab ref = 0;

Kev hloov pauv los ntawm kev siab hauv Pascals rau meters yog yuav luag raws qhov faib los ntawm 12 ntawm qib hiav txwv. Cov mis no zoo rau feem ntau ntsuas hauv av. Muaj cov qauv zoo dua uas tsim nyog rau kev hloov pauv ntawm qhov chaw siab. Siv cov no yog tias koj yuav siv qhov no los sau qhov siab ntawm lub dav hlau ya.

Qhov kev siv yuav tsum tau teeb tsa thawj qhov kev nyeem siab yog li peb pib ntawm qhov siab qhov siab thiab thaum nias lub khawm SELECT. Ntxiv, tom qab lim cov cai, thiab ua ntej Serial.println nqe lus:

yog (ref == 0) {

ref = lim/12.0; } yog (read_LCD_buttons () == btnSELECT) {ref = lim/12.0; }

Tom qab qhov no ntxiv qhov ntsuas qhov siab:

mtr = ref -lim/12.0;

Thaum kawg hloov cov ntawv Serial.println xa 'mtr' hloov 'lim', thiab ntxiv cov cai xa 'mtr' mus rau LCD:

Serial.println (mtr); // Xa qhov siab ntawm cov lej (UART)

lcd.setCursor (0, 1); // kab 2 lcd.print (mtr);

Txhua qhov kev hloov pauv ntawm no suav nrog hauv piv txwv MS5611data2lcd. Thauj khoom li no hauv kauj ruam 2.

Muaj ib qho kawg mod uas yuav pab tau. Cov zaub tsis yooj yim nyeem thaum nws tau hloov kho tshiab 60 zaug ib pliag. Peb lub lim tau ua kom cov ntaub ntawv du nrog lub sijhawm tas li ntawm 0.8s. Yog li hloov kho cov zaub txhua 0.3s zoo li txaus.

Yog li ntxiv lub txee tom qab txhua lwm cov ntsiab lus sib txawv ntawm qhov pib ntawm daim duab (piv txwv li tom qab ntab ref = 0;):

int kuv = 0;

Tom qab ntawd ntxiv cov lej kom nce ntxiv 'i' thiab ib qho 'yog' nqe lus kom khiav thaum nws mus txog 20 thiab tom qab ntawd teeb nws rov qab rau xoom thiab txav cov Serial thiab lcd cov lus txib hauv 'yog' nqe lus yog li cov no tsuas yog ua tiav txhua 20 nyeem:

kuv += 1;

yog (i> = 20) {Serial.println (mtr); // Xa qhov siab ntawm cov lej (UART) lcd.setCursor (0, 1); // kab 2 lcd.print (mtr); kuv = 0; }

Kuv tsis suav nrog qhov piv txwv nrog qhov kev hloov kho zaum kawg no txhawm rau txhawb kom nkag mus rau tus lej tus kheej uas pab kev kawm.

Txoj haujlwm no yuav tsum muab lub hauv paus pib zoo piv txwv rau lub ntsuas cua digital. Rau cov uas yuav xav txiav txim siab siv hauv RC qauv - tshawb rau OpenXvario rau tus lej uas ua kom muaj qhov siab thiab qhov ntsuas sib txawv rau Frsky thiab Turnigy 9x lub tshuab xa xov telemetry.

Pom zoo: