Përmbajtje:

Lidhje në mbarë botën e mikrokontrolluesve për hapa nën 20 dollarë: 15 dollarë
Lidhje në mbarë botën e mikrokontrolluesve për hapa nën 20 dollarë: 15 dollarë

Video: Lidhje në mbarë botën e mikrokontrolluesve për hapa nën 20 dollarë: 15 dollarë

Video: Lidhje në mbarë botën e mikrokontrolluesve për hapa nën 20 dollarë: 15 dollarë
Video: Top News - 5 mijë hapa në ditë për shëndetin / ’Numri magjik’, redukton vdekjen e parakohshme 2024, Qershor
Anonim
Lidhje në mbarë botën e mikrokontrolluesve për nën 20 dollarë
Lidhje në mbarë botën e mikrokontrolluesve për nën 20 dollarë

Kontrolloni termostatin e shtëpisë tuaj nga puna. Ndizni një spërkatës nga kudo në botë duke goditur një çelës. Ky udhëzues tregon se si të lidhni dy ose më shumë mikrokontrollues 4 dollarë duke përdorur shtyllën e internetit dhe disa kode të thjeshta VB. Net. Kjo bazohet në një udhëzues të mëparshëm i cili tregon se si të lidhni një mikrokontrollues me një kompjuter dhe të përdorni një tenxhere për të kontrolluar një servo https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ Këtë herë kemi një mikrokontrollues duke folur me një program VB. Net pastaj me një faqe interneti ftp, përsëri në një VB. Net tjetër programoni dhe prej andej një mikrokontrollues të dytë kudo në botë, me ose pa ndërhyrjen njerëzore. Si tjetër supozohet që makinat në The Matrix të marrin përsipër nëse nuk mund të flasin me njëri -tjetrin?

Hapi 1: Mblidhni Pjesët

Mblidhni Pjesët
Mblidhni Pjesët

Shumë nga pjesët janë të njëjta si në PC Control Instructable https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ dhe sugjerohet që kjo të përfundojë së pari para se të provoni për të lidhur dy mikrokontrollues. Ndërsa është mjaft e mundur të përdoret një tenxhere për të kontrolluar një servo, këtë herë ne do të shkojmë për diçka më të thjeshtë - një çelës që ndizet një led. Ndërprerësi mund të jetë lehtësisht një sensor i nivelit të rezervuarit dhe led mund të jetë një pompë poshtë një lumi, por le të bëjmë diçka të thjeshtë duke punuar së pari. Pjesë - Dy patate të skuqura Picaxe 08M - të disponueshme nga shumë burime përfshirë Rev Ed https://www.rev- ed.co.uk/picaxe/ (MB), PH Anderson https://www.phanderson.com/ (SHBA) dhe Microzed https://www.microzed.com.au/ (Australi). Këto patate të skuqura janë nën $ 4US. Dy nga: Protoboard, bateri 9V dhe kapësa baterie, rezistencë 10k, rezistencë 22k, kondensator 33uF 16V, kondensator 0.1uF, rregullator 7V 550 me fuqi të ulët, tela (tela telefoni/të dhëna të forta, p.sh. Cat5/6), LED, rezistencë 1k. 1 nga: Foleja dhe kapaku i femrës D9 dhe 2 metra tela 3 (ose 4) të të dhënave bazë (për shkarkim) dhe një ndërprerës. 2 kompjuterë me 9 porte serike 9 pin (mund të korrigjohen në një kompjuter edhe pse) dhe një lidhje interneti. Për kompjuterët pa portë serike, një pajisje USB serike https://www.rev-ed.co.uk/docs/axe027.pdf dhe një prizë të vogël stereo.

Hapi 2: Shkarkoni dhe instaloni disa softuerë

Shkarkoni dhe instaloni disa softuerë
Shkarkoni dhe instaloni disa softuerë

Ne do të kemi nevojë për VB. Net falas dhe softuerin e kontrollorit picaxe dhe nëse e keni bërë kontrolluesin e kompjuterit Instructable ju tashmë do t'i keni këto. VB. Net (Visual Basic Express) është në dispozicion nga https://msdn2.microsoft.com/en -us/express/aa718406.aspx Softueri picaxe është në dispozicion nga https://www.rev-ed.co.uk/picaxe/ Ju do të duhet të regjistroheni në Microsoft për të marrë shkarkimin -nëse ky është një problem përdorni një email të rremë ose diçka. Unë në fakt e kam gjetur të dobishme dhënien e emailit tim të vërtetë pasi dërgojnë përditësime të herëpashershme. Unë gjithashtu do të përmend forumin e pikave https://www.picaxeforum.co.uk/ pasi ky është lloji i forumit i stafuar nga mësuesit dhe edukatorët dhe ku studentët zakonisht mund të marrin përgjigje për pyetjet brenda pak orësh. Forumi i kupton edhe pyetjet më të thjeshta pasi disa nga nxënësit janë ende në nivelin e shkollës fillore. Ju lutemi mos kini frikë të kërkoni ndihmë!

Hapi 3: Ndërtoni një qark shkarkimi

Ndërtoni një qark shkarkimi
Ndërtoni një qark shkarkimi

Ky qark shkarkimi përdor një çip picaxe, disa rezistorë, një rregullator dhe një bateri 9V. Më shumë informacion është i disponueshëm në dokumentacionin/ndihmën e pikasit e cila shfaqet në menunë e ndihmës të programit. Qarku duhet të zgjasë vetëm disa minuta pasi të gjitha pjesët të jenë në dorë. Pasi programohet një çip ai ruan programin e tij në EEPROM edhe kur energjia është e fikur. Meqenëse ne po programojmë dy patate të skuqura, mund të jetë e vlefshme të etiketoni patate të skuqura në mënyrë që të dini se cila është cila. Gjithmonë mund të ktheheni dhe të riprogramoni një çip duke hequr një lidhje dhe duke lëvizur një rezistencë.

Mund të shtoj gjithashtu se pikaset funksionojnë për fat të mirë me 3 bateri AA. Një furnizim i rregulluar me 5V është i dobishëm për drejtimin e hyrjeve analoge pasi tensionet referuese nuk ndryshojnë, por për qarqet e thjeshta të ndezjes/fikjes nuk nevojitet një furnizim i rregulluar. Reg 5V mund të lihet jashtë në këto situata.

Hapi 4: Programoni patatinat

Programoni patate të skuqura
Programoni patate të skuqura

Ne do të thërrasim një program Tx dhe një Rx. Tx është çipi kontrollues dhe ka një ndërprerës dhe një led. Rx gjithashtu ka një led. Kur kaloni ndryshon sinjali shkon nga Tx në Rx, ndryshon led dhe gjithashtu ndryshon një ndryshore të dytë e cila pastaj kthehet në Tx. Pra, goditni çelësin dhe në më pak se një minutë led ndryshon në të dy qarqet duke treguar se mesazhi arriti atje dhe Rx po vepron në pozicionin e ri të ndërprerësit. Në nivelin më të thjeshtë, piksa ka 14 regjistra një-bajtësh. Kur krijohet një rrjet virtual ne i lidhim të gjithë ata regjistra së bashku kështu që nëse një bajt ndryshon në një piksakë ai ndryshon në të gjitha pikasat. Arlyshtë e qartë nëse dy piksa po përpiqen të ndryshojnë të njëjtin bajt atëherë do të bëhet shumë konfuze, por nëse secila piksë ndryshon vetëm një bajt, atëherë të gjitha piksakët e tjerë mund ta shohin atë ndryshim dhe mund të veprojnë në të. Mesazhet e thjeshta mund të kalojnë mbrapa dhe përpara nëse një bajt i caktuar ndryshohet vetëm me një piksaks. Një tenxhere mund të ndryshojë vlerën në një regjistër dhe një ose më shumë pikse të tjera mund të kuptojnë se ndryshojnë dhe lëvizin një servo ose çfarëdo dhe ndizet një ngrohës. Një regjistër i dytë mund të kthejë temperaturën në dhomë. Kopjoni dhe ngjisni programet nga ana tjetër në programuesin e picaxe dhe shkarkojini ato në secilën nga patate të skuqura përkatëse duke përdorur shigjetën blu të shkarkimit nga brenda programuesit të picaxe. Tx: kryesore: serin 3, N2400, ("Të dhënat"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'merrni pako nga kompjuteri nëse pin2 = 0 pastaj 'testoni çelësin dhe vendosni regjistrin b0 në varësi të statusit b0 = 0 tjetër b0 = 1 endif nëse b1 = 0 pastaj' grupet e tjera të pikave b1 në varësi të b0 të ulët 1 'të udhëhequr nga lartësi të tjera' 1 led në endif serout 0, N2400, ("Të dhëna", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'dërgo përsëri në kompjuter në maino Rx: kryesore: serin 3, N2400, ("Të dhëna"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'merrni pako nga kompjuteri b1 = b0' ndryshoni regjistrin b1 në regjistrin e barabartë b0 nëse b1 = 0 pastaj e ulët 1 'e udhëhequr nga një tjetër e lartë 1' e udhëhequr në endif serout 0, N2400, ("Të dhëna", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'Dërgo përsëri në kompjuter

Hapi 5: Ndërtoni qarkun Tx

Ndërtoni qarkun Tx
Ndërtoni qarkun Tx

Nëse jeni duke rrotulluar mbrapsht midis një qark pune dhe një qark programimi sigurohuni që të ndryshoni lidhjen në këmbën 2 dhe vendndodhjen e rezistencës 22k nga këmba 2 në këmbën 4. Ose mund të ndërtoni një qark të dedikuar shkarkimi dhe të lëvizni patate të skuqura matanë. Vetëm vini re nëse një qark po funksionon ose shkarkohet pasi mund të bëhet mjaft konfuz. Në veçanti, vini re se një qark drejtimi nuk do të funksionojë nëse këmba 2 lihet të lundrojë - duhet të jetë e bazuar. Këmba 2 është kunja e shkarkimit dhe nëse lihet të lundrojë, merr RF të humbur nga dritat e flouro dhe çipi mendon se një program tjetër po shkarkohet.

Vlen gjithashtu të përmendet nomenklatura e piksës e cila e quan një kunj fizik një këmbë dhe një kunj virtual një kunj. Kështu, një dalje në pin 2 në kod është në të vërtetë një dalje në këmbën fizike 5. Kjo mund të duket e çuditshme, por do të thotë që kodi mund të transportohet në pikse të mëdha si versionet 28 dhe 40 pin dhe akoma funksionon.

Hapi 6: Ndërtoni qarkun Rx

Ndërtoni qarkun Rx
Ndërtoni qarkun Rx

Ky qark është pothuajse i njëjtë me transmetuesin - thjesht nuk ka ndërprerës.

Hapi 7: Shkruani Disa Kode VB. Net

Shkruani Disa Kode VB. Net
Shkruani Disa Kode VB. Net

Unë mund të kem përpiluar kodin dhe ta bëj këtë program të disponueshëm si.exe të përpiluar, por të mësosh disa VB. Net është aq tepër e dobishme sa ia vlen ta kalosh hap pas hapi. Nëse e përdorni këtë në dy kompjuterë të ndryshëm, mund ta krijoni programin në një.exe i cili krijon një program të vogël konfigurimi i cili mund të instalohet në kompjuterin e dytë. Ose mund të vendosni VB. Net në të dy kompjuterët dhe të ekzekutoni programet nga brenda VB. Le të supozojmë se e dini se si të hapni një projekt të ri VB.net nga hapi 7 dhe 8 i https://www.instructables.com/id/S1MMU2XF82EU2GT /Në formularin bosh le të shtojmë përbërësit e mëposhtëm nga shiriti i veglave dhe t'i vendosim në formë në vendet siç tregohet. Për etiketat dhe kutitë e tekstit, ndryshoni vetinë e tekstit (në pjesën e poshtme të djathtë) në atë që nevojitet. Mos u shqetësoni për cilësimet për kohëmatësin - ne do t'i ndryshojmë ato në kod, por sigurohuni që të vendosni një kohëmatës. Ju mund t'i lëvizni gjërat përreth dhe nuk ka rregulla të vërteta në lidhje me vendndodhjen. Kutia e madhe e tekstit është një RichTextBox dhe tre të vegjlit janë Textboxes të zakonshëm. Për sa i përket rendit ne po fillojmë në krye të formularit dhe po lëvizim poshtë. Nëse lini diçka jashtë do të ketë një gabim në kodin i cili duhet të japë një lloj të dhëne. Ju lutemi zgjidhni një skedar të rastësishëm për Textbox3 - ky është emri i grupit tuaj unik të pikave në serverin ftp dhe padyshim nëse të gjithë e përdorim i njëjti emër, atëherë të dhënat do të ngatërrohen! Na falni për pikat në këtë tabelë-vendosja e hapësirave humbet formatimin në tabelë. Objekti i mjetit ------- Teksti ----------- ------------------------------ Shënime Label1 ------------------ Pikaksë CommunicationsLabel2 ------------------ FTP StatusLabel3 ------------------ StatusLabel4 ---------- -------- Regjistrat PicaxeLabel5 ------------------ Regjistrohuni 0-13Label6 ------------------ Vlera 0-255 Label7 ------------------ Emri i skedarit të lidhjes FTP Textbox1 ---------------- 0 -------- ------------------------------------------ 0 është një zero jo një OTextbox2 ----- ----------- 0Textbox3 ---------------- Emri i skedarit --------------------- ---------- Ndrysho që të mos ketë përplasje! Button1 ------------------ ModifikoRichtextbox1 Picturebox1 Picturebox2 Timer1

Hapi 8: Shtoni një kod

Shtoni një kod
Shtoni një kod

Shihni hapin 12 të udhëzuesit tjetër për vendndodhjen e butonit që rrokulliset midis pamjes së formës dhe pamjes së kodit. Kaloni në pamjen e kodit dhe ngjisni kodin e mëposhtëm. Ngjyrat duhet të rishfaqen të gjitha si në pamjen e ekranit. Nëse një rresht nuk është kopjuar siç duhet për shkak të një problemi të mbylljes së fjalëve, atëherë fshini hapësirat derisa mesazhi i gabimit të largohet. Unë jam përpjekur të komentoj shumicën e rreshtave, kështu që kodi të paktën ka kuptim. Fshini bitin e klasës publike në mënyrë që teksti të jetë bosh para se ta ngjisni këtë - ky kod tashmë ka një klasë publike. Nëse një objekt si një kuti teksti nuk është vendosur në formular ose ka emrin e gabuar, atëherë ai do të dalë në kodin e tekstit me një vijë blu të mprehtë nën të. Import System. IOImport Strings = Microsoft. VisualBasic 'kështu që mund të përdoret gjëra të tilla si majtas (dhe djathtas (për vargjet Forma e Klasës Publike1 Publiko Publikimin Nën gjumë Lib "kernel32" (ByVal dwMilliseconds As Integer) 'për deklaratat e gjumit Dim WithEvents serialPort As New IO. Ports. Porta seriale e SerialPort deklaron Dim PicaxeRegisters (0 To 13) Ndërsa Byte 'regjistron b0 në b13 Dim ModifyFlag As Boolean Private Sub Form1_Load (Dërguesi ByVal Si Object, ByVal e As System. EventArgs) Trajton Me. Load' ka nevojë për të gjitha këto gjëra plehrash. Timer1. Enabled = E vërtetë 'vendoseni këtë në kod si të parazgjedhur në false kur krijohet Timer1. Interval = 20000' çdo 20 sekonda PictureBox1. BackColor = Color. Gray 'fillon me kutitë e komuneve gri PictureBox2. BackColor = Color. Gray ModifyFlag = E gabuar' nëse modifikoni një vlerë me dorë atëherë s kip shkarko RichTextBox1. Multiline = E vërtetë 'kështu që mund të shfaq më shumë se një rresht Thirrja DisplayPicaxeRegisters ()' shfaq 14 regjistrat Call ReadFTPFilename () 'lexoni emrin e skedarit nga disku (ruhet çdo 20 sekonda) Fund Nën Nën SerialTxRx () Dim DataPacket Dim (0 deri në 17) Si Byte 'e gjithë paketa e të dhënave "Data" +14 bajt Dim i As Integer' i është gjithmonë e dobishme për sythe etj Për i = 0 deri në 3 DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'shtoni fjalën "Data" në pako Next For i = 0 To 13 DataPacket (i + 4) = PicaxeRegisters (i)' shtoni të gjithë bajtët në paketë Next If serialPort. IsOpen Pastaj serialPort. Mbyll () 'vetëm në rast se tashmë është hapur Fundi Nëse Provoni Me serialPort. PortName = "COM1"' Shumica e kompjuterëve të rinj të parazgjedhur në com1, por çdo kompjuter para 1999 me miun serial ndoshta do të jetë i parazgjedhur në com2. BaudRate = 2400 '2400 është shpejtësia maksimale për pikika të vogla. Pariteti = IO. Ports. Parity. Nuk ka 'asnjë barazi. DataBits = 8' 8 bit. StopBits = IO. Ports. StopBits. O bit 'one stop. ReadTimeout = 1000' milisekon ds kështu kalon në 1 sekondë nëse nuk ka përgjigje. Hapni () 'hapni portin serik. HiqniInBuffer ()' pastroni tamponin e hyrjes. Shkruani (DataPacket, 0, 18) 'dërgoni grupin e paketës së të dhënave Call Sleep (300)' 100 milisekonda minimumi për të pritur që të dhënat të kthehen dhe më shumë nëse transmetimi i të dhënave është më i gjatë. Lexoni (DataPacket, 0, 18) 'lexoni përsëri në grupin e paketave të të dhënave. Mbyllni ()' mbyllni portën serike Fund me Për i = 4 Deri në 17 PicaxeRegisters (i - 4) = DataPacket (i) 'zhvendos paketën e re të të dhënave në grupin e regjistrave Next PictureBox1. BackColor = Color. GreenYellow' duke punuar Catch ex Si Exception PictureBox1. BackColor = Color. Red 'nuk punon Fundi Provo Fund Nën Nën FTPUpload (Emri i skedarit ByVal Si String) Dim lokal File Si String 'vend për ruajtjen e të dhënave Dim remoteFile As String' emri i skedarit është i ndjeshëm ndaj shkronjave të mëdha, kjo është me të vërtetë e rëndësishme Const host As String = "ftp://ftp.0catch.com" 'vini re 0 është një zero jo një karakter O Përdoruesi i konstit si String = "picaxe.0catch.com" Fjalëkalimi i kon As String = "picaxetester" Dim URI Si String localFile = Emri i skedarit 'ndoshta nuk është i nevojshëm, por nëse përcaktoni një vendndodhje p.sh. c: / mydirectory mund të shtoni lehtë në këtë mënyrë distancaFile = "/" + Skedari i emrit të skedarit në nevojat e serverit ftp "/" u shtua përpara URI = host + remoteFile Provoni Dim ftp Si Sistem. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (emri i përdoruesit, fjalëkalimi) 'log in ftp. KeepAlive = False' do të jetë shkëputja pasi të jetë bërë një herë ftp. UseBinary = E vërtetë 'përdorni komandat binare ftp. Timeout = 9000' timeout pas 9 sekondash - shumë e dobishme pasi ftp nganjëherë vdes '(dhe frekuenca e orës prej 20 sekonda) mund të ketë nevojë të jetë më e ngadaltë për lidhjet e dialup ftp. Metoda = System. Net. WebRequestMethods. Ftp. UploadFile 'filloni të dërgoni skedarin Dim fs As New FileStream (localFile, FileMode. Open)' hapni skedarin lokal Dim përmbajtjet e skedarëve (fs. Length) Si Byte 'lexohen në kujtesë fs. Read (përmbajtja e skedarëve, 0, fs. Length) fs. Close () 'mbyllni skedarin Kërkesa Dim DimërStream As Stream = ftp. GetRequestStream ()' filloni ftp link link ream. Write (filecontents, 0, filecontents. Length) 'send it requestStream. Close ()' mbyllni lidhjen PictureBox2. BackColor = Color. GreenYellow 'ndryshoni kutinë në të gjelbër për të thënë në rregull ok Label2. Text = "FTP e lidhur" teksti thotë se është lidhur Kapni 'nuk mund të lidhë PictureBox2. BackColor = Color. Red' kutinë në të kuqe si pa lidhje Label2. Text = Teksti "Ngarkimi i FTP" teksti duke thënë se lidhja dështoi Përfundo Provo Fundin Nën FTPDownload (Emri i skedarit ByVal Si String) 'Shkarkimet e skedarit të largët në vendndodhjen Dim localFile As String' vend për ruajtjen e të dhënave Dim remoteFile As String 'emri i skedarit është i ndjeshëm ndaj shkronjave të mëdha, kjo është me të vërtetë e rëndësishme Const host As String = "ftp://ftp.0catch.com" Përdoruesi i konstruktit si String = "picaxe.0catch.com "Fjalëkalimi konstruktiv si String =" picaxetester "Dim URI Si String 'localFile =" C: / " + Filename' ruhet në drejtorinë rrënjësore, por mund ta ndryshojë këtë localFile = Emri i skedarit ', kështu që mund të shtoni c: / nëse është e nevojshme të përcaktoni vendndodhja aktuale remoteFile = "/" + Emri i skedarit 'u shtua në vendndodhjen e ftp të largët URI = host + remoteFile' përbëjnë adresa e plotë Provo Dim ftp Si System. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = Sistemi i ri. NetworksCredential (emri i përdoruesit, fjalëkalimi) 'regjistrohu në ftp. KeepAlive = False 'do të shkëputet pas përfundimit të ftp. UseBinary = E vërtetë' mënyra binare ftp. Timeout = 9000 'timeout pas 9 sekondash ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile' shkarkoni një skedar 'të lexuar në copa si nuk e di sa i madh është skedari Përdorimi i përgjigjes Si System. Net. FtpWebResponse = CType (ftp. GetResponse, System. Net. FtpWebResponse) Përdorimi i respondStream Si IO. Stream = response. GetResponseStream Përdorimi i fs Si IO i ri. FileStream (localFile, IO. FileMode. Create) Tampon i zbehtë (2047) Ndërsa Byte Dim lexon Si Integer = 0 A lexoni = respondStream. Lexoni (tampon, 0, tampon. Gjatësia) 'copë nga ftp fs. Shkruani (tampon, 0, lexoni)' dhe shkruaj në skedar Loop Deri në leximin = 0 'derisa të mos ketë përgjigje më shumëStream. Close ()' mbyll skedarin ftp fs. Flush () 'shpëlaj qartë fs. Mbyll ()' dhe mbyll th e skedari Përfundimi i përdorimit të përgjigjesStream. Close () 'mbylleni edhe nëse asgjë nuk ishte aty Përfundoni Përdorimi i përgjigjes. Mbyll () PictureBox2. BackColor = Kutia jeshile Color. GreenYellow' ashtu siç funksiononte Label2. Text = "FTP e lidhur" dhe teksti që thotë punuar Fundi Duke përdorur Catch 'vendosni kodet e gabimit këtu PictureBox2. BackColor = Color. Red' kuqe 'kuqe pasi nuk funksionoi Label2. Text = "Shkarkimi i FTP dështon" dhe mesazh për ta thënë këtë Përfundo Përfundo Fundin Nën -Nën -Timer Privat 1_Tick (dërguesi ByVal Si System. Object, ByVal e As System. EventArgs) Trajton Timer1. Tick If ModifyFlag = False Pastaj 'nëse përdoruesi ndryshon një bajt atëherë mos e shkarkoni Label3. Text = "Shkarkim" System. Windows. Forms. Application. DoEvents () 'Teksti i ri i etiketës shfaq Call Call FTPDownload (TextBox3. Text)' shkarkoni skedarin e largët Label3. Text = "Shkarkohet" System. Windows. Forms. Application. DoEvents () Thirrni ReadRemoteFileToRegisters () 'ruani numrat e skedarëve në grupin e regjistrit Label3. Text = "Talking to picaxe" System. Windows. Forms. Application. DoEvents () Else ModifyFlag = E rreme 'rivendosi flamurin Përfundoni nëse Thirrni SerialTxRx () 'dërgojeni në pikak dhe lexojeni përsëri Label3. Text = "Dërguar dhe marrë nga pikazhi" System. Windows. Forms. Application. DoEvents () Thirrni DisplayPicaxeRegisters () Thirrni SaveRegistersToLocalFile ()' ruani numrat në skedar Label3. Text = "Ngarkimi" System. Windows. Forms. Application. DoEvents () Thirrni FTPUpload (TextBox3. Text) 'dërgoni përsëri në faqen ftp të quajtur si emri im Label3. Text = "Duke pushuar" Thirrni SaveFTPFilename ()' kështu lexohet kur rifilloni End Sub Sub DisplayPicaxeRegisters () Dim i As Integer Dim regjistruesi i numrit Si String RichTextBox1. Multiline = E vërtetë 'kështu që mund të shfaq më shumë se një rresht në kutinë e tekstit RichTextBox1. Clear ()' pastroni kutinë e tekstit Për i = 0 deri në 13 registernumber = Trim (Str (i)) 'shkurtoj hapësirat kryesore Nëse i <10 Atëherë registernumber = "0" + regjistrues' shtoni 0 në numrat nën 10 Fund Nëse RichTextBox1. AppendText (regjistruesi + "=" + Rr (PicaxeRegisters (i)) + Chr (13)) "Chr (13) tjetër është kthimi i karrocës, kështu që linja e re përfundon nën -butonin privat nën 1_Kliko (dërguesi ByVal Si System. Object, ByVal e As System. EventArgs) Butonat e trajtimit 1. Klikoni Dim i As Integer 'së pari dilni nga diapazoni i = Val (TextBox1. Text) Nëse i <0 Or i> 13 Pastaj TextBox1. Text = 0 Fundi Nëse i = Val (TextBox2. Text) Nëse i <0 Ose i> 255 Pastaj TextBox2. Text = 0 Përfundon Nëse PicaxeRegisters (Val (TextBox1. Text)) = Val (TextBox2. Text) 'ndryshoni vlerën Thirrni DisplayPicaxeRegisters ()' dhe rifreskoni ekranin ModifyFlag = E vërtetë 'dhe lidhja tjetër ftp kaloni shkarkimin End Sub Sub SaveRegistersToLocalFile ()' ruani grupin e regjistrit në një skedar teksti lokal Dim i As Integer FileOpen (1, TextBox3. Text, OpenMode. Output) 'hapni skedarin tekst me emrin në kutinë e tekstit Për i = 0 deri në 13 PrintLine (1, Str (PicaxeRegisters (i))) 'ruani 14 vlera FileClose tjetër (1)' mbyllni skedarin End Sub Sub ReadRemoteFileToRegisters () 'lexoni skedarin e tekstit lokal në grupin e regjistrit Dim i As Integer Dim LineOfText As String Provoni FileOpen (1, TextBox3. Text, OpenMode. Input) 'lexoni emrin e skedarit në distancë Për i = 0 deri 13 LineOfText = LineInput (1)' lexuar në 14 rreshta es PicaxeRegisters (i) = Val (LineOfText) 'konvertoni tekstin në vlera FileClose tjetër (1) Catch ex As Exception FileClose (1)' skedari nuk ekziston kështu që mos bëni asgjë Përfundo Provo Fund Nën Lexo FTPFilename () 'kështu emri i skedari i largët ftp është i njëjtë herën tjetër kur ky program të ekzekutohet Dim LineOfText As String Provoni FileOpen (1, "FTPFilename.txt", OpenMode. Input) 'hapni skedarin LineOfText = LineInput (1) TextBox3. Text = LineOfText' lexoni emri FileClose (1) Kapni si përjashtim FileClose (1) Përfundoni Provoni Fundin Nën SaveFTPFilename () FileOpen (1, "FTPFilename.txt", OpenMode. Output) 'ruani emrin e skedarit ftp të largët PrintLine (1, TextBox3. Text) FileClose (1) Fundi i klasës së nënfundimit

Hapi 9: Drejtoni programin në të dy kompjuterët

Drejtoni programin në të dy kompjuterët
Drejtoni programin në të dy kompjuterët

Filloni të ekzekutoni programin duke klikuar trekëndëshin e gjelbër në mesin e sipërm të ekranit - butonin 'Fillo Debugging'. Asgjë nuk do të ndodhë për 20 sekonda dhe më pas programi do të përpiqet të lidhet me serverin ftp dhe do të përpiqet të lidhet me pikazën. Kutitë e fotografive ose do të bëhen të kuqe ose jeshile. Vendndodhja ftp është një faqe interneti falas dhe çdokush mund ta përdorë këtë, por ju duhet të përdorni një skedar të ndryshëm pune me ftp (e imja është DoctorAcula1) përndryshe të gjithë mund të përfundojmë me të dhënat e njëri -tjetrit nëse përdorim të njëjtin emër skedari! Nëse ju pëlqen ju mund të merrni përfundimisht faqen tuaj ftp - thjesht ndryshoni vendndodhjen e ftp, emrin e përdoruesit dhe fjalëkalimin në dy vende në kodin nga faqja ime e internetit 0Catch. Shumica e faqeve të internetit lejojnë ftp. Kompjuterë të shumtë mund të kenë qasje në të njëjtin skedar ftp - serveri i ftp klasifikohet në atë mënyrë që ndodhin këto. Herë pas here ka përplasje ose varje të të dhënave dhe këto duket se ndodhin çdo 20 skedarë që lexohen. Ekziston një afat kohor në kod nëse kjo ndodh kështu që nuk kthen të dhëna sesa të dhëna të korruptuara. Përdorimi i një lidhjeje me brez të gjerë me një shpejtësi ngarkimi 128kbs do të thotë që një ngarkim i skedarit zgjat rreth 3 sekonda, por ndonjëherë deri në 8 sekonda, shumica e të cilave merren në shtrëngimin e dorës dhe jo transferimin e të dhënave. Kjo cakton kohën e kohëmatësit1 së paku 20 sekonda duke marrë parasysh shkarkimin, ngarkimin dhe bisedën me pikasen. Me brez të gjerë shumë të shpejtë mund të jeni në gjendje të shkurtoni kohën e ciklit. Ju mund të ndryshoni një regjistër me dorë brenda programit VB. Nëse e bëni këtë, cikli tjetër i kohëmatësit anashkalon shkarkimin nga faqja e ftp dhe dërgon të dhënat e reja në pikas dhe më pas i lexon dhe i ngarkon. Kështu, të dhënat e reja gjejnë rrugën drejt të gjitha pikave të lidhura me këtë grup. Kjo është e dobishme për korrigjimin dhe/ose lidhjen e programeve kompjuterike në lakun e pajisjeve të mikrokontrolluesit. Uebfaqet gjithashtu mund të hyjnë në lakun e harduerit duke përdorur skenarin PERL ose të ngjashme për të shkruar një skedar të ri në faqen ftp. Kjo pamje e ekranit është marrë duke përdorur çipin Tx, kalimi ishte i ndezur dhe regjistri b0 = në 1 ishte dërguar në çipin Rx i cili kishte ndryshuar edhe regjistrin b1 në 1 gjithashtu. Ledi u ndez kështu në të dy dërrasat. Ky është një aplikim i parëndësishëm, por është e lehtë të ndizni një pompë 3.6Kw në vend të një led. Disa ide të tjera janë në https://drvernacula.topcities.com/ duke përfshirë lidhjen e pikave përmes lidhjeve të radios me energji diellore. Me lidhjet radio plus internetin është e mundur që 'Makineritë' të arrijnë në shumë qoshe të globit. Ka disa ide në forumin e zgjedhjes për ta çuar më tej këtë ide dhe për të zëvendësuar faqen e PC dhe ftp me patate të skuqura të dedikuara të serverëve që lidhen drejtpërdrejt në një router. Cleshtë e qartë se kjo do të zvogëlonte konsumin e energjisë të një lidhjeje. Nëse jeni të interesuar për diskutime të mëtejshme ju lutemi postoni në komentet Intstructable dhe/ose në forumin e pikave. Dr. James MoxhamAdelaide, Australia e Jugut

Hapi 10: Pamjet e ekranit të Kodit

Pamjet e ekranit të Kodit
Pamjet e ekranit të Kodit

Me kërkesë, këtu janë një seri pamjesh të ekranit të kodit vb.net me të gjithë formatimin në vend. Ky kod u kopjua në të vërtetë nga ky udhëzues dhe formatimi u shfaq përsëri automatikisht. Do të ishte më mirë të kopjoni dhe ngjisni tekstin sesa të provoni të lexoni këto fotografi, por këto do të jenë të dobishme nëse jeni në një kafene interneti dhe nuk mund të instaloni vb.net.

Hapi 11: Pamja e ekranit2

Pamje e ekranit2
Pamje e ekranit2

Pamja e ekranit 2

Hapi 12: Pamja e ekranit 3

Pamja e ekranit 3
Pamja e ekranit 3

Pamja e ekranit 3

Hapi 13: Pamja e ekranit 4

Pamja e ekranit 4
Pamja e ekranit 4

Pamja e ekranit 4

Hapi 14: Pamja e ekranit 5

Pamja e ekranit 5
Pamja e ekranit 5

Pamja e ekranit 5

Hapi 15: Pamja e ekranit 6

Pamja e ekranit 6
Pamja e ekranit 6

Pamja e ekranit 6

Recommended: