Բովանդակություն:
- Պարագաներ
- Քայլ 1: Աշխատանքի սկզբունքը
- Քայլ 2. Arduino UNO ուրվագիծ
- Քայլ 3: Վեբ ինտերֆեյս և P5.js
- Քայլ 4: Համակարգի կարգավորում
- Քայլ 5: Միացում, կազմաձևում և ձեռքբերում
- Քայլ 6. Գրավել արդյունքները և CSV տվյալների արտահանումը
- Քայլ 7: PulseView ազդանշանի վերլուծություն
- Քայլ 8: Եզրակացություն
Video: Arduino UNO Logic Sniffer: 8 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Այս նախագիծը սկսվեց որպես պարզ փորձ: Մեկ այլ նախագծի համար ATMEGA328P- ի տվյալների թերթիկի վերաբերյալ իմ հետազոտության ընթացքում ես գտա բավականին հետաքրքիր բան: Timer1 մուտքային գրավման միավոր: Այն թույլ է տալիս մեր Arduino UNO- ի միկրոկառավարիչին հայտնաբերել ազդանշանի եզրը, պահել ժամանակային նշանը և ընդհատում առաջացնել ՝ բոլորը սարքավորման մեջ:
Հետո ես մտածեցի, թե որ հավելվածում դա կարող է օգտակար լինել, և ինչպես փորձարկել այն: Քանի որ ես ուզում եմ տրամաբանական անալիզատոր ձեռք բերել որոշ ժամանակ անց, ես որոշեցի փորձել այն կիրառել իմ Arduino UNO- ի տախտակում, պարզապես գործառույթը փորձարկելու համար և տեսնելու, թե արդյոք մենք կարող ենք դրանից լավ արդյունքներ ստանալ:
Ես միակը չեմ, ով ունեցել է այս գաղափարը, և դուք դրանցից շատերը կգտնեք ՝ պարզապես googling «Arduino Logic Analyzer» - ով: Նախագծի սկզբում, քանի որ այն նոր էր սկսվել որպես փորձ, ես նույնիսկ տեղյակ չէի, որ մարդիկ արդեն հասցրել են այն, և տպավորված էի այն լավ արդյունքներից, որոնք նրանք ձեռք բերեցին այս փոքրիկ սարքավորման միջոցով: Այնուամենայնիվ, ես չկարողացա գտնել մեկ այլ նախագիծ ՝ օգտագործելով մուտքի գրավման միավորը, այնպես որ, եթե արդեն տեսել եք սա, տեղեկացրեք ինձ:
Ամփոփելու համար, իմ տրամաբանական անալիզատորը.
- Ունեն մեկ ալիք,
- Ունեն գրաֆիկական ինտերֆեյս,
- Կապվեք ինտերֆեյսի հետ USB- ի միջոցով,
- Աշխատեք Arduino UNO- ի տախտակի վրա:
Այն, ի վերջո, կունենա 800 նմուշի հիշողության խորություն և կարողացավ հաջողությամբ գրավել 115200 bauds UART հաղորդագրություն (իրականում այն չեմ փորձարկել ավելի մեծ արագությամբ):
Այս հրահանգը պարունակում է այս նախագծի ինչպես «ինչպես է այն աշխատում», այնպես էլ «ինչպես օգտագործել այն» հատվածները, ուստի նրանց համար, ովքեր տեխնիկական առումով չեն հետաքրքրվում, կարող եք ուղղակիորեն անցնել 4 -րդ քայլին:
Պարագաներ
Ես ուզում էի անալիզատորը պահել հնարավորինս պարզ, այնպես որ պահանջվում էր շատ քիչ սարքավորում:
Ձեզ հարկավոր կլինի.
- Arduino UNO տախտակ (կամ համարժեք, քանի դեռ այն ապավինում է ATMEGA328P MCU- ին),
- Համակարգիչ,
- Ինչ -որ բան շտկելու համար (Arduino UNO- ի մյուս խորհուրդը լավ է աշխատում որոշ փորձարկումներ կատարելու համար):
Ինչպես Arduino UNO- ի, այնպես էլ վեբ ինտերֆեյսի կոդը կարելի է գտնել այստեղ: Ձեզ նույնպես անհրաժեշտ կլինեն p5.serialcontrol և PulseView ծրագրակազմերը:
Քայլ 1: Աշխատանքի սկզբունքը
Գաղափարը պարզ է: Դուք ընտրում եք գրավման կարգավորումները և կտտացրեք «ձեռք բերել»: Վեբ ինտերֆեյսը դրանք կուղարկի p5.serialcontrol ծրագրային ապահովմանը, որը թույլ է տալիս մեզ օգտագործել սերիական ինտերֆեյսը դիտարկիչից, քանի որ այն չի կարող ուղղակիորեն մուտք գործել դրան: P5.serialcontrol ծրագրաշարը այնուհետև տեղեկատվությունը փոխանցում է Arduino UNO- ի տախտակին, որը գրավում է տվյալները և դրանք նույն ճանապարհով հետ ուղարկում ինտերֆեյս:
Հեշտ! Դե… Քանի որ ես իսկապես լավ չեմ տիրապետում Մարդու/մեքենայի ինտերֆեյսի ծրագրավորմանը կամ վեբ տեխնոլոգիաներին, իմը, անշուշտ, մի փոքր տգեղ է և խելագար: Բայց դա թույլ է տալիս ինձ սկսել գրավել և հետ վերցնել իմ տվյալները, ինչը և դրա համար է նախատեսված, ուստի ես կարծում եմ, որ դա լավ է: Ավելի լուրջ վերլուծական աշխատանքների համար ես ներմուծում եմ իմ գրառումները PulseView- ում, որը հեշտ է օգտագործել և առաջարկում է գործառույթների և արձանագրությունների ապակոդավորման լավ փաթեթ, ինչպես կտեսնենք ավելի ուշ:
Arduino UNO- ի մուտքի գրավման միավորը կարող է կազմաձևվել ժամացույցի տարբեր բաժիններ օգտագործելու համար, դրանով իսկ նվազեցնելով բանաձևը, բայց մեծացնելով մինչև հոսքի հետաձգումը: Այն կարող է նաև առաջացնել բարձրանալու, ընկնելու կամ երկու եզրերի վրա `տվյալների գրավումը սկսելու համար:
Քայլ 2. Arduino UNO ուրվագիծ
Ես գրել և կազմել եմ էսքիզը Arduino IDE- ով: Ես առաջին անգամ սկսեցի erամաչափը 1 -ի «Սովորական» ռեժիմում կարգաբերելով ՝ տեղադրելով դրա TCCR1A և TCCR1B գրանցամատյաններում (): Այնուհետև ես որոշ գործառույթներ կատարեցի, որպեսզի հետագայում մի փոքր թեթևացնեմ դրա օգտագործումը, ինչպես օրինակ `« setTim1PSC () »անվանումով ժամացույցի բաժանումը: Ես գրել եմ նաև գործառույթներ ՝ ակտիվացնելու և ապաակտիվացնելու Timer1 մուտքի գրավման միավորը և արտահոսքի ընդհատումները:
Ես ավելացրեցի «նմուշներ» զանգվածը, որը կպահպանի ձեռք բերված տվյալները: Դա գլոբալ զանգված է, որը ես սահմանել եմ «անկայուն» `կանխելու համար, որ կոմպիլյատորը կատարի օպտիմալացում և այն դնի արագ, ինչպես դա արվում էր իմ առաջին հավաքածուների ժամանակ: Ես այն սահմանեցի որպես «uint16_t» զանգված, քանի որ erամաչափը նույնպես 16 բիթ է ՝ 810 երկարությամբ: Մենք դադարում ենք գրառել 800 արժեքներով, բայց քանի որ թեստը կատարվում է ընդհատումներից դուրս ՝ արագության ակնհայտ պատճառներով, ես որոշեցի պահել 10 -ը: ավելի շատ արժեքներ `կանխելու հեղեղումը: Մնացած կոդի համար մի քանի լրացուցիչ փոփոխականներով, ուրվագիծը օգտագործում է 1313 բայթ (88%) հիշողություն, ինչը մեզ թողնում է 235 բայթ ազատ RAM: Մենք արդեն օգտագործում ենք բարձր հիշողություն, և ես չէի ցանկանում ավելացնել ավելի շատ նմուշի կարողություն, քանի որ դա կարող է տարօրինակ վարք առաջացնել հիշողության չափազանց քիչ տարածքի պատճառով:
Կատարման արագությունը միշտ բարձրացնելու իմ ձգտման մեջ ես օգտագործեցի ֆունկցիայի ցուցիչներ ընդհատումների ներսում if հայտարարությունների փոխարեն `դրանց կատարման ժամանակը նվազագույնի հասցնելու համար: Գրավիչ քորոցը միշտ լինելու է Arduino UNO համարը 8, քանի որ այն միակն է, որը միացված է Timer1- ի մուտքի գրավման միավորին:
Գրավման գործընթացը ցուցադրվում է վերևի պատկերի վրա: Այն սկսվում է, երբ Arduino UNO- ն ստանում է վավեր UART տվյալների շրջանակ, որը պարունակում է գրավման ցանկալի կարգավորումները: Այնուհետև մենք մշակում ենք այդ կարգավորումները `կազմաձևելով ճիշտ գրանցամատյանները` ընտրված եզրին գրավելու համար և օգտագործելով ժամացույցի ճիշտ բաժանումը: Այնուհետև մենք միացնում ենք PCINT0 (կապի փոփոխություն) ընդհատումը `ազդանշանի առաջին եզրը հայտնաբերելու համար: Երբ այն ստանում ենք, մենք վերականգնում ենք Timer1 արժեքը, անջատում ենք PCINT0- ի ընդհատումը և միացնում ենք ICU- ն (Input Capture Unit) ընդհատումը: Այդ պահից ազդանշանի ցանկացած ընկնում/բարձրանում (կախված ընտրված կազմաձևից), կաշխատի մուտքի գրավման միավորը, այդպիսով պահպանելով այս իրադարձության ժամանակային նշանը ICR1 գրանցամատյանում և կատարելով ընդհատում: Այս ընդհատման մեջ մենք ICR1 գրանցամատյանի արժեքը դնում ենք մեր «նմուշների» զանգվածում և ավելացնում ինդեքսը հաջորդ գրավման համար: Երբ erամաչափ 1 -ը կամ զանգվածը լցվում են, մենք անջատում ենք գրավման ընդհատումը և տվյալները հետ ուղարկում վեբ ինտերֆեյս UART- ի միջոցով:
Ես որոշեցի օգտագործել կապի փոփոխման ընդհատումը ՝ գրավումը խթանելու համար, քանի որ մուտքի գրավման միավորը թույլ է տալիս լուսանկարել միայն մեկ կամ մյուս եզրին, ոչ թե երկուսն էլ: Այն նաև խնդիր է առաջացնում, երբ ցանկանում եք գրավել երկու ծայրերը: Իմ լուծումն այն է, որ յուրաքանչյուր բեռնված նմուշի մուտքի գրավման հսկիչ գրանցամատյանում եզրերի ընտրությունը վերահսկող բիթը շրջվի: Այդ կերպ մենք կորցնում ենք կատարման արագությունը, բայց մենք դեռ կարող ենք օգտագործել մուտքի գրավման միավորի գործառույթները:
Այսպիսով, ինչպես երևի նկատեցիք, մենք իրականում չենք վերցնում յուրաքանչյուր նմուշ ֆիքսված ժամանակային ընդմիջումներով, այլ որսում ենք այն պահը, երբ տեղի է ունենում ազդանշանի անցում: Եթե մենք վերցնեինք մեկ նմուշ յուրաքանչյուր ժամացույցի ցիկլում, նույնիսկ ժամացույցի ամենաբարձր բաժանումով, մենք բուֆերը կլրացնեինք մոտավորապես 0,1 վայրկյանում ՝ ենթադրելով, որ մենք օգտագործում էինք uint8_t տիպը, որն ամենափոքրն է հիշողության մեջ ՝ առանց ստրուկներ օգտագործելու:
Քայլ 3: Վեբ ինտերֆեյս և P5.js
Ինչպես նշում է վերնագիրը, վեբ ինտերֆեյսը ստեղծվել է p5.js. Նրանց համար, ովքեր դա արդեն չգիտեն, խորհուրդ եմ տալիս գնալ և ստուգել կայքը, քանի որ այն իսկապես լավ գրադարան է: Այն հիմնված է Մշակման վրա, հեշտ է օգտագործել, թույլ է տալիս շատ արագ լավ արդյունքներ ստանալ և լավ փաստաթղթավորված է: Այդ բոլոր պատճառներով ես ընտրեցի այս գրադարանը: Ես նաև օգտագործեցի quicksettings.js գրադարանը `ընտրացանկերի համար, grafica.js- ը` իմ տվյալները գծելու համար, և p5.serialport գրադարանը `Arduino UNO- ի հետ հաղորդակցվելու համար:
Ես շատ ժամանակ չեմ ծախսի ինտերֆեյսի վրա, քանի որ այն պարզապես նախագծել եմ տվյալների նախադիտման և կարգավորումների կառավարման համար, ինչպես նաև այն պատճառով, որ դա ընդհանրապես իմ փորձի թեման չէր: Այնուամենայնիվ, ես ստորև կբացատրեմ ամբողջ համակարգն օգտագործելու տարբեր քայլերը ՝ դրանով իսկ բացատրելով առկա տարբեր վերահսկումները:
Քայլ 4: Համակարգի կարգավորում
Առաջին բանը, որ Arduino UNO- ն և ինտերֆեյսի ծածկագիրը ներբեռնեք այստեղ, եթե դա արդեն արված չէ: Այնուհետև կարող եք վերադասավորել ձեր Arduino UNO- ի խորհուրդը «UNO_LS.ino» ուրվագծով ՝ Arduino IDE- ի միջոցով:
Դուք պետք է ներբեռնեիք p5.serialcontrol ծրագրակազմը նրա github պահոցից: Դուք պետք է ստանաք ձեր օպերացիոն համակարգին համապատասխանող zip ֆայլը (ես այն փորձարկել եմ միայն Windows- ում): Հավաքեք zip- ը թղթապանակում, սկսեք դրա մեջ գտնված գործարկվողը և թողեք այդպես: Մի փորձեք միանալ սերիական որևէ պորտին, պարզապես թողեք այն աշխատի հետին պլանում, այն կօգտագործվի որպես ռելե:
Բացեք «Ինտերֆեյս» թղթապանակը: Դուք պետք է գտնեք «index.html» անունով ֆայլ: Բացեք այն ձեր դիտարկիչում, դա վեբ ինտերֆեյս է:
Եվ վերջ! Անհրաժեշտ չէ լրացուցիչ գրադարաններ ներբեռնել, ամեն ինչ պետք է ներառվի իմ տրամադրած փաթեթում:
Քայլ 5: Միացում, կազմաձևում և ձեռքբերում
Ինտերֆեյսը Arduino UNO տախտակին միացնելու համար պարզապես ընտրեք ցանկի համապատասխան նավահանգիստը և սեղմեք «Բաց» կոճակը: Եթե գործողությունը հաջող էր, ապա «պետական» հաղորդագրությունը պետք է ցուցադրեր «COMX- ը բացված» -ի նման մի բան:
Այժմ կարող եք ընտրել ձեր գրավման ընտրանքները: Առաջինը եզրերի ընտրությունն է: Խորհուրդ եմ տալիս միշտ օգտագործել «Երկուսն էլ», քանի որ դա ձեզ կտա իրական ազդանշանի լավագույն ներկայացումը: Եթե «Երկուսն» պարամետրը չի կարողանում որսալ ազդանշանը (եթե ազդանշանի հաճախականությունը, օրինակ, չափազանց բարձր է), կարող եք փորձել կամ «Բարձրացում» կամ «Ընկնում» եզրերի կարգավորմամբ ՝ կախված ազդանշանից, որը փորձում եք տեսնել:
Երկրորդ կարգավորումը ժամացույցի բաժանումն է: Այն կտա ձեզ բանաձև, որով դուք կկարողանաք գրավել ազդանշանը: Դուք կարող եք ընտրել բաժանման գործակիցը սահմանել կամ «8», «64», «256» և «1024»: Arduino UNO- ի խորհուրդը օգտագործում է 16 ՄՀց քվարց `միկրոկոնտրոլերը ժամացույց անելու համար, ուստի ընտրանքի հաճախականությունը կլինի« 16 ՄՀց/բաժանման գործոն »: Settingգույշ եղեք այս պարամետրերի նկատմամբ, քանի որ այն նաև կորոշի, թե որքան ժամանակ դուք կկարողանաք որսալ ազդանշան: Քանի որ erամաչափը 16 բիթ ժամաչափ է, գերհոսքից առաջ թույլատրելի գրավման ժամանակը կլինի «(2^16)*(բաժանման գործակից)/16 ՄՀց»: Կախված ձեր ընտրած պարամետրից, այն կտատանվի 33 միլիոն ֆունտից մինչև 4.2 վրկ: Ձեր ընտրությունը մտքում պահեք, այն ձեզ ավելի ուշ պետք կգա:
Վերջին կարգավորումը աղմուկը չեղարկող սարքն է: Ես դրա վրա շատ փորձարկումներ չեմ անցկացրել, և դա ձեզ պետք չի լինի 99% դեպքերում, այնպես որ պարզապես թողեք այն չստուգված: Նրանց համար, ովքեր դեռ հետաքրքրված են դրանով, կարող եք աղմուկի ազդանշանը որոնել ATMEGA328P- ի տվյալների թերթի erամաչափ/հաշվիչ 1 բաժնում:
Մի մոռացեք Arduino UNO- ի տախտակի 8 -րդ կապը միացնել ձեր ազդանշանին և միացրեք լարերը, որպեսզի ունենաք միևնույն լարման տեղեկանք ինչպես փորձարկման շղթայի, այնպես էլ տրամաբանական անալիզատորի համար: Եթե Ձեզ անհրաժեշտ է գրունտային մեկուսացում, կամ պետք է չափել 5 Վ-ից տարբեր մակարդակներով ազդանշաններ, հավանաբար պետք է օպտո-մեկուսիչ ավելացնել ձեր շղթային:
Երբ ամեն ինչ ճիշտ կազմաձևվի, կարող եք սեղմել «Ձեռք բերել» կոճակը:
Քայլ 6. Գրավել արդյունքները և CSV տվյալների արտահանումը
Երբ ձեր Arduino UNO- ն ավարտի գրավումը, այն ինքնաբերաբար տվյալները հետ կուղարկի վեբ ինտերֆեյս, որը դրանք գծապատկերելու է: Կարող եք մեծացնել կամ փոքրացնել աջ սահնակով, իսկ ներքևի մասով անցնել նմուշների միջով:
Սյուժեն տալիս է միայն նախադիտում և չունի տվյալների վերլուծության գործիքներ: Այսպիսով, ձեր տվյալների հետագա վերլուծություն իրականացնելու համար դուք ստիպված կլինեք դրանք ներմուծել PulseView:
Առաջին քայլը ձեր բոլոր տվյալները պարունակող csv ֆայլ արտահանելն է: Դա անելու համար պարզապես անհրաժեշտ է վեբ ինտերֆեյսից սեղմել «Արտահանել» կոճակը: Պահպանեք ձեր ֆայլը հայտնի վայրում, երբ պահանջվի:
Այժմ բացեք PulseView- ը: Վերևի ցանկի բարում կտտացրեք «Բացել» (թղթապանակի պատկերակ) և ընտրեք «Ներմուծել ստորակետներով անջատված արժեքներ …»: Ընտրեք ձեր տվյալները պարունակող նախկինում ստեղծված csv ֆայլը:
Մի փոքր պատուհան կհայտնվի: Թողեք ամեն ինչ այնպես, ինչպես կա, պարզապես անհրաժեշտ է փոփոխել «Նմուշառել» կարգավորումը ՝ ըստ գրավման համար ընտրված ժամացույցի բաժանման գործոնի: Ձեր ընտրանքի հաճախականությունը կլինի «16 ՄՀց/(բաժանման գործակից)»: Այնուհետեւ կտտացրեք «Լավ», ձեր ազդանշանը պետք է հայտնվի էկրանին:
Քայլ 7: PulseView ազդանշանի վերլուծություն
PulseView- ն ունի բազմաթիվ արձանագրությունների ապակոդավորիչներ: Դրանք մուտք գործելու համար կտտացրեք «Ավելացնել արձանագրության ապակոդավորիչ» ցանկի վերին ցանկում (առավել ճիշտ գործիք): Իմ փորձի համար ես պարզապես ուղարկել եմ մի պարզ UART հաղորդագրություն 9600 bauds հասցեով, այնպես որ ես փնտրեցի «UART»:
Այն կավելացնի ալիք, որի ձախ կողմում կա պիտակ (ճիշտ այնպես, ինչպես ձեր տվյալների համարը): Սեղմելով պիտակի վրա, կարող եք փոխել ապակոդավորման կարգավորումները: Onesիշտներն ընտրելուց հետո ես կարողացա ստանալ նույն հաղորդագրությունը, ինչ ուղարկել էր իմ փորձարկող սարքը: Սա ցույց է տալիս, որ ամբողջ համակարգը գործում է ինչպես և սպասվում էր:
Քայլ 8: Եզրակացություն
Նույնիսկ եթե նախագիծը սկզբում փորձ էր, ես գոհ եմ իմ ստացած արդյունքներից: Ես կարողացա UART- ի ազդանշաններ նմուշառել մինչև 115200 բաուդ «Երկու» եզրային ռեժիմում ՝ առանց որևէ խնդրի, և ես նույնիսկ հասցրեցի մինչև 230400 բաուդ ՝ «Ընկնել» եզրային ռեժիմում: Դուք կարող եք տեսնել իմ թեստի կարգավորումը վերևի նկարում:
Իմ իրականացումը մի քանի թերություններ ունի ՝ սկսած այն փաստից, որ այն կարող է միաժամանակ միայն մեկ ազդանշան գրավել, քանի որ միայն Arduino UNO- ի 8 -րդ փինն է «մուտքագրման ունակություն ունակ»: Եթե դուք փնտրում եք Arduino տրամաբանական անալիզատոր ավելի շատ ալիքներով, գնացեք ստուգեք Catoblepas- ը:
Դուք չեք կարող ակնկալել, որ Arduino UNO- ն կկարողանա որսալ բարձր հաճախականությամբ ազդանշաններ (որոշ ՄՀց), քանի որ այն ընդամենը 16 ՄՀց հաճախականությամբ է աշխատում (եթե ինչ -որ մեկը դա արել է, ինձ հետաքրքիր կլինի տեսնել դրա մեթոդը): Այնուամենայնիվ, ես դեռ տպավորված եմ այն արդյունքներից, որոնք մենք կարող ենք ստանալ այս ATMEGA328P միկրոկոնտրոլերից:
Չեմ կարծում, որ կոդի վրա շատ աշխատանքներ կանեմ: Ես անցկացրեցի իմ փորձերը և ստացա այն արդյունքները, որոնք ես փնտրում էի: Բայց եթե ինչ -որ մեկը ցանկանում է իր ներդրումն ունենալ, ազատ զգալ փոփոխել և վերաբաշխել իմ ծածկագիրը ամբողջությամբ կամ դրա մի մասը:
Դա իմ առաջին հրահանգն էր, և կարծում եմ ՝ երկար: Հուսով եմ, որ ձեզ համար հետաքրքիր ընթերցում էր:
Տեղեկացրեք ինձ, եթե սխալներ եք գտնում, կամ որևէ հարց ունեք:
Խորհուրդ ենք տալիս:
Particle Sniffer: 6 քայլ (նկարներով)
PM2.5 գնահատման վերաբերյալ նախորդ նախագծերի հետ աշխատելիս ես նկատեցի այն թերությունը, որ չկարողացա գտնել փոքր մասնիկների աղտոտման կետային աղբյուրները: Քաղաքապետարանների և արբանյակային լուսանկարների կատարած ընտրանքների մեծ մասը հավաքում է լայն աղբյուրներ, որոնք չեն
Arduino Nano Logic Probe: 17 քայլ (նկարներով)
Arduino Nano Logic Probe. Այս նախագիծը իմ Arduino Logic Probe- ի նոր տարբերակն է, բայց այժմ կառուցված է Arduino Nano- ով `Arduino Uno- ի փոխարեն: Եռանիշ էկրանը, մի քանի դիմադրություն և Arduino Nano- ն գործնականում այս հետաքրքիր նախագծի բաղադրիչներն են, որոնք
Midi Controlled Recording Light for Logic Pro X: 9 քայլ (նկարներով)
Midi Controlled Recording Light for Logic Pro X: Այս ձեռնարկը տրամադրում է տեղեկատվություն այն մասին, թե ինչպես կարելի է կառուցել և ծրագրավորել հիմնական MIDI ինտերֆեյսը ՝ Logic Pro X- ով ձայնագրման լույսը վերահսկելու համար: Պատկերը ցույց է տալիս ամբողջ համակարգի բլոկ -դիագրամ ՝ Mac Logic Pro համակարգչից աշխատող համակարգչից: X- ը ՝ ձախից դեպի Սաի
Arduino I2C Sniffer: 4 քայլ
Arduino I2C Sniffer: I2C- ը սերիական արձանագրություն է, որն օգտագործվում է միկրոկոնտրոլերին միացման միացման համար արտաքին ծայրամասային սարքերի հետ: Յուրաքանչյուր ծայրամասային սարք պետք է ունենա եզակի ID համար, որը կոչվում է հասցե, որն օգտագործվում է այն որպես տվյալ հաղորդագրության նպատակային հասցեատեր ճանաչելու համար
TTL Logic Level Tester Գրիչ. 5 քայլ (նկարներով)
TTL Logic Level Tester Գրիչ. TTL Logic Level Tester Գրիչ: Այս բևեռականություն փորձարկող գրիչը փոքր -ինչ տարբերվում է, քանի որ ի վիճակի է ստուգել TTL մակարդակները և ցույց է տալիս կարգավիճակը 7 հատվածի էկրանին `օգտագործելով տառերը. &Quot; H " (Բարձր) տրամաբանական մակարդակի համար "