Mündəricat:

$ 20: 15 Adımdan Az olan Ümumdünya Mikrokontrolör Bağlantısı
$ 20: 15 Adımdan Az olan Ümumdünya Mikrokontrolör Bağlantısı

Video: $ 20: 15 Adımdan Az olan Ümumdünya Mikrokontrolör Bağlantısı

Video: $ 20: 15 Adımdan Az olan Ümumdünya Mikrokontrolör Bağlantısı
Video: Bir Gecede Yok Olan Bebekler... Türkiye'de HER ŞEY DEĞİŞECEK! | Anlatmak Zamanı 23. Bölüm 2024, Iyul
Anonim
20 dollardan aşağı qiymətə dünya miqyasında mikro nəzarətçi bağlantısı
20 dollardan aşağı qiymətə dünya miqyasında mikro nəzarətçi bağlantısı

İşdən ev termostatını idarə edin. Bir açarı vuraraq dünyanın hər yerindən bir çiləyicini işə salın. Bu Təlimat, internetin onurğasını və bir neçə sadə VB. Net kodunu istifadə edərək iki və ya daha çox 4 dollarlıq mikrokontrolörləri necə bağlayacağınızı göstərir.: //www.instructables.com/id/Control-real-world-devices-with-your-PC/ Bu dəfə bir VB. Net proqramı ilə sonra bir ftp veb saytına, başqa bir VB. Net-ə qayıdan mikrokontollerimiz var. insan müdaxiləsi ilə və ya olmadan dünyanın hər hansı bir yerində ikinci bir mikro nəzarətçi proqramı. Matrixdəki maşınlar, bir -birləri ilə danışa bilmədikləri təqdirdə, başqa bir şəkildə necə götürməlidirlər?

Addım 1: hissələri toplayın

Parçaları toplayın
Parçaları toplayın

Parçaların bir çoxu PC Control Instructable-da olduğu kimidir https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ və bunun cəhd etməzdən əvvəl tamamlanması təklif olunur. iki mikro nəzarətçini birləşdirmək. Bir servoya nəzarət etmək üçün bir qazan istifadə etmək olduqca mümkün olsa da, bu dəfə daha sadə bir şeyə gedəcəyik - bir led açan bir açar. Bu keçid asanlıqla bir tank səviyyəsi sensoru ola bilər və bir çayın yaxınlığında bir nasos ola bilər, amma əvvəlcə sadə bir iş görək. Parçalar - İki Picaxe 08M çipi - Rev Ed daxil olmaqla bir çox mənbədən əldə edilə bilər https://www.rev- ed.co.uk/picaxe/ (Böyük Britaniya), PH Anderson https://www.phanderson.com/ (ABŞ) və Microzed https://www.microzed.com.au/ (Avstraliya). Bu çiplərin qiyməti 4 ABŞ dollarının altındadır. İki: Protoboard, 9V batareya və batareya klipləri, 10k rezistor, 22k rezistor, 33uF 16V kondansatör, 0.1uF kondansatör, 7805L aşağı güclü 5V tənzimləyici, tellər (bərk nüvəli telefon/məlumat teli məsələn Cat5/6), LED, 1k rezistor. 1 -dən: D9 dişi yuva və qapaq və 2 metrlik 3 (və ya 4) nüvəli məlumat teli (yükləmək üçün) və keçid açarı. 9 pinli ardıcıl portu olan 2 kompüter (bir kompüterdə düzəldilə bilər) və internet bağlantısı. Serial portu olmayan kompüterlər üçün USB-dən seriyalı cihaza https://www.rev-ed.co.uk/docs/axe027.pdf və kiçik bir stereo yuva.

Addım 2: Bəzi Proqramları Yükləyin və Qurun

Bəzi Proqramları Yükləyin və Qurun
Bəzi Proqramları Yükləyin və Qurun

Pulsuz VB. Net və picaxe nəzarətçi proqramına ehtiyacımız olacaq və Instructable PC nəzarətçisini etmisinizsə, onsuz da bunlara sahib olacaqsınız. -us/express/aa718406.aspx Picaxe proqramı https://www.rev-ed.co.uk/picaxe/ ünvanından mövcuddur Yükləməni əldə etmək üçün microsoft -da qeydiyyatdan keçməlisiniz -bu problem olarsa saxta e -poçtdan istifadə edin ya da bir şey. Zaman zaman yeniləmələr göndərərkən əsl e -poçtumun verilməsini əslində faydalı hesab etdim. Həm də https://www.picaxeforum.co.uk/ picaxe forumundan bəhs edəcəyəm, çünki bu, müəllim və təhsil işçilərindən ibarət bir forumdur. şagirdlərin ümumiyyətlə bir neçə saat ərzində suallara cavab ala biləcəyi yer. Bəzi şagirdlər hələ ibtidai sinif səviyyəsində olduğu üçün forum ən sadə sualları belə başa düşür. Xahiş edirəm kömək istəməkdən qorxmayın!

Addım 3: Yükləmə dövrəsi yaradın

Yükləmə dövrəsi yaradın
Yükləmə dövrəsi yaradın

Bu yükləmə sxemində bir picaxe çipi, bir neçə rezistor, bir tənzimləyici və 9V batareya istifadə olunur. Daha çox məlumatı proqramın kömək menyusunda olan picaxe sənədlərində/yardımda tapa bilərsiniz. Bütün hissələr təhvil verildikdən sonra dövrənin qurulması yalnız bir neçə dəqiqə çəkməlidir. Çip proqramlaşdırıldıqdan sonra, güc söndürüldükdə belə proqramını EEPROM -da saxlayır. İki fiş proqramlaşdırdığımız üçün çipləri etiketləməyə dəyər ola bilər ki, hansının olduğunu biləsiniz. Həmişə geri qayıda və bir çipi yenidən proqramlaşdıraraq bir keçidi çıxararaq bir rezistoru hərəkət etdirə bilərsiniz.

Əlavə edə bilərəm ki, pikaxlar 3 AA batareyada xoşbəxt işləyir. 5V tənzimlənən təchizat, analog gərginliklərin işləməsi üçün faydalıdır, çünki istinad gərginliyi dəyişmir, lakin sadə açma/söndürmə sxemləri üçün tənzimlənmiş təchizata ehtiyac yoxdur. Bu vəziyyətlərdə 5V reg istisna edilə bilər.

Addım 4: Çipləri proqramlaşdırın

Çipləri proqramlaşdırın
Çipləri proqramlaşdırın

Bir proqramı Tx və bir Rx adlandıracağıq. Tx nəzarət çipidir və bir açar və bir ledə malikdir. Rx -in də bir ledi var. Keçid dəyişdikdə siqnal Tx -dən Rx -ə keçir, ledi dəyişir və eyni zamanda Tx -ə qayıdan ikinci dəyişəni də dəyişir. Beləliklə, açarı sürüşdürün və bir dəqiqədən az müddətdə hər iki dövrədə led dəyişikliyi mesajın ora çatdığını və Rx -in yeni keçid mövqeyində hərəkət etdiyini göstərir. Ən sadə səviyyədə pikaxe 14 tək baytlı qeydə malikdir. Bir virtual şəbəkə yaradıldıqda, bütün qeydləri bir -birinə bağlayırıq, belə ki, bir piksedə bir bayt dəyişərsə, bütün piksalarda dəyişər. Aydındır ki, iki pikaks eyni baytı dəyişdirməyə çalışırsa, çox qarışıq olacaq, amma hər pikaks yalnız bir baytı dəyişərsə, digər bütün pikaxlar bu dəyişikliyi görə bilər və ona əməl edə bilərlər. Müəyyən bir bayt yalnız bir picaxe ilə dəyişdirilərsə, sadə mesajlar geri və irəli ötürülə bilər. Bir qazan bir reyestrdəki dəyəri dəyişə bilər və bir və ya daha çox digər pikaks, servonun və ya hər hansı bir şeyin dəyişdiyini və hərəkət etdiyini və qızdırıcının işə salındığını hiss edə bilər. İkinci bir qeyd otaqdakı istiliyi geri göndərə bilər. Proqramları öz növbəsində picaxe proqramçıya kopyalayın və yapışdırın və picaxe proqramçısı içərisindəki mavi yükləmə oxundan istifadə edərək hər bir çipə yükləyin. Tx: əsas: serin 3, N2400, ("Məlumat"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'pin2 olduqda kompüterdən paket alın 0 sonra 'keçid test edin və b0 vəziyyətindən asılı olaraq b0 reyestrini təyin edin b0 = 0 başqa b0 = 1 sona qədər b1 = 0 sonra' digər picaxe dəstləri b0 aşağı 1 'açıldı başqa yüksək 1' endif serout 0, N2400, ("Məlumat", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'kompüterə göndər goto mainand Rx: main: serin 3, N2400, ("Məlumat"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'kompüterdən paket alın b1 = b0' qeydini dəyişdirin b1 bərabər reyestr b0 ilə dəyişdirin b1 = 0 sonra aşağı 1 'açıldı başqa yüksək 1' endif serout 0, N2400, ("Məlumat", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12), b13) 'goto main kompüterə geri göndər

Addım 5: Tx Circuit qurun

Tx Circuit qurun
Tx Circuit qurun

Bir iş dövrəsi ilə bir proqramlaşdırma dövrəsi arasında irəli və geri dönsəniz, 2 -ci ayağın bağlantısını və 22k müqavimətinin yerini 2 -ci ayaqdan 4 -cü ayağına dəyişdiyinizə əmin olun. Və ya xüsusi bir yükləmə dövrəsi qurub çipləri hərəkət etdirə bilərsiniz. qarşı Yalnız bir dövrənin işlədiyini və ya yükləndiyini nəzərə alın, çünki olduqca qarışıq ola bilər. Xüsusilə, ayağın 2 üzən vəziyyətdə qalması halında işləyən bir dövrənin işləməyəcəyini unutmayın - topraklanmalıdır. Ayaq 2, yükləmə pinidir və üzən vəziyyətdə qalsa, fluo işıqlarından uzaq RF -ni götürür və çip başqa bir proqramın yükləndiyini düşünür.

Fiziki sancağı ayaq və virtual sancağı bir pin adlandıran pikaks nomenklaturasından da bəhs etməyə dəyər. Beləliklə, koddakı pin 2 -dəki çıxış əslində fiziki ayaq 5 -də bir çıxışdır. Bu qəribə görünə bilər, amma bu o deməkdir ki, kod 28 və 40 pinli versiyalar kimi daha böyük pikaxlara daşınır və hələ də işləyir.

Addım 6: Rx Circuit qurun

Rx Circuit qurun
Rx Circuit qurun

Bu dövrə demək olar ki, ötürücü ilə eynidir - sadəcə açarı yoxdur.

Addım 7: Bəzi VB. Net Kodu yazın

Bir az VB. Net Kodu yazın
Bir az VB. Net Kodu yazın

Kodu tərtib edib bu proqramı tərtib edilmiş bir.exe olaraq təqdim edə bilərdim, amma bəzi VB. Net -i öyrənmək o qədər inanılmaz dərəcədə faydalıdır ki, addım -addım keçməyə dəyər. Bunu iki fərqli kompüterdə çalıştırırsanız, proqramı ikinci kompüterə quraşdırıla bilən kiçik bir quraşdırma proqramı yaradan bir.exe şəklində qura bilərsiniz. Ya da VB. Net -i hər iki kompüterə qoya və proqramları VB. Net -dən idarə edə bilərsiniz https://www.instructables.com/id/S1MMU2XF82EU2GT -in 7 və 8 -ci addımlarından yeni bir VB.net layihəsinin necə açılacağını bilirsiniz. /Boş formda alətlər çubuğundan aşağıdakı komponentləri əlavə edək və onları göstərilən yerlərdə forma qoyaq. Etiketlər və mətn qutuları üçün mətn xüsusiyyətini (aşağı sağda) lazım olana dəyişdirin. Taymerin parametrləri barədə narahat olmayın - onları kodda dəyişdirəcəyik, ancaq bir taymer qoymağınızdan əmin olun. Ətrafdakı hər şeyi hərəkət etdirə bilərsiniz və yer haqqında heç bir real qaydalar yoxdur. Böyük mətn qutusu bir RichTextBox, daha kiçik üçü isə adi mətn qutularıdır. Sifariş baxımından formanın yuxarı hissəsindən başlayaraq aşağıya doğru irəliləyirik. Bir şey buraxsanız, kodda bir növ ipucu verməli olan bir səhv olacaq. Zəhmət olmasa Textbox3 üçün təsadüfi bir fayl adı seçin - bu ftp serverində bənzərsiz pikax qrupunuzun adıdır və əgər hamımız bu Eyni ad sonra məlumatların hamısı qarışıq olacaq! Bu cədvəldəki tire üçün üzr istəyirik-boşluq qoymaq cədvəldəki formatlamanı itirir. Toolbox obyekti ------- Mətn ----------- ------------------------------ NotesLabel1 ------------------ Picaxe CommunicationsLabel2 ------------------ FTP StatusLabel3 ------------------ StatusLabel4 ---------- -------- Picaxe QeydləriLabel5 ------------------ Qeydiyyat 0-13Label6 ------------------ Dəyər 0-255Label7 ------------------ FTP linki fayl adıTextbox1 ---------------- 0 -------- -------------------------------------- 0 OTextbox2 deyil, sıfırdır ----- ----------- 0Textbox3 ---------------- Myfilename --------------------- ---------- Heç bir toqquşma yoxdur! Button1 ------------------ ModifyRichtextbox1 Picturebox1 Picturebox2 Timer1

Addım 8: Bəzi Kod əlavə edin

Bəzi Kod əlavə edin
Bəzi Kod əlavə edin

Forma görünüşü ilə kod görünüşü arasında dəyişən düymənin yeri üçün digər təlimatlı 12 -ci addıma baxın. Kod görünüşünə keçin və aşağıdakı kodu yapışdırın. Rənglərin hamısı ekran görüntüsündə olduğu kimi yenidən görünməlidir. Bir söz yığma problemi səbəbiylə bir xətt düzgün kopyalanmamışdırsa, səhv mesajı yox olana qədər boşluqları silin. Satırların çoxunu şərh etməyə çalışdım, buna görə kod heç olmasa bir məna kəsb edir. Bunu yapışdırmadan əvvəl mətn boş olduğu üçün ictimai sinif bitini silin - bu kodun artıq ictimai sinfi var. Mətn qutusu kimi bir obyekt forma yerləşdirilməyibsə və ya adı səhvdirsə, o zaman mətn kodunun altında mavi rəngli bir xətt görünəcək. sol (və sağ) (strings üçün Public Class Form1 Public Public Sub -Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) '' yuxu ifadələri üçün Dim WithEvents serialPort As New IO. Ports. SerialPort 'serial portu Dim PicaxeRegisters elan edir (0 - 13) Byte 'b0 -dan b13 -ə qədər Dim ModifyFlag'i Boolean Şəxsi Alt Formu kimi qeyd edir1_Load (ByVal göndərən Obyekt olaraq, ByVal e Sistem olaraq. EventArgs) Mənə Dəstəklənir. Yükün' bütün bu zibilliyə ehtiyacı var. Timer1. Enabled = True ', bunu kodu Timer1. Interval = 20000' hər 20 saniyədə yaradanda saxta olaraq təyin edir. bir dəyəri əl ilə dəyişdirsəniz, s kip download RichTextBox1. Multiline = True 'birdən çox sətir göstərə bilər DisplayPicaxeRegisters () 14 qeydləri göstərir ReadFTPFilename çağırın ()' faylın adını diskdən oxuyun (hər 20 saniyədə bir yenilənir) Sub Sub SerialTxRx () Dim DataPacket (0 -dan 17 -ə qədər) Byte 'bütün məlumat paketi "Məlumat" +14 bayt Dim i As Tamsayı' i həmişə döngələr üçün faydalıdır və i = 0 -dan 3 -ə qədər DataPacket (i) = Asc (Orta ("Məlumat", i + 1), 1)) 'paketə "Məlumat" sözünü əlavə edin Sonrakı üçün i = 0 -dan 13 -ə qədər DataPacket (i + 4) = PicaxeRegisters (i)' bütün baytları pakete əlavə edin Next If serialPort. IsOpen Sonra serialPort. Close () 'sadəcə açılmışsa, əgər cəhd edin serialPort ilə sınayın. PortName = "COM1"' Ən yeni kompüterlərin əksəriyyəti com1 olaraq təyin olunur, lakin 1999 -cu ildən əvvəl seriyalı siçanı olan hər hansı bir kompüter, ehtimal ki, com2 olaraq təyin olunur. BaudRate = 2400 '2400, maksimum sürətdir. kiçik pikaxlar. Parity = IO. Ports. Parity. None 'parite yoxdur. DataBits = 8' 8 bit. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' milisaniyə ds belə cavab vermədiyi təqdirdə 1 saniyədə bitər. Açın () 'seriyalı portu açın. DiscardInBuffer ()' giriş tamponunu silin. Yazın (DataPacket, 0, 18) 'yazın datapacket dizisini Sleep (300)' a göndərin '100 millisaniyə Veri axını uzun olarsa, məlumatların geri qayıtmasını gözləmək üçün minimum və daha çox. Oxu (DataPacket, 0, 18) 'məlumat paketi dizisində yenidən oxuyun. Close ()' serial portunu bağlayın Sonu İlə = 4-17 PicaxeRegisters (i - 4) = DataPacket (i) 'yeni məlumat paketini qeyd massivinə köçürün Sonrakı PictureBox1. BackColor = Color. GreenYellow' işləyin İstisna PictureBox1. BackColor = Color. Red 'işləmir End End Sub Sub FTPUpload (ByVal Fayl Adı String Olaraq) Dim localFile As String 'məlumatları saxlamaq üçün yer Dim remoteFile As String' fayl adı böyük hərflərə həssasdır, bu, həqiqətən də Const host kimi String = "ftp://ftp.0catch.com" 'qeyd edin, 0 sıfır xarakter deyil O Const istifadəçi adı kimi String = "picaxe.0catch.com" Const parol kimi String = "picaxetester" Dim URI String olaraq localFile = Fayl adı 'bəlkə də lazım deyil, ancaq c: / mydirectory asanlıqla bu şəkildə əlavə edə bilər uzaqdanFile = "/" + Fayl adı' faylı ftp serverində "/" önünə əlavə olunur URI = host + remoteFile Dim ftp sistem olaraq sınayın. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (istifadəçi adı, şifrə) 'ftp. KeepAlive = False daxil ol' olacaq ftp. UseBinary = True 'istifadə edildikdən sonra əlaqəni kəsmək ftp. Timeout = 9000' 9 saniyə sonra - ftp bəzən ölməkdə olduğu üçün çox faydalıdır 'və 20 saniyəlik saat tezliyi dialp bağlantıları üçün daha yavaş ola bilər. Metod = System. Net. WebRequestMethods. Ftp. UploadFile 'Dim fs faylını Yeni FileStream Olaraq Göndərməyə başlayın (localFile, FileMode. Open)' açıq lokal fayl Dim filecontents (fs. Length) Byte 'kimi yaddaşa fs. Read (filecontents, 0, fs. Length) fs. Close () 'Dim requestStream faylını bağlayın Axın = ftp. GetRequestStream ()' başlanğıc ftp bağlantı istəyiSt ream. Write (filecontents, 0, filecontents. Length) 'sorğu göndərStream. Close ()' PictureBox2. BackColor = Color. GreenYellow 'bağlantısını bağlayın, işlədiyini söyləmək üçün qutunu yaşıl rəngə dəyişdirin Label2. Text = "FTP Bağlandı"' Bağlandığını deyən mətn Catch 'əlaqələndirə bilməz PictureBox2. BackColor = Color. Red' qutusu heç bir əlaqə olmadığı üçün qırmızıya çevrilir Label2. Text = "FTP Yükləmə Başarısızdır" yazısı deyilən əlaqə uğursuz oldu End End Sub Sub FTPDownload (ByVal Fayl Adı String Olaraq) 'Remotefile faylını localfile yükləyir Dim localFile As String' məlumatları saxlamaq üçün yer Dim remoteFile As String 'fayl adı böyük hərflərə həssasdır, bu həqiqətən vacibdir Const host As String = "ftp://ftp.0catch.com" Const istifadəçi adı String olaraq = "picaxe.0catch.com "String As Const parol =" picaxetester "Dim URI String Olaraq 'localFile =" C: / " + Fayl Adı' kök qovluğunda saxlanılır, lakin bu localFile = Filename 'dəyişdirilə bilər, buna görə də müəyyən etmək lazımdırsa c: / əlavə edə bilərsiniz. faktiki yer remoteFile = "/" + Fayl adı 'uzaq ftp yerinə əlavə edildi URI = ana + uzaqFile' makiyajı Tam ünvan Dim ftp olaraq System. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = Yeni System. Net. NetworkCredential (istifadəçi adı, parol) ftp -də daxil olmağa çalışın.. KeepAlive = False 'başa çatdıqdan sonra əlaqəni kəsəcək. cavabın System. Net. FtpWebResponse = CType (ftp. GetResponse, System. Net. FtpWebResponse) kimi istifadə edilməsinin nə qədər böyük olduğunu bilmirəm. IO. FileMode. Create) Dim tamponu (2047) Byte Dim olaraq Oxuyanda Tam olaraq = 0 Oxu = cavabStream. Oxu (tampon, 0, tampon. Length) 'ftp fs. Write -dən parça (tampon, 0, oxu)' və Loop faylına yazın Oxunana qədər = 0 'daha çox ədəd cavab verməyənə qədərStream. Close ()' ftp faylını bağlayın fs. Flush () 'flush clear fs. Close ()' və th. e faylı İstifadə edərək cavabStream. Close () 'heç bir şey olmasa belə bağlayın Cavab istifadə etməyi sonlandırın. Close () PictureBox2. BackColor = Color. GreenYellow' işləyərkən yaşıl qutu Label2. Text = "FTP Bağlandı" və mətn Catch istifadə edərək sona çatdı 'səhv kodlarını bura qoydu PictureBox2. BackColor = Color. Red' qırmızı qutusu işləmədiyi üçün Label2. Text = "FTP Yükləmə Başarısız oldu" və bunu bildirmək üçün mesaj göndər End Sub Private Sub Timer1_Tick (ByVal göndərən System. Object, ByVal e As System. EventArgs) Zamanlayıcıları İdarə Edir 1. ModifyFlag = Yanlış Olarsa 'işarəsini qoyun, əgər istifadəçi bir baytı dəyişibsə, Label3. Text = "Yüklənir" System. Windows. Forms. Application. DoEvents () yükləməyin 'buna görə də yeni etiket mətni Call FTPDownload (TextBox3. Text)' yükləmə uzaq faylını Label3. Text = "Yükləndi" System. Windows. Forms. Application. DoEvents () ReadRemoteFileToRegisters -ə zəng edin () fayl nömrələrini Label3. Text qeydiyyat massivinə qeyd edin. = "Talking to picaxe" System. Windows. Forms. Application. DoEvents () Else ModifyFlag = False 'bayrağı sıfırlayır Zəng edin SerialTxRx () 'picaxe göndərin və geri oxuyun Label3. Text = "Picaxe -dən göndərildi və alındı" System. Windows. Forms. Application. DoEvents () DisplayPicaxeRegisters -ə zəng edin () SaveRegistersToLocalFile () -ə zəng edin Label3. Text = "Yüklənir" System. Windows. Forms. Application. DoEvents () FTPUpload (TextBox3. Text) 'ə zəng et, mənim adım Label3. Text = "İstirahət" olaraq SaveFTPFilename () adlı ftp saytına göndər yenidən başladıqda Son Alt Alt DisplayPicaxeRegisters () Dim i As Integer Dim registernumber As String RichTextBox1. Multiline = True 'beləliklə RichTextBox1. Clear ()' mətn qutusunda birdən çox sətri göstərə bilər, i = 0 ilə 13 arasında registernumber = Trim (Str (i)) 'aparıcı boşluqları kəsərsə i <10 Sonra registernumber = "0" + registernumber' RichTextBox1. AppendText (registernumber + "=" + Str (PicaxeRegisters (i))) + Chr (13)) Sonrakı 'chr (13), vaqon dönüşüdür, belə ki, yeni xətt Son Alt Şəxsi Alt Düymə1_Click (ByVal göndərən System. Object, ByVal e As System. EventArgs) Düymələri İdarə edir 1. Dim i Integer 'düyməsini basın, əvvəlcə i = Val (TextBox1. Text) i <0 Və ya i> 13 Əgər TextBox1. Text = 0 Bitərsə i = Val (TextBox2. Text) i <0 Və ya i> 255 Əgər TextBox2. Text = 0 Bitirsə PicaxeRegisters (Val (TextBox1. Text)) = Val (TextBox2. Text) 'dəyərini dəyişdirin DisplayPicaxeRegisters ()' və ekranı təzələyin ModifyFlag = Doğru 'və növbəti ftp bağlantısı, Sub Sub Sub SaveRegistersToLocalFile ()' qeyd qeyd silsiləsini yerli bir mətn faylında qeyd edin Dim i As Integer FileOpen (1, TextBox3. Text, OpenMode. Output) 'adlı mətn faylını açın. mətn qutusunda i = 0 -dan 13 -ə qədər PrintLine (1, Str (PicaxeRegisters (i))) '14 dəyər saxla Sonrakı FileClose (1)' faylını bağlayın End Sub Sub ReadRemoteFileToRegisters () 'qeydini mətn sənədinə daxil edin. Dim i As Integer olaraq Dim LineOfText String Olaraq FileOpen (1, TextBox3. Text, OpenMode. Input) '14 faylında oxunan i = 0 -dan 13 -ə qədər LineOfText = LineInput (1)' üçün uzaq fayl adını oxuyun. es PicaxeRegisters (i) = Val (LineOfText) 'mətni dəyərlərə çevirin Sonrakı FileClose (1) Ex Exception FileClose (1)' faylı kimi tutun, heç bir şey etmə End End Sub Sub Read ReadFTPFilename () 'belə adı Uzaqdan ftp faylı növbəti dəfə bu proqram Dim LineOfText işlədildikdə eyni olur: FileOpen cəhd edin (1, "FTPFilename.txt", OpenMode. Input) 'faylını açın LineOfText = LineInput (1) TextBox3. Text = LineOfText' oxuyun FileClose adı (1) Exception FileClose kimi ex (C) sona çatdırın Alt Sub SaveFTPFilename () FileOpen (1, "FTPFilename.txt", OpenMode. Output) 'yazın uzaq ftp fayl adını PrintLine (1, TextBox3. Text) saxla FileClose (1) SubEnd Sinifini Bitirin

Addım 9: Proqramı hər iki kompüterdə işə salın

Proqramı hər iki kompüterdə işləyin
Proqramı hər iki kompüterdə işləyin

Ekranın yuxarı ortasındakı yaşıl üçbucağı - 'Hata Ayırmağa Başla' düyməsini basaraq proqramı işə salın. 20 saniyə ərzində heç nə olmayacaq və sonra proqram ftp serverinə qoşulmağa çalışacaq və pikaksiyaya qoşulmağa çalışacaq. Şəkil qutuları ya qırmızı, ya da yaşıl rəngdə olacaq. Ftp yeri pulsuz bir veb saytdır və hər kəs bundan istifadə edə bilər, ancaq fərqli bir ftp işləyən fayl adı istifadə etməlisiniz (mənimki DoctorAcula1), əks halda eyni fayl adını istifadə etsək hamımız bir -birimizin məlumatları ilə nəticələnə bilərik! İstəyirsinizsə, nəticədə öz ftp saytınızı əldə edə bilərsiniz - 0Catch veb saytımdan kodun iki yerində ftp yerini, istifadəçi adını və şifrəni dəyişdirin. Əksər saytlar ftp -ə icazə verir. Birdən çox kompüter eyni ftp faylına daxil ola bilər - ftp fayl serveri bunların baş vermə qaydasını sıralayır. Bəzən məlumatların toqquşması və ya dayandırılması olur və bu hər 20 fayl oxunuşunda baş verir. Kodda bir zaman aşımı var, buna görə də zədələnmiş məlumatlardan çox heç bir məlumat qaytarmır. 128 kb yükləmə sürəti ilə genişzolaqlı bir bağlantının istifadəsi bir fayl yüklənməsinin təxminən 3 saniyə çəkdiyini, lakin əksəriyyəti 8 saniyəyə qədər çəkdiyini bildirir. məlumat ötürməkdən daha çox əl sıxmaqda. Yükləmə, yükləmə və picaxe ilə söhbət etməyi nəzərə alaraq, timer1 vaxtını minimum 20 saniyə minimuma endirir. Çox sürətli genişzolaqlı əlaqə vasitəsi ilə VB proqramı daxilində dövriyyəni qısalda bilərsiniz. Bunu etsəniz, növbəti taymer dövrü ftp saytından yükləməni atlayaraq yeni məlumatları pikaksiyaya göndərir və sonra geri oxuyub yükləyir. Yeni məlumatlar, bu qrupla əlaqəli bütün pikaxlara yol tapır. Hata ayıklama və/və ya PC proqramını mikrokontrolör hardware döngəsinə bağlamaq üçün faydalıdır. Veb saytları da FTP saytına yeni bir fayl yazmaq üçün PERL skriptindən və ya bənzərlərindən istifadə edərək hardware döngəsinə daxil ola bilər. Bu ekran görüntüsü Tx çipi ilə çəkilmiş, açar açılmış və b0 = 1 reyestri Rx çipinə göndərilmişdi. sonra b1 reyestrini də 1 -ə dəyişmişdi. Led hər iki lövhədə belə işıqlandırıldı. Bu əhəmiyyətsiz bir tətbiqdir, ancaq bir LED əvəzinə 3.6Kw gücündə bir nasosu işə salmaq asandır. Daha bir neçə fikir https://drvernacula.topcities.com/ saytında, pikaksları günəş enerjisi ilə işləyən radio bağlantıları vasitəsi ilə əlaqələndirmək də var. Radio bağlantıları və internet ilə 'Maşınlar' ın dünyanın bir çox guşəsinə çatması mümkündür. Picaxe forumunda bu fikri daha da irəli aparmaq və PC və ftp saytını birbaşa yönlendiriciyə qoşulan xüsusi veb server çipləri ilə əvəz etməklə bağlı bəzi fikirlər var. Aydındır ki, bu, bir keçidin enerji istehlakını azaldır. Əlavə müzakirələrlə maraqlanırsınızsa, zəhmət olmasa İnstructable şərhlərdə və/və ya picaxe forumunda yazın. Dr James Moxham Adelaide, Cənubi Avstraliya

Addım 10: Kodun ekran görüntüləri

Kodun ekran görüntüləri
Kodun ekran görüntüləri

İstəklə, burada bütün formatlamaları olan vb.net kodunun bir sıra ekran görüntüləri var. Bu kod əslində bu təlimat verənin arxasına kopyalandı və format avtomatik olaraq yenidən ortaya çıxdı. Bu şəkilləri oxumağa çalışmaqdansa mətni kopyalayıb yapışdırmaq daha yaxşı olardı, ancaq internet kafedə olsan və vb.net yükləyə bilməsən faydalı olar.

Addım 11: Ekran görüntüsü2

Ekran görüntüsü2
Ekran görüntüsü2

Ekran görüntüsü 2

Addım 12: Ekran görüntüsü 3

Ekran görüntüsü 3
Ekran görüntüsü 3

Ekran görüntüsü 3

Addım 13: Ekran görüntüsü 4

Ekran görüntüsü 4
Ekran görüntüsü 4

Ekran görüntüsü 4

Addım 14: Ekran görüntüsü 5

Ekran görüntüsü 5
Ekran görüntüsü 5

Ekran görüntüsü 5

Addım 15: Ekran görüntüsü 6

Ekran görüntüsü 6
Ekran görüntüsü 6

Ekran görüntüsü 6

Tövsiyə: