Tartalomjegyzék:
- 1. lépés: Az eszköz mögött álló elmélet
- 2. lépés: Az eszköz használata
- 3. lépés: Szükséges anyagok
- 4. lépés: Összeszerelés
- 5. lépés: A MicroPython szkript
- 6. lépés: Jelentős egyszerűsítés: a MakeCode/JavaScript kód
- 7. lépés: Az Enviro: bit verzió
- 8. lépés: Kábel és érzékelő szonda verzió
Videó: A Micro: bit Dive-O-Meter: 8 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Itt a nyár, a medence ideje!
Jó alkalom arra, hogy elvigye magát és a mikróját: harapjon ki az úszómedencébe, és ebben az esetben akár bele is.
Az itt leírt mikro: bites merülő-o-méter egy egyszerű barkácsmélység-mérő, amely lehetővé teszi annak mérését, hogy milyen mélyen vagy merültek. Csupán egy micro: bitből, egy akkumulátorcsomagból vagy LiPo -ból, a micro: bit élcsatlakozójából, egy BMP280 vagy BME280 légnyomás -érzékelőből és néhány áthidaló kábelből áll. A Pimoroni enviro: bit használata a dolgokat egyre egyszerűbbé teszi. Mindez két réteg vízzáró, átlátszó műanyag vagy szilikon tasakba van csomagolva, néhány súly hozzáadásával a felhajtóerő ellensúlyozására.
Ez egy mikrobites nyomásérzékelő eszköz alkalmazása, amelyet egy előző utasításban leírtam.
Használhatja a készüléket pl. g. búvárversenyekre barátaival és családjával, vagy hogy megtudja, milyen mély ez a tó valójában. A környékem legmélyebb medencéjével teszteltem, és azt tapasztaltam, hogy legalább 3,2 méter mélyen működik. Körülbelül öt méter az elméleti maximum. Eddig semmilyen részletességgel nem teszteltem a pontosságát, de a jelentett számok legalább a várt tartományba estek.
Néhány megjegyzés: Ez nem az igazi búvárok eszköze. A micro: bit megsérül, ha nedves lesz. Ezt az utasítást saját felelősségére használja.
Frissítés május 27.: Most megtalálhat egy MakeCode HEX-szkriptet, amelyet közvetlenül betölthet a micro: bitre. Lásd a 6. lépést. Frissítés június 13.: Egy Enviro: bit és egy kábelverzió került hozzáadásra. Lásd a 7. és 8. lépést
1. lépés: Az eszköz mögött álló elmélet
A levegő óceánjának fenekén élünk. A nyomás itt körülbelül 1020 hPa (hectoPascal), mivel a légoszlop súlya a térben körülbelül 1 kg négyzetcentiméterenként.
A víz sűrűsége sokkal nagyobb, mivel egy liter levegő súlya körülbelül 1,2 g, egy liter víz pedig 1 kg, azaz körülbelül 800-szoros. Tehát mivel a légköri nyomás csökkenése körülbelül 1 hPa minden 8 méter magasságban, a nyomásnövekedés 1 hPa a vízfelszín alatti minden centiméterre. Körülbelül 10 m mélységben a nyomás 2000 hPa, vagy két atmoszféra.
Az itt használt nyomásérzékelő mérési tartománya 750 és 1500 hPa között van, körülbelül 1 hPa felbontással. Ez azt jelenti, hogy körülbelül 1 méteres felbontással akár 5 méter mélységet is mérhetünk.
A készülék egy Boyle Marriotte típusú mélységmérő lenne. Összeszerelése meglehetősen egyszerű, és egy későbbi lépésben ismertetjük. Az érzékelő az I2C protokollt használja, így a micro: bit élcsatlakozója jól jön. A legkritikusabb rész a vízzáró tasak, mivel bármilyen páratartalom károsítja a mikro: bit, az érzékelőt vagy az akkumulátort. Mivel némi levegő csapdába esik a zsákok belsejében, a súlyok hozzáadása segít kompenzálni a felhajtóerőt.
2. lépés: Az eszköz használata
A szkript, amint azt egy későbbi lépésben részletesen bemutatjuk, a korábban egy nyomásmérőhöz kifejlesztett forgatókönyv változata. A készülék teszteléséhez használhatja az ott leírt egyszerű nyomókamrát.
Búvárkodás céljából a mélységet méterben mutatja, a nyomásmérésekből számítva, akár oszlopdiagramként 20 cm -es lépésekben, vagy kérésre számokban.
A micro: bit A gombjával beállíthatja az aktuális nyomást referencianyomás értékként. A bevitel megerősítéséhez a mátrix egyszer felvillan.
Ezt használhatja akár annak megtekintésére, hogy milyen mélyre merül, vagy rögzíti, hogy milyen mélyre merült.
Az első esetben állítsa be az aktuális külső légnyomást referenciaként. A második esetben állítsa be a nyomást a legmélyebb ponton, ahol a nyomás referenciája, amely lehetővé teszi, hogy megmutassa, milyen mély volt, amikor visszatért a felszínre. A B gomb a nyomáskülönbségből számított mélységet jeleníti meg számértékként méterben.
3. lépés: Szükséges anyagok
Mikro: bit. Például. 13 GBP/16 Euro áron a Pimoroni UK/DE -nál.
Egy élcsatlakozó (Kitronic vagy Pimoroni), 5 GBP. A Kitronic verziót használtam.
BMP/BME280 érzékelő. A Banggood BMP280 szenzorát használtam, 4,33 Euro három egységért.
Jumper kábelek az érzékelő és az élcsatlakozó csatlakoztatásához.
A fenti élcsatlakozó/érzékelő kombináció kiváló alternatívája lehet a Pimoroni enviro: bit (eddig nem tesztelték, lásd az utolsó lépést).
Akkumulátor vagy LiPo a micro: bithez.
Tápkábel kapcsolóval (opcionális, de hasznos). Tisztítsa meg a vízzáró zsákokat. Szilikon tasakot használtam mobiltelefonhoz és egy vagy két kis ziploc táskát. Győződjön meg arról, hogy az anyag elég vastag, így az élcsatlakozó csapjai nem károsítják a táskákat.
Néhány súly. Horgászathoz használt ólomtömegű darabokat használtam.
Arduino IDE és számos könyvtár.
4. lépés: Összeszerelés
Telepítse az Arduino IDE -t és a szükséges könyvtárakat. A részleteket itt ismertetjük.
(Nem szükséges a MakeCode szkripthez.) Mivel a Kitronik élcsatlakozót használja, forrasztja a 19 és 20 I2C portokat. Ez nem szükséges a Pimoroni élcsatlakozónál. Forrasztja le a fejlécet az érzékelőhöz, és csatlakoztassa az érzékelőt és az élcsatlakozót áthidaló kábelekkel. Csatlakoztassa a VCC -t 3 V -ra, a GND -t 0 V -ra, az SCL -t a 19 -es portra, és az SDA -t a 20 -as portra. Csatlakoztassa a micro: bitet számítógépünkhöz USB -kábellel. Nyissa meg a mellékelt szkriptet, és villanja fel a micro: bitre. Használja a soros monitort vagy a plottert, és ellenőrizze, hogy az érzékelő ésszerű adatokat szolgáltat -e. Válassza le a micro: bitet a számítógépről. Csatlakoztassa az akkumulátort vagy a LiPo -t a micro: bithez. Nyomja meg a B gombot, olvassa el az értéket Nyomja meg az A gombot. Nyomja meg a B gombot, és olvassa el az értéket. Helyezze a készüléket két réteg légmentesen záródó tasakba, csak nagyon kevés levegőt hagyva a zsákban. Abban az esetben helyezzen súlyt a felhajtóerő ellensúlyozására. Ellenőrizze, hogy minden vízzáró -e. Menj a medencébe és játssz.
5. lépés: A MicroPython szkript
A szkript csak leveszi a nyomásértéket az érzékelőtől, összehasonlítja a referenciaértékkel, majd kiszámítja a mélységet a különbségből. Az értékek oszlopdiagramként történő megjelenítéséhez a mélységérték egész és fennmaradó részét vesszük. Az első határozza meg a vonal magasságát. A fennmaradó rész öt tárolóba van osztva, amelyek meghatározzák a rudak hosszát. A felső szint 0 - 1 m, a legalacsonyabb 4 - 5 m. Amint korábban említettük, az A gomb megnyomásával beállítható a referencianyomás, a B gomb pedig a „relatív mélységet” mutatja méterben, számértékként. Mostanra a negatív és pozitív értékek ugyanúgy oszlopdiagramként jelennek meg a LED mátrixon. Nyugodtan optimalizálja a szkriptet az Ön igényei szerint. Bizonyos sorok némítását feloldhatja az értékek megjelenítéséhez az Arduino IDE soros monitorán vagy plotterjén. A funkció emulálásához felépítheti az előző utasításban leírt eszközt.
Nem írtam a szkriptnek azt a részét, amely olvassa az érzékelőt. A forrásban nem vagyok biztos, de szeretnék köszönetet mondani az íróknak. Bármilyen javítást vagy optimalizálási tippet szívesen fogadunk.
#befoglalni
#include Adafruit_Microbit_Matrix microbit; #define BME280_ADDRESS 0x76 unsigned long int hum_raw, temp_raw, pres_raw; aláírt hosszú 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; dupla sajtó_norm = 1015; // kezdőérték kettős mélység; // számított mélység // -------------------------------------------- -------------------------------------------------- ---------------------- void setup () {uint8_t osrs_t = 1; // Hőmérséklet -túlmintavétel x 1 uint8_t osrs_p = 1; // Nyomás túlmintavétele x 1 uint8_t osrs_h = 1; // Páratartalom túlmintavételezés x 1 uint8_t mód = 3; // Normál mód uint8_t t_sb = 5; // Készenléti állapot 1000ms uint8_t filter = 0; // szűrés ki uint8_t spi3w_en = 0; // 3 vezetékes SPI Letiltás uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | mód; uint8_t config_reg = (t_sb << 5) | (szűrő << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Sorozat.kezdet (9600); // soros port sebességének beállítása Serial.print ("Nyomás [hPa]"); // fejléc soros kimenethez Wire.begin (); writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); késleltetés (1000); } // ----------------------------------------------- ---------------------------------------------- void loop () {dupla temp_act = 0.0, press_act = 0.0, hum_act = 0.0; aláírt hosszú int temp_cal; előjel nélküli hosszú int press_cal, hum_cal; int N; int M; dupla press_delta; // relatív nyomás int mélység_m; // mélység méterben, egész rész dupla mélység_cm; // maradék cm -ben readData (); // temp_cal = calibration_T (temp_raw); press_cal = calibration_P (pres_raw); // hum_cal = calibration_H (hum_raw); // temp_act = (dupla) temp_cal / 100.0; press_act = (dupla) press_cal / 100.0; // hum_act = (kettős) hum_cal / 1024,0; microbit.clear (); // a LED mátrix visszaállítása // Az A gomb a tényleges értéket állítja be referenciaként (P nulla) // A B gomb megjeleníti az aktuális értéket mélységben méterben (nyomáskülönbségből számítva), ha (! digitalRead (PIN_BUTTON_A)) {// állítsa be a normál légnyomást mint nulla press_norm = press_act; // mikrobit.print ("P0:"); // mikrobit.print (press_norm, 0); // mikrobit.print ("hPa"); microbit.fillScreen (LED_ON); // pislogjon egyszer a késleltetés megerősítéséhez (100); } else if (! digitalRead (PIN_BUTTON_B)) {// megjeleníti a mélységet méterben microbit.print (mélység, 2); microbit.print ("m"); // Sorozat.println (""); } else {// mélység kiszámítása nyomáskülönbségből press_delta = (press_act - press_norm); // relatív nyomásmélység kiszámítása = (press_delta/100); // mélység méterben mélység_m = int (absz (mélység)); // mélység im méter mélység_cm = (absz (mélység) - mélység_m); // maradék /* // fejlesztésre használt Serial.println (mélység); Soros.println (mélység_m); Soros.println (mélység_cm); */ // Lépések az oszlopdiagramhoz, ha (mélység_cm> 0,8) {// beállítja a rudak hosszát (N = 4); } else if (mélység_cm> 0,6) {(N = 3); } else if (mélység_cm> 0,4) {(N = 2); } else if (mélység_cm> 0,2) {(N = 1); } else {(N = 0); }
ha (mélység_m == 4) {// beállított szint == méter
(M = 4); } else if (mélység_m == 3) {(M = 3); } else if (mélység_m == 2) {(M = 2); } else if (mélység_m == 1) {(M = 1); } else {(M = 0); // felső sor} /* // fejlesztési célokra használják Serial.print ("m:"); Soros.println (mélység_m); Soros.nyomat ("cm:"); Soros.println (mélység_cm); Serial.print ("M:"); Soros.println (M); // fejlesztési célokra Serial.print ("N:"); Soros.println (N); // fejlesztési célú késleltetés (500); */ // microsbit rajzolási oszlopdiagram.drawLine (0, M, N, M, LED_ON); }
// érték küldése a plotter soros portjára
Serial.print (press_delta); // rajzoljon jelzővonalakat és javítsa a megjelenített tartományt Serial.print ("\ t"); Sorozatnyomtatás (0); Serial.print ("\ t"); Sorozatnyomtatás (-500); Serial.print ("\ t"); Sorozat.println (500); késleltetés (500); // Mérjen másodpercenként kétszer} // ----------------------------------------- -------------------------------------------------- -------------------------------------------------- -------- // a következő szükséges a bmp/bme280 érzékelőhöz, tartsa érvénytelennek readTrim () {uint8_t data [32], i = 0; // Javítás 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 24); // Javítás 2014/while (Wire.available ()) {data = Wire.read (); i ++; } Wire.beginTransmission (BME280_ADDRESS); // Add 2014/Wire.write (0xA1); // 2014 hozzáadása/Wire.endTransmission (); // Add 2014/Wire.requestFrom (BME280_ADDRESS, 1); // Add 2014/data = Wire.read (); // Hozzáadás 2014/i ++; // Add 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 7); // Javítás 2014/while (Wire.available ()) {data = Wire.read (); i ++; } dig_T1 = (adatok [1] << 8) | adatok [0]; dig_P1 = (adatok [7] << 8) | adatok [6]; dig_P2 = (adatok [9] << 8) | adatok [8]; dig_P3 = (adatok [11] << 8) | adatok [10]; dig_P4 = (adatok [13] << 8) | adatok [12]; dig_P5 = (adatok [15] << 8) | adatok [14]; dig_P6 = (adatok [17] << 8) | adatok [16]; dig_P7 = (adatok [19] << 8) | adatok [18]; dig_T2 = (adatok [3] << 8) | adatok [2]; dig_T3 = (adatok [5] << 8) | adatok [4]; dig_P8 = (adatok [21] << 8) | adatok [20]; dig_P9 = (adatok [23] << 8) | adatok [22]; dig_H1 = adatok [24]; dig_H2 = (adatok [26] << 8) | adatok [25]; dig_H3 = adatok [27]; dig_H4 = (adatok [28] << 4) | (0x0F és adatok [29]); dig_H5 = (adatok [30] 4) & 0x0F); // 2014 javítása/dig_H6 = adatok [31]; // 2014/} javítása void writeReg (uint8_t reg_address, uint8_t data) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (adatok); Wire.endTransmission (); } void readData () {int i = 0; uint32_t adatok [8]; Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 8); while (Wire.available ()) {data = Wire.read (); i ++; } pres_raw = (adatok [0] << 12) | (adatok [1] 4); temp_raw = (adatok [3] << 12) | (adatok [4] 4); hum_raw = (adatok [6] 3) - ((aláírt hosszú int) dig_T1 11; var2 = ((((((adc_T >> 4) - ((aláírt hosszú int) dig_T1)) * ((adc_T >> 4) - ((aláírt hosszú int) dig_T1))) >> 12) * ((aláírt hosszú int) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_finom * 5 + 128) >> 8; visszatér T; } unsigned long int calibration_P (aláírt hosszú int adc_P) {aláírt hosszú int var1, var2; unsigned long int P; var1 = (((aláírt hosszú int) t_fine) >> 1) - (aláírt hosszú int) 64000; var2 = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((aláírt hosszú int) dig_P6); var2 = var2 + ((var1 * ((aláírt hosszú int) dig_P5)) 2) + (((aláírt hosszú int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + ((((aláírt hosszú int) dig_P2) * var1) >> 1)) >> 18; var1 = (((((32768+var1))*((aláírt hosszú int) dig_P1)) >> 15); if (var1 == 0) {return 0; } P = (((előjel nélküli hosszú int) (((aláírt hosszú int) 1048576) -adc_P)-(var2 >> 12)))*3125; ha (P <0x80000000) {P = (P << 1) / ((unsigned long int) var1); } else {P = (P / (előjel nélküli hosszú int) var1) * 2; } var1 = (((aláírt hosszú int) dig_P9) * ((aláírt hosszú int) ((((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((aláírt hosszú int) (P >> 2)) * ((aláírt hosszú int) dig_P8)) >> 13; P = (előjel nélküli hosszú int) ((aláírt hosszú int) P + ((var1 + var2 + dig_P7) >> 4)); visszatérés P; } unsigned long int kalibráció_H (aláírt hosszú int adc_H) {aláírt hosszú int v_x1; v_x1 = (t_finom - ((aláírt hosszú int) 76800)); v_x1 = ((((((adc_H << 14) -(((aláírt hosszú int) dig_H4) 15) * (((((((v_x1 * ((aláírt hosszú int) dig_H6)) >> 10) * (((v_x1 * ((aláírt hosszú int) dig_H3)) >> 11) + ((aláírt hosszú int) 32768))) >> 10) + ((aláírt hosszú int) 2097152)) * ((aláírt hosszú int) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 - ((((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((aláírt hosszú int) dig_H1)) >> 4)); v_x1 = (v_x1 419430400? 419430400: v_x1); return (előjel nélküli hosszú int) (v_x1 >> 12);
6. lépés: Jelentős egyszerűsítés: a MakeCode/JavaScript kód
2018 májusában a Pimoroni kiadta az enviro: bitet, amely BME280 nyomás/páratartalom/hőmérséklet érzékelővel, TCS3472 fény- és színérzékelővel és MEMS mikrofonnal rendelkezik. Ezen kívül JavaScript könyvtárat kínálnak a MakeCode szerkesztőhöz, és MicroPython könyvtárat kínálnak ezekhez az érzékelőkhöz.
A MakeCode könyvtárukat használtam szkriptek kifejlesztéséhez az eszközömhöz. Csatolva megtalálja a megfelelő hexafájlokat, amelyeket közvetlenül a micro: bitre másolhat.
Az alábbiakban megtalálja a megfelelő JavaScript kódot. A poolban végzett tesztelés jól működött a forgatókönyv egy korábbi verziójával, ezért feltételezem, hogy azok is működni fognak. Az alap, oszlopdiagramos verzió mellett van szálkeresztes (X) és L-változat is, amelyek megkönnyítik az olvasást, különösen gyenge fényviszonyok mellett. Válassza ki a kívántat.
legyen az oszlop = 0
hagyjuk Meter = 0 hagyjuk = 0 hagyjuk Sor = 0 hagyja Delta = 0 hagyja Ref = 0 hagyja Is = 0 Is = 1012 basic.showLeds (` # # # # # #.. # #. #. # #… # # # # # # `) Ref = 1180 basic.clearScreen () basic.forever (() => {basic.clearScreen () if (input.buttonIsPressed (Button. A)) {Ref = envirobit.getPressure () basic.showLeds (` #. #. #. #. #. #. # # # # #. #. #. #. #. #`) basic.pause (1000)} else if (input.buttonIsPressed (Button. B)) {basic.showString ("" + Sor + "." + marad + "m") basic.pause (200) basic.clearScreen ()} else {Is = envirobit.getPressure () Delta = Is - Ref Meter = Math.abs (Delta), ha (Meter> = 400) {Row = 4} else if (Meter> = 300) {Row = 3} else if (Meter> = 200) {Row = 2} else if (Meter> = 100)) {Sor = 1} más {Sor = 0} marad = Méter - Sor * 100, ha (marad> = 80) {Oszlop = 4} más, ha (marad> = 60) {Oszlop = 3} más, ha (marad>> 40) {Oszlop = 2} else if (marad> = 20) {Oszlop = 1} else {Oszlop = 0} for (legyen ColA = 0; ColA <= Oszlop; ColA ++) {led.plot (C olA, sor)} basic.pause (500)}})
7. lépés: Az Enviro: bit verzió
Időközben megkaptam a környezet: bit (20 GBP) és a power: bit (6 GBP) szolgáltatást, mindkettőt a Pimoronitól.
Amint azt korábban említettük, az enviro: bit a BME280 nyomás-, páratartalom- és hőmérséklet -érzékelőt, de fény- és színérzékelőt (lásd az alkalmazást itt) és MEMS mikrofont is tartalmaz.
A power: bit szép megoldás a micro: bit áramellátására, és be-/kikapcsolóval rendelkezik.
A nagyszerű dolog az, hogy mindkettő csak kattintás és használat, forrasztás, kábelek és kenyértáblák nélkül. Adja hozzá az enviro: bit -t a micro: bit -hez, töltse be a kódot a micro: bit -be, használja azt.
Ebben az esetben a micro, power és enviro: bit elemeket használtam, Ziploc tasakba tettem, átlátszó, vízzáró műanyag zacskóba tettem mobiltelefonokhoz, készen. Nagyon gyors és rendezett megoldás. Lásd a képeket. A kapcsoló elég nagy ahhoz, hogy a védőrétegeken keresztül használhassa.
Vízben tesztelték, jól működött. Körülbelül 1,8 m mélységben a mért érték körülbelül 1,7 m volt. Nem rossz a gyors és olcsó megoldás, de messze nem tökéletes. Beletelik egy kis időbe, amíg be kell állítani, ezért előfordulhat, hogy 10-15 másodpercig bizonyos mélységben kell maradnia.
8. lépés: Kábel és érzékelő szonda verzió
Valójában ez volt az első ötlet a mikro: bit mélységmérő számára, amelyet utoljára építettek.
Itt forrasztottam a BMP280 érzékelőt 5 méteres 4 vezetékes kábelre, és a másik végére női áthidalót helyeztem el. Annak érdekében, hogy megvédje az érzékelőt a víztől, a kábelt egy használt bordadugón vezette át. A parafa végeit forró ragasztóval lezártuk. Mielőtt két bevágást vágtam a parafába, mindkettő körbejárta. Ezután bepakoltam az érzékelőt egy szivacsgolyóba, köré léggömböt helyeztem, és a ballon végét a parafára rögzítettem (alsó bevágás). majd 3 40 g ólomtömeget helyeztem egy második léggömbbe, az első köré tekertem, a súlyokat a külső oldalára helyeztem, és rögzítettem a lufi végét a második bevágásnál. A levegőt eltávolították a második ballonról, majd mindent ragasztószalaggal rögzítettek. Nézze meg a képeket, részletesebbek következhetnek.
Az áthidalókat egy élcsatlakozón keresztül csatlakoztatták a micro: bithez, a készülék bekapcsolt és a referencianyomás be volt állítva. Ezután az érzékelőfejet lassan kiengedték a medence aljára (10 m ugrótorony, körülbelül 4,5 m mély).
Eredmények:
Meglepetésemre még ezzel a hosszú kábellel is működött. Másrészt, de nem meglepő módon, a mérési hiba nagyobb nyomáson nagyobbnak tűnt, és a becsült 4 m mélységet körülbelül 3 m -nek jelentették.
Lehetséges alkalmazások:
Bizonyos hibajavításokkal az eszközzel körülbelül 4 m mélységet lehet mérni.
Egy Arduino -val vagy Raspberry Pi -vel együtt ez használható egy medence vagy víztartály töltési pontjának mérésére és szabályozására, pl. figyelmeztetést idézni, ha a vízszint bizonyos küszöbértékek felett vagy alatt megy.
Második helyezett a szabadtéri fitnesz kihívásban
Ajánlott:
BBC Micro: bit and Scratch - Interaktív kormánykerék és vezetési játék: 5 lépés (képekkel)
BBC Micro: bit and Scratch - Interaktív kormánykerék és vezetési játék: Ezen a héten az egyik osztályfeladatom az, hogy a BBC Micro: bitet használom az általunk írt Scratch programmal való interfészhez. Úgy gondoltam, hogy ez a tökéletes alkalom arra, hogy a ThreadBoard -om segítségével beágyazott rendszert hozzak létre! Az inspirációm a karcoláshoz
Szervo motorok futtatása Moto: bit segítségével Mikro: bit: 7 lépés (képekkel)
Szervo motorok futtatása a Moto: bit segítségével Micro: bit: A micro: bit funkcionalitásának kibővítésének egyik módja a SparkFun Electronics által moto: bit nevű tábla használata (kb. 15-20 USD). Bonyolultnak tűnik, és számos funkcióval rendelkezik, de nem nehéz szervomotorokat futtatni belőle. Moto: bit lehetővé teszi, hogy
Micro: bit - Micro Drum Machine: 10 lépés (képekkel)
Micro: bit - Micro Drum Machine: Ez egy micro: bit mikro dobgép, amely a hang előállítása helyett ténylegesen dob. Súlyos a micro: bit zenekar nyulainak ihlette. Eltartott egy ideig, amíg megtaláltam néhány mágnesszelepet, amelyek könnyen használhatók a mocro: bit
Micro: bit bit Fények kezdőknek: 5 lépés
Micro: bitek Fények kezdőknek: Ehhez az utasításhoz szüksége lesz egy Micro: Bitre és egy laptopra, nem lehet Mac. Ha Mac -et használ, akkor további lépésekre van szükség, vagy adapterre van szükség az USB -porthoz
Fény- és színmérések A Pimoroni Enviro: bit segítségével: Micro: bit: 5 lépés
Fény- és színmérések A Pimoroni Enviro: bit segítségével: Micro: bit: Korábban dolgoztam néhány olyan eszközön, amelyek lehetővé teszik a fény- és színmérést, és sokat találhat az ilyen mérések mögött álló elméletről, az itt és itt található utasításokról. nemrégiben megjelent az enviro: bit, egy kiegészítő a m-hez