Mundarija:

Dunyo bo'ylab mikrokontroller havolasi 20 dollardan past: 15 qadam
Dunyo bo'ylab mikrokontroller havolasi 20 dollardan past: 15 qadam

Video: Dunyo bo'ylab mikrokontroller havolasi 20 dollardan past: 15 qadam

Video: Dunyo bo'ylab mikrokontroller havolasi 20 dollardan past: 15 qadam
Video: Заработайте $ 600 + ЕЖЕДНЕВНО, РАБОТАЯ ТОЛЬКО МИНУТАМИ, К... 2024, Iyul
Anonim
Dunyo bo'ylab mikrokontroller havolasi 20 dollardan past
Dunyo bo'ylab mikrokontroller havolasi 20 dollardan past

Ish joyidan uy termostatini boshqaring. Kalitni bosib, dunyoning istalgan burchagidan purkagichni yoqing. Bu yo'riqnomada internet tarmog'i va bir nechta oddiy VB. Net kodlari yordamida ikki yoki undan ortiq 4 dollarlik mikrokontrolerlarni qanday ulash mumkinligi ko'rsatilgan. Bu avvalgi ko'rsatmaga asoslangan bo'lib, unda mikrokontrollerni kompyuterga qanday ulash va qozonni servo boshqaruvini boshqarish uchun ko'rsatiladi https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ Bu safar biz mikrokontoller bilan VB. Net dasturi, keyin ftp veb-sayti, boshqa VB. Net-ga qaytamiz. dunyoning istalgan burchagida, inson aralashuvisiz yoki ishtirokisiz ikkinchi mikrokontroller. Matrixdagi mashinalar, agar ular bir -birlari bilan gaplasha olmasalar, qanday qilib o'z zimmalariga oladilar?

1 -qadam: qismlarni yig'ing

Qismlarni yig'ing
Qismlarni yig'ing

Ko'p qismlar kompyuterni boshqarish bo'yicha ko'rsatma bilan bir xil https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ va buni urinishdan oldin bajarish tavsiya etiladi. ikkita mikrokontrollerni ulash. Quvvatni servo boshqarishda ishlatish mumkin bo'lsa -da, bu safar biz oddiy narsani - LEDni yoqadigan kalitni qidiramiz. Kommutator osonlikcha tank sathi sensori bo'lishi mumkin, va daryo yaqinidagi nasos bo'lishi mumkin, lekin avval oddiy ishni bajaraylik. Qismlar - Ikki Picaxe 08M chiplari - Rev Ed https://www.rev- ed.co.uk/picaxe/ (Buyuk Britaniya), PH Anderson https://www.phanderson.com/ (AQSh) va Microzed https://www.microzed.com.au/ (Avstraliya). Bu chiplarning narxi 4 AQSh dollaridan past. Ikkita: Protoboard, 9V batareya va batareya qisqichlari, 10k qarshilik, 22k qarshilik, 33uF 16V kondansatör, 0,1uF kondansatör, 7805L kam quvvatli 5V regulyator, simlar (qattiq yadroli telefon/ma'lumot simli Cat5/6), LED, 1k qarshilik. 1 dan: D9 ayol rozetkasi va qopqog'i va 2 metrli 3 (yoki 4) yadroli ma'lumotli sim (yuklab olish uchun) va o'tish tugmasi. 9 pinli ketma -ket portli 2 ta kompyuter (bir kompyuterda tuzatilishi mumkin) va Internetga ulangan. Ketma-ket portga ega bo'lmagan kompyuterlar uchun USB-ning ketma-ket qurilmasi https://www.rev-ed.co.uk/docs/axe027.pdf va kichik stereo uyasi.

2 -qadam: Ba'zi dasturlarni yuklab oling va o'rnating

Ba'zi dasturlarni yuklab oling va o'rnating
Ba'zi dasturlarni yuklab oling va o'rnating

Bizga bepul VB. Net va picaxe tekshiruvchi dasturlari kerak bo'ladi, agar siz Instructable kompyuter boshqaruvchisini bajargan bo'lsangiz, sizda bular bo'ladi. -us/express/aa718406.aspx Picaxe dasturini https://www.rev-ed.co.uk/picaxe/ saytidan olishingiz mumkin Yuklab olish uchun siz microsoft -da ro'yxatdan o'tishingiz kerak bo'ladi -agar muammo bo'lsa, soxta elektron pochtadan foydalaning. yoki biror narsa. Men o'z elektron pochtamni vaqti -vaqti bilan yuborib turishni o'zimga foydali deb topdim. Shuningdek, https://www.picaxeforum.co.uk/ picaxe forumini ham aytib o'tmoqchiman, chunki bu forum o'qituvchilar va o'qituvchilar va bu erda talabalar odatda bir necha soat ichida savollarga javob olishlari mumkin. Forumda hatto eng oddiy savollar ham tushuniladi, chunki ba'zi o'quvchilar hali boshlang'ich maktab darajasida. Iltimos, yordam so'rashdan qo'rqmang!

3 -qadam: Yuklab olish sxemasini yarating

Yuklab olish davrini yarating
Yuklab olish davrini yarating

Yuklab olish sxemasida pikaks chipi, bir nechta rezistorlar, regulyator va 9V batareyasi ishlatiladi. Qo'shimcha ma'lumot dasturning yordam menyusida paydo bo'ladigan picaxe hujjatlari/yordamida mavjud. Barcha qismlar qo'lda bo'lgandan so'ng, kontaktlarning zanglashiga bir necha daqiqa vaqt ketadi. Chip dasturlashtirilgandan so'ng, quvvat o'chirilgan bo'lsa ham, u o'z dasturini EEPROM -da saqlaydi. Biz ikkita chipni dasturlayotganimiz uchun, chiplarni belgilashga arzigulik bo'lishi mumkin, shunda siz qaysi biri ekanligini bilasiz. Siz har doim orqaga qaytib, havolani olib tashlash va rezistorni harakatlantirish orqali chipni qayta dasturlashingiz mumkin.

Shuni ham qo'shishim mumkinki, pikakslar 3 ta AA batareyada baxtli ishlaydi. 5V regulyativ ta'minot analog kirishni ishlatish uchun foydalidir, chunki mos yozuvlar kuchlanishlari o'zgarmaydi, lekin oddiy yoqish/o'chirish sxemalari uchun regulyatsiyalangan ta'minot kerak emas. Bunday vaziyatlarda 5V regni tashlab qo'yish mumkin.

4 -qadam: Chiplarni dasturlash

Chiplarni dasturlash
Chiplarni dasturlash

Biz bitta dasturni Tx va bitta Rx deb ataymiz. Tx - bu nazorat chipi, kalit va LEDga ega. Rx -da ham LED bor. Kalit o'zgarganda signal Txdan Rxga o'tadi, chiroqni o'zgartiradi va ikkinchi o'zgaruvchini o'zgartiradi, keyin Tx ga qaytadi. Shunday qilib, tugmachani bosing va bir daqiqadan kamroq vaqt ichida ikkala kontaktlarning zanglashiga olib kelishi o'zgaradi, bu xabar kelganini va Rx yangi kalit holatida ishlayotganligini ko'rsatadi. Eng oddiy darajada, pikaxada 14 ta bitta baytli registr mavjud. Virtual tarmoq yaratilganda, biz bu registrlarni bir -biriga bog'laymiz, agar bayt bitta pikseda o'zgarsa, u barcha piksalarda o'zgaradi. Shubhasiz, agar ikkita pikaks bir xil baytni o'zgartirishga harakat qilsa, bu juda chalkash bo'ladi, lekin agar har bir pikaks faqat bitta baytni o'zgartirsa, qolgan barcha pikaxalar bu o'zgarishni ko'rishi va unga amal qilishi mumkin. Agar ma'lum bir bayt faqat bitta piksa bilan o'zgartirilsa, oddiy xabarlarni oldinga va oldinga o'tkazish mumkin. Kastryul registrdagi qiymatni o'zgartirishi mumkin va bir yoki bir nechta boshqa pikaxlar servo yoki boshqa narsalarni o'zgartirishi va harakatlantirishi va isitgichni yoqishini sezishi mumkin. Ikkinchi registr xona ichidagi haroratni qaytarishi mumkin. Dasturlarni navbat bilan pikaks dasturchisiga ko'chiring va joylashtiring va ularni pikaks dasturchisi ichidan ko'k yuklash o'qi yordamida tegishli chiplarning har biriga yuklang. Tx: asosiy: serin 3, N2400, ("Ma'lumotlar"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'kompyuterdan paketni oladi, agar pin2 = 0 keyin "kalitni sinab ko'ring va b0 registrini b0 holatiga qarab o'rnating b0 = 0 boshqa b0 = 1 endif, agar b1 = 0 bo'lsa" boshqa pikaxalar to'plamlari b1 ga bog'liq b0 past 1 'o'chirilgan boshqa yuqori 1' endifli serout 0, N2400, ("Ma'lumotlar", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'ni kompyuterga qaytarish goto mainand Rx: main: serin 3, N2400, ("Ma'lumotlar"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'kompyuterdan paket olish b1 = b0' registrini o'zgartirish b1 teng registrga b0 bo'lsa b1 = 0 keyin past 1 'oldinga siljiydi boshqa yuqori 1' endifer 0, N2400, ("Ma'lumotlar", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12), b13) 'ni goto main kompyuterga qaytarish

5 -qadam: Tx sxemasini yarating

Tx sxemasini yarating
Tx sxemasini yarating

Agar siz ishchi zanjir va dasturlash sxemasi o'rtasida oldinga va orqaga siljiyotgan bo'lsangiz, 2 -chi oyoqqa ulanishni va 22k rezistorning o'rnini 2 -oyog'idan 4 -oyog'iga o'zgartirganingizga ishonch hosil qiling. Yoki siz maxsus yuklash sxemasini tuzib, chiplarni ko'chirishingiz mumkin. bo'ylab Shuni esda tutingki, kontaktlarning zanglashiga olib kelishi mumkin yoki ishlamayapti. Xususan, agar 2 -oyog'i suzuvchi bo'lib qolsa, ishchi sxemasi ishlamasligini unutmang - uni topraklash kerak. Oyoq 2 - bu yuklash pimi, agar u suzuvchi bo'lib qolsa, u chirog'li chiroqlar radiosini oladi va chip boshqa dastur yuklanmoqda deb o'ylaydi.

Jismoniy pinni oyoq va virtual pinni pin deb ataydigan pikax nomenklaturasini ham eslatib o'tish kerak. Shunday qilib, koddagi 2 -pinli chiqish - bu 5 -chi jismoniy oyog'idagi chiqish. Bu g'alati tuyulishi mumkin, lekin bu shuni anglatadiki, kod 28 va 40 pinli kattaroq pikaxalarga ko'chirilishi mumkin va u hali ham ishlaydi.

6 -qadam: Rx sxemasini yarating

Rx sxemasini yarating
Rx sxemasini yarating

Bu zanjir uzatgich bilan deyarli bir xil - uning kaliti yo'q.

7 -qadam: VB. Net kodini yozing

VB. Net kodini yozing
VB. Net kodini yozing

Men kodni tuzib, bu dasturni kompilyatsiya qilingan.exe sifatida taqdim etishim mumkin edi, lekin ba'zi VB. Net -ni o'rganish shunchalik foydalidirki, uni bosqichma -bosqich o'tishga arziydi. Agar siz buni ikki xil kompyuterda ishlayotgan bo'lsangiz, dasturni.exe ga o'rnatishingiz mumkin, bu esa ikkinchi kompyuterga o'rnatilishi mumkin bo'lgan kichik sozlash dasturini yaratadi. Yoki siz VB. Net -ni ikkala kompyuterga ham qo'yishingiz va dasturlarni VB. Net ichidan ishga tushirishingiz mumkin, siz https://www.instructables.com/id/S1MMU2XF82EU2GT ning 7 va 8 -qadamlaridan yangi VB.net loyihasini qanday ochishni bilasiz. /Bo'sh shaklga asboblar panelidan quyidagi komponentalarni qo'shamiz va ularni ko'rsatilgan joyga joylashtiramiz. Yorliqlar va matn qutilari uchun matn xususiyatini (pastki o'ng tomonda) kerakli narsaga o'zgartiring. Taymer sozlamalari haqida xavotir olmang - biz ularni kodda o'zgartiramiz, lekin taymerni o'rnatganingizga ishonch hosil qiling. Siz narsalarni boshqa joyga ko'chirishingiz mumkin va joylashuv haqida aniq qoidalar yo'q. Katta matnli quti - RichTextBox, kichik uchtasi oddiy matn qutilari. Buyurtma bo'yicha biz shaklning yuqori qismidan boshlaymiz va pastga tushamiz. Agar biror narsani tashlab qo'ysangiz, kodda xato bo'ladi, bu qandaydir maslahat berishi kerak. Iltimos, Textbox3 uchun tasodifiy fayl nomini tanlang - bu ftp serveridagi sizning noyob pikaxlar guruhingizning nomi va agar biz hammamiz Xuddi shu nom, keyin ma'lumotlar butunlay chalkashib ketadi! Bu jadvaldagi chiziqlar uchun uzr so'rayman-bo'sh joy qo'yish jadvaldagi formatlashni yo'qotadi. Toolbox obyekti ------- Matn ----------- ------------------------------ NotesLabel1 ------------------ Picaxe CommunicationsLabel2 ------------------ FTP StatusLabel3 ------------------ StatusLabel4 ---------- -------- Picaxe registrlariLabel5 ------------------ Ro'yxatdan o'tish 0-13Label6 ------------------ Qiymat 0-255Label7 ------------------ FTP havolasi fayl nomiTekst qutisi1 ---------------- 0 -------- -------------------------------------- 0-nol, OText2 emas ----- ----------- 0Tekst qutisi3 ---------------- Mening fayl nomim --------------------- ---------- O'zgarishlar bo'lmasligi uchun o'zgartiring! Button1 ------------------ ModifyRichtextbox1 Picturebox1 Picturebox2 Timer1

8 -qadam: Ba'zi kodlarni qo'shing

Ba'zi kodlarni qo'shing
Ba'zi kodlarni qo'shing

Shakl ko'rinishi va kod ko'rinishi o'rtasida aylanadigan tugmachaning joylashuvi uchun boshqa ko'rsatmalarning 12 -bosqichiga qarang. Kod ko'rinishiga o'ting va quyidagi kodni joylashtiring. Ranglar ekran tasviridagi kabi yana paydo bo'lishi kerak. Agar so'zni almashtirish muammosi tufayli chiziq to'g'ri nusxalanmagan bo'lsa, xato xabari yo'qolguncha bo'sh joylarni o'chirib tashlang. Men ko'p satrlarni izohlashga harakat qildim, shuning uchun kod hech bo'lmaganda mantiqiy. Umumiy sinf bitini o'chirib tashlang, shuning uchun uni joylashtirishdan oldin matn bo'sh bo'lishi kerak - bu kod allaqachon umumiy sinfga ega. Agar matn qutisi kabi ob'ekt shaklga joylashtirilmagan bo'lsa yoki noto'g'ri nomlangan bo'lsa, u matn kodining ostidan ko'k chiziq bilan chiqadi. chap (va o'ng) kabi satrlar (umumiy sinflar uchun Form1 umumiy uyqu Lib "kernel32" (ByVal dwMilliseconds As Integer) 'uxlash bayonotlari uchun Dim WithEvents serialPort as New IO. Ports. SerialPort' serial port Dim PicaxeRegisters (0 dan 13 gacha) Byte 'b0 dan b13 gacha registratsiya qiladi. Timer1. Enabled = True 'bu kodni Timer1. Interval = 20000' har 20 soniyada PictureBox1. BackColor = Color. Grey 'buyruqlar qutilari bilan boshlanadi kulrang PictureBox2. BackColor = Color. Gray ModifyFlag = False' agar qiymatni qo'lda o'zgartirsangiz, s kip download RichTextBox1. 0 dan 17 gacha) "Ma'lumotlar" +14 baytli "Ma'lumotlar" to'liq ma'lumotlar to'plami sifatida i har doim looplar uchun foydalidir va hokazo i = 0 dan 3 gacha DataPacket (i) = Asc (O'rta ("Ma'lumotlar", i + 1), 1)) 'paketga "Ma'lumotlar" so'zini qo'shing Keyingi i = 0 dan 13 gacha DataPacket (i + 4) = PicaxeRegisters (i)' paketiga barcha baytlarni qo'shing Keyingi Agar serialPort. IsOpen Keyin serialPort. Close () 'agar ochilgan bo'lsa, agar urinib ko'ring serialPort bilan. PortName = "COM1"' Ko'pgina yangi kompyuterlar standart com1 -ga o'rnatiladi, lekin sichqonchasi ketma -ket 1999 -yilgacha bo'lgan har qanday kompyuter, odatda, com2 -ga o'rnatiladi. BaudRate = 2400 '2400 - bu maksimal tezlik. kichik pikaxlar. Parity = IO. Ports. Parity. None 'parity yo'q. DataBits = 8' 8 bit. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' millisekon ds javob bermasa, 1 soniya ichida tugaydi. Ochish () ketma -ket portni ochish. DiscardInBuffer () "kirish buferini tozalash. Yozish (DataPacket, 0, 18)" yozish ma'lumotlar to'plami Call Sleep (300) '100 millisekund Ma'lumotlar oqimi uzoqroq bo'lsa, qaytib kelishini kutish uchun minimal va undan ko'p. O'qing (DataPacket, 0, 18) "ma'lumotlar to'plami qatorida qayta o'qiladi. Yopish ()" ketma -ket portni yoping End For For i = 4 dan 17 gacha PicaxeRegisters (i - 4) = DataPacket (i) 'yangi ma'lumotlar paketini ro'yxatga olish massiviga o'tkazadi Keyingi PictureBox1. BackColor = Color. GreenYellow' ishi Catch ex Exception PictureBox1. BackColor = Color. Red 'ishlamayapti End Sub Sub Sub Sub FTPUpload (ByVal fayl nomi String sifatida) Dim localFile As String "ma'lumotlarni saqlash uchun joy Dim remoteFile As String" fayl nomi katta -kichikligi sezgir, bu haqiqatan ham muhim Const hosti sifatida String = "ftp://ftp.0catch.com" "e'tibor bering, 0 - bu nol belgi emas O Const foydalanuvchi nomi sifatida String = "picaxe.0catch.com" Const parol sifatida String = "pikaxetester" Dim URI String localFile sifatida = Fayl nomi 'kerak bo'lmasligi mumkin, lekin agar joylashuv aniqlansa, masalan: c: / mydirectory osongina shu tarzda qo'shilishi mumkin remoteFile = "/" + Filename' fayli ftp serveriga "/" qo'shiladi URI = host + remoteFile Dim ftp ni tizim sifatida ko'ring. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (foydalanuvchi nomi, parol) "ftp. KeepAlive = False" ga kirishi bo'ladi. ftp. UseBinary = True 'ikkilik kommutatsiyani ishlatish 9 soniyadan keyin uzilib qoladi - ftp ba'zida o'lishi uchun juda foydali (va 20 sekundlik soat chastotasi) terish ulanishlari uchun sekinroq bo'lishi kerak. Method = System. Net. WebRequestMethods. Ftp. UploadFile 'Dim fs faylini Yangi FileStream (localFile, FileMode. Open) sifatida yuborishni boshlang "Dim filecontents (fs. Length) mahalliy faylini oching" xotira fs. Read (filecontents, 0, fs. Length) fs. Close () 'Dim requestStream faylini yoping Stream = ftp. GetRequestStream ()' boshlanish ftp havolasiSt ream. Write (filecontents, 0, filecontents. Length) 'request requestStream. Close ()' PictureBox2. BackColor = Color. GreenYellow havolasini yoping 'ishladi, deyish uchun qutini yashil rangga o'zgartiring Label2. Text = "FTP ulandi"' "Catch ulandi" degan matn, "PictureBox2. BackColor = Color. Red" qutisini qizil rangga ulanmagan, Label2. Text = "FTP yuklanmadi" degan matn ulanmagan. End End Sub Sub FTPDownload (ByVal fayl nomi String sifatida) "Uzoq faylni mahalliy faylga yuklaydi Dim localFile As String" Ma'lumotlarni saqlash joyi Dim remoteFile As String "fayl nomi katta -kichikligi sezgir bo'lsa, bu juda muhim Const host As String =" ftp://ftp.0catch.com "Const foydalanuvchi nomi String =" picaxe.0catch.com "Const parol sifatida String =" picaxetester "Dim URI String sifatida 'localFile =" C: / " + Fayl nomi' katalogida saqlanadi, lekin bu localFile = Filename 'ni o'zgartirishi mumkin, shuning uchun agar kerak bo'lsa, c: / ni qo'shish mumkin. haqiqiy manzil remoteFile = "/" + Fayl nomi "uzoq ftp manziliga qo'shildi URI = host + remoteFile ' To'liq manzil Dim ftp ni System. Net. FtpWebRequest = CType sifatida ko'ring (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (foydalanuvchi nomi, parol) ftp -ga kiring.. KeepAlive = False 'tugagandan so'ng uziladi. UseBinary = True' ikkilik rejimi ftp. Timeout = 9000 '9 sekunddan keyin ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile' qismli bo'lib o'qilgan faylni yuklab oling '. javobning System. Net. FtpWebResponse = CType (ftp. GetResponse, System. Net. FtpWebResponse) sifatida ishlatilishi qanchalik katta ekanligini bilmayman. IO. FileMode. Create) Dim tampon (2047) Byte Dim sifatida o'qiladi Integer = 0 o'qing = responseStream. Read (buffer, 0, buffer. Length) 'ftp fs. Write (bufer, 0, o'qish) dan parcha faylga yozing Loop o'qilgunga qadar = 0 'boshqa bo'lak bo'lmagunchaStream. Close ()' ftp faylini yopib qo'ying fs. Flush () 'flush clear fs. Close ()' va th ni yoping. e Fayl End ResponseStream. Close () yordamida hech narsa bo'lmagan taqdirda ham uni yopib qo'ying. Javobni ishlatishni tugating. Close () PictureBox2. BackColor = Color. GreenYellow 'yashil qutisi ishlayotgandek Label2. Text = "FTP ulandi" va matn. Catch yordamida ishladi "xato kodlarini bu erga qo'ying PictureBox2. BackColor = Color. Red" qizil qutisi ishlamadi, chunki Label2. Text = "FTP yuklab bo'lmadi" va bu tugashini bildiruvchi xabar Sub End Private Sub Timer1_Tick (ByVal jo'natuvchisi) System. Object sifatida, ByVal e As System. EventArgs) Taymerni boshqaradi1. Agar ModifyFlag = False "ni belgilang, agar foydalanuvchi baytni o'zgartirsa, Label3. Text =" Yuklanmoqda "System. Windows. Forms. Application. DoEvents () ni yuklamang. "shuning uchun yangi yorliq matni chaqiriladi FTPDownload (TextBox3. Text)" uzoqdan yuklangan fayl Label3. Text = "Yuklab olindi" System. Windows. Forms. Application. DoEvents () ReadRemoteFileToRegisters () ga qo'ng'iroq qiling. = "Picaxe bilan gaplashish" System. Windows. Forms. Application. DoEvents () Boshqa ModifyFlag = False 'bayroqni qayta o'rnatdi. To'xtatsa SerialTxRx () 'pikaxaga yuboriladi va uni o'qiladi Label3. Text = "Picaxe -dan yuborilgan va qabul qilingan" System. Windows. Forms. Application. DoEvents () DisplayPicaxeRegisters -ga qo'ng'iroq qiling () SaveRegistersToLocalFile () -ga qo'ng'iroq qiling. Label3. Text = System. Windows. Forms. Application. DoEvents () "Yuklanmoqda" System. Windows. Forms. Application. DoEvents () FTPUpload -ga qo'ng'iroq qiling (TextBox3. Text) ', mening ismim bilan atalgan ftp saytiga qaytarib yuboring Label3. Text = "Dam olayotgan" SaveFTPFilename () "shunday o'qiladi qayta ishga tushirilganda End Sub Sub DisplayPicaxeRegisters () Dim i As Integer Dim registernumber As String RichTextBox1. Multiline = True 'shuning uchun RichTextBox1. Clear () matn qutisidagi bir nechta satrni ko'rsatish mumkin, chunki i = 0 dan 13 gacha registernumber = Trim (Str (i)) 'etakchi bo'shliqlarni kesib tashlasa i <10 So'ngra registernumber = "0" + registernumber' 10 oxirigacha bo'lgan sonlarga 0 qo'shing RichTextBox1. AppendText (registernumber + "=" + Str (PicaxeRegisters (i))) + Chr (13)) Keyingi 'chr (13) - vagonni qaytarish, shuning uchun yangi satr End Sub Private Private Sub Button1_Click (ByVal jo'natuvchisi) System. Object, ByVal e As System. EventArgs) tugmachalarini boshqaradi 1. Dim i Butunlik tugmasini bosing 'diapazonidan birinchi bo'lib i = Val (TextBox1. Text) Agar i <0 yoki i> 13 bo'lsa TextBox1. Text = 0 End If i = Val (TextBox2. Text) Agar i <0 Yoki i> 255 bo'lsa TextBox2. Text = 0 tugaydi, agar PicaxeRegisters (Val (TextBox1. Text)) = Val (TextBox2. Text) 'qiymatini o'zgartiring DisplayPicaxeRegisters ()' va displeyni yangilang ModifyFlag = To'g'ri 'va keyingi ftp havolasi yuklanishni o'tkazib yuboradi End Sub Sub SaveRegistersToLocalFile ()' registrlar qatorini mahalliy matnli faylda saqlang Dim i As Integer FileOpen (1, TextBox3. Text, OpenMode. Output) 'nomli matnli faylni oching. matn qutisida i = 0 dan 13 gacha PrintLine (1, Str (PicaxeRegisters (i))) '14 qiymatni saqlash Keyingi FileClose (1)' faylini o'chirish End Sub Sub ReadRemoteFileToRegisters () 'faylini registrlar qatoriga o'qing. Dim i butun son sifatida Dim LineOfText String sifatida FileOpen (1, TextBox3. Text, OpenMode. Input) ni ishlating. es PicaxeRegisters (i) = Val (LineOfText) 'matnni qiymatlarga aylantirish Keyingi FileClose (1) ExClick FileClose (1) fayli sifatida saqlang, shuning uchun hech narsa qilmang End Sub Sub Read ReadFTPFilename ()' ni ishlating, shuning uchun nomi Keyingi safar "Dim LineOfText" ni String sifatida FileOpen bilan sinab ko'ring (1, "FTPFilename.txt", OpenMode. Input) "masofaviy ftp fayli bir xil bo'ladi. FileClose nomi (1) Exc File File sifatida yopilish (1) tugatish Sub sub Sub Save SaveFTPFilename () FileOpen (1, "FTPFilename.txt", OpenMode. Output) "masofaviy ftp fayl nomini PrintLine (1, TextBox3. Text) saqlang FileClose (1) SubEnd sinfini tugatish

9 -qadam: Dasturni ikkala kompyuterda ham ishga tushiring

Dasturni ikkala kompyuterda ham ishga tushiring
Dasturni ikkala kompyuterda ham ishga tushiring

Ekranni yuqori qismidagi yashil uchburchakni bosish orqali dasturni ishga tushirishni boshlang - "Tuzatishni boshlash" tugmasi. 20 soniya davomida hech narsa bo'lmaydi, keyin dastur ftp serveriga ulanishga harakat qiladi va piksaga ulanishga harakat qiladi. Rasm qutilari qizil yoki yashil rangda bo'ladi. Ftp joylashuvi - bu bepul veb -sayt va har kim undan foydalanishi mumkin, lekin siz boshqa ftp ishlaydigan fayl nomini ishlatishingiz kerak (meniki DoctorAcula1), aks holda, agar biz bir xil fayl nomidan foydalansak, biz bir -birimizning ma'lumotlarimiz bilan tugashimiz mumkin! Agar xohlasangiz, oxir -oqibat o'zingizning ftp saytingizni olishingiz mumkin - faqat 0Catch veb -saytidagi kodning ikki joyida ftp manzilini, foydalanuvchi nomini va parolni o'zgartiring. Ko'pgina veb -saytlar ftp -ga ruxsat beradi. Bir nechta kompyuterlar bir xil ftp faylga kira oladilar - ftp fayllar serveri ular qanday tartibda bo'lishini saralaydi. Vaqti -vaqti bilan ma'lumotlar to'qnashuvi yoki to'xtab qolishi kuzatiladi va bu har 20 ta fayl o'qilganda sodir bo'ladi. Agar bu sodir bo'lsa, kod buzilgan ma'lumotni emas, balki ma'lumotni qaytarib beradi. 128Kb yuklash tezligi bilan keng polosali ulanishdan foydalanish faylni yuklash 3 soniya davom etadi, lekin ba'zida 8 sekundgacha davom etadi. ma'lumotlarni uzatish emas, balki qo'l siqish. Bu taymer1 vaqtini yuklash, yuklash va pikaks bilan suhbatni hisobga olgan holda kamida 20 soniya vaqtni belgilaydi. Juda tez keng polosali ulanish yordamida siz tsikl vaqtini qisqartirishingiz mumkin, VB dasturida registrni qo'lda o'zgartirishingiz mumkin. Agar shunday qilsangiz, keyingi taymer tsikli ftp saytidan yuklashni o'tkazib yuboradi va yangi ma'lumotlarni pikaxaga yuboradi, keyin uni qayta o'qib yuklaydi. Shunday qilib, yangi ma'lumotlar ushbu guruh bilan bog'langan barcha pikaxlarga yo'l topadi. Bu nosozliklarni tuzatish va/yoki shaxsiy kompyuter dasturlarini mikrokontrolder apparati tsikliga ulash uchun foydalidir. Veb -saytlar ftp saytiga yangi fayl yozish uchun PERL skripti yoki shunga o'xshash uskuna yordamida ham kirishi mumkin, bu skrinshot Tx chipi yordamida olingan, kalit yoqilgan va b0 = 1 registri Rx chipiga yuborilgan. keyin b1 registrini ham 1 ga o'zgartirdi. Shunday qilib, ikkala taxtada ham chiroq yondi. Bu arzimas dastur, lekin LED o'rniga 3,6 kVt quvvatga ega nasosni yoqish oson. Yana bir qancha g'oyalar https://drvernacula.topcities.com/ saytida joylashgan, shu jumladan quyosh energiyali radio aloqalar orqali pikakslarni ulash. Radio havolalari va Internet bilan "Mashinalar" dunyoning ko'plab burchaklariga etib borishi mumkin. Picaxe forumida bu g'oyani davom ettirish va shaxsiy kompyuter va ftp saytini to'g'ridan -to'g'ri yo'riqchiga ulanadigan maxsus veb -server chiplari bilan almashtirish haqida ba'zi fikrlar mavjud. Shubhasiz, bu havola quvvat sarfini kamaytiradi. Agar siz keyingi munozaralarga qiziqsangiz, iltimos, sharhlar va/yoki pikax forumiga yozing. Djeyms Moxham Adelaida, Janubiy Avstraliya

10 -qadam: Kodning skrinshotlari

Kodning skrinshotlari
Kodning skrinshotlari

Talabga binoan, bu erda vb.net kodining barcha formatlanishi joylangan ekran tasvirlari. Bu kod aslida ko'rsatmali nusxa ko'chirilgan va formatlash avtomatik ravishda qayta paydo bo'lgan. Bu rasmlarni o'qishdan ko'ra, matnni nusxalash va joylashtirish yaxshiroq bo'lardi, lekin agar siz internet -kafeda bo'lsangiz va vb.net ni o'rnatolmasangiz, bu foydali bo'ladi.

11 -qadam: Skrinshot 2

Skrinshot 2
Skrinshot 2

Skrinshot 2

12 -qadam: Skrinshot 3

Skrinshot 3
Skrinshot 3

Skrinshot 3

13 -qadam: Skrinshot 4

Skrinshot 4
Skrinshot 4

Skrinshot 4

14 -qadam: Skrinshot 5

Skrinshot 5
Skrinshot 5

Skrinshot 5

15 -qadam: 6 -rasm

Skrinshot 6
Skrinshot 6

Skrinshot 6

Tavsiya: