Мазмұны:
- 1 -қадам: Құрылғының артындағы теория
- 2 -қадам: құрылғыны пайдалану
- 3 -қадам: Қажетті материалдар
- 4 -қадам: құрастыру
- 5 -қадам: MicroPython сценарийі
- 6 -қадам: Негізгі жеңілдету: MakeCode/JavaScript коды
- 7 -қадам: Enviro: bit нұсқасы
- 8 -қадам: Кабельдік және сенсорлық зондтың нұсқасы
Бейне: Микро: биттік суға түсу: 8 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Жаз келді, демалыс уақыты!
Өзіңізді және микроды қабылдауға жақсы мүмкіндік - бұл бассейнге, тіпті сыртқа.
Мұнда сипатталған микро: биттік сүңгу-метр-бұл өзіңіздің тереңдігіңізді немесе сүңгуіңізді өлшеуге мүмкіндік беретін қарапайым DIY тереңдігі. Ол микро: бит, аккумуляторлық пакет немесе LiPo, микро: битке арналған қосқыш, BMP280 немесе BME280 барометрлік қысым датчигі мен кейбір секіргіш кабельдерден тұрады. Pimoroni ортасын пайдалану: бит бәрін жеңілдетеді. Мұның бәрі су өткізбейтін мөлдір пластиктен немесе силиконнан жасалған пакеттердің екі қабатына оралған, көтерілу күшін өтеу үшін бірнеше салмақ қосылады.
Бұл алдыңғы нұсқаулықта сипатталған микро: бит қысым сенсоры құрылғысының қосымшасы.
Сіз құрылғыны пайдалана аласыз e. g. достарыңызбен және отбасыңызбен сүңгу жарыстары үшін немесе бұл тоғанның қаншалықты терең екенін білу үшін. Мен оны көршімдегі ең терең бассейнде сынап көрдім, ол кем дегенде 3,2 метр тереңдікте жұмыс істейтінін анықтадым. Шамамен бес метр - теориялық максимум. Әзірге мен оның дәлдігін егжей -тегжейлі тексерген жоқпын, бірақ хабарланған сандар кем дегенде күтілетін диапазонда болды.
Кейбір ескертулер: Бұл нағыз сүңгуірлерге арналған құрал емес. Егер микро: бит ылғалданса зақымдалады. Сіз бұл нұсқаулықты өз тәуекеліңізге қолданасыз.
27 мамыр жаңарту: Енді сіз микро: битке тікелей жүктеуге болатын MakeCode HEX-сценарийін таба аласыз. 6 -қадамды қараңыз. 13 маусымда жаңарту: Enviro: бит және кабельдік нұсқа қосылды. 7 және 8 қадамдарды қараңыз
1 -қадам: Құрылғының артындағы теория
Біз ауа мұхитының түбінде өмір сүріп жатырмыз. Бұл жердегі қысым шамамен 1020 гПа (гектоПаскаль) құрайды, өйткені бұл жерде ауа бағанының салмағы бір шаршы сантиметрге шамамен 1 кг құрайды.
Судың тығыздығы әлдеқайда жоғары, өйткені бір литр ауа массасы шамамен 1,2 г және бір литр су 1 кг, яғни шамамен 800 есе. Барометрлік қысымның төмендеуі әр 8 метр биіктікте шамамен 1 гПа болғандықтан, қысымның жоғарылауы су бетінің астындағы әрбір сантиметр үшін 1 гПа құрайды. Шамамен 10 м тереңдікте қысым 2000 гПа немесе екі атмосфераға тең.
Мұнда қолданылатын қысым датчигі шамамен бір гПа ажыратымдылықта 750 мен 1500 гПа аралығында өлшеу диапазонына ие. Бұл 5 метрге дейінгі тереңдікті шамамен 1 см ажыратымдылықпен өлшей алатынымызды білдіреді.
Бұл құрылғы Boyle Marriotte типті тереңдік өлшегіші болады. Оны құрастыру өте қарапайым және кейінірек сипатталады. Сенсор I2C протоколын қолданады, сондықтан micro: bit үшін жиек қосқышы ыңғайлы болады. Ең маңызды бөлігі - су өткізбейтін сөмкелер, себебі кез келген ылғалдылық микро: битке, сенсорға немесе батареяға зақым келтіреді. Сөмкелердің ішінде ауа жиналып қалатындықтан, салмақтың қосылуы көтерілу күшін өтеуге көмектеседі.
2 -қадам: құрылғыны пайдалану
Сценарий, кейінірек егжей -тегжейлі көрсетілгендей, мен қысым өлшегіш үшін бұрын жасаған сценарийдің нұсқасы. Құрылғыны тексеру үшін сіз онда сипатталған қарапайым қысым камерасын пайдалана аласыз.
Дайвинг мақсатында ол 20 см қадаммен штрих -график түрінде немесе сұраныс бойынша цифрмен өлшеу кезінде есептелген тереңдікті метрмен көрсетеді.
Микро: битке А түймесін қолдана отырып, ағымдағы қысымды сілтеме қысым мәні ретінде орнатасыз. Жазбаны растау үшін матрица бір рет жыпылықтайды.
Сіз мұны қаншалықты терең суға батып бара жатқаныңызды көруге немесе қаншалықты тереңге секіргеніңізді жазуға қолдана аласыз.
Бірінші жағдайда сыртқы ауа қысымын сілтеме ретінде орнатыңыз. Екінші жағдайда қысымды ең терең нүктеге орнатыңыз, ол сізге қысым бетіне қайтып оралғанда қаншалықты терең болғаныңызды көрсетуге мүмкіндік береді. B түймесі қысым айырмашылығынан есептелген тереңдікті метрлік сандық мән ретінде көрсетеді.
3 -қадам: Қажетті материалдар
Микро: бит. Мысалы, Pimoroni UK/DE -де 13 GBP/16 Euro бойынша.
Шеткі қосқыш (Kitronic немесе Pimoroni), 5 фунт. Мен Kitronic нұсқасын қолдандым.
BMP/BME280 сенсоры. Мен Banggood BMP280 сенсорын қолдандым, үш бірлік үшін 4,33 евро.
Сенсор мен шеткі коннекторды қосуға арналған өтпелі кабельдер.
Жоғарыдағы жиек коннекторы/сенсор комбинациясына тамаша балама Pimoroni ортасы болуы мүмкін: бит (әзірге тексерілмеген, соңғы қадамды қараңыз).
Микро: битке арналған батареялар немесе LiPo.
Қосқышы бар қуат кабелі (міндетті емес, бірақ пайдалы). Таза су өткізбейтін сөмкелер. Мен ұялы телефонға арналған силикон дорбаны және бір немесе екі кіші зиплок сөмкені қолдандым. Материалдың қалыңдығына көз жеткізіңіз, сондықтан коннектордың шетіндегі түйреуіштер сөмкеге зақым келтірмейді.
Кейбір салмақтар. Мен балық аулауға қолданылатын қорғасын массасын қолдандым.
Arduino IDE және бірнеше кітапханалар.
4 -қадам: құрастыру
Arduino IDE мен қажетті кітапханаларды орнатыңыз. Толық мәліметтер осында сипатталған.
(MakeCode сценарийі үшін қажет емес.) Kitronik жиегінің коннекторын пайдалануды ескере отырып, I2C 19 және 20 порттарына дәнекерленген түйреуіштер Pimoroni жиек коннекторы үшін қажет емес. Датчиктің үстіңгі бағанасын дәнекерлеп, сенсор мен шеткі коннекторды қосқыш кабельдер арқылы қосыңыз. VCC -ті 3В -ке, GND -ді 0 В -ға, SCL -ны 19 -портқа, ал SDA -ны 20 -портқа жалғаңыз. Немесе кабельдерді тікелей үзіліске дәнекерлеңіз. USB: кабель арқылы біздің компьютерге микро: бит қосыңыз. Берілген сценарийді ашып, оны микро: битке жыпылықтаңыз. Сериялық мониторды немесе плоттерді қолданыңыз, сенсор ақылға қонымды деректер беретінін тексеріңіз. Микро: битті компьютерден ажыратыңыз. Батареяны немесе LiPo микро: битке қосыңыз. B түймесін басыңыз, мәнді оқыңыз. А түймесін басыңыз, В түймесін басыңыз, мәнді оқыңыз. Құрылғыны ауа өткізбейтін сөмкелердің екі қабатына салыңыз, сөмкелерде ауа өте аз қалады. Бұл жағдайда көтерілу күшін өтеу үшін салмақ салыңыз. Барлығы су өткізбейтінін тексеріңіз. Бассейнге барып, ойнаңыз.
5 -қадам: MicroPython сценарийі
Сценарий сенсордан қысымның мәнін алады, оны эталондық мәнмен салыстырады, содан кейін айырмашылықтан тереңдікті есептейді. Мәндерді диаграмма түрінде көрсету үшін тереңдік мәнінің бүтін және қалған бөлігі алынады. Біріншісі жолдың биіктігін анықтайды. Қалғандары жолақтардың ұзындығын анықтайтын бес қоқысқа бөлінеді. Жоғарғы деңгей 0 - 1 м, ең төменгісі 4-5 м. Жоғарыда айтылғандай, А түймесін басу сілтеме қысымын орнатады, В түймесі сандық мән ретінде көрсетілетін «салыстырмалы тереңдікті» метрмен көрсетеді. Қазіргі уақытта теріс және оң мәндер жарық диодты матрицаның барграфы ретінде ұсынылады, сценарийді сіздің қажеттіліктеріңізге қарай оңтайландыруға болады. Сіз мәндерді Arduino IDE сериялық мониторында немесе плоттерінде көрсету үшін белгілі бір жолдардың дыбысын өшіре аласыз. Функцияны еліктеу үшін сіз алдыңғы нұсқаулықта сипатталған құрылғыны құрастыра аласыз.
Мен сенсорды оқитын сценарий бөлігін жазған жоқпын. Мен дереккөзге сенімді емеспін, бірақ авторларға алғыс айтқым келеді. Оңтайландыруға арналған кез келген түзетулер мен кеңестер құпталады.
#қосу
#Adafruit_Microbit_Matrix микробитін қосыңыз; #BME280_ADDRESS 0x76 белгісіз ұзақ int hum_raw, temp_raw, pres_raw анықтау; long 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; екі рет басу_нормасы = 1015; // қосалқы тереңдіктің бастапқы мәні; // есептелген тереңдік // -------------------------------------------- -------------------------------------------------- ---------------------- void setup () {uint8_t osrs_t = 1; // Температураның шамадан тыс іріктелуі x 1 uint8_t osrs_p = 1; // Қысымның шамадан тыс іріктелуі x 1 uint8_t osrs_h = 1; // Шамадан тыс ылғалдылық x 1 uint8_t режимі = 3; // Қалыпты режим uint8_t t_sb = 5; // Tstandby 1000ms uint8_t сүзгі = 0; // Сүзгілеу uint8_t spi3w_kz = 0; // 3 сымды SPI uint8_t ctrl_meas_reg = (osrs_t << 5) өшіру | (osrs_p << 2) | режим; uint8_t config_reg = (t_sb << 5) | (<< 2 сүзгісі) | spi3w_kz; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Serial.begin (9600); // сериялық порт жылдамдығын орнату Serial.print («Қысым [hPa]»); // Wire.begin () сериялық шығуына арналған тақырып; writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print («x»); кешіктіру (1000); } // ----------------------------------------------- ---------------------------------------------- void цикл () {қос temp_act = 0.0, press_act = 0.0, hum_act = 0.0; long int temp_cal қол қойылды; қол қойылмаған long int press_cal, hum_cal; int N; int M; delta екі рет басу; // салыстырмалы қысым int тереңдігі_m; // метрдегі тереңдік, бүтін бөлігі қос тереңдік_см; // cmD қалдығы readData (); // temp_cal = calibration_T (temp_raw); press_cal = calibration_P (pres_raw); // hum_cal = calibration_H (hum_raw); // temp_act = (қос) temp_cal / 100.0; press_act = (қос) press_cal / 100.0; // hum_act = (қос) hum_cal / 1024.0; microbit.clear (); // жарықдиодты матрицаны қалпына келтіру // А түймесі нақты мәнді сілтеме ретінде орнатады (P нөлі) // B түймесі ағымдағы мәнді тереңдікте метрмен көрсетеді (қысым айырмасынан есептеледі), егер (! digitalRead (PIN_BUTTON_A)) {// қалыпты ауа қысымын орнатса нөл ретінде press_norm = press_act; // microbit.print («P0:»); // microbit.print (press_norm, 0); // microbit.print («hPa»); microbit.fillScreen (LED_ON); // кідірісті растау үшін бір рет жыпылықтау (100); } else if (! digitalRead (PIN_BUTTON_B)) {// дисплей тереңдігі метрлік microbit.print (тереңдік, 2); microbit.print («m»); // Serial.println («»); } else {// қысымның айырмашылығынан тереңдікті есептеу press_delta = (press_act - press_norm); // салыстырмалы қысым тереңдігін есептеу = (press_delta/100); // метрдегі тереңдік тереңдік_m = int (абс (тереңдік)); // тереңдігі им метр тереңдік_см = (абс (тереңдік) - тереңдік_м); // қалдығы /* // дамыту үшін пайдаланылады Serial.println (тереңдік); Serial.println (тереңдік_m); Serial.println (тереңдік_см); */ // bargraph үшін қадамдар if (тереңдік_см> 0,8) {// жолақтар ұзындығын орнатады (N = 4); } else if (тереңдік_см> 0,6) {(N = 3); } else if (тереңдік_см> 0,4) {(N = 2); } else if (тереңдік_см> 0,2) {(N = 1); } басқа {(N = 0); }
if (тереңдік_м == 4) {// деңгей == метрді орнатыңыз
(М = 4); } if if (тереңдік_m == 3) {(M = 3); } if if (тереңдік_m == 2) {(M = 2); } if if (тереңдік_m == 1) {(M = 1); } басқа {(M = 0); // жоғарғы жол} /* // әзірлеу мақсатында пайдаланылады Serial.print («m:»); Serial.println (тереңдік_m); Serial.print («см:»); Serial.println (тереңдік_см); Serial.print («M:»); Serial.println (M); // дамыту мақсатында Serial.print («N:»); Serial.println (N); // даму мақсатында кешіктіру (500); */ // draw bargraph microbit.drawLine (0, M, N, M, LED_ON); }
// плоттер үшін сериялық портқа мән жіберу
Serial.print (press_delta); // индикатор сызықтарын сызыңыз және Serial.print («\ t») көрсетілетін диапазонды түзетіңіз; Serial.print (0); Serial.print («\ t»); Serial.print (-500); Serial.print («\ t»); Serial.println (500); кешіктіру (500); // Секундына екі рет өлшеңіз} // ----------------------------------------- -------------------------------------------------- -------------------------------------------------- -------- // bmp/bme280 сенсоры үшін төмендегілер қажет, себебі ол readTrim () {uint8_t деректері [32], i = 0; // 2014 ж. Түзету/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 24); // 2014 ж. Түзету (Wire.available ()) {data = Wire.read (); i ++; } Wire.beginTransmission (BME280_ADDRESS); // 2014/Wire.write қосу (0xA1); // 2014 қосу/Wire.endTransmission (); // 2014/Wire.requestFrom қосу (BME280_ADDRESS, 1); // 2014 қосу/деректер = Wire.read (); // 2014/i ++ қосу; // 2014 жыл қосу/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 7); // 2014 ж. Түзету (Wire.available ()) {data = Wire.read (); i ++; } dig_T1 = (деректер [1] << 8) | деректер [0]; dig_P1 = (деректер [7] << 8) | деректер [6]; dig_P2 = (деректер [9] << 8) | деректер [8]; dig_P3 = (деректер [11] << 8) | деректер [10]; dig_P4 = (деректер [13] << 8) | деректер [12]; dig_P5 = (деректер [15] << 8) | деректер [14]; dig_P6 = (деректер [17] << 8) | деректер [16]; dig_P7 = (деректер [19] << 8) | деректер [18]; dig_T2 = (деректер [3] << 8) | деректер [2]; dig_T3 = (деректер [5] << 8) | деректер [4]; dig_P8 = (деректер [21] << 8) | деректер [20]; dig_P9 = (деректер [23] << 8) | деректер [22]; dig_H1 = деректер [24]; dig_H2 = (деректер [26] << 8) | деректер [25]; dig_H3 = деректер [27]; dig_H4 = (деректер [28] << 4) | (0x0F & деректер [29]); dig_H5 = (деректер [30] 4) & 0x0F); // Түзету 2014/dig_H6 = деректер [31]; // 2014/} жарамсыз WriteReg түзету (uint8_t reg_address, uint8_t деректері) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (деректер); Wire.endTransmission (); } жарамсыз readData () {int i = 0; uint32_t деректері [8]; Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 8); while (Wire.available ()) {data = Wire.read (); i ++; } pres_raw = (деректер [0] << 12) | (деректер [1] 4); temp_raw = (деректер [3] << 12) | (деректер [4] 4); hum_raw = (деректер [6] 3) - ((қол қойылған long int) dig_T1 11; var2 = (((((adc_T >> 4) - ((ұзын int) dig_T1)) * ((adc_T >> 4) - ((қол қойылған long int) dig_T1))) >> 12) * ((қол қойылған ұзақ int) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; қайтару T; } unsigned long int calibration_P (қол қойылған long int adc_P) {қол қойылған long int var1, var2; белгісіз ұзақ int P; var1 = (((қол қойылған ұзақ int) t_fine) >> 1) - (қол қойылған long int) 64000; var2 = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((long int int) dig_P6); var2 = var2 + ((var1 * ((long long int) dig_P5)) 2) + (((қол қойылған long int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + (((((ұзақ қол қойылған int) dig_P2) * var1) >> 1)) >> 18; var1 = (((((32768+var1))**((long int) dig_P1)) >> 15); if (var1 == 0) {қайтару 0; } P = (((unsigned long int) (((қол қойылған long 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 = (((қол қойылған long int) dig_P9) * ((қол қойылған long int) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((long long int) (P >> 2)) * ((long long int) dig_P8)) >> 13; P = (unsigned long int) ((қол қойылған long int) P + ((var1 + var2 + dig_P7) >> 4)); қайтару P; } unsigned long int calibration_H (қол қойылған long int adc_H) {қол қойылған long int v_x1; v_x1 = (t_fine - ((қолы ұзақ int) 76800)); v_x1 = ((((((adc_H << 14) -(((ұзын int) dig_H4) 15) * (((((((v_x1 * ((long long int) dig_H3)) >> 11) + ((long long int) 32768))) >> 10) + ((long long int) 2097152)) * ((long long int) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 - ((((((v_x1 >> 15) * (v_x1 >> 15)) 7) * ((ұзақ қол қойылған int) dig_H1)) >> 4)); v_x1 = (v_x1 419430400? 419430400: v_x1); қайтару (белгісіз ұзақ int) (v_x1 >> 12);
6 -қадам: Негізгі жеңілдету: MakeCode/JavaScript коды
2018 жылдың мамырында Pimoroni BME280 қысым/ылғалдылық/температура сенсорымен, жарық пен түс сенсорымен және MEMS микрофонымен қамтамасыз етілетін қоршаған ортаны: бит шығарды. Сонымен қатар, олар MakeCode редакторы үшін JavaScript кітапханасын және осы сенсорлар үшін MicroPython кітапханасын ұсынады.
Мен олардың MakeCode кітапханасын құрылғыға сценарийлерді жасау үшін қолданамын. Тікелей micro: bit -ке көшіруге болатын он алтылық файлдарды табасыз.
Төменде сәйкес JavaScript кодын табасыз. Бассейнде тестілеу сценарийдің бұрынғы нұсқасымен жақсы жұмыс істеді, сондықтан олар да жұмыс істейді деп ойлаймын. Барграфтың негізгі нұсқасынан басқа, әсіресе жарық аз жағдайларда оқуды жеңілдетуге арналған айқас нұсқасы (X) мен L нұсқасы бар. Өзіңізге ұнайтынын таңдаңыз.
Баған = 0 болсын
let Meter = 0 let = 0 let Row = 0 let Delta = 0 let Ref = 0 let 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 («» + Row + «.» + « +» 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} if if (Meter> = 200) {Row = 2} else if (Meter> = 100)) {Row = 1} else {Row = 0} stay = Meter - * 100 -жол if if (қалу> = 80) {Баған = 4} if if (қалу> = 60) {Баған = 3} басқа (қалу> = 40) {Баған = 2} else if (қалу> = 20) {Баған = 1} басқа {Баған = 0} үшін (ColA = 0 болсын; ColA <= Баған; ColA ++) {led.plot (C olA, Row)} basic.pause (500)}})
7 -қадам: Enviro: bit нұсқасы
Осы уақытта мен қоршаған ортаны алдым: бит (20 фунт стерлинг) және қуат: бит (6 фунт стерлинг), екеуі де Пиморониден.
Жоғарыда айтылғандай, қоршаған орта: бит BME280 қысым, ылғалдылық және температура сенсорымен, сонымен қатар жарық пен түс сенсорымен (осы қосымшаны қараңыз) және MEMS микрофонымен бірге келеді.
Қуат: бит - бұл микро: битке қуат берудің жақсы шешімі және қосу/өшіру қосқышымен бірге келеді.
Ең керемет нәрсе - бұл екеуі де басу және пайдалану, дәнекерлеу, кабельдер, нан тақталары. Enviro: bit -ді micro: bit -ке қосыңыз, кодты micro: bit -ке жүктеңіз, оны пайдаланыңыз.
Бұл жағдайда мен micro, power және enviro: bit қолдандым, оларды Ziploc пакетіне салып, ұялы телефондарға арналған мөлдір суға төзімді пластикалық пакетке салдым, дайын. Өте жылдам және ұқыпты шешім. Суреттерді қараңыз. Коммутатор қорғаныс қабаттары арқылы қолдануға жеткілікті үлкен.
Ол суда сыналды, жақсы жұмыс істеді. Шамамен 1,8 м тереңдікте өлшенген мән шамамен 1,7 м болды. Жылдам және арзан шешім үшін жаман емес, бірақ мінсіз болудан алыс. Реттеуге біраз уақыт кетеді, сондықтан сізге белгілі бір тереңдікте шамамен 10-15 секунд тұру қажет болуы мүмкін.
8 -қадам: Кабельдік және сенсорлық зондтың нұсқасы
Бұл шын мәнінде микро: биттік тереңдік өлшеуішке арналған бірінші идея болды, соңғысы.
Мұнда мен BMP280 сенсорын 5м 4 сымды кабельге дәнекерлеп, екінші ұшына әйел секіргішін қойдым. Сенсорды судан қорғау үшін кабель қолданылған шарап тығынынан өткізілді. Тығынның ұштары ыстық желіммен тығыздалған. Мен тығыннан екі ойық кесіп алмас бұрын, екеуі де айналасында жүрді. Содан кейін мен сенсорды губка шарына жинадым, айналасына шар қойдым және шардың ұшын тығынға (төменгі ойыққа) бекіттім. содан кейін мен екінші шарға 40 г қорғасын салмағының 3 дана бөлігін салып, біріншісіне орап, сыртқы жағына салмақ салып, шардың ұшын екінші ойыққа бекіттім. Екінші шардан ауа шығарылды, содан кейін бәрі жабысқақ таспамен бекітілді. Суреттерді қараңыз, толығырақ келуі мүмкін.
Секіргіштер микро: битке қосқыш арқылы қосылды, құрылғы қосылды және эталондық қысым орнатылды. Содан кейін сенсордың басы бассейн түбіне баяу шығарылды (10 м секіру мұнарасы, тереңдігі шамамен 4,5 м).
Нәтижелер:
Менің таң қалғаным, ол тіпті осы ұзын кабельмен жұмыс істеді. Екінші жағынан, бірақ таңқаларлық емес, өлшеу қателігі жоғары қысым кезінде үлкенірек болып көрінді және шамамен 4 м тереңдік шамамен 3 м деп хабарланды.
Ықтимал қосымшалар:
Кейбір қателерді түзете отырып, құрылғы шамамен 4 м тереңдікті өлшеу үшін қолданылуы мүмкін.
Arduino немесе Raspberry Pi -мен бірге бұл бассейннің немесе су ыдысының толтыру нүктесін өлшеу және бақылау үшін қолданылуы мүмкін, e, g. егер су деңгейі белгілі бір шектерден жоғары немесе төмен болса, ескертуді шақыру.
Сыртқы дене шынықтыру сайысында екінші орын
Ұсынылған:
«High-Fivey» картоннан жасалған микро: биттік робот: 18 қадам (суреттермен)
«High-Fivey» картон Микро: бит робот: Үйде тұрып қалдыңыз, бірақ әлі де бестікке біреу қажет пе? Біз кішкене картоннан және микродан жасалған мейірімді робот жасадық: Crazy Circuits Bit Board-пен бірге және ол сізге деген махаббатын сақтау үшін бестікті қалайды
Arduino Nano-MMA8452Q 3 осьтік 12 биттік/8 биттік цифрлық акселерометр оқулығы: 4 қадам
Arduino Nano-MMA8452Q 3 осьтік 12 биттік/8 биттік сандық акселерометр оқулығы: MMA8452Q-бұл ақылды, қуаты аз, үш осьті, сыйымдылығы бар, микромахинді акселерометр, рұқсаты 12 бит. Қолданбалы бағдарламаланатын икемді опциялар акселерометрге ендірілген функциялардың көмегімен қамтамасыз етілген, екі үзіліспен реттеледі
Raspberry Pi MMA8452Q 3 осьтік 12 биттік/8 биттік цифрлық акселерометр Python оқулығы: 4 қадам
Raspberry Pi MMA8452Q 3-осьтік 12-биттік/8-биттік цифрлық акселерометр Python оқулығы: MMA8452Q-ақылды, қуаты аз, үш осьті, сыйымдылығы, микромашиналы акселерометр, рұқсаты 12 бит. Қолданбалы бағдарламаланатын икемді опциялар акселерометрге ендірілген функциялардың көмегімен қамтамасыз етілген, екі үзіліспен реттеледі
Raspberry Pi MMA8452Q 3 осьтік 12 биттік/8 биттік сандық акселерометр Java оқулығы: 4 қадам
Raspberry Pi MMA8452Q 3-осьтік 12-биттік/8-биттік сандық акселерометр Java оқулығы: MMA8452Q-ақылды, қуаты аз, үш осьті, сыйымдылығы бар, микромахинді акселерометр, ажыратымдылығы 12 бит. Қолданбалы бағдарламаланатын икемді опциялар акселерометрге ендірілген функциялардың көмегімен қамтамасыз етілген, екі үзіліспен реттеледі
DIY MusiLED, Windows және Linux бір рет басу арқылы синхронды музыкалық жарықдиодты шамдар (32 биттік және 64 биттік). Қайта құру оңай, пайдалану оңай, портқа оңай: 3 қадам
DIY MusiLED, Windows және Linux бір рет басу арқылы синхронды музыкалық жарықдиодты шамдар (32 биттік және 64 биттік). Қайта құру, пайдалану оңай, портқа оңай. Бұл жоба Arduino тақтасына 18 жарықдиодты (6 қызыл + 6 көк + 6 сары) қосуға және компьютердің дыбыстық картасының нақты уақыттағы сигналдарын талдауға және оларды таратуға көмектеседі. жарық диодтары оларды соққы әсеріне қарай жарықтандырады (тұзақ, биік қалпақ, соққы)