Կառուցեք մեքենայի դիտիչ `9 քայլ
Կառուցեք մեքենայի դիտիչ `9 քայլ
Anonim
Կառուցեք մեքենայի դիտորդ
Կառուցեք մեքենայի դիտորդ
Կառուցեք մեքենայի դիտորդ
Կառուցեք մեքենայի դիտորդ

Այս նախագծի մեկնարկային կետը կոնկրետ նախագծի վրա աշխատելն էր ՝ միկրոկառավարիչների տախտակների մասին մի քանի բան իմանալու համար:

Սկզբնական գաղափարն էր ստեղծել ֆիզիկական օբյեկտ, որը կարող էր վերահսկել Շարունակական ինտեգրացիոն համակարգը (VSTS | Azure DevOps) և հաղորդել ծրագրակազմի խափանումների մասին: ՏՏ բաժնի անվտանգության նկատառումներից ելնելով ՝ ինձ մերժել են «ոչ ստանդարտ» սարք միացնել անմիջապես ձեռնարկության ցանցին:

Ավարտեցի վերը նկարում պատկերված ճարտարապետությունը: Կատարման աշխատանքների ընթացքը կարելի է ամփոփել հետևյալ կերպ.

Windows աշխատասեղանի ծրագիրը սկանավորում է (քաշել) VSTS Build Definitions- ը: Այն վերլուծում է կառուցման արդյունքները, այնուհետև հրաման է ուղարկում ֆիզիկական սարքին, որը կատարում է մի փոքր անիմացիոն հաջորդականություն ՝ նախքան կարմիր կամ կանաչ դրոշը ցուցադրելը:

Քայլ 1: Անհրաժեշտ մասեր

Հետևյալ ցուցակը ամփոփում է բոլոր անհրաժեշտ պարագաները.

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3):
  • 1 Ընդլայնման վահան (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265):
  • 2 XBee S1 մոդուլ (https://www.adafruit.com/product/128):
  • 1 XBee explorer dongle (https://www.sparkfun.com/products/11697):
  • 2 շարունակական servo շարժիչ 5VDC ամրացնող պարագաներով (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf):
  • 1 9VDC էլեկտրամատակարարում:
  • 3 LED:
  • 3 դիմադրություն 220 Օմ:
  • թերմո քաշվող թև:
  • 1 կոճակ:
  • 10KΩ քաշեք ռեզիստորը քաշման համար:
  • 100nF կոնդենսատոր:
  • էլեկտրական լարեր:
  • շերտի տախտակ (կոճակը տեղադրելու համար)
  • 5 մմ փայտ (50x50 սմ):
  • փայտե ձող քառակուսի հատված 5x5 մմ (1 մ):
  • ստվարաթուղթ:
  • 10 մմ պտուտակ 2 մմ տրամագծով:
  • 4 պտուտակ 5 մմ տրամագծով:
  • ուժեղ մագնիս:
  • շրջադարձային մոդուլ: Ես նորից օգտագործեցի առկայծող լույսի ներքին շարժական մասը: կարող եք տեղադրել այն, ինչ ցանկանում եք: Պարզապես պետք է հոգ տանել, որ շարժական 2 մասերը կարող են ազատ տեղաշարժվել ՝ առանց իրար դիպչելու:

Քայլ 2: Կառուցեք արկղը

Կառուցելով արկղը
Կառուցելով արկղը

Փաստորեն, կարող եք ունենալ ցանկացած ձևի տուփ: Հիմնական բանը, որի մասին պետք է մտածել սկսելուց առաջ, այն է, թե որտեղ են լինելու շարժվող մասերը և ապահովելու, որ դրանք կարողանան ազատ տեղաշարժվել ՝ առանց իրար դիպչելու: Մեկ այլ կետ այն է, թե որտեղ եք պատրաստվում տեղադրել սարքը: Ես ավարտեցի մագնիսով (ուժեղ), որպեսզի այն կպչեմ ցանկացած մետաղական հենարանին: եթե ցանկանում եք կառուցել նույն տուփը, կարող եք հետևել ֆայլի ցուցումներին box_drawings.pdf:

Այդ դեպքում պարզապես պետք է կտրել բոլոր տարբեր կտորները, պատրաստել սերվոմոտորների, LED- ների, կոճակի և պտուտակների անցքեր և վերջապես սոսնձել բոլոր մասերը միասին: Երբ այն չորանում է, մի փոքր հղկում և մի փոքր գույն:

Երկու դրոշները պատրաստվել են կարմիր և կանաչ ստվարաթղթից: Սերվոմոտորների վրա դրոշի կայմը ամրացնելու համար կարող եք օգտագործել դրանք գնելիս տրամադրվող ամրացման մասերը:

Քայլ 3: Arduino- ի կարգավորում

Arduino կարգավորումը
Arduino կարգավորումը

Arduino ընդլայնման տախտակին միացված տարրերն են.

  • D2 PIN- կոճակ:
  • D4 PIN: LED- ն ասում է, որ համակարգը միացված է:
  • D5 PIN: LED- ն ասում է, որ մենք կատարում ենք ցիկլ:
  • D6 PIN: LED- ն ասում է, որ սարքը նոր հաղորդագրություն է ստացել:
  • D9 PIN: PWM զարկերակային ազդանշանը սերվոմոտորի համար, որը վարում է գիրոն:
  • D10 PIN: PWM զարկերակային ազդանշանը դրոշը բեռնաթափող սերվոմոտորի համար:
  • XBee վարդակից. Մեկ ZigBee մոդուլ:

Վերոնշյալ սխեմատիկան ցույց է տալիս, թե ինչպես են բոլոր տարրերը միացված տախտակին:

LED- ների համար ռեզիստորը և լարերը ուղղակիորեն եռակցվում են դրա վրա (հոգացեք բևեռականության մասին): Այնուհետև ամեն ինչ փաթեթավորված է ինչ -որ թերմո քաշվող թևի մեջ:

Կոճակի համար բոլոր մասերը (կոճակը, ռեզիստորը և կոնդենսատորը) ուղղակիորեն եռակցվում են արբանյակային փոքրիկ տախտակի վրա: Այնուհետև շերտագիծը ուղղակիորեն ամրացվում է երկու պտուտակով (2 մմ)

Սերվոմոտորներն աշխատում են 5 Վ լարման հզորությամբ, ուստի դրանք կարող են միացվել անմիջապես Arduino- ին: Եթե դուք օգտագործում եք ավելի բարձր լարման (12 Վ) լամպեր, ապա ստիպված կլինեք էներգիայի մատակարարման համար ավելացնել մեկ այլ շերտ:

XBee մոդուլների համար, երբ դրանք կազմաձևված են միասին խոսելու համար (տե՛ս հաջորդ բաժինը), դրանք կարող են ուղղակիորեն միացվել վարդակներին:

Նշումներ. LED- ները և սեղմման կոճակը կարող էին ուղղակիորեն միացված լինել Arduino- ի կապումներին, քանի որ այն կարող է ներսում ներդնել անհրաժեշտ արժեթղթեր: Ես պարզապես արեցի հին ձևը, քանի որ այս ասպեկտն ինձ համար այնքան էլ պարզ չէր:

Քայլ 4: Softwareրագրակազմ - XCTU

Softwareրագրային ապահովում - XCTU
Softwareրագրային ապահովում - XCTU

Ինչպես նշվեց վերևում, երկու XBee սարքերը պետք է կազմաձևված լինեն միասին խոսելու համար: Դա անելու համար հարկավոր է օգտագործել DIGI- ի հատուկ X-CTU ծրագրակազմը: Այս կազմաձևման քայլը պետք է կատարեք միայն մեկ անգամ: հետևեք xbee_configuration.pdf ֆայլում նկարագրված ընթացակարգին:

Կազմաձևումն ավարտվելուց հետո կարող եք միացնել յուրաքանչյուր մոդուլ իրենց վարդակից: Մեկը USB/Serial կերպափոխիչի վրա և մեկը Arduino ընդլայնման տախտակի վրա:

USB/Serial փոխարկիչը պետք է ինքնաբերաբար ճանաչվի Windows 10. Եթե դա այդպես չէ, գուցե ստիպված լինեք ձեռքով տեղադրել վարորդը

Նշում:

Հիմնական սերիական հաղորդակցություն իրականացնելու համար XBee մոդուլների օգտագործումը մի փոքր չափազանցնում է: Այն ժամանակ, երբ ես սկսեցի նախագիծը, ինձ չհաջողվեց պարզ սերիական հաղորդակցության սարքեր գտնել, որոնք հեշտությամբ օգտագործելի էին Windows 10 -ում (վարորդի հետ կապված խնդիրներ): Սա նաև հնարավորություն էր մի քանի բան սովորելու https://www.zigbee.org- ի մասին

Քայլ 5. Softwareրագրակազմ - Arduino Sketch

Softwareրագրային ապահովում - Arduino Sketch
Softwareրագրային ապահովում - Arduino Sketch

Arduino- ի ծրագրավորման համար մենք օգտագործում ենք IDE- ն, որը հասանելի է պաշտոնական վեբ կայքից:

Theրագրի տրամաբանությունը բավականին պարզ է, այն պարզապես լսում է տախտակի լռելյայն սերիական պորտը մեկ տառերի համար (‘a’, ‘b’,…): Եթե ստացված կերպարը համապատասխանում է հայտնի հրամանին, ապա ենթաֆունկցիան խաղում է համապատասխան հաջորդականությունը:

Երկու հիմնական օգտակար հրահանգներն են ՝ հաջողության անիմացիա («ա») և սխալի անիմացիա («բ»):

Տուփի հետ մի փոքր ավելի խաղալու (կամ կարգաբերելու) կարողանալու համար կան լրացուցիչ հրամաններ, որոնք կարող են կատարվել: Նրանք են:

  • «O». Ստիպեք միացնել LED- ը
  • «P». Ստիպեք ON LED- ն անջատված լինել
  • «Q». Ստիպեք Նոր հաղորդագրության LED- ին միացված լինել
  • ‘R’. Ստիպեք Նոր Հաղորդագրության LED- ին անջատված լինել
  • ‘S’: ստիպեք Cycle LED- ը միացված լինել
  • «T»: ստիպեք Cycle LED- ին անջատված լինել
  • «U»: ակտիվացրեք կինոստորմի սերվոմոտորը
  • «V». Ակտիվացնել դրոշի սերվոմոտորը:

Բացի սերիական հրահանգից, կա նաև ենթածրագիր (handlePushButton), որն ակտիվանում է, երբ սարքի վրա սեղմվում է կոճակը: Այդ դեպքում սխալի կամ հաջողության անիմացիան ինքնաբերաբար նվագարկվում է: Այս գործառույթը թույլ է տալիս ստուգել, որ ֆիզիկական սարքը ճիշտ է տեղադրված:

Arduino էսքիզի կոդը գտնվում է bsldevice.ino մեկ ֆայլում: Դուք կարող եք այն ուղղակիորեն վերբեռնել ՝ օգտագործելով IDE- ն:

Քայլ 6: Softwareրագրակազմ - աշխատասեղանի ծրագիր

Softwareրագրային ապահովում - աշխատասեղանի ծրագիր
Softwareրագրային ապահովում - աշխատասեղանի ծրագիր

Սեղանի հավելվածի նպատակն է վերահսկել Microsoft Azure DevOps (նախկինում VSTS) վեբ կայքը և հայտնաբերել, թե արդյոք կառուցման սահմանումը հաջող է կամ սխալ: Ամեն անգամ, երբ կառուցումն ավարտվում է, աշխատասեղանի ծրագիրը որոշում է կառուցվածքի կարգավիճակը և համապատասխան հրամանը (‘a’ կամ ‘b’) ուղարկում սերիական նավահանգիստ (COMx):

Հավելվածը գործարկելուց հետո առաջին գործողությունն այն է, որ ընտրել ճիշտ կոմպորտը, որի վրա միացված է ZigBee մոդուլը: Պորտը որոշելու համար կարող եք օգտագործել Windows Device Manager- ը (Պորտերի ներքո (COM & LPT բաժին)): Azure DevOps- ին միացումը կատարվում է ինքնաբերաբար գործարկման ժամանակ ՝ օգտագործելով ընթացիկ օգտագործողի հավատարմագրերը: Կարող եք նաև ցանկացած կանխորոշված հրաման ձեռքով ուղարկել ՝ օգտագործելով աջ կողմում գտնվող համակցված տուփը:

Բոլոր աղբյուրները ստեղծվել են Visual Studio 2017 մասնագիտական հրատարակության միջոցով: Այն պահանջում է. NET Framework 4.6.1. Շրջանակի այս տարբերակը նախընտրելի է `VSTS վեբ կայքին կապը/նույնականացումը հեշտացնելու համար:

օգտագործել:

  • ներբեռնեք արխիվը bslwatcher_sources.zip.
  • Քաշեք այն ձեր սկավառակի վրա:
  • Կարդալու մանրամասների համար կարդացեք how_to_build.txt ֆայլը:

Քայլ 7: Առաջին մեկնարկ

Տուփը գործարկելիս պետք է հաշվի առնել երկու հիմնական բան.

1- Համակարգը ոչ մի կերպ չի կարող ինքնուրույն իմանալ, թե որտեղ են դրոշները: Համակարգը ենթադրում է, որ գործարկման ժամանակ կանաչ դրոշը բարձրացված է:

2- Arduino- ի տախտակը միացնելիս ոչինչ չպետք է շարժվի: Քանի որ մենք օգտագործում էինք շարունակական ծառայություններ, էսքիզների ֆայլում զրոյական դիրքը կանխադրված է 90 -ի: Եթե սերվոմոտորը սկսում է պտտվել կամ ինչ -որ աղմուկ բարձրացնել: գուցե ստիպված լինեք նորից սահմանել դրա զրոյական դիրքը: Դա անելու համար պարզապես կարգաբերեք պոտենցիոմետրը սերվոմոտորի կողքի փոքրիկ անցքի մեջ:

www.arduino.cc/hy/Reference/ServoWrite

cmra.rec.ri.cmu.edu/content/electronics/boe…

Քայլ 8: Եզրակացություն

Այս փոքրիկ սարքը ֆիզիկապես կհաղորդի ձեր շարունակական ինտեգրման համակարգի կարգավիճակին:

Քանի որ «հետախուզությունը» գտնվում է աշխատասեղանի ծրագրում, կարող եք օգտագործել վանդակը ՝ ցանկացած այլ ծրագրակազմ կամ գործընթաց (փոստ, ջերմաստիճանի տվիչ…) վերահսկելու համար: Պարզապես պետք է մուտք ունենալ մեկ այլ API և որոշել, թե որն է «լավ» կամ «վատ»: Եթե դուք չեք օգտագործում կարմիր և կանաչ պայմանական գույները, կարող եք նույնիսկ փոխել «հաղորդագրության» իմաստը:

Բարելավումներ կարող են լինել նաև տուփի մեջ.

  • Օգտագործեք մարտկոց:
  • Օգտագործեք այլ հաղորդակցության արձանագրություն:
  • Ավելացրեք տվիչներ ՝ իմանալու համար, թե որ դրոշն է վերևում:

Հուսով եմ, որ այս նախագիծը ձեզ հետաքրքիր գտավ:

Շնորհակալություն այստեղ կարդալու համար:

Քայլ 9: Հավելված

Այս նախագծի ստեղծման համար օգտագործված որոշ հղումներ.

Arduino վեբ կայք ՝

DIGI վեբ կայք ՝

XCTU ծրագրակազմ ՝

Որոշ տեղեկություններ, որոնք օգտագործվում են մյուսներից.

arduino.stackexchange.com/questions/1321/se…

stackoverflow.com/questions/10399400/best-w…

www.mon-club-elec.fr/pmwiki_reference_ardui… (ֆրանսերեն)

jeromeabel.net/

MSDN վեբ կայք ընդհանրապես.

docs.microsoft.com/hy-us/dotnet/framework/…

Խորհուրդ ենք տալիս: