Mục lục:

Liên kết vi điều khiển trên toàn thế giới với giá dưới $ 20: 15 bước
Liên kết vi điều khiển trên toàn thế giới với giá dưới $ 20: 15 bước

Video: Liên kết vi điều khiển trên toàn thế giới với giá dưới $ 20: 15 bước

Video: Liên kết vi điều khiển trên toàn thế giới với giá dưới $ 20: 15 bước
Video: Toàn cảnh thế giới: Hàng trăm binh lính người Pháp đến Ukraine, Paris nói “không thể ngăn chặn” 2024, Tháng bảy
Anonim
Liên kết vi điều khiển trên toàn thế giới với giá dưới $ 20
Liên kết vi điều khiển trên toàn thế giới với giá dưới $ 20

Kiểm soát máy điều nhiệt tại nhà của bạn từ nơi làm việc. Bật vòi phun nước từ bất kỳ nơi nào trên thế giới bằng cách nhấp vào công tắc. Có thể hướng dẫn này hướng dẫn cách liên kết hai hoặc nhiều vi điều khiển $ 4 bằng cách sử dụng mạng chính của Internet và một số mã VB. Net đơn giản.: //www.instructables.com/id/Control-real-world-devices-with-your-PC/ Lần này chúng ta có một bộ vi mạch nói chuyện với một chương trình VB. Net, sau đó đến một trang web ftp, quay lại một VB. Net khác chương trình và do đó là một bộ vi điều khiển thứ hai ở bất kỳ đâu trên thế giới, có hoặc không có sự can thiệp của con người. Làm thế nào mà những cỗ máy trong The Matrix lại có thể tiếp quản nếu chúng không thể nói chuyện với nhau?

Bước 1: Tập hợp các bộ phận

Thu thập các bộ phận
Thu thập các bộ phận

Nhiều phần giống như trong phần Hướng dẫn điều khiển PC https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ và bạn nên hoàn thành phần này trước khi thử để liên kết hai vi điều khiển. Mặc dù hoàn toàn có thể sử dụng một cái nồi để điều khiển một servo, nhưng lần này chúng ta sẽ làm một thứ đơn giản hơn - một công tắc bật đèn LED. Công tắc có thể dễ dàng là cảm biến đo mức bể chứa và đèn led có thể là một máy bơm ở gần sông nhưng trước tiên hãy làm một cái gì đó đơn giản hơn. ed.co.uk/picaxe/ (Anh), PH Anderson https://www.phanderson.com/ (Mỹ) và Microzed https://www.microzed.com.au/ (Úc). Những con chip này dưới $ 4US. Hai trong số: Protoboard, pin 9V và kẹp pin, điện trở 10k, điện trở 22k, tụ 33uF 16V, tụ 0,1uF, bộ điều chỉnh 5V nguồn điện thấp 7805L, dây dẫn (điện thoại lõi rắn / dây dữ liệu, ví dụ như Cat5/6), đèn LED, điện trở 1k. 1 trong số: Vỏ và ổ cắm D9 cái và 2 mét dây dữ liệu lõi 3 (hoặc 4) (để tải xuống) và một công tắc bật tắt. 2 máy tính có cổng nối tiếp 9 chân (có thể gỡ lỗi trên một máy tính) và kết nối internet. Đối với máy tính không có cổng nối tiếp, một thiết bị nối tiếp USB tới https://www.rev-ed.co.uk/docs/axe027.pdf và một ổ cắm âm thanh nổi nhỏ.

Bước 2: Tải xuống và cài đặt một số phần mềm

Tải xuống và cài đặt một số phần mềm
Tải xuống và cài đặt một số phần mềm

Chúng tôi sẽ cần VB. Net miễn phí và phần mềm bộ điều khiển picaxe và nếu bạn đã làm xong bộ điều khiển PC có thể hướng dẫn, bạn sẽ có những thứ này. VB. Net (Visual Basic Express) hiện có tại https://msdn2.microsoft.com/en -us / express / aa718406.aspxPhần mềm picaxe hiện có tại https://www.rev-ed.co.uk/picaxe/Bạn sẽ cần đăng ký với microsoft để tải xuống - nếu đây là vấn đề, hãy sử dụng email giả mạo hoặc một cái gì đó. Tôi thực sự thấy hữu ích khi gửi email thực của mình khi họ gửi các bản cập nhật không thường xuyên. Tôi cũng sẽ đề cập đến diễn đàn picaxe https://www.picaxeforum.co.uk/ vì đây là loại diễn đàn do các giáo viên và nhà giáo nơi sinh viên thường có thể nhận được câu trả lời cho các câu hỏi trong vòng vài giờ. Diễn đàn rất hiểu ngay cả những câu hỏi đơn giản nhất do một số học sinh vẫn đang ở cấp tiểu học. Xin đừng sợ hãi khi yêu cầu giúp đỡ!

Bước 3: Xây dựng mạch tải xuống

Xây dựng một mạch tải xuống
Xây dựng một mạch tải xuống

Mạch tải này sử dụng một chip picaxe, một vài điện trở, một bộ điều chỉnh và một pin 9V. Thông tin thêm có sẵn trong tài liệu / trợ giúp picaxe xuất hiện trong menu trợ giúp của chương trình. Mạch chỉ mất vài phút để xây dựng khi tất cả các bộ phận đã hoàn thành. Khi một con chip được lập trình, nó sẽ giữ lại chương trình của nó trong EEPROM ngay cả khi tắt nguồn. Vì chúng tôi đang lập trình hai con chip nên có thể đáng giá để dán nhãn các con chip để bạn biết đó là con chip nào. Bạn luôn có thể quay lại và lập trình lại một con chip bằng cách loại bỏ một liên kết và di chuyển một điện trở.

Tôi cũng có thể nói thêm rằng picaxes chạy vui vẻ trên 3 pin AA. Nguồn cung cấp được điều chỉnh 5V rất hữu ích để chạy các đầu vào tương tự vì điện áp tham chiếu không thay đổi, nhưng đối với các mạch bật / tắt đơn giản, không cần nguồn cung cấp được điều chỉnh. Điện áp 5V có thể bị loại bỏ trong những trường hợp này.

Bước 4: Lập trình chip

Lập trình chip
Lập trình chip

Chúng tôi sẽ gọi một chương trình Tx và một Rx. Tx là chip điều khiển, có công tắc và đèn led. Rx cũng có một dẫn. Khi công tắc thay đổi tín hiệu đi từ Tx sang Rx, thay đổi led và cũng thay đổi một biến thứ hai sau đó quay trở lại Tx. Vì vậy, hãy nhấp vào công tắc và trong vòng chưa đầy một phút, đèn led sẽ thay đổi trên cả hai mạch cho biết rằng thông báo đã đến đó và Rx đang hoạt động ở vị trí công tắc mới. Ở mức đơn giản nhất, picaxe có 14 thanh ghi byte đơn. Khi một mạng ảo được tạo ra, chúng ta liên kết tất cả các thanh ghi đó lại với nhau để nếu một byte thay đổi trong một picaxe thì nó sẽ thay đổi trong tất cả các picaxe. Rõ ràng nếu hai picaxe đang cố gắng thay đổi cùng một byte thì nó sẽ rất khó hiểu nhưng nếu mỗi picaxe chỉ thay đổi một byte thì tất cả các picaxe khác có thể thấy sự thay đổi đó và có thể hành động theo nó. Các thông điệp đơn giản có thể được chuyển đi chuyển lại nếu một byte nhất định chỉ được thay đổi bởi một picaxe. Nồi có thể thay đổi giá trị trong thanh ghi và một hoặc nhiều picaxes khác có thể cảm nhận được sự thay đổi đó và di chuyển một servo hoặc bất cứ thứ gì và bật lò sưởi. Thanh ghi thứ hai có thể gửi lại nhiệt độ trong phòng. Sao chép và dán các chương trình lần lượt vào bộ lập trình picaxe và tải chúng xuống từng chip tương ứng bằng cách sử dụng mũi tên tải xuống màu xanh lam từ bên trong bộ lập trình picaxe. Tx: main: serin 3, N2400, ("Dữ liệu"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'lấy gói từ máy tính nếu pin2 = 0 thì 'kiểm tra công tắc và đặt thanh ghi b0 tùy thuộc vào trạng thái b0 = 0 khác b0 = 1 endif nếu b1 = 0 thì' các picaxe khác đặt b1 tùy thuộc b0 thấp 1 'dẫn tắt khác cao 1' dẫn trên endif serout 0, N2400, ("Dữ liệu", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'gửi trở lại máy tính goto mainand Rx: main: serin 3, N2400, ("Dữ liệu"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'lấy gói từ máy tính b1 = b0' thay đổi thanh ghi b1 thành thanh ghi bằng b0 nếu b1 = 0 thì mức thấp 1 'dẫn đến mức cao khác 1' dẫn trên endif serout 0, N2400, ("Dữ liệu", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'gửi lại máy tính goto chính

Bước 5: Xây dựng mạch Tx

Xây dựng mạch Tx
Xây dựng mạch Tx

Nếu bạn đang chuyển qua lại giữa mạch làm việc và mạch lập trình, hãy đảm bảo thay đổi kết nối sang chân 2 và vị trí của điện trở 22k từ chân 2 sang chân 4. Hoặc bạn có thể xây dựng một mạch tải chuyên dụng và di chuyển các chip ngang qua. Chỉ cần lưu ý xem một mạch đang chạy hay đang tải xuống vì nó có thể khá khó hiểu. Đặc biệt, lưu ý rằng một mạch chạy sẽ không hoạt động nếu chân 2 để nổi - nó cần được nối đất. Chân 2 là chân tải xuống và nếu nó được thả nổi, nó sẽ nhận RF lạc từ đèn Flour và chip cho rằng một chương trình khác đang được tải xuống.

Cũng cần nhắc đến danh pháp picaxe gọi chân vật lý là chân và chân ảo là chân. Do đó, một đầu ra trên chân 2 trong mã thực sự là một đầu ra trên chân vật lý 5. Điều này có vẻ lạ nhưng nó có nghĩa là mã có thể được chuyển sang các picax lớn hơn như phiên bản 28 và 40 chân và vẫn hoạt động.

Bước 6: Xây dựng mạch Rx

Xây dựng mạch Rx
Xây dựng mạch Rx

Mạch này gần giống như máy phát - nó chỉ không có công tắc.

Bước 7: Viết một số mã VB. Net

Viết một số mã VB. Net
Viết một số mã VB. Net

Tôi có thể đã biên dịch mã và làm cho chương trình này có sẵn dưới dạng.exe đã biên dịch nhưng việc học một số VB. Net cực kỳ hữu ích nên rất đáng để thực hiện từng bước. Nếu bạn đang chạy phần mềm này trên hai máy tính khác nhau, bạn có thể Xây dựng chương trình thành tệp.exe để tạo một chương trình thiết lập nhỏ có thể được cài đặt trên máy tính thứ hai. Hoặc bạn có thể đặt VB. Net trên cả hai máy tính và chạy các chương trình từ bên trong VB. NetLet giả sử bạn biết cách mở một dự án VB.net mới từ bước 7 và 8 của https://www.instructables.com/id/S1MMU2XF82EU2GT / Trên biểu mẫu trống, hãy thêm các thành phần sau từ thanh công cụ và đặt chúng vào biểu mẫu ở các vị trí như được hiển thị. Đối với các nhãn và hộp văn bản, hãy thay đổi thuộc tính văn bản (ở phía dưới bên phải) thành những gì cần thiết. Đừng lo lắng về cài đặt cho bộ hẹn giờ - chúng tôi sẽ thay đổi chúng trong mã nhưng hãy đảm bảo đặt bộ hẹn giờ vào. Bạn có thể di chuyển mọi thứ xung quanh và không có quy tắc thực sự nào về vị trí. Hộp văn bản lớn là RichTextBox và ba hộp nhỏ hơn là Hộp văn bản thông thường. Về thứ tự, chúng tôi đang bắt đầu ở trên cùng của biểu mẫu và chuyển xuống dưới. Nếu bạn bỏ sót thứ gì đó, sẽ có lỗi trong mã sẽ cung cấp một số loại manh mối. Vui lòng chọn một tên tệp ngẫu nhiên cho Textbox3 - đây là tên của nhóm picaxes duy nhất của bạn trên máy chủ ftp và hiển nhiên nếu tất cả chúng ta đều sử dụng cùng tên thì dữ liệu sẽ bị xáo trộn tất cả! Xin lỗi về các dấu gạch ngang trong bảng này - việc đặt dấu cách vào sẽ làm mất định dạng trong bảng. Đối tượng hộp công cụ ------- Văn bản ----------- ------------------------------ Ghi chúLabel1 ------------------ Picaxe CommunicationsLabel2 ------------------ FTP StatusLabel3 ------------------ StatusLabel4 ---------- -------- Picaxe RegistersLabel5 ------------------ Đăng ký 0-13Label6 ------------------ Giá trị 0-255Label7 ------------------ Tên tệp liên kết FTPTextbox1 ---------------- 0 -------- -------------------------------------- 0 là số 0 không phải là OTextbox2 ----- ----------- 0Textbox3 ---------------- Myfilename --------------------- ---------- Thay đổi để không có xung đột! Button1 ------------------ ModifyRichtextbox1 Picturebox1 Picturebox2 Timer1

Bước 8: Thêm một số mã

Thêm một số mã
Thêm một số mã

Xem bước 12 của hướng dẫn khác để biết vị trí của nút lật giữa chế độ xem biểu mẫu và chế độ xem mã. Chuyển sang chế độ xem mã và dán mã sau vào. Tất cả các màu sẽ xuất hiện lại như trong ảnh chụp màn hình. Nếu một dòng không được sao chép đúng cách do vấn đề ghép từ, hãy xóa khoảng trắng cho đến khi thông báo lỗi biến mất. Tôi đã cố gắng nhận xét hầu hết các dòng để mã ít nhất cũng có ý nghĩa. Xóa bit lớp công khai để văn bản trống trước khi dán mã này - mã này đã có lớp công khai. Nếu một đối tượng như hộp văn bản không được đặt trên biểu mẫu hoặc có tên sai thì nó sẽ xuất hiện trong mã văn bản với một dòng màu xanh nguệch ngoạc bên dưới. những thứ như left (và phải (cho stringPublic Class Form1 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) 'cho câu lệnh sleep Dim WithEvents serialPort As New IO. Ports. SerialPort' serial port khai báo Dim PicaxeRegisters (0 To 13) Khi Byte 'đăng ký b0 đến b13 Dim ModifyFlag As Boolean Private Sub Form1_Load (ByVal sender As Object, ByVal e As System. EventArgs) Handles Me. Load' cần tất cả những thứ rác rưởi này -.net tự động đưa nó vào khi go form1events trên / tải Timer1. Enabled = True 'đặt mã này trong mã mặc định là false khi được tạo Timer1. Interval = 20000' cứ sau 20 giây PictureBox1. BackColor = Color. Gray 'bắt đầu với các hộp comms màu xám PictureBox2. BackColor = Color. Gray ModifyFlag = False' nếu sửa đổi một giá trị theo cách thủ công thì s kip download RichTextBox1. Multiline = True 'để có thể hiển thị nhiều hơn một dòng Gọi DisplayPicaxeRegisters ()' hiển thị 14 đăng ký Gọi ReadFTPFilename () 'đọc tên tệp ra khỏi đĩa (được lưu lại sau mỗi 20 giây) End Sub Sub SerialTxRx () Dim DataPacket (0 đến 17) Như toàn bộ gói dữ liệu Byte "Dữ liệu" +14 byte Dim i As Integer 'i luôn hữu ích cho các vòng lặp, v.v. Đối với i = 0 Đến 3 DataPacket (i) = Asc (Mid ("Dữ liệu", i + 1, 1)) 'thêm từ "Dữ liệu" vào gói Tiếp theo Cho i = 0 Đến 13 DataPacket (i + 4) = PicaxeRegisters (i)' thêm tất cả các byte vào gói Tiếp theo Nếu serialPort. IsOpen Sau đó serialPort. Close () 'chỉ trong trường hợp đã được mở Kết thúc Nếu Thử Với serialPort. PortName = "COM1"' Hầu hết các máy tính mới mặc định là com1 nhưng bất kỳ máy tính nào trước năm 1999 có chuột nối tiếp có thể sẽ mặc định là com2. BaudRate = 2400 '2400 là tốc độ tối đa cho picaxes nhỏ. Parity = IO. Ports. Parity. None 'no parity. DataBits = 8' 8 bit. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' mili giây ds nên hết thời gian chờ sau 1 giây nếu không có phản hồi. Open () 'mở cổng nối tiếp. DiscardInBuffer ()' xóa bộ đệm đầu vào. Write (DataPacket, 0, 18) 'gửi mảng gói dữ liệu Gọi Sleep (300)' 100 mili giây tối thiểu để đợi dữ liệu quay trở lại và hơn thế nữa nếu luồng dữ liệu dài hơn. Đọc (DataPacket, 0, 18) 'đọc lại trong mảng gói dữ liệu. Đóng ()' đóng cổng nối tiếp Kết thúc Với Cho i = 4 Đến 17 PicaxeRegisters (i - 4) = DataPacket (i) 'di chuyển gói dữ liệu mới vào mảng thanh ghi Tiếp theo PictureBox1. BackColor = Color. GreenYellow' đang hoạt động Catch ex As Exception PictureBox1. BackColor = Color. Red 'không hoạt động End Try End Sub Sub FTPUpload (ByVal Filename As String) Dim localFile As String 'nơi lưu trữ dữ liệu Dim remoteFile As String' tên tệp phân biệt chữ hoa chữ thường, điều này thực sự quan trọng Const host As String = "ftp://ftp.0catch.com" 'lưu ý số 0 là a số không không phải ký tự O Tên người dùng Const As String = "picaxe.0catch.com" Mật khẩu Const As String = "picaxetester" Dim URI As String localFile = Tên tệp 'có thể không cần thiết nhưng nếu xác định vị trí, ví dụ: c: / mydirectory có thể thêm dễ dàng theo cách này remoteFile = "/" + Tên tệp' tệp trên máy chủ ftp cần "/" được thêm vào phía trước URI = host + remoteFile Thử Dim ftp As System. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (tên người dùng, mật khẩu) 'đăng nhập ftp. KeepAlive = False' sẽ là ngắt kết nối sau khi hoàn thành ftp. UseBinary = True 'sử dụng nhị phân comms ftp. Timeout = 9000' thời gian chờ sau 9 giây - rất hữu ích vì ftp đôi khi chết 'thời gian chờ (và tần số đồng hồ là 20 giây) có thể cần chậm hơn đối với các kết nối quay số ftp. Method = System. Net. WebRequestMethods. Ftp. UploadFile 'bắt đầu gửi tệp Dim fs As New FileStream (localFile, FileMode. Open)' mở tệp cục bộ Dim tệp nội dung (fs. Length) Như Byte 'đọc vào bộ nhớ fs. Read (nội dung tệp, 0, fs. Length) fs. Close () 'đóng tệp Dim requestStream As Stream = ftp. GetRequestStream ()' start ftp link requestSt ream. Write (filecontents, 0, filecontents. Length) 'send it requestStream. Close ()' đóng liên kết PictureBox2. BackColor = Color. GreenYellow 'đổi hộp thành màu xanh lục để nói rằng đã hoạt động tốt. Label2. Text = "FTP Connected"' văn bản nói rằng nó đã kết nối Catch 'không thể kết nối PictureBox2. BackColor = Color. Red' thành màu đỏ là không có kết nối Label2. Text = "FTP Upload Fail" 'văn bản cho biết kết nối không thành công End Try End Sub Sub FTPDownload (ByVal Filename As String) 'tải tệp từ xa xuống localfile Dim localFile As String' nơi lưu trữ dữ liệu Dim remoteFile As String 'tên tệp phân biệt chữ hoa chữ thường, điều này thực sự quan trọng 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' lưu trữ trong thư mục gốc nhưng có thể thay đổi localFile = Filename 'này nên có thể thêm c: / nếu cần xác định vị trí thực tế remoteFile = "/" + Tên tệp 'được thêm vào vị trí ftp từ xa URI = host + remoteFile' tạo thành địa chỉ đầy đủ Hãy thử Dim ftp As System. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (tên người dùng, mật khẩu) 'đăng nhập ftp. KeepAlive = False 'sẽ ngắt kết nối sau khi hoàn tất ftp. UseBinary = True' chế độ nhị phân ftp. Timeout = 9000 'thời gian chờ sau 9 giây ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile' tải xuống tệp 'được đọc thành từng phần dưới dạng không biết tệp lớn như thế nào Sử dụng response As System. Net. FtpWebResponse = CType (ftp. GetResponse, System. Net. FtpWebResponse) Sử dụng responseStream As IO. Stream = response. GetResponseStream Sử dụng 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)' and ghi vào tệp Vòng lặp Cho đến khi đọc = 0 'cho đến khi không còn phần nào nữa responseStream. Close ()' đóng tệp ftp fs. Flush () 'flush clear fs. Close ()' và đóng th e tệp Kết thúc Sử dụng responseStream. Close () 'đóng nó ngay cả khi không có gì Kết thúc Sử dụng response. Close () PictureBox2. BackColor = Color. GreenYellow' hộp màu xanh lục khi nó hoạt động Label2. Text = "FTP Connected" và văn bản nói rằng nó đã hoạt động Kết thúc Sử dụng Catch 'đặt mã lỗi tại đây PictureBox2. BackColor = Color. Red' hộp màu đỏ vì nó không hoạt động Label2. Text = "FTP Download Fail" 'và thông báo cho biết điều này End Try End Sub Private Sub Timer1_Tick (ByVal sender As System. Object, ByVal e As System. EventArgs) Xử lý Timer1. Tick If ModifyFlag = False Sau đó 'nếu người dùng đã thay đổi byte thì không tải xuống Label3. Text = "Đang tải xuống" System. Windows. Forms. Application. DoEvents () 'để văn bản nhãn mới hiển thị Gọi FTPDownload (TextBox3. Text)' tải xuống tệp từ xa Label3. Text = "Đã tải xuống" System. Windows. Forms. Application. DoEvents () Gọi ReadRemoteFileToRegisters () 'lưu số tệp vào mảng thanh ghi Label3. Text = "Nói chuyện với picaxe" System. Windows. Forms. Application. DoEvents () Else ModifyFlag = False 'đặt lại cờ Kết thúc Nếu cuộc gọi SerialTxRx () 'gửi đến picaxe và đọc lại Label3. Text = "Đã gửi và nhận từ picaxe" System. Windows. Forms. Application. DoEvents () Gọi DisplayPicaxeRegisters () Gọi SaveRegistersToLocalFile ()' lưu số vào tệp Label3. Text = "Đang tải lên" System. Windows. Forms. Application. DoEvents () Gọi FTPUpload (TextBox3. Text) 'gửi trở lại trang ftp có tên là tên của tôi Label3. Text = "Đang nghỉ ngơi" Gọi SaveFTPFilename ()' để đọc khi khởi động lại End Sub Sub DisplayPicaxeRegisters () Dim i As Integer Dim registerernumber As String RichTextBox1. Multiline = True 'để có thể hiển thị nhiều hơn một dòng trong hộp văn bản RichTextBox1. Clear ()' xóa hộp văn bản For i = 0 To 13 registerernumber = Trim (Str (i)) 'cắt bỏ khoảng trắng ở đầu Nếu tôi <10 Sau đó, registerernumber = "0" + registerernumber' thêm 0 vào các số dưới 10 Kết thúc Nếu RichTextBox1. AppendText (registerernumber + "=" + Str (PicaxeRegisters (i)) + Chr (13)) Tiếp theo 'chr (13) là ký tự xuống dòng nên dòng mới End Sub Private Sub Button1_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Nút xử lý1. Nhấp vào Dim i As Integer 'kiểm tra ra khỏi phạm vi đầu tiên i = Val (TextBox1. Text) Nếu tôi <0 Hoặc i> 13 Sau đó TextBox1. Text = 0 Kết thúc Nếu i = Val (TextBox2. Text) If i <0 or i> 255 then TextBox2. Text = 0 End If PicaxeRegisters (Val (TextBox1. Text)) = Val (TextBox2. Text) 'thay đổi giá trị Gọi DisplayPicaxeRegisters ()' và làm mới màn hình ModifyFlag = True 'và liên kết ftp tiếp theo bỏ qua tải xuống End Sub Sub SaveRegistersToLocalFile ()' lưu mảng thanh ghi trong tệp văn bản cục bộ Dim i As Integer FileOpen (1, TextBox3. Text, OpenMode. Output) 'mở tệp văn bản có tên trong hộp văn bản For i = 0 To 13 PrintLine (1, Str (PicaxeRegisters (i))) 'lưu 14 giá trị Tiếp theo FileClose (1)' đóng tệp End Sub Sub ReadRemoteFileToRegisters () 'đọc tệp văn bản cục bộ vào mảng thanh ghi Dim i As Integer Dim LineOfText As String Thử FileOpen (1, TextBox3. Text, OpenMode. Input) 'đọc tên tệp từ xa Đối với i = 0 Đến 13 LineOfText = LineInput (1)' đọc trong 14 lin es PicaxeRegisters (i) = Val (LineOfText) 'chuyển đổi văn bản thành các giá trị Tiếp theo FileClose (1) Catch ex As Exception FileClose (1)' tệp không tồn tại nên không làm gì cả End Try End Sub Sub ReadFTPFilename () 'nên tên của tệp ftp từ xa cũng giống như vậy vào lần tiếp theo chương trình này được chạy Dim LineOfText As String Thử FileOpen (1, "FTPFilename.txt", OpenMode. Input) 'mở tệp LineOfText = LineInput (1) TextBox3. Text = LineOfText' đọc name FileClose (1) Catch ex As Exception FileClose (1) End Try End Sub Sub SaveFTPFilename () FileOpen (1, "FTPFilename.txt", OpenMode. Output) 'lưu tên tệp ftp từ xa PrintLine (1, TextBox3. Text) FileClose (1) End SubEnd Class

Bước 9: Chạy chương trình trên cả hai PC

Chạy chương trình trên cả hai PC
Chạy chương trình trên cả hai PC

Bắt đầu chạy chương trình bằng cách nhấp vào hình tam giác màu xanh lục ở trên cùng giữa màn hình - nút 'Bắt đầu gỡ lỗi'. Sẽ không có gì xảy ra trong 20 giây và sau đó chương trình sẽ cố gắng kết nối với máy chủ ftp và sẽ cố gắng kết nối với picaxe. Các hộp ảnh sẽ chuyển sang màu đỏ hoặc xanh lục. Vị trí ftp là một trang web miễn phí và bất kỳ ai cũng có thể sử dụng nó nhưng bạn cần sử dụng tên tệp làm việc ftp khác (của tôi là DoctorAcula1) nếu không tất cả chúng ta có thể kết thúc với dữ liệu của nhau nếu chúng ta sử dụng cùng một tên tệp! Nếu bạn thích, cuối cùng bạn có thể có được trang ftp của riêng mình - chỉ cần thay đổi vị trí ftp, tên người dùng và mật khẩu ở hai nơi trong mã từ trang web 0Catch của tôi. Hầu hết các trang web cho phép ftp. Nhiều máy tính có thể truy cập cùng một tệp ftp - máy chủ tệp ftp sắp xếp theo thứ tự những điều này xảy ra. Đôi khi có xung đột dữ liệu hoặc bị treo và những điều này dường như xảy ra sau mỗi 20 lần đọc tệp. Có một khoảng thời gian chờ trong mã nếu điều này xảy ra vì vậy nó không trả về dữ liệu nào chứ không phải là dữ liệu bị hỏng. Sử dụng kết nối băng thông rộng với tốc độ tải lên 128kbs có nghĩa là quá trình tải lên tệp mất khoảng 3 giây nhưng đôi khi lên đến 8 giây, hầu hết thời gian này bị chiếm hết trong quá trình bắt tay hơn là truyền dữ liệu. Điều này đặt thời gian hẹn giờ1 tối thiểu khoảng 20 giây có tính đến tải xuống, tải lên và trò chuyện với picaxe. Với băng thông rộng rất nhanh, bạn có thể rút ngắn thời gian chu kỳ. Bạn có thể thay đổi sổ đăng ký theo cách thủ công trong chương trình VB. Nếu bạn làm vậy, chu kỳ hẹn giờ tiếp theo sẽ bỏ qua tải xuống từ trang web ftp và gửi dữ liệu mới đến picaxe, sau đó đọc lại và tải lên. Do đó, dữ liệu mới tìm đường đến tất cả các picaxe được liên kết với nhóm này. Điều này rất hữu ích cho việc gỡ lỗi và / hoặc để liên kết phần mềm PC vào vòng lặp phần cứng vi điều khiển. Các trang web cũng có thể truy cập vòng lặp phần cứng bằng cách sử dụng tập lệnh PERL hoặc tương tự để ghi một tệp mới vào trang ftp. sau đó cũng đã thay đổi thanh ghi b1 thành 1. Do đó, đèn led đã được thắp sáng trên cả hai bảng. Đây là một ứng dụng tầm thường nhưng có thể dễ dàng bật máy bơm 3.6Kw thay vì đèn led. Một số ý tưởng khác có tại https://drvernacula.topcities.com/ bao gồm liên kết các picaxes thông qua các liên kết vô tuyến chạy bằng năng lượng mặt trời. Với các liên kết vô tuyến cộng với internet, 'The Machines' có thể tiếp cận nhiều nơi trên thế giới. Có một số ý kiến trên diễn đàn picaxe về việc tiếp tục phát triển ý tưởng này và thay thế PC và trang ftp bằng các chip máy chủ web chuyên dụng cắm thẳng vào bộ định tuyến. Rõ ràng điều này sẽ làm giảm mức tiêu thụ điện năng của một liên kết. Nếu bạn quan tâm đến các cuộc thảo luận thêm, vui lòng đăng trên các bình luận Intstructable và / hoặc trên diễn đàn picaxe. Ông James MoxhamAdelaide, Nam Úc

Bước 10: Ảnh chụp màn hình của Mã

Ảnh chụp màn hình của Code
Ảnh chụp màn hình của Code

Theo yêu cầu, đây là một loạt ảnh chụp màn hình của mã vb.net với tất cả các định dạng tại chỗ. Mã này thực sự đã được sao chép trở lại của hướng dẫn này và định dạng tự động xuất hiện lại. Sẽ tốt hơn nếu bạn sao chép và dán văn bản hơn là cố gắng đọc những bức ảnh này nhưng chúng sẽ hữu ích nếu bạn đang ở quán cà phê internet và không thể cài đặt vb.net.

Bước 11: Ảnh chụp màn hình2

Ảnh chụp màn hình2
Ảnh chụp màn hình2

Ảnh chụp màn hình 2

Bước 12: Ảnh chụp màn hình 3

Ảnh chụp màn hình 3
Ảnh chụp màn hình 3

Ảnh chụp màn hình 3

Bước 13: Ảnh chụp màn hình 4

Ảnh chụp màn hình 4
Ảnh chụp màn hình 4

Ảnh chụp màn hình 4

Bước 14: Ảnh chụp màn hình 5

Ảnh chụp màn hình 5
Ảnh chụp màn hình 5

Ảnh chụp màn hình 5

Bước 15: Ảnh chụp màn hình 6

Ảnh chụp màn hình 6
Ảnh chụp màn hình 6

Ảnh chụp màn hình 6

Đề xuất: