Բովանդակություն:
- Քայլ 1: Հավաքեք մասերը
- Քայլ 2: Ներբեռնեք և տեղադրեք որոշ ծրագրակազմ
- Քայլ 3: Կառուցեք ներբեռնման շրջան
- Քայլ 4. Programրագրեք չիպսերը
- Քայլ 5. Կառուցեք Tx շղթան
- Քայլ 6: Կառուցեք Rx միացում
- Քայլ 7: Գրեք որոշ VB.Net ծածկագիր
- Քայլ 8: Ավելացրեք որոշ ծածկագիր
- Քայլ 9: Գործարկեք ծրագիրը երկու համակարգչի վրա
- Քայլ 10: Կոդի սքրինշոթեր
- Քայլ 11: Սքրինշոթ 2
- Քայլ 12: Սքրինշոթ 3
- Քայլ 13: Սքրինշոթ 4
- Քայլ 14: Սքրինշոթ 5
- Քայլ 15: Սքրինշոթ 6
Video: Համաշխարհային միկրոկոնտրոլերի հղում մինչև 20 դոլարից ավելի ՝ 15 քայլով
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:52
Վերահսկեք ձեր տան ջերմոստատը աշխատանքից: Միացրեք հեղուկացիրը աշխարհի ցանկացած կետից ՝ սեղմելով անջատիչը: Այս Instructable- ը ցույց է տալիս, թե ինչպես կարելի է կապել երկու կամ ավելի $ 4 միկրոկոնտրոլեր `օգտագործելով ինտերնետի ողնաշարը և որոշ պարզ VB. Net ծածկագիրը: Սա հիմնված է ավելի վաղ Instructable- ի վրա, որը ցույց է տալիս, թե ինչպես միացնել միկրոկոնտրոլերը համակարգչին և օգտագործել կաթսա` սերվո https- ը վերահսկելու համար: //www.instructables.com/id/Control-real-world-devices-with-your-PC/ Այս անգամ մենք ունենք միկրոկառավարիչ, որը խոսում է VB. Net ծրագրի հետ, այնուհետև ftp վեբ կայքի հետ, այլ VB. Net- ի ետ ծրագրավորել և այնտեղից երկրորդ միկրոկառավարիչը աշխարհի ցանկացած վայրում ՝ մարդու միջամտությամբ կամ առանց դրա: Այլապես ինչպե՞ս են The Matrix- ի մեքենաները երբևէ իրենց ձեռքը վերցնում, եթե նրանք չեն կարող խոսել միմյանց հետ:
Քայլ 1: Հավաքեք մասերը
Մասերից շատերը նույնն են, ինչ PC Control Instructable- ում ՝ https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ և առաջարկվում է, որ դա առաջին հերթին ավարտվի նախքան փորձելը երկու միկրոկոնտրոլեր կապելու համար: Թեև միանգամայն հնարավոր է կաթսա օգտագործել servo- ն վերահսկելու համար, այս անգամ մենք պատրաստվում ենք գնալ ավելի պարզ բանի ՝ լուսադիոդի միացման անջատիչ: Անջատիչը կարող է հեշտությամբ լինել տանկի մակարդակի տվիչ, իսկ լուսարձակը ՝ պոմպ գետի մոտակայքում, բայց եկեք սկզբում պարզ բան ստանանք: Մասեր - Երկու Picaxe 08M չիպսեր - մատչելի են բազմաթիվ աղբյուրներից, ներառյալ Rev Ed https://www.rev- ed.co.uk/picaxe/ (Միացյալ Թագավորություն), PH Անդերսոն https://www.phanderson.com/ (ԱՄՆ) և Microzed https://www.microzed.com.au/ (Ավստրալիա): Այս չիպերի արժեքը 4 ԱՄՆ դոլար է: Երկուսը ՝ Protoboard, 9V մարտկոց և մարտկոցի ամրակներ, 10k դիմադրություն, 22k դիմադրություն, 33uF 16V կոնդենսատոր, 0.1uF կոնդենսատոր, 7805L ցածր էներգիայի 5V կարգավորիչ, լարեր (պինդ հիմնական հեռախոս/տվյալների հաղորդալար, օրինակ ՝ Cat5/6), LED, 1k դիմադրություն: 1 -ը ՝ D9 կանացի վարդակից և ծածկից և 2 մետր 3 (կամ 4) հիմնական տվյալների հաղորդալարից (ներբեռնման համար) և միացման անջատիչ: 2 համակարգիչ ՝ 9 փին սերիական պորտերով (կարելի է կարգաբերել մեկ համակարգչի վրա) և ինտերնետ կապ: Սերիական պորտ չունեցող համակարգիչների համար USB- ից սերիական սարք https://www.rev-ed.co.uk/docs/axe027.pdf և փոքր ստերեո վարդակից:
Քայլ 2: Ներբեռնեք և տեղադրեք որոշ ծրագրակազմ
Մեզ պետք կգան անվճար VB. Net- ը և picaxe controller ծրագրակազմը, և եթե դուք կատարել եք PC controller Instructable- ը, դրանք արդեն կունենաք: VB. Net- ը (Visual Basic Express) հասանելի է https://msdn2.microsoft.com/en- ից -us/express/aa718406.aspx Picaxe ծրագիրը հասանելի է https://www.rev-ed.co.uk/picaxe/ կայքից: Ներբեռնումը ստանալու համար անհրաժեշտ է գրանցվել microsoft- ում, եթե սա խնդիր է, օգտագործեք կեղծ նամակ կամ ինչ -որ բան: Ես իրականում օգտակար գտա իմ իսկական էլ. Փոստը տալու համար, երբ նրանք երբեմն -երբեմն թարմացումներ են ուղարկում: Ես նաև նշելու եմ պիկաքս ֆորումը https://www.picaxeforum.co.uk/, քանի որ սա ուսուցիչների և մանկավարժների կողմից աշխատող ֆորումի տեսակ է և որտեղ ուսանողները սովորաբար կարող են հարցերի պատասխաններ ստանալ մի քանի ժամվա ընթացքում: Ֆորումը հասկանում է նույնիսկ ամենապարզ հարցերը, քանի որ որոշ աշակերտներ դեռ տարրական դպրոցի մակարդակում են: Խնդրում ենք մի վախեցեք օգնություն խնդրելուց:
Քայլ 3: Կառուցեք ներբեռնման շրջան
Ներբեռնման այս սխեման օգտագործում է picaxe չիպ, մի քանի ռեզիստոր, կարգավորիչ և 9 Վ մարտկոց: Լրացուցիչ տեղեկություններ հասանելի են ընտրության փաստաթղթերում/օգնության մեջ, որոնք հայտնվում են ծրագրի օգնության ընտրացանկում: Շղթայի կառուցումը պետք է տևի ընդամենը մի քանի րոպե, երբ բոլոր մասերը հանձնվեն: Երբ չիպը ծրագրավորվում է, այն պահպանում է իր ծրագիրը EEPROM- ում նույնիսկ այն ժամանակ, երբ անջատված է: Քանի որ մենք ծրագրավորում ենք երկու չիպ, գուցե արժե չիպերը պիտակավորել, որպեսզի իմանաք, թե որն է: Դուք միշտ կարող եք վերադառնալ և ծրագրավորել չիպը ՝ հեռացնելով հղումը և տեղափոխելով դիմադրություն:
Կարող եմ նաև ավելացնել, որ պիքաքսներն ուրախությամբ աշխատում են 3 AA մարտկոցով: 5 Վ կարգավորվող սնուցումը օգտակար է անալոգային մուտքերի գործարկման համար, քանի որ հղման լարումները չեն փոխվում, սակայն պարզ միացման/անջատման սխեմաների համար կարգավորվող սնուցում անհրաժեշտ չէ: Այս իրավիճակներում 5V reg- ը կարող է դուրս մնալ:
Քայլ 4. Programրագրեք չիպսերը
Մենք մեկ ծրագիր կկոչենք Tx և մեկ Rx: Tx- ը վերահսկիչ չիպ է և ունի անջատիչ և լուսատու: Rx- ն ունի նաև led: Երբ անջատիչը փոխում է, ազդանշանը Tx- ից անցնում է Rx, փոխում է led- ը և փոխում նաև երկրորդ փոփոխականը, որն այնուհետև վերադառնում է Tx: Այսպիսով, սեղմեք անջատիչը և մեկ րոպեից էլ պակաս ժամանակում երկու սխեմաների վրա led- ը փոխվում է ՝ նշելով, որ հաղորդագրությունը հասել է այնտեղ, և Rx- ը գործում է անջատիչի նոր դիրքի վրա: Ամենապարզ մակարդակում պիկաքսն ունի 14 մեկ բայթ գրանցամատյան: Երբ ստեղծվում է վիրտուալ ցանց, մենք կապում ենք այդ բոլոր գրանցամատյանները, այնպես որ, եթե մեկ բայտը փոխվում է մեկ պիկաքսում, այն փոխվում է բոլոր պատկերների մեջ: Ակնհայտ է, որ եթե երկու պիկաքս փորձում են փոխել նույն բայթը, ապա դա շատ շփոթեցնող կլինի, բայց եթե յուրաքանչյուր պիքսա փոխի միայն մեկ բայթ, ապա մնացած բոլոր պատկերները կարող են տեսնել այդ փոփոխությունը և կարող են գործել դրա վրա: Պարզ հաղորդագրությունները կարող են փոխանցվել հետ և առաջ, եթե որոշակի բայթ փոխվում է միայն մեկ պիկաքսով: Կաթսան կարող է փոխել արժեքը գրանցամատյանում, և մեկ կամ մի քանի այլ պատկերներ կարող են զգալ, որ դրանք փոխում և տեղափոխում են servo կամ որևէ այլ բան և միացնում են ջեռուցիչը: Երկրորդ գրանցամատյանը կարող է հետ ուղարկել սենյակի ջերմաստիճանը: Պատճենեք և տեղադրեք ծրագրերն իրենց հերթին picaxe ծրագրավորողի մեջ և ներբեռնեք դրանք համապատասխան չիպերից յուրաքանչյուրին ՝ օգտագործելով picaxe ծրագրավորողի ներսում ներբեռնման կապույտ սլաքը: Tx: հիմնական. Serin 3, N2400, («Տվյալներ»), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'ստանալ փաթեթ համակարգչից, եթե pin2 = 0, ապա 'փորձարկեք անջատիչը և տեղադրեք գրանցամատյանը b0 կախված կարգավիճակից b0 = 0 այլ b0 = 1 endif, եթե b1 = 0 այնուհետև' picaxe- ի այլ հավաքածուներ b1 կախված b0 ցածր 1 'հանգեցրեց այլ բարձր 1' led endif serout 0, N2400, («Տվյալներ», b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) «հետ ուղարկել համակարգչին և վերադարձրել հիմնականը և Rx: հիմնականը ՝ սերին 3, N2400, («Տվյալներ»), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 «ստանալ համակարգչից փաթեթ b1 = b0» ռեգիստրը b1- ը փոխել b0 հավասար ռեգիստրին, եթե b1 = 0 այնուհետև ցածր 1 'հանգեցրեց այլ բարձր 1' հանգեցրեց endif serout 0, N2400, («Տվյալներ», b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'հետ ուղարկել համակարգչին ՝ անցնելու հիմնական
Քայլ 5. Կառուցեք Tx շղթան
Եթե դուք շրջում եք աշխատանքային սխեմայի և ծրագրավորման սխեմայի միջև, համոզվեք, որ փոխեք կապը ոտքի 2 -ին և 22k դիմադրության դիրքը 2 -րդ ոտքից դեպի ոտք 4: Կամ կարող եք կառուցել հատուկ ներբեռնման միացում և տեղափոխել չիպսերը: ողջ երկայնքով Պարզապես նշեք, թե արդյոք միացումն աշխատում է կամ ներբեռնվում է, քանի որ այն կարող է բավականին շփոթեցնել: Մասնավորապես, նշեք, որ ընթացիկ սխեման չի աշխատի, եթե 2 -րդ ոտքը մնա լողացող. Այն պետք է հիմնավորված լինի: Ոտքը 2 -ը ներբեռնման քորոցն է, և եթե այն մնա լողացող, ապա փոշու լույսերից վերցնում է թափառող ՌԴ -ն և չիպը կարծում է, որ այլ ծրագիր է ներբեռնվում:
Արժե նաև նշել picaxe անվանացանկը, որը ֆիզիկական քորն անվանում է ոտք, իսկ վիրտուալ քորոցը ՝ քորոց: Այսպիսով, ծածկագրում 2 -րդ փին ելքը իրականում ելք է ֆիզիկական 5 -րդ ոտքի վրա: Սա կարող է տարօրինակ թվալ, բայց նշանակում է, որ կոդը կարող է տեղափոխվել ավելի մեծ ընտրացանկերի, ինչպիսիք են 28 և 40 փին տարբերակները և դեռ աշխատել:
Քայլ 6: Կառուցեք Rx միացում
Այս միացումը գրեթե նույնն է, ինչ հաղորդիչը. Այն պարզապես անջատիչ չունի:
Քայլ 7: Գրեք որոշ VB. Net ծածկագիր
Ես կարող էի կազմել կոդը և այս ծրագիրը հասանելի դարձնել որպես կազմված.exe, բայց որոշ VB. Net սովորելը այնքան աներևակայելի օգտակար է, որ արժե այն քայլ առ քայլ անցնել: Եթե դա աշխատում եք երկու տարբեր համակարգիչների վրա, կարող եք ծրագիրը կառուցել.exe- ի մեջ, որը ստեղծում է մի փոքր կարգաբերման ծրագիր, որը կարող է տեղադրվել երկրորդ համակարգչի վրա: Կամ կարող եք տեղադրել VB. Net- ը երկու համակարգիչների վրա և ծրագրերը գործարկել VB. Net- ից: Ենթադրենք, դուք գիտեք, թե ինչպես բացել նոր VB.net նախագիծ https://www.instructables.com/id/S1MMU2XF82EU2GT 7 -րդ և 8 -րդ քայլերից: /Դատարկ ձևի վրա եկեք գործիքագոտուց ավելացնենք հետևյալ բաղադրիչները և դրանք տեղադրենք ձևի վրա այն վայրերում, ինչպես ցույց է տրված: Պիտակների և տուփերի համար տեքստի հատկությունը (ներքևի աջ կողմում) փոխեք այն, ինչ անհրաժեշտ է: Մի անհանգստացեք ժամաչափի կարգավորումների մասին. Մենք դրանք կփոխենք ծածկագրում, բայց համոզվեք, որ ժամաչափ տեղադրեք: Դուք կարող եք տեղաշարժել իրերը, և տեղանքի մասին իրական կանոններ չկան: Մեծ տեքստային տուփը RichTextBox է, իսկ փոքր երեքը `սովորական Textboxes: Պատվերի առումով մենք սկսում ենք ձևի վերևից և շարժվում ներքև: Եթե ինչ -որ բան բաց եք թողնում, կոդի մեջ սխալ կլինի, որը պետք է ինչ -որ հուշում տա: Խնդրում ենք ընտրել Textbox3- ի պատահական ֆայլի անուն - սա ֆտպ սերվերի վրա ձեր ընտրած եզակի խմբի անունն է, և ակնհայտ է, եթե մենք բոլորս օգտագործում ենք նույն անունն է, այնուհետև տվյալները կդառնան խառնաշփոթ: Կներեք այս աղյուսակի գծերի համար. բացատներ տեղադրելը կորցնում է աղյուսակի ձևաչափումը: Գործիքների տուփ ------- Տեքստ ----------- ------------------------------ NotesLabel1 ------------------ Picaxe CommunicationsLabel2 ------------------ FTP StatusLabel3 ------------------ StatusLabel4 ---------- -------- Picaxe Գրանցիչներ Label5 ------------------ Գրանցվել 0-13 Label6 ------------------ Արժեք 0-255 Label7 ------------------ FTP հղման ֆայլի անունը Textbox 1 ---------------- 0 -------- ------------------------------------------ 0-ը զրո է, այլ ոչ OTextbox2 ----- ----------- 0Textbox3 ---------------- Myfilename --------------------- ---------- Փոխեք այնպես, որ բախումներ չլինեն: Button1 ------------------ ModifyRichtextbox1 Picturebox1 Picturebox2 Timer1
Քայլ 8: Ավելացրեք որոշ ծածկագիր
Տես կոճակի գտնվելու վայրի համար, որը շրջվում է ձևի տեսքի և ծածկագրի տեսքի միջև, տես մյուս հրահանգվող 12 -րդ քայլը: Անցեք կոդի դիտման և տեղադրեք հետևյալ ծածկագիրը: Գույները բոլորը պետք է նորից հայտնվեն, ինչպես սքրինշոթում: Եթե տողը ճիշտ չի պատճենվել բառերի փաթաթման խնդրի պատճառով, ապա ջնջեք բացերը մինչև սխալի հաղորդագրությունը անհետանա: Ես փորձել եմ մեկնաբանել տողերի մեծ մասը, որպեսզի ծածկագիրը գոնե ինչ -որ իմաստ ունենա: Deնջեք հանրային դասի բիթը, որպեսզի տեքստը դատարկ լինի նախքան սա տեղադրելը. Այս ծածկագիրն արդեն ունի հանրային դաս: Եթե տեքստային տուփի նման օբյեկտը տեղադրված չէ ձևի վրա կամ սխալ անուն ունի, ապա այն դուրս կգա տեքստային ծածկագրում ՝ դրա տակ փխրուն կապույտ գծով: բաներ, ինչպիսիք են ձախը (և աջը (տողերի համար Հանրային դասի ձև 1 Հանրային հայտարարում Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) "քնի հայտարարությունների համար Dim WithEvents serialPort As New IO. Ports. SerialPort» սերիական պորտը հայտարարում է Dim PicaxeRegisters (0 -ից 13) Քանի որ Բայթը գրանցում է b0- ից մինչև b13 Dim ModifyFlag As Boolean Private Sub Form1_Load (ByVal ուղարկողը որպես օբյեկտ, ByVal e As System. EventArgs) Handles Me. Load- ին անհրաժեշտ է այս բոլոր աղբը. Timer1. Enabled = Trueշմարիտ 'սա տեղադրեք կոդը որպես կանխադրված որպես սխալ, երբ ստեղծվում է Timer1. Interval = 20000' յուրաքանչյուր 20 վայրկյանը մեկ PictureBox1. BackColor = Color. Gray 'սկսվում է մոխրագույն կոմունալ տուփերով PictureBox2. BackColor = Color. Gray ModifyFlag = False' եթե արժեքը ձեռքով փոփոխես, ապա s kip download RichTextBox1. Multiline = Trueշմարիտ 'այնպես որ կարող է ցուցադրվել մեկից ավելի տող Callանգի DisplayPicaxeRegisters ()' ցուցադրել 14 գրանցամատյանները Call ReadFTPFilename () 'կարդալ սկավառակի ֆայլի անունը (ամեն 20 վայրկյան պահված) End Sub Sub SerialTxRx () Dim DataPacket (0 -ից 17) Որպես բայթ '«Տվյալներ» տվյալների ամբողջական փաթեթ +14 բայթ Dim i As Integer' i միշտ օգտակար է հանգույցների համար և այլն i = 0 -ից 3 DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'փաթեթին ավելացնել «Տվյալներ» բառը Հաջորդ i = 0 -ից 13 DataPacket (i + 4) = PicaxeRegisters (i)' փաթեթին ավելացրեք բոլոր բայթերը Next If serialPort. IsOpen Then serialPort. Close () 'միայն այն դեպքում, երբ արդեն բացվել է ավարտել, եթե փորձես serialPort- ով: փոքր պատկերներ. Parity = IO. Ports. Parity. None 'no parity. DataBits = 8' 8 bits. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' millisecon ds- ը 1 վայրկյանում դուրս է գալիս, եթե պատասխան չկա: Բացեք () 'բացեք սերիական նավահանգիստը: նվազագույնը սպասել տվյալների վերադարձին և ավելին, եթե տվյալների հոսքն ավելի երկար լինի: (i - 4) = DataPacket (i) 'տեղափոխեք նոր տվյալների փաթեթը գրանցամատյանում Հաջորդ PictureBox1. BackColor = Color. GreenYellow' աշխատանքային Catch ex As Exception PictureBox1. BackColor = Color. Red 'չի աշխատում Վերջ Փորձեք Վերջ Sub Sub FTPUpload (ByVal ֆայլի անունը որպես տող) Dim localFile As String 'տվյալների պահպանման վայր dim remoteFile As String' ֆայլի անունը մեծատառերի նկատմամբ սա իրոք կարևոր է Const host As String = "ftp://ftp.0catch.com" 'նշեք, որ 0 -ն է զրո ոչ մի կերպար O Const օգտվողի անուն որպես տող = "picaxe.0catch.com" Const գաղտնաբառ որպես լար = "picaxetester" Dim URI As String localFile = Ֆայլի անունը 'գուցե անհրաժեշտ չէ, բայց եթե տեղորոշեք, օրինակ ՝ c: / mydirectory- ն կարող է հեշտությամբ ավելացնել այս կերպ ՝. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (օգտվողի անուն, գաղտնաբառ) 'մուտք գործել ftp. KeepAlive = False' կլինի մեկ անգամ արված ftp. UseBinary = ճշմարիտ 'օգտագործել երկուական comms ftp. Timeout = 9000' ընդմիջում 9 վայրկյանից հետո. շատ օգտակար, քանի որ ftp- ն երբեմն մահանում է (և ժամացույցի հաճախականությունը 20 վրկ) կարող է անհրաժեշտ լինել ավելի դանդաղ `ftp- ի միացման համար: Մեթոդ = System. Net. WebRequestMethods. Ftp. UploadFile 'սկսել ֆայլ ուղարկել Dim fs As New FileStream (localFile, FileMode. Open)' բաց տեղական ֆայլ Dim filecontents (fs. Length) As Byte 'read in memory fs. Read (filecontents, 0, fs. Length) fs. Close () 'փակել ֆայլը Dim requestStream As Stream = ftp. GetRequestStream ()' սկսել ftp հղման հայցըSt ream. Write (filecontents, 0, filecontents. Length) 'send it requestStream. Close ()' փակել հղումը PictureBox2. BackColor = Color. GreenYellow 'տուփը փոխել կանաչի `ասելով, որ աշխատում է ok Label2. Text =" FTP Connected " տեքստ, որն ասում է, որ միացված է Բռնել 'չի կարող միացնել PictureBox2. BackColor = Color. Red' տուփը կարմիր, ինչպես որևէ կապ չկա: 'ներլցումներ հեռավոր ֆայլը տեղական ֆայլում Dim localFile As String' տվյալների պահպանման տեղ Dim remoteFile As String 'ֆայլի անունը մեծատառերի նկատմամբ, սա իրոք կարևոր է Const host As String = "ftp://ftp.0catch.com" Const username As String = "picaxe.0catch.com "Const password As String =" picaxetester "Dim URI As String 'localFile =" C: / " + Filename' պահվում է արմատային գրացուցակում, բայց կարող է փոխել այս localFile = Ֆայլի անունը ', այնպես որ կարող է ավելացնել c: / եթե անհրաժեշտ է սահմանել փաստացի գտնվելու վայրը լրիվ հասցե Փորձեք Dim ftp As System. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = Նոր համակարգ. NetworksCredential (օգտվողի անուն, գաղտնաբառ) 'մուտք գործել ftp. KeepAlive = Կեղծը 'անջատված կլինի ftp- ի ավարտից հետո: Usbinary = True' երկուական ռեժիմ ftp. Timeout = 9000 'timeout 9 seconds afterpp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile' բեռնել ֆայլը ' չգիտեմ, թե որքան մեծ է ֆայլը Պատասխան օգտագործելը As System. Net. FtpWebResponse = CType (ftp. GetResponse, System. Net. FtpWebResponse) respondStream As IO. Stream = respond. GetResponseStream Using fs As New IO. FileStream (localFile, IO. FileMode. Create) Dim buffer (2047) As Byte Dim read As Integer = 0 Do read = responseStream. Read (buffer, 0, buffer. Length) 'piece from ftp fs. Write (buffer, 0, read)' և գրել ֆայլին Loop Մինչև կարդալ = 0 'մինչև որևէ կտոր չպատասխանիStream. Close ()' փակել ftp ֆայլը fs. Flush () 'ողողել fs. Close ()' և փակել ե ֆայլը Օգտագործելով responseStream. Close () 'փակեք այն, նույնիսկ եթե այնտեղ ոչինչ չկար: End using respond. Close () PictureBox2. BackColor = Color. GreenYellow' կանաչ տուփ, ինչպես աշխատում էր Label2. Text = "FTP Connected" և տեքստ այն ասելով աշխատել Վերջ Օգտագործելով Catch- ը 'սխալի կոդերը դրեք այստեղ PictureBox2. BackColor = Color. Red' կարմիր տուփը, քանի որ այն չի աշխատում Label2. Text = "FTP Download Fail" - ը և սա ասելու հաղորդագրություն Փորձեք վերջ End Sub Private Sub Timer1_Tick (ByVal ուղարկող Որպես System. Object, ByVal e As System. EventArgs) կարգավորում է ժմչփը 1. Նշել, եթե ModifyFlag = False Հետո 'եթե օգտվողը բայթ է փոխել, ապա մի ներբեռնեք Label3. Text = "Ներբեռնում" System. Windows. Forms. Application. DoEvents () 'այնքան նոր պիտակի տեքստը ցուցադրում է Call FTPDownload (TextBox3. Text)' ներբեռնել հեռավոր ֆայլը Label3. Text = "Ներբեռնված" System. Windows. Forms. Application. DoEvents () Readանգահարեք ReadRemoteFileToRegisters () "ֆայլերի համարները պահպանեք գրանցամատյանում Label3. Text = "Talking with picaxe" System. Windows. Forms. Application. DoEvents () Else ModifyFlag = Կեղծ 'վերականգնել դրոշը End If Call SerialTxRx () 'ուղարկեք պիկաքսին և այն նորից կարդացեք Label3. Text = "Վերբեռնում" System. Windows. Forms. Application. DoEvents () Callանգահարեք FTPUpload (TextBox3. Text) 'ետ ուղարկեք ftp կայք ՝ իմ անունով անունով Label3. Text = "Հանգիստ" Callանգահարեք SaveFTPFilename () », - ասվում է in when restart End Sub Sub DisplayPicaxeRegisters () Dim i As Integer Dim registernumber As String RichTextBox1. Multiline = True 'այնպես որ կարող է ցուցադրել մեկից ավելի տողեր RichTextBox1. Clear ()' տեքստային տուփի համար i = 0 To 13 registernumber = Կտրել (Str (i)) 'կրճատել առաջատար տարածքները, եթե i <10 Այնուհետև registernumber = "0" + registernumber' ավելացնել 10 -ը մինչև 10 -ի տակ գտնվող համարներին: Եթե վերջ.)) + Chr (13)) Հաջորդ 'chr (13) - ը փոխադրամիջոցների վերադարձն է, ուստի նոր տող Ավարտի ենթահանձնաժողովի անձնական ենթակոճակը 1_Click (ByVal ուղարկող As System. Object, ByVal e As System. EventArgs) Handles Button1. Սեղմեք Dim i As Integer- ը 'առաջինից դուրս տեսեք i = Val (TextBox1. Text) If i <0 Or i> 13 Այնուհետեւ TextBox1. Text = 0 Վերջ, եթե i = Val (TextBox2. Text) Եթե i <0 Or i> 255 Ապա TextBox2. Text = 0 Վերջ Եթե PicaxeRegisters (Val (TextBox1. Text)) = Val (TextBox2. Text) 'փոխեք արժեքը Call DisplayPicaxeRegisters ()' և թարմացնել ցուցադրումը ModifyFlag = True 'և հաջորդ ftp հղումը բաց թողնել ներբեռնումը End Sub Sub SaveRegistersToLocalFile ()' պահպանել գրանցամատյանը տեղական տեքստային ֆայլում Dim i As Integer FileOpen (1, TextBox3. Text, OpenMode. Output) 'բացել անունով տեքստային ֆայլը տեքստային տուփի համար i = 0-13 PrintLine (1, Str (PicaxeRegisters (i))) 'պահպանել 14 արժեք Հաջորդ FileClose (1)' փակել ֆայլը End Sub Sub ReadRemoteFileToRegisters () 'կարդալ տեղական տեքստային ֆայլը գրանցամատյանում Dim i As Integer Dim LineOfText As String Փորձեք FileOpen (1, TextBox3. Text, OpenMode. Input) 'կարդալ հեռակա ֆայլի անունը i = 0 -ից 13 LineOfText = LineInput (1)' 14 տողում կարդացած es PicaxeRegisters (i) = Val (LineOfText) 'տեքստը փոխակերպեք արժեքների Հաջորդ FileClose (1) Catch ex As Exception FileClose (1)' ֆայլը գոյություն չունի, այնպես որ ոչինչ մի արեք: Վերջ Փորձեք Վերջ Sub Sub ReadFTPFilename () 'անուն հեռակա ftp ֆայլը նույնն է, երբ հաջորդ անգամ այս ծրագիրը գործարկվի Dim LineOfText As String Փորձեք FileOpen (1, "FTPFilename.txt", OpenMode. Input) 'բացեք ֆայլը LineOfText = LineInput (1) TextBox3. Text = LineOfText' կարդալ անուն FileClose (1) Catch ex Որպես բացառություն FileClose (1) Վերջ Փորձել ավարտել Sub Sub SaveFTPFilename () FileOpen (1, "FTPFilename.txt", OpenMode. Output) 'պահպանել հեռակա ftp ֆայլի անունը PrintLine (1, TextBox3. Text) FileClose (1) Ավարտել SubEnd դասը
Քայլ 9: Գործարկեք ծրագիրը երկու համակարգչի վրա
Սկսեք գործարկել ծրագիրը `կտտացնելով էկրանի վերևի կեսին գտնվող կանաչ եռանկյունուն` «Սկսել կարգաբերում» կոճակը: Ոչինչ չի պատահի 20 վայրկյան, այնուհետև ծրագիրը կփորձի միանալ ftp սերվերին և կփորձի միանալ ընտրացանկին: Պատկերի արկղերը կամ կարմիր կամ կանաչ կդառնան: The ftp- ի գտնվելու վայրը անվճար կայք է, և յուրաքանչյուրը կարող է օգտագործել այն, բայց դուք պետք է օգտագործեք այլ ftp աշխատանքային ֆայլի անուն (իմը ՝ DoctorAcula1), հակառակ դեպքում մենք բոլորս կարող ենք ավարտել միմյանց տվյալները, եթե նույն ֆայլի անունն ենք օգտագործում: Եթե ցանկանում եք, ի վերջո կարող եք ստանալ ձեր սեփական ftp կայքը - պարզապես փոխեք ftp- ի գտնվելու վայրը, օգտվողի անունը և գաղտնաբառը երկու վայրում ՝ իմ 0Catch կայքի ծածկագրից: Շատ կայքեր թույլ են տալիս ftp. Բազմաթիվ համակարգիչներ կարող են մուտք գործել նույն ftp ֆայլը. Ftp ֆայլերի սերվերը դասավորում է, թե ինչ հաջորդականությամբ են դրանք տեղի ունենում: Երբեմն լինում են տվյալների բախումներ կամ կախումներ, և դրանք կարծես տեղի են ունենում յուրաքանչյուր 20 ֆայլ կարդալիս:Եթե դա տեղի ունենա, ծածկագրում կա ընդմիջում, այնպես որ այն չի վերադարձնում ոչ թե տվյալներ, այլ վնասված տվյալներ: 128kbs բեռնման արագությամբ լայնաշերտ կապի օգտագործումը նշանակում է, որ ֆայլը վերբեռնումը տևում է մոտ 3 վայրկյան, բայց երբեմն մինչև 8 վայրկյան, որոնց մեծ մասը վերցված է: ձեռքսեղմման մեջ, այլ ոչ թե տվյալների փոխանցման: Սա ժամաչափը սահմանում է նվազագույնը մոտ 20 վայրկյան `հաշվի առնելով ընտրացանկի ներբեռնումը, վերբեռնումը և զրույցը: Շատ արագ լայնաշերտ ցանցի միջոցով դուք կարող եք կրճատել ցիկլի ժամանակը: Դուք կարող եք ձեռքով փոխել գրանցամատյանը VB ծրագրի շրջանակներում: Եթե դա անեք, հաջորդ ժամաչափի ցիկլը բաց է թողնում ftp կայքից ներբեռնումը և նոր տվյալները ուղարկում է պիկաքսին, այնուհետև այն հետ կարդում և վերբեռնում: Այսպիսով, նոր տվյալները ճանապարհ են գտնում դեպի այս խմբին առնչվող բոլոր ընտրացանկերը: Սա օգտակար է վրիպազերծման և (կամ) համակարգչի ծրագրակազմը միկրոկոնտրոլերի ապարատային օղակին միացնելու համար: Կայքերը կարող են նաև մուտք գործել ապարատային օղակ ՝ օգտագործելով PERL սցենար կամ նմանատիպ ՝ նոր ֆայլ գրել ftp կայքում: Այս սքրինշոթը արվել է Tx չիպով աշխատելով, անջատիչը միացված է, իսկ գրանցամատյանը b0 = 1 հասցեագրվել է Rx չիպին, որը այնուհետև գրանցամատյանը b1- ը նույնպես փոխեց 1 -ի: Այդպես լուսարձակը լուսավորվում էր երկու տախտակների վրա: Սա չնչին ծրագիր է, բայց հեշտ է միացնել 3.6 կՎտ պոմպը `լուսադիոդի փոխարեն: Եվս մի քանի գաղափարներ կան https://drvernacula.topcities.com/ կայքում, ներառյալ ընտրացանկերի կապը արևային էներգիայով աշխատող ռադիոկապի միջոցով: Ռադիոկապերով և ինտերնետով հնարավոր է, որ «Մեքենաները» հասնեն աշխարհի շատ անկյուններ: Picaxe ֆորումում կան որոշ գաղափարներ ՝ այս գաղափարն ավելի առաջ տանելու և ԱՀ և ftp կայքը փոխարինելու համար հատուկ վեբ սերվերային չիպերով, որոնք ուղիղ միանում են երթուղղիչին: Ակնհայտ է, որ դա կնվազեցնի կապի էներգիայի սպառումը: Եթե դուք հետաքրքրված եք հետագա քննարկումներով, խնդրում ենք տեղադրել Intstructable մեկնաբանություններում և (կամ) պիկաքս ֆորումում: Dr. James Moxham Ադելաիդա, Հարավային Ավստրալիա
Քայլ 10: Կոդի սքրինշոթեր
Ըստ խնդրանքի, ահա vb.net ծածկագրի մի շարք սքրինշոթեր ՝ բոլոր ձևաչափումներով: Այս կոդը իրականում կրկնօրինակվել է այս հրահանգի հետևում, և ձևաչափումը ինքնաբերաբար նորից հայտնվել է: Ավելի լավ կլինի պատճենել և տեղադրել տեքստը, քան փորձել կարդալ այս նկարները, բայց դրանք օգտակար կլինեն, եթե ինտերնետ սրճարանում եք և չեք կարող տեղադրել vb.net:
Քայլ 11: Սքրինշոթ 2
Սքրինշոթ 2
Քայլ 12: Սքրինշոթ 3
Սքրինշոթ 3
Քայլ 13: Սքրինշոթ 4
Սքրինշոթ 4
Քայլ 14: Սքրինշոթ 5
Էկրանի նկար 5
Քայլ 15: Սքրինշոթ 6
Էկրանի նկար 6
Խորհուրդ ենք տալիս:
Ինչպես պատրաստել Rc ինքնաթիռ տանը 60 դոլարից ցածր ՝ 4 քայլով
Ինչպես պատրաստել RC ինքնաթիռ տանը 60 դոլարից ցածր: Այսօր ես ձեզ ցույց կտամ, թե ինչպես կարելի է rc ինքնաթիռ կառուցել 60 դոլարից ցածր: Հասկանալու համար կարող եք դիտել իմ տեսանյութը youtube- ում: Տեսանյութում ես գինը պատմեցի հնդկական ռուփիով, քանի որ ցանկանում եմ թիրախավորել հնդիկ հանդիսատեսին: Եթե ձեզ դուր եկավ իմ տեսանյութը, բաժանորդագրվեք իմ ալիքին ապագա
Պատրաստեք թվային տրամաբանության անալիզատոր 1 դոլարից պակաս քայլով
Կատարեք թվային տրամաբանական անալիզատոր 1 դոլարից պակաս գնով. Տրամաբանական մակարդակի տվիչն այն սարքն է, որն ընկալում է, եթե բաղադրիչի ելքը 1 է կամ 0 (դրական կամ բացասական): Գիտե՞ք այդ գեղեցիկ մակարդակի սենսորները LCD էկրաններով, որոնք արժեն մոտ $ 25: Այս մեկը ծիծաղելի ավելի էժան է և անում է նույն բանը (դա ես
DIY խոշոր վերերկրյա տեսախցիկ մինչև 50 դոլարից ցածր ՝ 3 քայլ
DIY խոշոր վերերկրյա ֆոտոխցիկ մինչև 50 դոլար. Վերևի նկարահանումները կարող են շատ արժեքավոր լինել արտադրանքի լուսանկարման կամ նույնիսկ գեղարվեստական ստեղծագործությունների որոշ տեսակների համար: Բայց երբեմն դուք բյուջեի մեջ եք: Այնուամենայնիվ, սա չպետք է կանգնեցնի ձեր ստեղծագործական աշխատանքը: Փոխարենը, փնտրեք այդ կադրերը գրաֆիկով կատարելու այլ եղանակներ
Ստեղծեք 500 մետրանոց ռադիոյի տվյալների հղում մինչև 40 դոլարով. 7 քայլ
Կառուցեք 500 մետրանոց ռադիոյի տվյալների հղում մինչև 40 դոլարով. Ունե՞ք ջրի բաք, որը ցանկանում եք չափել, կամ պատնեշ կամ դարպաս: Wantանկանու՞մ եք հայտնաբերել մեքենայից, որն իջնում է ընթացքի մեջ, բայց չե՞ք ցանկանում լարերը լարել այգու միջով: Այս հրահանգը ցույց է տալիս, թե ինչպես կարելի է 500 մետր տվյալներ ուղարկել 100% հուսալիությամբ ՝ օգտագործելով picaxe microcontr
Պատրաստեք ձեր սեփական պրոֆեսիոնալ ձայնագրման մաքրման մեքենան 80 դոլարից պակաս և խնայեք մինչև $ 3000 և ավելին. 6 քայլ (նկարներով)
Պատրաստեք ձեր սեփական պրոֆեսիոնալ ձայնագրման մաքրման մեքենան 80 դոլարից պակաս և խնայեք մինչև $ 3000 և ավելին. Ինչպե՞ս մաքրել գրառումները ճիշտ: Ինտերնետում բազմաթիվ եղանակներ կան: Ավելի էժան եղանակներ, ինչպիսիք են Knosti- ն կամ Discofilm- ը, այլ նաև