İçindekiler:

20 Doların Altında Dünya Çapında Mikrodenetleyici Bağlantısı: 15 Adım
20 Doların Altında Dünya Çapında Mikrodenetleyici Bağlantısı: 15 Adım

Video: 20 Doların Altında Dünya Çapında Mikrodenetleyici Bağlantısı: 15 Adım

Video: 20 Doların Altında Dünya Çapında Mikrodenetleyici Bağlantısı: 15 Adım
Video: MSI ’NIN DÜNYA ÇAPINDAKİ BAŞARISININ HİKAYESİ – 20 YILDA LAPTOP PAZARINDA BİR DEV OLMAK 2024, Temmuz
Anonim
20 Doların Altında Dünya Çapında Mikrodenetleyici Bağlantısı
20 Doların Altında Dünya Çapında Mikrodenetleyici Bağlantısı

Ev termostatınızı işten kontrol edin. Bir düğmeye basarak dünyanın herhangi bir yerinden bir sprinkleri açın. Bu Eğitilebilir Tablo, internetin omurgasını ve bazı basit VB. Net kodunu kullanarak iki veya daha fazla 4 dolarlık mikrodenetleyicinin nasıl bağlanacağını gösterir.://www.instructables.com/id/Control-real-world-devices-with-your-PC/ Bu sefer bir VB. Net programıyla, ardından bir ftp web sitesiyle, başka bir VB. Net'le konuşan bir mikrodenetleyicimiz var. program ve dolayısıyla dünyanın herhangi bir yerinde insan müdahalesi olsun ya da olmasın ikinci bir mikro denetleyici. Matrix'teki makineler, birbirleriyle konuşamıyorlarsa, başka nasıl devralacak?

Adım 1: Parçaları Toplayın

Parçaları Toplayın
Parçaları Toplayın

Parçaların çoğu, PC Kontrol Talimatı https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ ile aynıdır ve denemeden önce bunun tamamlanması önerilir. iki mikrodenetleyiciyi bağlamak için. Bir servoyu kontrol etmek için bir pot kullanmak oldukça mümkün olsa da, bu sefer daha basit bir şey için gideceğiz - bir led'i açan bir anahtar. Anahtar kolayca bir tank seviye sensörü olabilir ve led bir nehir yakınında bir pompa olabilir, ancak önce basit bir çalışma yapalım. Parçalar - İki Picaxe 08M yongası - Rev Ed dahil birçok kaynaktan edinilebilir https://www.rev- ed.co.uk/picaxe/ (İngiltere), PH Anderson https://www.phanderson.com/ (ABD) ve Microzed https://www.microzed.com.au/ (Avustralya). Bu çipler 4 ABD dolarının altında. Şunlardan ikisi: Protoboard, 9V pil ve pil klipsleri, 10k direnç, 22k direnç, 33uF 16V kapasitör, 0.1uF kapasitör, 7805L düşük güç 5V regülatör, teller (katı çekirdekli telefon/veri kablosu, örneğin Cat5/6), LED, 1k direnç. 1 adet: D9 dişi soket ve kapak ve 2 metrelik 3 (veya 4) çekirdek veri kablosu (indirmek için) ve bir geçiş anahtarı. 9 pinli seri portlu 2 bilgisayar (tek bilgisayarda hata ayıklanabilir) ve internet bağlantısı. Seri bağlantı noktası olmayan bilgisayarlar için, bir USB'den seri aygıta https://www.rev-ed.co.uk/docs/axe027.pdf ve küçük bir stereo soket.

Adım 2: Bazı Yazılımları İndirin ve Yükleyin

Bazı Yazılımları İndirin ve Yükleyin
Bazı Yazılımları İndirin ve Yükleyin

Ücretsiz VB. Net ve picaxe controller yazılımına ihtiyacımız olacak ve eğer PC controller Instructable'ı yaptıysanız, bunlara zaten sahip olacaksınız. VB. Net (Visual Basic Express) https://msdn2.microsoft.com/en adresinde mevcuttur. -us/express/aa718406.aspxPicaxe yazılımı https://www.rev-ed.co.uk/picaxe/ adresinde mevcuttur. İndirmeyi almak için microsoft'a kaydolmanız gerekir - bu bir sorunsa sahte bir e-posta kullanın ya da başka birşey. Ara sıra güncellemeler gönderdikleri için gerçek e-postamı vermeyi gerçekten yararlı buldum. öğrencilerin genellikle birkaç saat içinde sorularına cevap alabilecekleri yer. Forum, bazı öğrenciler hala ilkokul düzeyinde olduğu için en basit soruları bile çok iyi anlıyor. Lütfen yardım istemekten korkmayın!

3. Adım: Bir İndirme Devresi Oluşturun

İndirme Devresi Oluşturun
İndirme Devresi Oluşturun

Bu indirme devresi bir pikaxe çipi, birkaç direnç, bir regülatör ve bir 9V pil kullanır. Programın yardım menüsünde çıkan picaxe belgelerinde/yardımında daha fazla bilgi mevcuttur. Tüm parçalar elinizin altında olduğunda devrenin inşa edilmesi yalnızca birkaç dakika sürer. Bir çip programlandığında, güç kapatıldığında bile programını EEPROM'da tutar. İki çip programladığımız için, hangisinin hangisi olduğunu bilmeniz için çipleri etiketlemeye değer olabilir. Bir bağlantıyı kaldırarak ve bir direnci hareket ettirerek her zaman geri dönebilir ve bir çipi yeniden programlayabilirsiniz.

Ayrıca picax'ların 3 AA pille mutlu bir şekilde çalıştığını da ekleyebilirim. 5V ayarlı besleme, referans voltajları değişmediğinden analog girişleri çalıştırmak için kullanışlıdır, ancak basit açma/kapama devreleri için ayarlı beslemeye gerek yoktur. 5V reg bu durumlarda dışarıda bırakılabilir.

Adım 4: Cipsleri Programlayın

Çipleri Programlayın
Çipleri Programlayın

Bir program Tx ve bir Rx arayacağız. Tx kontrol çipidir ve bir anahtarı ve bir led'i vardır. Rx'in de bir led'i var. Anahtar değiştiğinde sinyal Tx'ten Rx'e gider, led'i değiştirir ve ayrıca ikinci bir değişkeni değiştirir ve ardından Tx'e geri döner. Anahtara hafifçe vurun ve bir dakikadan kısa bir süre içinde her iki devrede de led değişir ve mesajın oraya ulaştığını ve Rx'in yeni anahtar konumunda hareket ettiğini gösterir. En basit düzeyde, pikaxe 14 tek baytlık kayıtlara sahiptir. Bir sanal ağ oluşturulduğunda, tüm bu kayıtları birbirine bağlarız, böylece bir bayttaki bir bayt değişirse, tüm piksellerde değişir. Açıkça, iki piksel aynı baytı değiştirmeye çalışıyorsa, o zaman çok kafa karıştırıcı olacaktır, ancak her bir piksel yalnızca bir baytı değiştirirse, diğer tüm pikseller bu değişikliği görebilir ve buna göre hareket edebilir. Belirli bir bayt yalnızca bir piksel tarafından değiştirilirse, basit mesajlar ileri ve geri iletilebilir. Bir pot, bir kayıttaki değeri değiştirebilir ve bir veya daha fazla diğer pikax, bir servoyu veya herhangi bir şeyi değiştirdiğini ve hareket ettirdiğini algılayabilir ve bir ısıtıcıyı açabilir. İkinci bir kayıt, odadaki sıcaklığı geri gönderebilir. Programları kopyalayıp sırayla picaxe programlayıcıya yapıştırın ve picaxe programlayıcı içindeki mavi indirme okunu kullanarak bunları ilgili çiplerin her birine indirin. Tx:main:serin 3, N2400 ("Veri"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13' pin2= ise paketi bilgisayardan alın 0 sonra' anahtarı test edin ve kaydı b0 durumuna göre ayarlayın b0=0 yoksa b0=1 endif eğer b1=0 ise o zaman' diğer pikaxe setleri b1 bağlı b0 düşük 1' led kapalı başka yüksek 1' led on endif serout 0, N2400 ("Data", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13)' bilgisayara geri gönder ana ve Rx:main:serin 3, N2400 ("Veri"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13' bilgisayardan paketi al b1=b0' b1 kaydını b1 ise eşit kayıt b0'a değiştir =0 sonra düşük 1' led kapalı başka yüksek 1' led on endif serout 0, N2400 ("Veri", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13)' ana bilgisayara geri gönder

Adım 5: Tx Devresini Oluşturun

Tx Devresini Oluşturun
Tx Devresini Oluşturun

Bir çalışma devresi ile bir programlama devresi arasında gidip geliyorsanız, 2. bacak bağlantısını ve 22k direncinin konumunu 2. bacaktan 4. bacak olarak değiştirdiğinizden emin olun. Veya özel bir indirme devresi kurabilir ve çipleri hareket ettirebilirsiniz. karşısında. Oldukça kafa karıştırıcı olabileceğinden, bir devrenin çalışıp çalışmadığını veya indirilip indirilmediğini not edin. Özellikle, ayak 2 serbest bırakılırsa, çalışan bir devrenin çalışmayacağını unutmayın - topraklanması gerekir. Ayak 2 indirme pinidir ve yüzer halde bırakılırsa, floro ışıklarından başıboş RF alır ve çip başka bir programın indirildiğini düşünür.

Fiziksel pimi bacak ve sanal pimi pim olarak adlandıran pikax isimlendirmesinden de bahsetmeye değer. Bu nedenle, koddaki pin 2'deki bir çıktı aslında fiziksel bacak 5'teki bir çıktıdır. Bu garip görünebilir, ancak bu, kodun 28 ve 40 pinli versiyonlar gibi daha büyük piksellere taşınabileceği ve hala çalıştığı anlamına gelir.

Adım 6: Rx Devresini Oluşturun

Rx Devresini Oluşturun
Rx Devresini Oluşturun

Bu devre verici ile hemen hemen aynıdır - sadece anahtarı yoktur.

Adım 7: Bazı VB. Net Kodlarını Yazın

Bazı VB. Net Kodlarını Yazın
Bazı VB. Net Kodlarını Yazın

Kodu derleyebilir ve bu programı derlenmiş bir.exe olarak kullanılabilir hale getirebilirdim, ancak bazı VB. Net'i öğrenmek o kadar inanılmaz derecede faydalıdır ki, adım adım ilerlemeye değer. Bunu iki farklı bilgisayarda çalıştırıyorsanız, programı, ikinci bilgisayara yüklenebilecek küçük bir kurulum programı oluşturan bir.exe dosyasına oluşturabilirsiniz. Veya VB. Net'i her iki bilgisayara da koyabilir ve programları VB. Net içinden çalıştırabilirsiniz. https://www.instructables.com/id/S1MMU2XF82EU2GT'nin 7. ve 8. adımlarından yeni bir VB.net projesinin nasıl açılacağını bildiğinizi varsayalım. /Boş formda araç çubuğundan aşağıdaki bileşenleri ekleyelim ve formda gösterildiği gibi konumlara koyalım. Etiketler ve metin kutuları için, metin özelliğini (sağ altta) gereken şekilde değiştirin. Zamanlayıcı ayarları için endişelenmeyin - bunları kodda değiştireceğiz ancak bir zamanlayıcı koyduğunuzdan emin olun. Eşyaları hareket ettirebilirsiniz ve konumla ilgili gerçek kurallar yoktur. Büyük metin kutusu bir RichTextBox'tur ve daha küçük üçü sıradan Metin Kutularıdır. Düzen açısından, formun en üstünden başlayıp aşağı doğru ilerliyoruz. Bir şeyi dışarıda bırakırsanız, kodda bir tür ipucu vermesi gereken bir hata olacaktır. Lütfen Textbox3 için rastgele bir dosya adı seçin - bu, ftp sunucusundaki benzersiz pikax grubunuzun adıdır ve açıkçası hepimiz aynı isim sonra veriler karışacak!Bu tablodaki tireler için üzgünüm - boşluk koymak tablodaki biçimlendirmeyi kaybediyor. Toolbox nesnesi-------Metin----------- ------------------------------NotlarEtiket1------------------Pikas İletişimEtiketi2------------------FTP DurumEtiketi3-----------------DurumEtiketi4---------- --------Picaxe KayıtlarıEtiket5------------------Kaydet 0-13Etiket6-------------------- Değer 0-255Etiket7------------------FTP bağlantı dosyaadıMetin Kutusu1--------------------------------------- -------------------------------------- 0, OTextbox2 değil, sıfırdır ----- -----------0Metin kutusu3----------------Dosya adım-------------------- ----------Çatışma olmayacak şekilde değiştirin!Düğme1------------------DeğiştirRichtextbox1 Picturebox1 Picturebox2 Zamanlayıcı1

Adım 8: Bazı Kodlar Ekleyin

Biraz Kod Ekle
Biraz Kod Ekle

Form görünümü ve kod görünümü arasında geçiş yapan düğmenin konumu için diğer talimattaki adım 12'ye bakın. Kod görünümüne geçin ve aşağıdaki kodu yapıştırın. Renklerin tümü ekran görüntüsündeki gibi yeniden görünmelidir. Wordwrap sorunu nedeniyle bir satır düzgün bir şekilde kopyalanmazsa, hata mesajı kaybolana kadar boşlukları silin. Kodun en azından bir anlam ifade etmesi için satırların çoğunu yorumlamaya çalıştım. Bunu yapıştırmadan önce metnin boş olması için genel sınıf bitini silin - bu kodun zaten bir genel sınıfı var. Bir metin kutusu gibi bir nesne forma yerleştirilmediyse veya yanlış ada sahipse, metin kodunda altında dalgalı bir mavi çizgi ile gelecektir. Imports System. IOImports Strings = Microsoft. VisualBasic ' uyku ifadeleri için left(ve right(stringsPublic Class Form1 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)) gibi şeyler Dim WithEvents serialPort As New IO. Ports. SerialPort ' seri bağlantı noktası Dim PicaxeRegisters (0 ila 13) bildir Byte ' b0 - b13 arasında kayıt yaptığından Dim ModifyFlag As Boolean Private Sub Form1_Load(ByVal sender As Object, ByVal e As System. EventArgs) Handles Me. Load ' tüm bu gereksiz şeylere ihtiyaç duyar -.net form1events üstünde/yüklediğinde otomatik olarak koyar Timer1. Enabled = True ' oluşturulduğunda bu kodu varsayılan olarak false yapın Timer1. Interval = 20000 ' her 20 saniyede PictureBox1. BackColor = Color. Gray ' iletişim kutuları ile başlar gri PictureBox2. BackColor = Color. Gray ModifyFlag = False ' bir değeri manuel olarak değiştirirseniz, o zaman s kip indir RichTextBox1. Multiline = True ' yani birden fazla satır görüntüleyebilir DisplayPicaxeRegisters()'ı çağırın 14 kaydı görüntüleyin ReadFTPFilename() ' dosyasını çağırın diskten dosya adını okuyun (her 20 saniyede bir yeniden kaydedilir) End Sub Sub SerialTxRx() Dim DataPacket(0 ila 17) As Byte ' tüm veri paketi "Veri"+14 bayt Dim i As Integer ' i döngüler vb. için her zaman yararlıdır For i = 0 ila 3 DataPacket(i) = Asc(Mid("Data", i + 1 için), 1)) ' pakete "Veri" kelimesini ekle Sonraki For i = 0 ila 13 DataPacket(i + 4) = PicaxeRegisters(i) ' pakete tüm baytları ekle Sonraki If serialPort. IsOpen Then serialPort. Close() ' zaten açılmışsa diye End If Try With serialPort. PortName = "COM1" ' Yeni bilgisayarların çoğu varsayılan olarak com1'dir, ancak seri fareye sahip 1999 öncesi herhangi bir bilgisayar muhtemelen varsayılan olarak com2 olacaktır. BaudRate = 2400 ' 2400, aşağıdakiler için maksimum hızdır küçük pikseller. Parity = IO. Ports. Parity. None ' eşlik yok. DataBits = 8 ' 8 bit. StopBits = IO. Ports. StopBits. One ' tek durak bit. ReadTimeout = 1000 ' milisaniye ds yanıt yoksa 1 saniye içinde zaman aşımına uğrar. Open() ' seri bağlantı noktasını açar. DiscardInBuffer() ' giriş arabelleğini temizler. Write(DataPacket, 0, 18) ' veri paketi dizisini gönderir Uyku Çağrısını(300) ' 100 milisaniye veri akışı daha uzunsa verilerin geri gelmesini beklemek için minimum ve daha fazlası. Read(DataPacket, 0, 18) ' veri paketi dizisinde tekrar oku. Close() ' seri bağlantı noktasını kapat Şununla Bitir i = 4 ila 17 PicaxeRegisters (i - 4) = DataPacket(i) ' yeni veri paketini kayıt dizisine taşı Sonraki PictureBox1. BackColor = Color. GreenYellow ' çalışıyor Catch ex As Exception PictureBox1. BackColor = Color. Red ' çalışmıyor End Try End Sub Sub FTPUpload (ByVal Dosya Adı As String) Dim localFile As String 'verileri depolamak için yer Dim remoteFile As String ' dosya adı büyük/küçük harf duyarlıdır, bu gerçekten önemlidir Const host As String = "ftp://ftp.0catch.com" ' 0'ın bir sıfır bir karakter değil O Const kullanıcı adı As String = "picaxe.0catch.com" Const şifre As String = "picaxetester" Dim URI As String localFile = Dosya adı ' gerekli olmayabilir, ancak bir konum tanımlarsanız, örneğin c:\dizin bu şekilde kolayca ekleyebilir remoteFile = "/" + Dosya adı ' ftp sunucusundaki dosyanın önüne "/" eklenmesi gerekir URI = ana bilgisayar + remoteFile Dim ftp As System'i deneyin. Net. FtpWebRequest = CType(System. Net. FtpWebRequest. Create(URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential(kullanıcı adı, parola) ' ftp. KeepAlive oturum açma = False ' olacaktır bağlantı kesildikten sonra ftp. UseBinary = True ' ikili iletişimi kullan ftp. Timeout = 9000 ' 9 saniye sonra zaman aşımı - ftp bazen öldüğü için çok kullanışlıdır 'zaman aşımı (ve 20 saniyelik saat frekansı) çevirmeli bağlantı ftp için daha yavaş olması gerekebilir. Yöntem = System. Net. WebRequestMethods. Ftp. UploadFile ' dosya göndermeye başla Dim fs As New FileStream(localFile, FileMode. Open) ' yerel dosyayı aç Dim filecontents(fs. Length) As Byte ' belleğe oku fs. Read(filecontents, 0, fs. Length) fs. Close() ' dosyayı kapat Dim requestStream As Stream = ftp. GetRequestStream() ' start ftp link requestSt ream. Write(filecontents, 0, filecontents. Length) ' onu gönder requestStream. Close() ' bağlantıyı kapat PictureBox2. BackColor = Color. GreenYellow ' işe yaradığını söylemek için kutuyu yeşil olarak değiştirin Label2. Text = "FTP Bağlı" ' bağlandığını söyleyen metin Catch 'Bağlanamıyor PictureBox2. BackColor = Color. Red' kutusu bağlantı yok olarak kırmızıya Label2. Text = "FTP Upload Fail" ' bağlantı başarısız olduğunu söyleyen metin End Try End Sub Sub FTPDownload(ByVal Filename As String) ' remotefile'ı localfile'ye indirir Dim localFile As String 'verileri depolamak için yer Dim remoteFile As String ' dosya adı büyük/küçük harfe duyarlıdır bu gerçekten önemlidir Const host As String = "ftp://ftp.0catch.com" Const kullanıcı adı As String = "picaxe.0catch.com" Const password As String = "picaxetester" Dim URI As String 'localFile = "C:\" + Filename ' kök dizinde depolanır ancak bu localFile = Filename ' değiştirilebilir, böylece tanımlamanız gerekirse c:\ ekleyebilir gerçek konum remoteFile = "/" + Dosya adı ' uzak ftp konumuna eklendi URI = ana bilgisayar + remoteFile ' makyajı tam adres Dim ftp'yi deneyin As System. Net. FtpWebRequest = CType(System. Net. FtpWebRequest. Create(URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential(kullanıcı adı, parola) ' ftp'de oturum açın. KeepAlive = False ' ftp bittikten sonra bağlantı kesilecek. UseBinary = True ' ikili mod ftp. Timeout = 9000 ' 9 saniye sonra zaman aşımı ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile ' bir dosya indir ' olarak parçalar halinde okuyun dosyanın ne kadar büyük olduğunu bilmiyorum Response As System. Net. FtpWebResponse = CType(ftp. GetResponse, System. Net. FtpWebResponse) ResponseStream'i IO. Stream Olarak Kullanmak = response. GetResponseStream fs As New IO. FileStream(localFile, IO. FileMode. Create) Dim buffer(2047) Bayt Dim okunduğunda Tamsayı olarak = 0 Oku = answerStream. Read(buffer, 0, buffer. Length) ' ftp fs. Write(buffer, 0, read)'den parça ' ve dosyaya yaz Döngü okunana kadar = 0 ' daha fazla parça kalmayana kadar answerStream. Close() ' ftp dosyasını kapatın fs. Flush() ' flush clear fs. Close() ' ve kapatın e dosya ResponseStream. Close() Kullanarak Sonlandır ' orada hiçbir şey olmasa bile kapat Response. Close() Kullanarak Sonlandır PictureBox2. BackColor = Color. GreenYellow ' çalıştığı gibi yeşil kutu Label2. Text = "FTP Connected" ' ve bunu söyleyen metin Catch'i Kullanarak Sonlandır ' hata kodlarını buraya koyun PictureBox2. BackColor = Color. Red ' çalışmadığı için kırmızı kutu Label2. Text = "FTP İndirme Başarısız" ' ve bunu söyleyen mesaj End Try End Sub Private Sub Timer1_Tick(ByVal sender) System. Object Olarak, ByVal e As System. EventArgs) Timer1. Tick'i İşler Eğer ModifyFlag = False ise Sonra 'kullanıcı bir baytı değiştirmişse Label3. Text = "Downloading" System. Windows. Forms. Application. DoEvents() dosyasını indirmeyin ' yani yeni etiket metni görüntülenir Çağrı FTPDownload(TextBox3. Text) ' uzak dosyayı indir Label3. Text = "Downloaded" System. Windows. Forms. Application. DoEvents() ReadRemoteFileToRegisters()'ı çağırın ' dosya numaralarını kayıt dizisine kaydedin Label3. Text = "Picaxe ile konuşmak" System. Windows. Forms. Application. DoEvents() Else ModifyFlag = False 'bayrağı sıfırla End If Call SerialTxRx() ' pikseye gönder ve tekrar oku Label3. Text = "Picaxe'den gönderildi ve alındı" System. Windows. Forms. Application. DoEvents() DisplayPicaxeRegisters() Çağrı SaveRegistersToLocalFile() ' numaraları dosyaya kaydet Label3. Text = "Yükleniyor" System. Windows. Forms. Application. DoEvents() FTPUpload(TextBox3. Text)'i çağırın ' benim adım olarak adlandırılan ftp sitesine geri gönder Label3. Text = "Dinleniyor" SaveFTPFilename()'yi çağırın ' yeniden başlatıldığında End Sub Sub DisplayPicaxeRegisters() Dim i As Integer Dim registernumber As String RichTextBox1. Multiline = True ' yani metin kutusunda birden fazla satır görüntüleyebilir RichTextBox1. Clear() ' metin kutusunu temizle For i = 0 ila 13 registernumber = Trim(Str(i)) ' baştaki boşlukları kırp Eğer i < 10 ise, registernumber = "0" + registernumber ' 10'un altındaki sayılara 0 ekleyin End If RichTextBox1. AppendText(registernumber + " = " + Str(PicaxeRegisters(i))) + Chr(13)) Sonraki ' chr(13) satır başıdır, yani yeni satır End Sub Private Sub Button1_Click(ByVal sender) System. Object Olarak, ByVal e As System. EventArgs) Düğme1. Click Dim i As Integer ' olarak ele alır ' önce aralık dışı kontrol et i = Val(TextBox1. Text) Eğer i <0 Veya i> 13 Sonra TextBox1. Text = 0 ise End If i = Val(TextBox2. Text) i <0 Veya i> 255 ise TextBox2. Text = 0 End If PicaxeRegisters(Val(TextBox1. Text)) = Val(TextBox2. Text) ' değerini değiştirin Call DisplayPicaxeRegisters() ' ve ekranı yenile ModifyFlag = True ' ve sonraki ftp bağlantısı indirmeyi atla End Sub Sub SaveRegistersToLocalFile() ' kayıt dizisini yerel bir metin dosyasına kaydet Dim i As Integer FileOpen(1, TextBox3. Text, OpenMode. Output) ' adlı metin dosyasını aç metin kutusunda i = 0 için 13 PrintLine(1, Str(PicaxeRegisters(i))) ' 14 değer kaydet Sonraki FileClose(1) ' dosyayı kapat End Sub Sub ReadRemoteFileToRegisters() ' yerel metin dosyasını kayıt dizisine oku Dim i As Integer Dim LineOfText As String FileOpen(1, TextBox3. Text, OpenMode. Input) deneyin ' uzak dosya adını okuyun For i = 0 ila 13 LineOfText = LineInput(1) ' 14 satırda okuyun es PicaxeRegisters(i) = Val(LineOfText) ' metni değerlere dönüştür Sonraki FileClose(1) Catch ex As Exception FileClose(1) ' dosyası mevcut değil, bu yüzden hiçbir şey yapmayın End Try End Sub Sub ReadFTPFilename() ' yani uzak ftp dosyası bu programın bir sonraki çalıştırılışında aynıdır Dim LineOfText As String FileOpen(1, "FTPFilename.txt", OpenMode. Input) deneyin ' LineOfText = LineInput(1) TextBox3. Text = LineOfText ' dosyasını okuyun name FileClose(1) Catch ex As Exception FileClose(1) End Try End Sub Sub SaveFTPFilename() FileOpen(1, "FTPFilename.txt", OpenMode. Output) ' uzak ftp dosya adını kaydet PrintLine(1, TextBox3. Text) FileClose(1) End SubEnd Sınıfı

9. Adım: Programı Her İki Bilgisayarda da Çalıştırın

Programı Her İki Bilgisayarda da Çalıştırın
Programı Her İki Bilgisayarda da Çalıştırın

Ekranın üst ortasındaki yeşil üçgene - 'Hata Ayıklamayı Başlat' düğmesine tıklayarak programı çalıştırmaya başlayın. 20 saniye boyunca hiçbir şey olmayacak ve ardından program ftp sunucusuna bağlanmaya çalışacak ve picaxe'e bağlanmaya çalışacak. Resim kutuları ya kırmızıya ya da yeşile dönecektir. Ftp konumu ücretsiz bir web sitesidir ve bunu herkes kullanabilir, ancak farklı bir ftp çalışma dosya adı kullanmanız gerekir (benimki DoctorAcula1), aksi takdirde aynı dosya adını kullanırsak hepimiz birbirimizin verileriyle karşılaşabiliriz! İsterseniz sonunda kendi ftp sitenizi alabilirsiniz - 0Catch web sitemdeki kodda iki yerde ftp konumunu, kullanıcı adını ve şifreyi değiştirmeniz yeterlidir. Çoğu web sitesi ftp'ye izin verir. Aynı ftp dosyasına birden fazla bilgisayar erişebilir - ftp dosya sunucusu bunların hangi sırayla gerçekleştiğini belirler. Bazen veri çakışmaları veya takılmalar oluyor ve bunlar her 20 dosya okumasında bir oluyor gibi görünüyor. Bu gerçekleşirse kodda bir zaman aşımı olur, bu nedenle bozuk veri yerine veri döndürmez. 128 kbs yükleme hızına sahip bir geniş bant bağlantısı kullanmak, bir dosya yüklemesinin yaklaşık 3 saniye sürdüğü, ancak bazen 8 saniyeye kadar çıktığı anlamına gelir ve bu sürenin çoğu alınır. veri aktarımı yerine el sıkışmada. Bu, indirme, yükleme ve pikaxe ile sohbeti hesaba katarak timer1 süresini minimum yaklaşık 20 saniye olarak ayarlar. Çok hızlı geniş bant ile çevrim süresini kısaltabilirsiniz. VB programı içinde bir kaydı manuel olarak değiştirebilirsiniz. Bunu yaparsanız, bir sonraki zamanlayıcı döngüsü ftp sitesinden indirmeyi atlar ve yeni verileri picaxe'e gönderir ve ardından geri okur ve karşıya yükler. Böylece yeni veriler, bu grupla bağlantılı tüm pikaxlara yolunu bulur. Bu, hata ayıklama ve/veya PC yazılımını mikrodenetleyici donanım döngüsüne bağlamak için yararlıdır. Web siteleri ayrıca ftp sitesine yeni bir dosya yazmak için PERL betiği veya benzerini kullanarak donanım döngüsüne erişebilir. Bu ekran görüntüsü Tx yongası çalıştırılarak çekildi, anahtar açıktı ve b0 = 1 kaydı Rx yongasına gönderilmişti. daha sonra kayıt b1'i de 1 olarak değiştirmişti. Led böylece her iki panoda da yanıyordu. Bu önemsiz bir uygulamadır ancak led yerine 3.6Kw'lık bir pompayı açmak kolaydır. Güneş enerjili radyo bağlantıları aracılığıyla pikaxları birbirine bağlamak da dahil olmak üzere bazı fikirler https://drvernacula.topcities.com/ adresinde bulunmaktadır. Radyo bağlantıları ve internet ile 'Makineler' dünyanın birçok köşesine ulaşmak mümkün. Picaxe forumunda bu fikri daha da ileri götürmek ve PC ve ftp sitesini doğrudan yönlendiriciye takılan özel web sunucusu yongaları ile değiştirmekle ilgili bazı fikirler var. Açıkça bu, bir bağlantının güç tüketimini azaltacaktır. Daha fazla tartışmayla ilgileniyorsanız, lütfen Eğitilebilir yorumlara ve/veya pikaxe forumuna gönderin. Dr James MoxhamAdelaide, Güney Avustralya

Adım 10: Kodun Ekran Görüntüleri

Code'in ekran görüntüleri
Code'in ekran görüntüleri

İstek üzerine, tüm biçimlendirmeleri yerinde olan vb.net kodunun bir dizi ekran görüntüsünü burada bulabilirsiniz. Bu kod aslında bu talimatın arkasına kopyalandı ve biçimlendirme otomatik olarak yeniden ortaya çıktı. Bu resimleri okumaya çalışmaktansa metni kopyalayıp yapıştırmak daha iyi olur ama eğer bir internet kafedeyseniz ve vb.net yükleyemiyorsanız bunlar işinize yarayacaktır.

Adı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

Adı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

Adı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

Adı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

Adı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

Önerilen: