Obsah:

A Micro: bit Dive-O-Meter: 8 Steps (with Pictures)
A Micro: bit Dive-O-Meter: 8 Steps (with Pictures)

Video: A Micro: bit Dive-O-Meter: 8 Steps (with Pictures)

Video: A Micro: bit Dive-O-Meter: 8 Steps (with Pictures)
Video: BBC Master 128: The evolved 8-bit computer from Acorn 2024, Listopad
Anonim
Micro: bit Dive-O-Meter
Micro: bit Dive-O-Meter
Micro: bit Dive-O-Meter
Micro: bit Dive-O-Meter
Micro: bit Dive-O-Meter
Micro: bit Dive-O-Meter

Léto je tady, čas u bazénu!

Dobrá příležitost vzít sebe a své micro: bit ven, a v tomto případě dokonce do bazénu.

Zde popsaný mikro: bitový potápěčský měřič je jednoduchý hloubkoměr, který vám umožní změřit, jak hluboko se potápíte. Skládá se pouze z mikro: bitu, baterie nebo LiPo, okrajového konektoru pro micro: bit, senzoru barometrického tlaku BMP280 nebo BME280 a některých propojovacích kabelů. Použití Pimoroni enviro: bit dělá věci ještě jednodušší. To vše je zabaleno do dvou vrstev vodotěsných čirých plastových nebo silikonových sáčků, přičemž některé váhy jsou přidány k vyrovnání vztlakové síly.

Jedná se o aplikaci zařízení pro snímač tlaku micro: bit, které jsem popsal v předchozím pokynu.

Zařízení můžete používat e. G. na potápěčské soutěže s přáteli a rodinou, nebo zjistit, jak hluboký ten rybník skutečně je. Testoval jsem to pomocí nejhlubšího bazénu v mém okolí a zjistil jsem, že funguje minimálně do hloubky 3,2 metru. Asi pět metrů je teoretické maximum. Zatím jsem jeho přesnost nijak podrobně netestoval, ale hlášená čísla byla minimálně v očekávaném rozmezí.

Několik poznámek: Toto není nástroj pro skutečné potápěče. Váš micro: bit se poškodí, pokud zvlhne. Tento návod používáte na vlastní riziko.

Aktualizace 27. května: Nyní můžete najít HEX skript MakeCode, který můžete načíst přímo do svého mikro: bitu. Viz krok 6. Aktualizace 13. června: Přidána verze Enviro: bit a kabel. Viz kroky 7 a 8

Krok 1: Teorie za zařízením

Žijeme na dně oceánu. Tlak dolů je zde asi 1020 hPa (hectoPascal), protože hmotnost vzduchového sloupce zde vytvořeného do prostoru je asi 1 kg na centimetr čtvereční.

Hustota vody je mnohem vyšší, protože jeden litr vzduchu váží asi 1,2 g a jeden litr vody 1 kg, tj. Asi 800krát. Protože pokles barometrického tlaku je asi 1 hPa na každých 8 metrů výšky, tlakový zisk je 1 hPa na každý centimetr pod vodní hladinou. V hloubce asi 10 m je tlak 2 000 hPa nebo dvě atmosféry.

Zde použitý snímač tlaku má rozsah měření mezi 750 a 1500 hPa s rozlišením přibližně jeden hPa. To znamená, že můžeme měřit hloubky až 5 metrů v rozlišení asi 1 cm.

Zařízení by bylo hloubkoměrem typu Boyle Marriotte. Jeho montáž je celkem jednoduchá a popsaná v pozdějším kroku. Senzor využívá protokol I2C, takže přijde vhod hranový konektor pro micro: bit. Nejdůležitější částí jsou vodotěsné sáčky, protože jakákoli vlhkost poškodí mikro: bit, senzor nebo baterii. Vzhledem k tomu, že uvnitř pytlů bude zachycen vzduch, přidání závaží pomáhá kompenzovat vztlakovou sílu.

Krok 2: Používání zařízení

Používání zařízení
Používání zařízení
Používání zařízení
Používání zařízení
Používání zařízení
Používání zařízení
Používání zařízení
Používání zařízení

Skript, jak je podrobně ukázán v pozdějším kroku, je variací skriptu, který jsem vytvořil dříve pro tlakoměr. K otestování zařízení můžete použít jednoduchou tlakovou komoru zde popsanou.

Pro účely potápění ukazuje hloubku v metrech, vypočítanou z měření tlaku, buď jako sloupcový graf v krocích po 20 cm, nebo na vyžádání v číslech.

Pomocí tlačítka A na mikro: bitu nastavíte aktuální tlak jako referenční hodnotu tlaku. Pro potvrzení zadání matice jednou blikne.

Můžete to použít buď ke zjištění, jak hluboko se potápíte, nebo k záznamu, jak hluboko jste se potápěli.

V prvním případě nastavte aktuální vnější tlak vzduchu jako referenční. Ve druhém případě nastavte tlak v nejhlubším místě, kde jste jako referenci tlaku, což vám pak umožní ukázat, jak hluboko jste byli, když jste zpět na povrchu. Tlačítko B zobrazuje hloubku vypočítanou z rozdílu tlaku jako číselnou hodnotu v metrech.

Krok 3: Požadované materiály

Požadovaný materiál
Požadovaný materiál
Požadovaný materiál
Požadovaný materiál
Požadovaný materiál
Požadovaný materiál

Micro: bit. Např. za 13 GBP/16 Euro v Pimoroni UK/DE.

Okrajový konektor (Kitronic nebo Pimoroni), 5 GBP. Použil jsem verzi Kitronic.

Senzor BMP/BME280. Použil jsem snímač BMP280 od Banggood, 4,33 Euro za tři jednotky.

Propojovací kabely pro připojení senzoru a konektoru na hraně.

Vynikající alternativou k výše uvedené kombinaci konektoru/senzoru na hraně by mohl být Pimoroni enviro: bit (zatím není testováno, viz poslední krok).

Sada baterií nebo LiPo pro micro: bit.

Napájecí kabel s vypínačem (volitelný, ale užitečný). Vyčistěte vodotěsné sáčky. Použil jsem silikonové pouzdro na mobilní telefon a jeden nebo dva malé sáčky ziploc. Ujistěte se, že materiál je dostatečně silný, aby piny na hranovém konektoru nepoškodily tašky.

Nějaké váhy. Použil jsem kusy olověného závaží, které se používají k rybolovu.

Arduino IDE a několik knihoven.

Krok 4: Sestavení

Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění

Nainstalujte Arduino IDE a požadované knihovny. Podrobnosti jsou popsány zde.

(Není vyžadováno pro skript MakeCode.) Vzhledem k tomu, že používáte hranový konektor Kitronik, připájejte kolíky k portům I2C 19 a 20. To není vyžadováno pro okrajový konektor Pimoroni. Pájku rozepněte k vylomení senzoru a pomocí propojovacích kabelů připojte senzor a okrajový konektor. Připojte VCC na 3 V, GND na 0 V, SCL na port 19 a SDA na port 20. Alternativně pájejte kabely přímo k průchodce. Připojte micro: bit k našemu počítači pomocí kabelu USB. Otevřete poskytnutý skript a rozbalte jej na micro: bit. Použijte sériový monitor nebo plotter, zkontrolujte, zda senzor poskytuje rozumná data. Odpojte micro: bit od počítače. Připojte baterii nebo LiPo k micro: bit. Stiskněte tlačítko B, přečtěte hodnotu Stiskněte tlačítko A. Stiskněte tlačítko B, načtěte hodnotu. Umístěte zařízení do dvou vrstev vzduchotěsných sáčků a ponechte v nich jen velmi málo vzduchu. V případě umístění kompenzujte vztlakovou sílu závažím. Zkontrolujte, zda je vše vodotěsné. Jděte do bazénu a hrajte.

Krok 5: Skript MicroPython

Skript pouze vezme hodnotu tlaku ze snímače, porovná ji s referenční hodnotou a poté z rozdílu vypočítá hloubku. Pro zobrazení hodnot jako sloupcového grafu se bere celé číslo a zbývající část hodnoty hloubky. První definuje výšku čáry. Zbytek je rozdělen do pěti zásobníků, které definují délku tyčí. Nejvyšší úroveň je 0 - 1 m, nejnižší 4 - 5 m. Jak již bylo zmíněno výše, stisknutím tlačítka A nastavíte referenční tlak, tlačítko B zobrazí „relativní hloubku“v metrech, zobrazenou jako číselnou hodnotu. Nyní jsou záporné a kladné hodnoty prezentovány jako sloupcový graf na matici LED stejným způsobem. Nebojte se optimalizovat skript pro své potřeby. Některé řádky můžete zrušit, aby se hodnoty zobrazily na sériovém monitoru nebo plotru IDE Arduino. Chcete -li emulovat funkci, můžete vytvořit zařízení, které jsem popsal v předchozím pokynu.

Nenapsal jsem tu část skriptu, která čte senzor. Nejsem si jistý zdrojem, ale rád bych poděkoval autorům. Jakékoli opravy nebo rady pro optimalizaci jsou vítány.

#zahrnout

#include Adafruit_Microbit_Matrix microbit; #define BME280_ADDRESS 0x76 unsigned long int hum_raw, temp_raw, pres_raw; podepsaný dlouhý int t_fine; uint16_t dig_T1; int16_t dig_T2; int16_t dig_T3; uint16_t dig_P1; int16_t dig_P2; int16_t dig_P3; int16_t dig_P4; int16_t dig_P5; int16_t dig_P6; int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; int8_t dig_H1; int16_t dig_H2; int8_t dig_H3; int16_t dig_H4; int16_t dig_H5; int8_t dig_H6; double press_norm = 1015; // počáteční hodnota dvojitá hloubka; // vypočítaná hloubka // -------------------------------------------- ---------------------------------------------------------- ---------------------- neplatné nastavení () {uint8_t osrs_t = 1; // Převzorkování teploty x 1 uint8_t osrs_p = 1; // Převzorkování tlaku x 1 uint8_t osrs_h = 1; // Převzorkování vlhkosti x 1 režim uint8_t = 3; // Normální režim uint8_t t_sb = 5; // Standby 1000ms uint8_t filtr = 0; // Odfiltrujte uint8_t spi3w_en = 0; // 3vodičové SPI Zakázat uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | režim; uint8_t config_reg = (t_sb << 5) | (filtr << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Serial.begin (9600); // nastavení rychlosti sériového portu Serial.print ("Tlak [hPa]"); // záhlaví pro sériový výstup Wire.begin (); writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); zpoždění (1000); } // ----------------------------------------------- ---------------------------------------------- neplatná smyčka () {double temp_act = 0,0, press_act = 0,0, hum_act = 0,0; podepsaný dlouhý int temp_cal; nepodepsané dlouhé int press_cal, hum_cal; int N; int M; double press_delta; // relativní tlak int depth_m; // hloubka v metrech, celočíselná část dvojnásobná hloubka_cm; // zbytek v cm readData (); // temp_cal = calibration_T (temp_raw); press_cal = calibration_P (pres_raw); // hum_cal = calibration_H (hum_raw); // temp_act = (double) temp_cal / 100.0; press_act = (double) press_cal / 100.0; // hum_act = (double) hum_cal / 1024.0; microbit.clear (); // reset LED matrix // Tlačítko A nastaví skutečnou hodnotu jako referenci (P nula) // Tlačítko B zobrazí aktuální hodnotu jako hloubku v metrech (počítáno z rozdílu tlaků) if (! digitalRead (PIN_BUTTON_A)) {// nastaví normální tlak vzduchu jako nula press_norm = press_act; // microbit.print ("P0:"); // microbit.print (press_norm, 0); // microbit.print ("hPa"); microbit.fillScreen (LED_ON); // jednou bliknutím potvrdíte zpoždění (100); } else if (! digitalRead (PIN_BUTTON_B)) {// zobrazení hloubky v metrech microbit.print (hloubka, 2); microbit.print ("m"); // Serial.println (""); } else {// vypočítat hloubku z rozdílu tlaku press_delta = (press_act - press_norm); // vypočítat hloubku relativního tlaku = (press_delta/100); // hloubka v metrech depth_m = int (abs (depth)); // hloubka v metrech hloubka_cm = (abs (hloubka) - hloubka_m); // zbytek /* // použitý pro vývoj Serial.println (hloubka); Serial.println (depth_m); Serial.println (depth_cm); */ // Kroky pro sloupcový graf if (hloubka_cm> 0,8) {// nastavení délky tyčí (N = 4); } else if (hloubka_cm> 0,6) {(N = 3); } else if (hloubka_cm> 0,4) {(N = 2); } else if (hloubka_cm> 0,2) {(N = 1); } else {(N = 0); }

if (depth_m == 4) {// set level == meter

(M = 4); } else if (depth_m == 3) {(M = 3); } else if (depth_m == 2) {(M = 2); } else if (depth_m == 1) {(M = 1); } else {(M = 0); // horní řádek} /* // používá se pro vývojové účely Serial.print ("m:"); Serial.println (depth_m); Serial.print ("cm:"); Serial.println (depth_cm); Serial.print ("M:"); Serial.println (M); // pro účely vývoje Serial.print ("N:"); Serial.println (N); // pro účely vývoje delay (500); */ // draw bargraph microbit.drawLine (0, M, N, M, LED_ON); }

// odeslání hodnoty na sériový port plotru

Serial.print (press_delta); // nakreslete indikační čáry a opravte zobrazený rozsah Serial.print ("\ t"); Serial.print (0); Serial.print ("\ t"); Serial.print (-500); Serial.print ("\ t"); Serial.println (500); zpoždění (500); // Měřte dvakrát za sekundu} // ----------------------------------------- ---------------------------------------------------------- ---------------------------------------------------------- -------- // pro snímač bmp/bme280 je vyžadováno následující, ponechat jako neplatné readTrim () {uint8_t data [32], i = 0; // Oprava 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 24); // Oprava 2014/while (Wire.available ()) {data = Wire.read (); i ++; } Wire.beginTransmission (BME280_ADDRESS); // Přidat 2014/Wire.write (0xA1); // Přidat 2014/Wire.endTransmission (); // Přidat 2014/Wire.requestFrom (BME280_ADDRESS, 1); // Přidat 2014/data = Wire.read (); // Přidat 2014/i ++; // Přidat 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 7); // Oprava 2014/while (Wire.available ()) {data = Wire.read (); i ++; } dig_T1 = (data [1] << 8) | data [0]; dig_P1 = (data [7] << 8) | data [6]; dig_P2 = (data [9] << 8) | data [8]; dig_P3 = (data [11] << 8) | data [10]; dig_P4 = (data [13] << 8) | data [12]; dig_P5 = (data [15] << 8) | data [14]; dig_P6 = (data [17] << 8) | data [16]; dig_P7 = (data [19] << 8) | data [18]; dig_T2 = (data [3] << 8) | data [2]; dig_T3 = (data [5] << 8) | data [4]; dig_P8 = (data [21] << 8) | data [20]; dig_P9 = (data [23] << 8) | data [22]; dig_H1 = data [24]; dig_H2 = (data [26] << 8) | data [25]; dig_H3 = data [27]; dig_H4 = (data [28] << 4) | (0x0F & data [29]); dig_H5 = (data [30] 4) & 0x0F); // Oprava 2014/dig_H6 = data [31]; // Oprava 2014/} void writeReg (uint8_t reg_address, uint8_t data) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (data); Wire.endTransmission (); } void readData () {int i = 0; uint32_t data [8]; Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 8); while (Wire.available ()) {data = Wire.read (); i ++; } pres_raw = (data [0] << 12) | (data [1] 4); temp_raw = (data [3] << 12) | (data [4] 4); hum_raw = (data [6] 3) - ((podepsaný dlouhý int) dig_T1 11; var2 = (((((((adc_T >> 4) - ((podepsaný dlouhý int) dig_T1))) * ((adc_T >> 4) - ((podepsaný dlouhý int) dig_T1))) >> 12) * ((podepsaný dlouhý int) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; return T; } unsigned long int calibration_P (signed long int adc_P) {signed long int var1, var2; unsigned long int P; var1 = (((signed long int) t_fine) >> 1) - (signed long int) 64000; var2 = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((podepsaný dlouhý int) dig_P6); var2 = var2 + ((var1 * ((podepsaný dlouhý int) dig_P5)) 2) + (((podepsaný dlouhý int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + ((((podepsaný dlouhý int) dig_P2) * var1) >> 1)) >> 18; var1 = ((((((32768+var1)))*((podepsaný dlouhý int) dig_P1)) >> 15); if (var1 == 0) {return 0; } P = (((nepodepsaný dlouhý int) ((((podepsaný dlouhý int) 1048576) -adc_P)-(var2 >> 12)))*3125; if (P <0x80000000) {P = (P << 1) / ((unsigned long int) var1); } else {P = (P / (unsigned long int) var1) * 2; } var1 = (((podepsaný dlouhý int) dig_P9) * ((podepsaný dlouhý int) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((podepsaný dlouhý int) (P >> 2)) * ((podepsaný dlouhý int) dig_P8)) >> 13; P = (nepodepsaný dlouhý int) ((podepsaný dlouhý int) P + ((var1 + var2 + dig_P7) >> 4)); návrat P; } unsigned long int calibration_H (signed long int adc_H) {signed long int v_x1; v_x1 = (t_fine - ((podepsaný dlouhý int) 76800)); v_x1 = ((((((adc_H << 14) -(((podepsaný dlouhý int) dig_H4) 15) * (((((((v_x1 * ((podepsaný dlouhý int) dig_H6)) >> 10) * (((v_x1 * ((podepsaný dlouhý int) dig_H3)) >> 11) + ((podepsaný dlouhý int) 32768))) >> 10) + ((podepsaný dlouhý int) 2097152)) * ((podepsaný dlouhý int) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 - (((((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((podepsaný dlouhý int) dig_H1))); v_x1 = (v_x1 419430400? 419430400: v_x1); return (unsigned long int) (v_x1 >> 12);

Krok 6: Zásadní zjednodušení: kód MakeCode/JavaScript

Zásadní zjednodušení: kód MakeCode/JavaScript
Zásadní zjednodušení: kód MakeCode/JavaScript
Zásadní zjednodušení: kód MakeCode/JavaScript
Zásadní zjednodušení: kód MakeCode/JavaScript

V květnu 2018 vydala společnost Pimoroni enviro: bit, který je dodáván se snímačem tlaku/vlhkosti/teploty BME280, světelným a barevným senzorem TCS3472 a mikrofonem MEMS. Kromě toho nabízejí knihovnu JavaScript pro editor MakeCode a knihovnu MicroPython pro tyto senzory.

K vývoji skriptů pro své zařízení používám jejich knihovnu MakeCode. V příloze naleznete odpovídající hex soubory, které můžete zkopírovat přímo do vašeho micro: bitu.

Níže najdete odpovídající kód JavaScript. Testování ve fondu fungovalo dobře s dřívější verzí skriptu, takže předpokládám, že budou fungovat také. Kromě základní verze s čárovým grafem existuje ještě verze s nitkovým křížem (X) a verze L, která má usnadnit čtení, zejména za zhoršených světelných podmínek. Vyberte si ten, kterému dáváte přednost.

ať Sloupec = 0

nechte metr = 0 nechte zůstat = 0 nechte řádek = 0 nechte delta = 0 nechte ref = 0 nechte is = 0 je = 1012 basic.showLeds (` # # # # # # #… # #. #. # #… # # # # # # # `) Ref = 1180 basic.clearScreen () basic.forever (() => {basic.clearScreen () if (input.buttonIsPressed (Button. A)) {Ref = envirobit.getPressure () basic.showLeds (`.) {basic.showString ("" + Row + "." + remain + "m") basic.pause (200) basic.clearScreen ()} else {Is = envirobit.getPressure () Delta = Is - Ref Meter = Math.abs (Delta) if (Meter> = 400) {Row = 4} else if (Meter> = 300) {Row = 3} else if (Meter> = 200) {Row = 2} else if (Meter> = 100) {Row = 1} else {Row = 0} remain = Meter - Row * 100 if (remain> = 80) {Column = 4} else if (remain> = 60) {Column = 3} else if (remain> = 40) {Column = 2} else if (remain> = 20) {Column = 1} else {Column = 0} for (let ColA = 0; ColA <= Column; ColA ++) {led.plot (C olA, Row)} basic.pause (500)}})

Krok 7: Enviro: bitová verze

Verze Enviro: bit
Verze Enviro: bit
Verze Enviro: bit
Verze Enviro: bit
Verze Enviro: bit
Verze Enviro: bit

Mezitím jsem obdržel enviro: bit (20 GBP) a power: bit (6 GBP), oba od Pimoroni.

Jak již bylo zmíněno dříve, enviro: bit je dodáván se snímačem tlaku, vlhkosti a teploty BME280, ale také se snímačem světla a barev (viz zde aplikace) a mikrofonem MEMS.

Power: bit je pěkné řešení pro napájení micro: bit a je dodáváno s vypínačem.

Skvělé na tom je, že oba stačí kliknout a používat, žádné pájení, kabely, prkénka. Přidejte soubor enviro: bit do souboru micro: bit, načtěte kód do souboru micro: bit a použijte jej.

V tomto případě jsem použil micro, power a enviro: bit, umístil je do sáčku Ziploc, vložil do průhledného vodotěsného plastového sáčku pro mobilní telefony, připraven. Velmi rychlé a přehledné řešení. Viz obrázky. Přepínač je dostatečně velký, aby jej bylo možné použít prostřednictvím ochranných vrstev.

Byl testován ve vodě, fungoval dobře. V hloubce asi 1,8 m byla naměřená hodnota asi 1,7 m. Není to špatné pro rychlé a levné řešení, ale zdaleka není dokonalé. Přizpůsobení chvíli trvá, takže možná budete muset zůstat v určité hloubce asi 10–15 sekund.

Krok 8: Verze sondy kabelu a senzoru

Verze sondy kabelu a senzoru
Verze sondy kabelu a senzoru
Verze sondy kabelu a senzoru
Verze sondy kabelu a senzoru

Toto byl vlastně první nápad na mikrometrový hloubkoměr, poslední, který byl postaven.

Zde jsem připájel snímač BMP280 na 5 m 4vodičového kabelu a na druhý konec umístil propojku. Aby byl senzor chráněn před vodou, byl kabel veden přes použitý vinný korek. Konce korku byly utěsněny horkým lepidlem. Než jsem do zářezu vyřízl dva zářezy, oba ho obešli. Poté jsem zabalil senzor do piškotové koule, umístil kolem něj balónek a upevnil konec balónku na korek (spodní zářez). pak jsem umístil 3 40 g kusů olověných závaží do druhého balónu, omotal jej kolem prvního, závaží umístěných na vnější straně a upevnil konec balónu na druhém zářezu. Z druhého balónu byl odstraněn vzduch, poté bylo vše zafixováno lepicí páskou. Viz obrázky, mohou následovat podrobnější.

Propojky byly připojeny k mikro: bitu přes okrajový konektor, zařízení se zaplo a byl nastaven referenční tlak. Poté byla senzorová hlava pomalu uvolněna ke dnu bazénu (10 m skákací věž, asi 4,5 m hluboká).

Výsledek:

K mému úžasu to fungovalo i s tímto dlouhým kabelem. Na druhou stranu, ale nepřekvapivě, chyba měření se zdála být větší při vyšších tlacích a odhadovaná hloubka 4 m byla hlášena jako asi 3 m.

Potenciální aplikace:

S některými opravami chyb může být zařízení použito k měření hloubky asi 4 m.

Ve spojení s Arduino nebo Raspberry Pi by to mohlo být použito k měření a ovládání bodu plnění bazénu nebo nádrže na vodu, např. vyvolat varování, pokud hladina vody překročí nebo pod určité prahové hodnoty.

Outdoor Fitness Challenge
Outdoor Fitness Challenge
Outdoor Fitness Challenge
Outdoor Fitness Challenge

Runner Up in the Outdoor Fitness Challenge

Doporučuje: