Բովանդակություն:
- Քայլ 1. Ի՞նչ է AD փոխարկիչը:
- Քայլ 2: Օգտագործված ռեսուրսներ
- Քայլ 3: ESP32 ADC
- Քայլ 4: Օգտագործված միացում
- Քայլ 5: Օգտագործված նշան
- Քայլ 6. Տվյալները, որոնք ձեռք են բերվում օսլիլոսկոպով
- Քայլ 7. Օսլիլոսկոպով ստացված տվյալները (csv ֆայլ Excel- ում)
- Քայլ 8. ADC- ի կողմից ձեռք բերված տվյալները
- Քայլ 9. ADC - Excel- ով ձեռք բերված տվյալները
- Քայլ 10. Բարձրանալու թեքահարթակների համեմատություն
- Քայլ 11. Նմուշների քանակի հավասարեցում
- Քայլ 12: Բացերի լրացում - միտումների գիծ
- Քայլ 13. Բացերի լրացում - 2 -րդ դասարանի բազմանդամի կոր
- Քայլ 14. Լրացնել բացերը. Գնահատել գործառույթը
- Քայլ 15. Օսլիոսկոպի լարման փոխարկումը համարժեք արժեքի ՝ ADC- ի հետ համեմատելու համար
- Քայլ 16. Ստացված երկու թեքահարթակների համեմատություն
- Քայլ 17: ADC ընթերցման տարբերության վարքագիծը (ՍԽԱԼ)
- Քայլ 18: ADC Ընթերցանության տարբերությունների վարքագիծ - Ուղղիչ գործառույթ գտնելը
- Քայլ 19: Այլ ծրագրակազմի օգտագործում
- Քայլ 20: Հաստատություններ և կարգավորում ()
- Քայլ 21. Loop () և ուղղման գործառույթ
- Քայլ 22. Օգտագործելով PolySolve ուղղման գործառույթը
- Քայլ 23. Սևեռում ուղղագրությամբ
- Քայլ 24. Հաշվարկային ծախսեր
- Քայլ 25. Թեստի կոդ - Կարգավորում () և Loop Start ()
- Քայլ 26. Փորձարկման կոդ - հանգույց () և մշակում
- Քայլ 27. Փորձարկման կոդ - հանգույց () - արդյունքներ
- Քայլ 28. Փորձարկման կոդ. Օգտագործված գործառույթներ
- Քայլ 29: Ֆայլեր
Video: Գիտե՞ք ESP32 ADC ճշգրտման մասին: 29 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այսօր ես կխոսեմ ավելի տեխնիկական հարցի մասին, բայց ես կարծում եմ, որ բոլորը, ովքեր աշխատում են ESP32- ով, պետք է իմանան. ADC- ի (անալոգային-թվային փոխարկիչ) ընթերցման ճշգրտման հարցը: Ես գտնում եմ, որ սա կարևոր է, քանի որ «չափում» կատարելիս, հատկապես անալոգային ելք ունեցող գործիքի հետ, պետք է բացարձակապես վստահ լինել, որ ընթերցումը ճիշտ է կատարվում:
Այսօր տեսանյութում, հետևաբար, մենք կիրականացնենք չափումներ ESP32- ի «անալոգային-թվային փոխարկիչի» միջոցով, կդիտարկենք փոխակերպման անհամապատասխանությունները և կկիրառենք ADC ճշգրտման / չափագրման մեթոդ:
Քայլ 1. Ի՞նչ է AD փոխարկիչը:
AD փոխարկիչը միացում է, որն ունակ է անալոգային (շարունակական) քանակը թարգմանել թվային (դիսկրետ) արժեքների: Ինչ է դա նշանակում? Դա նշանակում է, որ մինչդեռ թվային արժեքները կարող են ենթադրել միայն զրոների և միավորների համադրությամբ ձևավորված դիսկրետ արժեքներ, անալոգային մեծությունը կարող է ենթադրել ցանկացած արժեք միջակայքում: Օրինակ, եթե մենք չափեինք իդեալական AA բջիջի լարումը, մենք կարող էինք գտնել ցանկացած արժեք 0V- ից մինչև 1.5V, քանի որ սա անալոգային մեծություն է: Իդեալական լամպի ելքային վիճակը պետք է ընդունի միայն երկու վիճակ (անջատված կամ միացված), ինչը դիսկրետ մեծություն է: Քանի որ միկրոկառավարիչները աշխատում են այս դիսկրետ տրամաբանության հիման վրա, մեզ անհրաժեշտ է մի միացում, որը կարող է անալոգային քանակությունը թվային (կամ դիսկրետ) թարգմանել:
Քայլ 2: Օգտագործված ռեսուրսներ
• Մեկ Lolin32 Lite քարտ v1.0.0
• Tektronix TDS1001C օսլիլոսկոպ ՝ գրավման համար
• Մեկ USB մալուխ ESP32- ի համար
• Hantek DSO4102C տատանում ՝ որպես ազդանշանի գեներատոր
Քայլ 3: ESP32 ADC
Ըստ Espressif- ի տվյալների, ESP32 չիպերը չափված արդյունքներում կարող են ներկայացնել +/- 6% տարբերություն մեկ չիպից մյուսը:
Բացի այդ, փոխարկումը ՉԻ ունենա գծային պատասխան ընթերցման յուրաքանչյուր մատչելի տիրույթի համար: Espressif- ը տրամադրում է ստուգաչափման մեթոդ և առաջարկում է օգտվողներին կիրառել այլ մեթոդներ, եթե դրանք անհրաժեշտ են համարում ցանկալի ճշգրտության հասնելու համար:
Մենք կկատարենք տվյալների ձեռքբերում, և դրանից մենք ցույց կտանք ADC- ի պատասխանները և ճշգրտումը կարդալու համար մաթեմատիկական գործընթացի կիրառման օրինակ:
Այս ուղղումներն իրականացնելու մի քանի (ավելի պարզ կամ ավելի բարդ) եղանակներ կան: Քեզանից է կախված գնահատել ամենահարմարը քո նախագծի համար:
Այստեղ ցուցադրվածը կունենա պատկերազարդ նպատակ և կփորձի անդրադառնալ հետաքրքիր կետերին, որոնք կարող են նկատվել ճշգրտումների ժամանակ:
Քայլ 4: Օգտագործված միացում
Ես օգտագործել եմ օսլիլոսկոպ ՝ ազդանշանի գեներատորով, որն անցնում է մինչև 25 ՄՀց ՝ Hantek DSO4102C: Մենք ստեղծեցինք ալիք, որը կարդացվում էր ESP A / D- ով և տատանումներով: Հավաքված տվյալները գրանցվել են csv- ում և աղյուսակում, որը ներբեռնման համար կթողնեմ հոդվածի վերջում:
Քայլ 5: Օգտագործված նշան
Մենք ընտրեցինք ցածր հաճախականությամբ տրապիզոիդ ազդանշան, որը թույլ է տալիս մուտք գործել դեպի թեքահարթակներ, որոնք անցնում են փոխակերպման ամբողջ տիրույթով: Սա թույլ է տալիս մեծ թվով նմուշներ ձեռք բերել այս թեքահարթակների վրա:
Քայլ 6. Տվյալները, որոնք ձեռք են բերվում օսլիլոսկոպով
Բռնման պատկերը կատարվել է տատանումների միջոցով: Տվյալները պահվում էին csv ֆայլում: Ուշադրություն դարձրեք ազդանշանի բարձրացող և ընկնող թեքահարթակների փոքր թեքությանը:
Քայլ 7. Օսլիլոսկոպով ստացված տվյալները (csv ֆայլ Excel- ում)
Մենք այստեղ ունենք նմուշառումներ:
Քայլ 8. ADC- ի կողմից ձեռք բերված տվյալները
Սերիայի փոխանցման արագությունը փոխելով ՝ մենք կարող ենք դիտել ADC- ի կողմից գրավված տվյալները: Դիտեք trapezoidal ազդանշանի դեֆորմացիան:
Տվյալները դիտարկվում են Arduino IDE սերիական գծագրիչի վրա
Քայլ 9. ADC - Excel- ով ձեռք բերված տվյալները
Օգտագործելով ավելի բարձր դրույքաչափ և սերիական տերմինալ, մենք կարող ենք գրավել արժեքները և դրանք կիրառել Excel- ում `մեր համեմատությունների համար:
Քայլ 10. Բարձրանալու թեքահարթակների համեմատություն
Մենք համեմատում ենք երկու որսորդության երկու բարձրանում թեքահարթակները:
Ուշադրություն դարձրեք այն կորությանը, որը տեղի է ունենում երկու թեքահարթակների վրա:
Նկատի ունեցեք նաև, որ նույն թեքահարթակի համար մենք ունենք ESP32- ի շատ ավելի նմուշներ, քան տատանումների միջոցով:
Քայլ 11. Նմուշների քանակի հավասարեցում
Քանի որ ESP32- ն ավելի մեծ թվով նմուշներ է տվել, քան օսլիլոսկոպը, մենք պետք է հավասարենք այս արժեքներին, քանի որ դրանք երկու կորերը համեմատելու ինդեքս են ծառայելու:
Դրա համար մենք ուղղակի համեմատություն կանենք:
Մենք ունենք 305 նմուշ ՝ oscilloscope թեքահարթակի և 2365 նմուշ ADC թեքահարթակի համար:
Քանի որ թեքահարթակները նույն տիրույթում են, կարող ենք ասել, որ յուրաքանչյուր օսլիլոսկոպի համար մենք ունենք ADC- ի մոտավորապես 7.75 նմուշ:
Տատանումների յուրաքանչյուր նմուշի ինդեքսի բազմապատկումը ունի նույն կորը, բայց ADC- ին համարժեք ինդեքսներով և վերաբաշխված տվյալներով:
Նոր պաշտոնների համար բացակայող տվյալները լրացնելու համար մենք կկիրառենք հայտնի տվյալներին վիճակագրորեն համապատասխանող կոր:
Քայլ 12: Բացերի լրացում - միտումների գիծ
Ընտրելով հայտնի տվյալները (կապույտ կետեր), սեղմելով և այնուհետև սեղմելով աջ կոճակով ՝ մենք ընտրում ենք ՝ «Ավելացնել միտումների տող…»
Պատուհանում, որը հայտնվում է, մենք ընտրում ենք Polynomial տեսակը (2 -րդ կարգը բավարար կլինի):
Մենք նաև ստուգեցինք «Դիտել հավասարումը գծապատկերում» և «Rուցադրել R- քառակուսի արժեքը գծապատկերում» ընտրանքները:
Մենք կտտացնում ենք «Փակել»:
Քայլ 13. Բացերի լրացում - 2 -րդ դասարանի բազմանդամի կոր
Excel- ը մեզ տալիս է երկու նոր տեղեկություն. երկրորդ կարգի հավասարումը, որը լավագույնս համապատասխանում է տվյալներին և R- քառակուսի հավասարումը, որը քանակականացնում է այս համարժեքությունը:
Պարզապես հիշեք, որ որքան մոտ է 1 -ին, այնքան ավելի տեղին է հավասարումը:
Եկեք չխորանանք ներգրավված մաթեմատիկայի մեջ, պարզապես օգտագործենք այն որպես գործիք:
Քայլ 14. Լրացնել բացերը. Գնահատել գործառույթը
Եկեք ընտրանքի բացերը լրացնենք հավասարման արդյունքում առաջացած տվյալներով: Եվ հետո, համեմատեք դրանք կետ առ կետ:
y = -9E -08x2 + 0, 0014x + 0, 1505
R² = 0, 9999
Օսլիլոսկոպի լարումը = -9E -08 * ինդեքս 2 + 0, 0014 * ինդեքս + 0, 1505
Քայլ 15. Օսլիոսկոպի լարման փոխարկումը համարժեք արժեքի ՝ ADC- ի հետ համեմատելու համար
Եկեք օգտվենք դրանից ՝ նաև տատանման լարման արժեքը փոխակերպելու համարժեք ADC արժեքի:
Քանի որ ESP32- ի ADP- ում ձեռք բերված ամենաբարձր արժեքը 4095 էր, որը համարժեք է նույն ցուցանիշի 2.958V- ի ընթերցմանը, կարող ենք ասել, որ.
Տատանման չափումներում յուրաքանչյուր վոլտ հավասար է մ.թ. մոտ 1384,4 միավորի: Հետևաբար, մենք կարող ենք բազմապատկել տատանումների բոլոր չափումները այս արժեքով:
Քայլ 16. Ստացված երկու թեքահարթակների համեմատություն
Երկու ընթերցման արդյունքում ձեռք բերված տարբերությունների պատկերացում:
Քայլ 17: ADC ընթերցման տարբերության վարքագիծը (ՍԽԱԼ)
Ստորև բերված կորը ցույց է տալիս, թե ինչպես է ADC ընթերցման տարբերությունը իրեն պահում որպես չափման գործառույթ: Տվյալների հավաքածուն թույլ կտա գտնել ուղղիչ գործառույթ:
Այս կորը գտնելու համար մենք պարզապես գծում ենք յուրաքանչյուր չափման մեջ հայտնաբերված տարբերությունը ՝ իբրև մ.թ. յուրաքանչյուր հնարավոր դիրքի ֆունկցիա (0 -ից 4095):
Քայլ 18: ADC Ընթերցանության տարբերությունների վարքագիծ - Ուղղիչ գործառույթ գտնելը
Մենք կարող ենք Excel- ում ուղղիչ գործառույթ որոշել `ավելացնելով Trend Line- ը, որն այժմ ավելի բարձր է, մինչև այն բավարար չափով տեղավորվի մեր տվյալների հետ:
Քայլ 19: Այլ ծրագրակազմի օգտագործում
Կորերի որոշման այլ հետաքրքիր ծրագրակազմ է PolySolve- ը, որը կարող է օգտագործվել ուղղակիորեն հղումով ՝ https://arachnoid.com/polysolve/ կամ ներբեռնել որպես Java ծրագիր:
Այն թույլ է տալիս կիրառել ավելի բարձր աստիճանի բազմանդամ հետընթացներ և ձևափոխված գործառույթի մատուցում, ինչպես նաև այլ ֆունկցիոնալ հնարավորություններ:
Այն օգտագործելու համար պարզապես մուտքագրեք տվյալները առաջին տեքստային դաշտում: Տվյալները պետք է հետևեն X, Y կարգին ՝ բաժանված ստորակետով կամ ներդիրով: Utionգուշացեք կետը ճիշտ օգտագործել որպես տասնորդական կետ:
Հաջորդ դաշտում աղյուսակը կհայտնվի, եթե մուտքագրված տվյալները ճիշտ ձևաչափվեն:
Ահա թե ինչպես է ընթացել մեր ADC սխալի կորը:
Այս պատուհանը կներկայացնի հետընթացի արդյունքը, ներառյալ գործառույթի համարժեքության տվյալները, որոնք իրենց հերթին կարող են ձևակերպել ելքը մի քանի եղանակով ՝ որպես C / C ++ գործառույթ, գործակիցների ցուցակ, Java- ով գրված գործառույթ և այլն:
Նշում. Ուշադրություն դարձրեք տասնորդական բաժանարարներին
Քայլ 20: Հաստատություններ և կարգավորում ()
Ես այստեղ նշում եմ GPIO- ն, որն օգտագործվում էր անալոգային գրավման համար: Ես նախաստորագրում եմ սերիական նավահանգիստը, ինչպես նաև անալոգային գրավման համար որոշված քորոցը:
const int pin_leitura = 36; // GPIO usado para captura analógica void setup () {Serial.begin (1000000); // Տեղադրեք հաջորդական հաջորդականությունը pinMode կարգաբերման համար (pin_leitura, INPUT); // Pino utilizado para captura analógica}
Քայլ 21. Loop () և ուղղման գործառույթ
Մենք կատարում ենք ճշգրտված լարման գրավումը և արժեքները տպում ենք ճիշտ ուղղումներով կամ առանց դրանց:
void loop () {int valor_analogico = analogRead (pin_leitura); // realiza a captura da tensão ajustada //Serial.print(valor_analogico + f (valor_analogico)); // imprime os valores para debug (COM CORREÇÃO) Serial.print (valor_analogico); // imprimime os valores para debug (SEM CORREÇÃO) Serial.print (","); Serial.print (4095); // cria uma linha para marcar o valor máximo de 4095 Serial.print (","); Serial.println (0); // cria uma linha para marcar o valor mínimo de 0}
Նկատի ունեցեք 12 -րդ տողում, որ մենք ունենք տվյալների տպման տարբերակ `f տարբերության ֆունկցիայի հավելումով (analog_value):
Քայլ 22. Օգտագործելով PolySolve ուղղման գործառույթը
Այստեղ մենք օգտագործում ենք PolySolve գործառույթը Arduino IDE- ի ներսում:
/* Ռեժիմ. Նորմալ բազմանդամային աստիճան 6, 2365 x, y տվյալների զույգ Հարաբերակցության գործակից (r^2) = 9, 907187626418e-01 Ստանդարտ սխալ = 1, 353761109831e+01 Ելքի ձև ՝ C/C ++ գործառույթ ՝ Հեղինակային իրավունք © 2012, Պ. Լուտուս - https://www.arachnoid.com: Բոլոր իրավունքները պաշտպանված են. */ կրկնակի f (կրկնակի x) {վերադարձ 2.202196968876e + 02 + 3.561383996027e-01 * x + 1.276218788985e-04 * pow (x, 2) + -3.470360275448e-07 * pow (x, 3) + 2.082790802069e- 10 * հզորություն (x, 4) + -5.306931174991e-14 * հզորություն (x, 5) + 4.787659214703e-18 * հզորություն (x, 6); }
Նշեք ստորակետով կետի փոփոխությունը որպես տասնորդական բաժանարար:
Քայլ 23. Սևեռում ուղղագրությամբ
Քայլ 24. Հաշվարկային ծախսեր
Բազմանդամային հաշվարկներ կատարելու համար անհրաժեշտ է, որ պրոցեսորը զբաղվի այս առաջադրանքով: Դա կարող է հանգեցնել կատարման ուշացումների ՝ կախված աղբյուրի կոդից և առկա հաշվիչ հզորությունից:
Այստեղ մենք տեսնում ենք թեստի արդյունքների աղյուսակ `օգտագործելով բազմաստիճան բազմանդամներ: Ուշադրություն դարձրեք pow () գործառույթի օգտագործման և այն ժամանակների միջև եղած տարբերությանը:
Քայլ 25. Թեստի կոդ - Կարգավորում () և Loop Start ()
Այստեղ մենք ունենք մեր թեստում օգտագործված կոդը:
void setup () {Serial.begin (1000000); // Iniciando a porta serial somente para debug} void loop () {float valor_analogico = 500.0; // um valor arbtrario float quantidade = 10000.0; // quantidade de chamadas float contador = 0.0; // contador de chamadas
Քայլ 26. Փորձարկման կոդ - հանգույց () և մշակում
Ես օգտագործել եմ micros () ֆունկցիան ՝ միկրովայրկյանների արժեքը ստանալու համար:
// ============= inicia o processo float agora = micros (); // marca o instante inicial while (contador <quantidade) {// v (valor_analogico); // função vazia // r (valor_analogico); // função com retorno // f0 (valor_analogico); // grau 0 // f1 (valor_analogico); // grau 1 // f2 (valor_analogico); // grau 2 // f3 (valor_analogico); // grau 3 // f4 (valor_analogico); // grau 4 // f5 (valor_analogico); // grau 5 // f6 (valor_analogico); // grau 6 // f13_semPow (valor_analogico); // grau 13º SEM a função POW // f13_comPow (valor_analogico); // grau 13º COM a função POW contador ++; } ագորա = (միկրոս () - ագորա) / քվանտադադ; // որոշման ընդմիջում, որը կարող է անցնել // ============== վերջնական գործընթաց
Քայլ 27. Փորձարկման կոդ - հանգույց () - արդյունքներ
Մենք տպագրում ենք 13 -րդ դասարանի գործառույթից վերադարձված արժեքը `ռազմավարությամբ և առանց համեմատության, ինչպես նաև մշակման միջակայքը:
// imprime o valor retornado da função de grau 13 com e sem POW para comparação Serial.print (f13_semPow (valor_analogico)); // grau 13º SEM a função POW Serial.print (" -"); Serial.print (f13_comPow (valor_analogico)); // grau 13º COM a função POW Serial.print (" -"); // imprime o intervalo do processamento Serial.println (ագորա, 6); }
Քայլ 28. Փորձարկման կոդ. Օգտագործված գործառույթներ
0 և 1 աստիճանի դատարկ գործառույթներ (միայն վերադարձով):
// FUNÇÃO VAZIA կրկնակի v (կրկնակի x) {} // FUNÇÃO SOMENTE COM RETORNO կրկնակի r (կրկնակի x) {վերադարձը x; } // FUNÇÃO DE GRAU 0 կրկնակի f0 (կրկնակի x) {վերադարձ 2.202196968876e+02; } // FUNÇÃO DE GRAU 1 կրկնակի f1 (կրկնակի x) {վերադարձ 2.202196968876e + 02 + 3.561383996027e-01 * x; }
2 -րդ, 3 -րդ և 4 -րդ դասարանների գործառույթները:
// FUNÇÃO DE GRAU 2 կրկնակի f2 (կրկնակի x) {վերադարձ 2.202196968876e + 02 + 3.561383996027e-01 * x + 1.276218788985e-04 * pow (x, 2); } // FUNÇÃO DE GRAU 3 կրկնակի f3 (կրկնակի x) {վերադարձ 2.202196968876e + 02 + 3.561383996027e-01 * x + 1.276218788985e-04 * pow (x, 2) + -3.470360275448e-07 * pow (x, 3); } // FUNÇÃO DE GRAU 4 կրկնակի f4 (կրկնակի x) {վերադարձ 2.202196968876e + 02 + 3.561383996027e-01 * x + 1.276218788985e-04 * pow (x, 2) + -3.470360275448e-07 * pow (x, 3) + 2.082790802069e-10 * հզորություն (x, 4); }
5 -րդ և 6 -րդ դասարանների գործառույթները:
// FUNÇÃO DE GRAU 5 կրկնակի f5 (կրկնակի x) {վերադարձ 2.202196968876e + 02 + 3.561383996027e-01 * x + 1.276218788985e-04 * pow (x, 2) + -3.470360275448e-07 * pow (x, 3) + 2.082790802069e-10 * հզորություն (x, 4) + -5.306931174991e-14 * հզորություն (x, 5); } // FUNÇÃO DE GRAU 6 կրկնակի f6 (կրկնակի x) {վերադարձ 2.202196968876e + 02 + 3.561383996027e-01 * x + 1.276218788985e-04 * pow (x, 2) + -3.470360275448e-07 * pow (x, 3) + 2.082790802069e-10 * հզորություն (x, 4) + -5.306931174991e-14 * հզորություն (x, 5) + 4.787659214703e-18 * հզորություն (x, 6); }
13 -րդ դասարանի գործառույթը `օգտագործելով ռազմագերինը:
// FUNÇÃO DE GRAU 13 USANDO O POW կրկնակի f13_comPow (կրկնակի x) {վերադարձ 2, 161282383460e + 02 + 3, 944594843419e-01 * x + 5, 395439724295e-04 * pow (x, 2) + -3, 968558178426e-06 * pow (x, 3) + 1, 047910519933e-08 * pow (x, 4) + -1, 479271312313e-11 * pow (x, 5) + 1, 220894795714e-14 * pow (x, 6) + -6, 136200785076e-18 * pow (x, 7) + 1, 910015248179e-21 * pow (x, 8) + -3, 566607830903e-25 * pow (x, 9) + 5, 000280815521e-30 * pow (x, 10) + 3, 434515045670e-32 * pow (x, 11) + -1, 407635444704e-35 * pow (x, 12) + 9, 871816383223e-40 * pow (x, 13); }
13 -րդ դասարանի գործառույթը ՝ առանց ռազմագերիների օգտագործման:
// FUNÇÃO DE GRAU SEM USAR O POW կրկնակի f13_semPow (կրկնակի x) {վերադարձ 2, 161282383460e + 02 + 3, 944594843419e-01 * x + 5, 395439724295e-04 * x * x + -3, 968558178426e-06 * x * * x + 1, 047910519933e-08 * x * x * x * x + -1, 479271312313e-11 * x * x * x * x * x + 1, 220894795714e-14 * x * x * x * x * x * x * x + -6, 136200785076e-18 * x * x * x * x * x * x * x + 1, 910015248179e-21 * x * x * x * x * x * x * x * x + -3, 566607830903e- 25 * x * x * x * x * x * x * x * x * x + 5, 000280815521e-30 * x * x * x * x * x * x * x * x * x * x + 3, 434515045670e- 32 * x * x * x * x * x * x * x * x * x * x * x + -1, 407635444704e -35 * x * x * x * x * x * x * x * x * x * x * x * x + 9, 871816383223e-40 * x * x * x * x * x * x * x * x * x * x * x * x * x * x; }
Քայլ 29: Ֆայլեր
Ներբեռնեք ֆայլերը.
ԻՆՈ
Աղյուսակ
Խորհուրդ ենք տալիս:
RGB ժամացույց ՝ երեխաներին ժամանակի մասին սովորեցնելու համար. 4 քայլ
RGB ockամացույց ՝ երեխաներին ժամանակի մասին սովորեցնելու համար. Երեկ երեկոյան ես միտք ծագեցի, թե ինչպես կարող եմ օգնել իմ 5 տարեկանին ժամանակի զգացում ունենալ: Հասկանալի է, որ երեխաները կողմնորոշվում են ամենօրյա իրադարձությունների վրա ՝ պատկերացում կազմելու, թե ինչ է սպասվում հաջորդին: Բայց նախորդ իրադարձությունները սովորաբար մի փոքր խառնաշփոթ են և հազիվ թե երբևէ կարգին: Քանի որ պատմում է
Rpibot - Ռոբոտաշինություն սովորելու մասին. 9 քայլ
Rpibot - Robotics սովորելու մասին. Ես ներդրված ծրագրային ապահովման ինժեներ եմ գերմանական ավտոմոբիլային ընկերությունում: Այս նախագիծը սկսեցի որպես ներդրված համակարգերի ուսուցման հարթակ: Նախագիծը վաղաժամ չեղարկվեց, բայց ես այնքան վայելեցի այն, որ շարունակեցի ազատ ժամանակ: Սա արդյունքն է … ես
AI Aids Eyes (Համակարգչային տեսողության համակարգ, որը հիշեցնում է օպերատորներին անվտանգության ակնոցներ կրելու մասին). 4 քայլ
AI Aids Eyes (Համակարգչային տեսողության համակարգ ՝ օպերատորներին հիշեցնելու համար կրել անվտանգության ակնոցներ). Ահա համակարգի ցուցադրական տարբերակը: Երբ համակարգը հայտնաբերում է, որ գայլիկոն վերցված է, այն ինքնաբերաբար կտա անվտանգության ակնոցների նախազգուշացում: Անվտանգության ակնոցների նախազգուշացումների առկայությունը ներկայացնելու համար RGB պատկերի եզրագիծը ցուցադրվում է կարմիր գույնով
Գիտե՞ք, թե ինչ են զգում ձեր բույսերը: [Մասնիկ+Ubidots]: 6 քայլ
Գիտե՞ք, թե ինչ են զգում ձեր բույսերը: [Մասնիկ+Ubidots]. Ոչինչ չի փոխարինի ինքդ քեզ համար հող դուրս գալուն և մշակելուն, բայց այսօրվա տեխնոլոգիան թույլ է տվել հեռակա վերահսկել հողը և հետևել իմ մարդկային զգայարանների անչափելի պարամետրերին: SHT10- ի նման հողի զոնդերը այժմ չափազանց ճշգրիտ են և առաջարկում են
ESP32. Գիտե՞ք ինչ է DAC- ն: 7 քայլ
ESP32. Գիտե՞ք ինչ է DAC- ն: Այսօր մենք կխոսենք երկու հարցի մասին: Առաջինը DAC- ն է (Digital-to-Analog Converter): Ես դա համարում եմ կարևոր, քանի որ դրա միջոցով, օրինակ, մենք ձայնային ելք ենք կազմում ESP32- ում: Երկրորդ խնդիրը, որին մենք այսօր կանդրադառնանք, տատանումն է