Мазмұны:

Дүниежүзілік микроконтроллер сілтемесі 20 доллардан төмен: 15 қадам
Дүниежүзілік микроконтроллер сілтемесі 20 доллардан төмен: 15 қадам

Бейне: Дүниежүзілік микроконтроллер сілтемесі 20 доллардан төмен: 15 қадам

Бейне: Дүниежүзілік микроконтроллер сілтемесі 20 доллардан төмен: 15 қадам
Бейне: Көмір өнеркәсібі қалдықтарынан алынатын битум 2024, Шілде
Anonim
Дүниежүзілік микроконтроллер сілтемесі 20 доллардан төмен
Дүниежүзілік микроконтроллер сілтемесі 20 доллардан төмен

Жұмыстан үй термостатын басқарыңыз. Ажыратқышты түрту арқылы әлемнің кез келген жерінен жаңбырлатқышты қосыңыз. Бұл нұсқаулық интернеттің магистралін және VB. Net -тің қарапайым кодын қолдана отырып, екі немесе одан да көп $ 4 микроконтроллерді қалай қосуға болатынын көрсетеді, бұл микроконтроллерді компьютерге қалай қосуға болатынын және сервисті басқару үшін кастрюльді көрсететін бұрынғы нұсқаулыққа негізделген.: //www.instructables.com/id/Control-real-world-devices-with-your-PC/ Бұл жолы бізде микроконтроллер VB. Net бағдарламасымен, содан кейін ftp веб-сайтында, басқа VB. Net-те сөйлеседі. бағдарлама, содан кейін әлемнің кез келген жерінде адамның қатысуынсыз немесе қатысуынсыз екінші микроконтроллер. Матрицадағы машиналар, егер олар бір -бірімен сөйлесе алмаса, қалай басқарады?

1 -қадам: Бөлшектерді жинаңыз

Бөлшектерді жинаңыз
Бөлшектерді жинаңыз

Бөлшектердің көпшілігі ДК бақылау нұсқаулығындағы сияқты, https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ және оны әрекетті бастамас бұрын алдымен аяқтау ұсынылады. екі микроконтроллерді қосу. Серваны басқару үшін кастрюльді қолдану әбден мүмкін болса да, бұл жолы біз қарапайым нәрсеге - светодиодты қосуға барамыз. Коммутатор резервуар деңгейінің сенсоры болуы мүмкін, ал свет өзенге жақын орналасқан сорғы болуы мүмкін, бірақ алдымен қарапайым жұмыс жасайық. Бөлшектер - Екі Picaxe 08M чипі - Rev Ed https://www.rev- ed.co.uk/picaxe/ (Ұлыбритания), PH Андерсон https://www.phanderson.com/ (АҚШ) және Microzed https://www.microzed.com.au/ (Австралия). Бұл чиптердің бағасы 4 АҚШ долларынан төмен. Екеуі: Protoboard, 9В аккумулятор мен батарея қысқыштары, 10k резистор, 22k резистор, 33uF 16V конденсатор, 0,1uF конденсатор, 7805L төмен қуатты 5В реттегіш, сымдар (қатты ядролы телефон/деректер сымы, мысалы Cat5/6), LED, 1k резистор. 1: D9 әйел розеткасы мен қақпағы және 2 метрлік 3 (немесе 4) негізгі сым (жүктеу үшін) және қосқыш. 9 істікшелі сериялық порты бар 2 компьютер (бір компьютерде жөндеуге болады) және интернет байланысы бар. Сериялық порты жоқ компьютерлер үшін USB сериялық құрылғы https://www.rev-ed.co.uk/docs/axe027.pdf және шағын стерео ұясы.

2 -қадам: Кейбір бағдарламалық жасақтаманы жүктеңіз және орнатыңыз

Кейбір бағдарламалық жасақтаманы жүктеп алыңыз және орнатыңыз
Кейбір бағдарламалық жасақтаманы жүктеп алыңыз және орнатыңыз

Бізге тегін VB. Net пен пикакс контроллерінің бағдарламалық жасақтамасы қажет болады, егер сіз Instructable компьютер контроллерін орындасаңыз, сізде бұлар болады. -us/express/aa718406.aspx Picaxe бағдарламалық жасақтамасын https://www.rev-ed.co.uk/picaxe/ сайтынан алуға болады Жүктеуді алу үшін сізге microsoft -те тіркелу қажет болады -егер бұл мәселе болса, жалған электрондық поштаны пайдаланыңыз. немесе бірдеңе. Мен нақты электрондық поштаны жіберуді пайдалы деп таптым, себебі олар анда -санда жаңартулар жібереді. Мен сонымен қатар https://www.picaxeforum.co.uk/ пикаксе форумын атап өтемін, себебі бұл мұғалімдер мен тәрбиешілер жұмыс істейтін форум. мұнда студенттер әдетте бірнеше сағат ішінде сұрақтарға жауап ала алады. Форум тіпті қарапайым сұрақтарды өте жақсы түсінеді, өйткені кейбір оқушылар әлі де бастауыш сыныптарда. Өтінемін, көмек сұрауға қорықпаңыз!

3 -қадам: Жүктеу тізбегін құрыңыз

Жүктеу тізбегін құрыңыз
Жүктеу тізбегін құрыңыз

Бұл жүктеу схемасында пикакс чипі, бірнеше резистор, реттегіш және 9В батарея қолданылады. Қосымша ақпаратты picaxe құжаттамасында/анықтамада алуға болады, ол бағдарламаның анықтама мәзірінде пайда болады. Схема барлық бөлшектер тапсырылғаннан кейін бірнеше минутқа созылуы керек. Чип бағдарламаланғаннан кейін, ол электр қуаты өшірілген кезде де EEPROM бағдарламасын сақтайды. Біз екі чипті бағдарламалап отырғандықтан, чиптерді белгілеу қажет болуы мүмкін, осылайша сіз қайсысы екенін білесіз. Сілтемені алып тастау және резисторды жылжыту арқылы сіз әрқашан артқа қайтып, чипті қайта бағдарламалай аласыз.

Сондай -ақ, пикакс 3 АА батареясында бақытты жұмыс істейтінін қосуға болады. 5В реттелетін қорек аналогты кірістерді іске қосу үшін пайдалы, себебі эталондық кернеулер өзгермейді, бірақ қарапайым қосу/өшіру тізбектері үшін реттелетін қорек қажет емес. Мұндай жағдайларда 5В регистрін елемеуге болады.

4 -қадам: чиптерді бағдарламалау

Чиптерді бағдарламалау
Чиптерді бағдарламалау

Біз бір бағдарламаны Tx және бір Rx деп атаймыз. Tx - басқару чипі, қосқышы мен светодиод бар. Rx -те светодиод бар. Коммутатор өзгерген кезде сигнал Tx -тен Rx -ке ауысады, светодиодты өзгертеді, сонымен қатар екінші айнымалыны өзгертеді, содан кейін Tx -ке оралады. Коммутаторды жылжытыңыз және бір минуттан аз уақыт ішінде екі тізбекте де светодиод өзгереді, бұл хабардың келгенін және Rx жаңа қосқыш позициясында әрекет ететінін көрсетеді. Қарапайым деңгейде пикаксада 14 бір байтты регистр бар. Виртуалды желі құрылған кезде біз барлық регистрлерді байланыстырамыз, егер байт бір пикакске өзгерсе, ол барлық пикакстерде өзгереді. Егер екі пикакс бір байтты өзгертуге тырысатын болса, онда бұл өте шатастырады, бірақ егер әр пикакс тек бір байтты ғана өзгертсе, онда қалған пиксалардың бәрі бұл өзгерісті көре алады және оған әрекет ете алады. Егер белгілі бір байт тек бір пиксаға өзгерсе, қарапайым хабарларды артқа және алға жіберуге болады. Кәстрөл регистрдегі мәнді өзгерте алады, ал бір немесе бірнеше басқа пиксалар серводы немесе кез келген нәрсені өзгертіп, жылжытып, жылытқышты қосатынын сезеді. Екінші регистр бөлмедегі температураны жібере алады. Бағдарламаларды picaxe бағдарламашысына көшіріп, қойыңыз және пикска бағдарламашысының ішінен көк жүктеу көрсеткісін қолданып, оларды тиісті чиптердің әрқайсысына жүктеңіз. Tx: негізгі: serin 3, N2400, («Деректер»), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'компьютерден пакетті алады, егер pin2 = 0 содан кейін 'b0 күйіне байланысты қосқышты тексеріңіз және b0 регистрін орнатыңыз b0 = 0 басқа b0 = 1 егер b1 = 0 болса, онда' b1 басқа пикакса жиынтығы b0 төмен 1 'алып тастау басқа жоғары 1' ұшында 0, N2400, («Деректер», b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'компьютерге жіберу goto mainand Rx: main: serin 3, N2400, («Деректер»), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'компьютерден пакет алу b1 = b0' регистрін өзгерту b1 тең регистрге b1 болса b1 = 0 содан кейін төмен 1 'алып тастады басқа жоғары 1' саңылау 0, N2400, («Деректер», b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12), b13) 'goto main компьютерге жіберу

5 -қадам: Tx схемасын құрыңыз

Tx схемасын құрыңыз
Tx схемасын құрыңыз

Егер сіз жұмыс тізбегі мен бағдарламалау тізбегінің арасында алға -артқа айналдырсаңыз, 2 -ші аяққа қосылымды және 22 -ші резистордың орнын 2 -ші аяқтан 4 -ші аяққа өзгертіңіз. Немесе жүктеудің арнайы схемасын құрып, фишкаларды жылжытуға болады. бойынша. Тізбектің жұмыс істеп тұрғанын немесе жүктеліп жатқанын ескеріңіз, себебі ол шатасуы мүмкін. Атап айтқанда, егер 2 -аяғы қалқып тұрса, жұмыс істейтін схема жұмыс істемейтінін ескеріңіз - оны жерге қосу керек. Аяқ 2 - жүктеу түйреуіші, егер ол өзгермелі күйде қалса, ол флуо шамдарынан радиожиілікті қабылдайды және чип басқа бағдарлама жүктеліп жатыр деп ойлайды.

Сондай -ақ, физикалық түйреуішті аяқ және виртуалды түйреуішті пин деп атайтын пикаксалық номенклатураны атап өткен жөн. Осылайша, кодтағы 2 -ші істікшенің шығуы 5 -ші физикалық аяқтың шығысы болып табылады. Бұл таңқаларлық болып көрінуі мүмкін, бірақ бұл кодты 28 және 40 істікшелі нұсқалар сияқты үлкен пикакске тасымалдауға болатынын және әлі де жұмыс істейтінін білдіреді.

6 -қадам: Rx схемасын құрыңыз

Rx схемасын құрыңыз
Rx схемасын құрыңыз

Бұл схема таратқышпен бірдей - оның қосқышы жоқ.

7 -қадам: VB. Net кодын жазыңыз

Кейбір VB. Net кодын жазыңыз
Кейбір VB. Net кодын жазыңыз

Мен кодты жинап, бұл бағдарламаны.exe ретінде қол жетімді етер едім, бірақ VB. Net -ті үйрену соншалықты пайдалы, сондықтан оны кезең -кезеңімен өту керек. Егер сіз мұны екі түрлі компьютерде іске қоссаңыз, бағдарламаны.exe -ге құруға болады, ол екінші компьютерге орнатуға болатын кішкене орнату бағдарламасын жасайды. Немесе сіз VB. Net -ті екі компьютерге де қойып, бағдарламаларды VB. Net ішінен іске қоса аласыз https://www.instructables.com/id/S1MMU2XF82EU2GT 7 және 8 -қадамынан жаңа VB.net жобасын қалай ашуға болатынын білесіз деп ойлайық. /Бос пішінге құралдар тақтасынан келесі компоненттерді қосамыз және оларды көрсетілгендей пішінге орналастырамыз. Жапсырмалар мен мәтін жәшіктері үшін мәтіннің қасиетін (төменгі оң жақта) қажеттіге өзгертіңіз. Таймердің параметрлері туралы алаңдамаңыз - біз оларды кодта өзгертеміз, бірақ таймерді енгізгеніңізге көз жеткізіңіз. Сіз заттарды жылжыта аласыз және орналасу туралы нақты ережелер жоқ. Үлкен мәтіндік жәшік - RichTextBox, ал кіші үшеуі - қарапайым мәтіндік жәшіктер. Тапсырыс бойынша біз форманың жоғарғы бөлігінен бастаймыз және төмен қарай жүреміз. Егер сіз бірдеңе қалдырсаңыз, кодта қандай да бір түсінік беретін қате болады. Textbox3 үшін кездейсоқ файл атауын таңдаңыз - бұл ftp серверінде сіздің бірегей пикакс тобыңыздың атауы және егер біз бәріміз оны қолданатын болсақ. Дәл сол атауды жоғалтады! Бұл кестедегі сызықшалар үшін кешірім сұраймын-бос орындар кестеде пішімдеуді жоғалтады. ------------------------------ NotesLabel1 ------------------ Picaxe CommunicationsLabel2 ------------------ FTP StatusLabel3 ------------------ StatusLabel4 ---------- -------- Picaxe регистрлеріLabel5 ------------------ Тіркеу 0-13Label6 ------------------ Мән 0-255Label7 ------------------ FTP сілтемесінің файл аты Мәтіндік жәшік1 ---------------- 0 -------- -------------------------------------- 0-нөлдік емес OTextbox2 ----- ----------- 0Textbox3 ---------------- Менің файл атым --------------------- ---------- Қақтығыстар болмайтындай өзгертіңіз! Button1 ------------------ ModifyRichtextbox1 Picturebox1 Picturebox2 Timer1

8 -қадам: Кейбір кодты қосыңыз

Кейбір кодты қосыңыз
Кейбір кодты қосыңыз

Пішін көрінісі мен код көрінісі арасында ауысатын түйменің орналасуы үшін нұсқаулықтың 12 -қадамын қараңыз. Код көрінісіне ауысыңыз және келесі кодты қойыңыз. Түстер скриншоттағыдай қайтадан пайда болуы керек. Егер жол сөзді ауыстыру мәселесіне байланысты дұрыс көшірілмесе, қате туралы хабар жойылғанша бос орындарды жойыңыз. Мен көптеген жолдарды түсіндіруге тырыстым, сондықтан код кем дегенде мағынасы бар. Жалпыға ортақ сыныптың битін жойыңыз, сондықтан оны қоймас бұрын мәтін бос болады - бұл кодта жалпыға ортақ сынып бар. Егер мәтін ұясы тәрізді нысан пішінге қойылмаған болса немесе атауы қате болса, онда ол мәтіндік кодтың астында көкшіл сызықпен пайда болады. сол сияқты (және оң (stringsPublic Class Form1 Public жариялау Sub Sleep Lib «kernel32» (ByVal dwMilliseconds As Integer) 'ұйқы мәлімдемелері үшін Dim WithEvents serialPort as New IO. Ports. SerialPort' сериялық порты Dim PicaxeRegisters деп жариялайды (0 -ден 13 -ке дейін) Byte 'b0 -ден b13 -ке дейін регистрлейді Dim ModifyFlag ретінде логикалық жеке қосалқы форма1_Load (ByVal жөнелтуші ретінде объект, ByVal e ретінде System. EventArgs) Handles Me. Load' барлық қоқыс заттарын қажет етеді.net оны жоғарыға/жүктеуге барғанда автоматты түрде қосады. Timer1. Enabled = True 'бұл кодты Timer1. Interval = 20000' әр 20 секунд сайын PictureBox1. BackColor = Color. Grey 'комбинациясынан сұр PictureBox2. BackColor = Color. Gray ModifyFlag = False' жалған 'мәнін орнатқанда әдепкі мәнге қояды. егер мәнді қолмен өзгертсеңіз, s kip download RichTextBox1. Multiline = True 'сондықтан бірнеше жолды көрсете алады Call DisplayPicaxeRegisters ()' 14 регистрлерді көрсетеді ReadFTPFilename Call (14) дискідегі файл атауын оқиды (әр 20 секунд сайын қайта сақталады) Sub Sub SerialTxRx () Dim DataPacket () 0 -ден 17 -ге дейін) «Деректер» +14 байт деректер пакеті ретінде Dim i As Integer 'i әрқашан циклдар үшін пайдалы және т. I = 0 3 DataPacket үшін, 1)) 'пакетке «Деректер» сөзін қосыңыз Келесі үшін i = 0 -ден 13 -ке дейін DataPacket (i + 4) = PicaxeRegisters (i)' келесі байттарды пакетке қосады Next If serialPort. IsOpen then serialPort. Close () 'қазірдің өзінде ашылған жағдайда, егер End with Try With serialPort. PortName = «COM1»' Жаңа компьютерлердің көпшілігі әмбебап com1 болады, бірақ сериялық тінтуірі бар кез келген 1999 жылға дейінгі компьютер әмбебап com2 болады. BaudRate = 2400 '2400 - бұл максимум жылдамдық шағын пиксалар. Parity = IO. Ports. Parity. None 'parity жоқ. DataBits = 8' 8 бит. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' миллисекон ds, егер жауап болмаса, 1 секундта аяқталады. Ашық () 'сериялық портты ашыңыз. DiscardInBuffer ()' кіріс буферін тазалаңыз. Жазыңыз (DataPacket, 0, 18) 'деректер пакеті Call Sleep (300)' 100 миллисекунд егер деректер ағыны ұзағырақ болса, деректердің оралуын күтетін минимум. Оқыңыз (DataPacket, 0, 18) 'деректер пакеті массивінде қайта оқылады. Close ()' сериялық портты жабыңыз End With For i = 4-17 PicaxeRegisters (i - 4) = DataPacket (i) 'жаңа деректер пакетін регистр массивіне жылжытады (ByVal файл атауы String ретінде) Dim localFile ретінде String 'деректерді сақтауға арналған орын Dim remoteFile As String' файл атауы регистрге сезімтал, бұл Const хост ретінде String = «ftp://ftp.0catch.com» 'ескертуде 0 - бұл нөл емес таңба O Const пайдаланушы аты String = «picaxe.0catch.com» Const құпия сөзі String ретінде = «пикакетестер» Dim URI String localFile ретінде = Файл атауы қажет емес шығар, бірақ егер орын анықталса, мысалы: c: / mydirectory осылайша оңай қосыла алады remoteFile = «/» + Файл атауы 'файлына ftp серверінде «/» қосылады URI = host + remoteFile Dim ftp жүйесін жүйе ретінде қолданып көріңіз. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = Жаңа System. Net. NetworkCredential (пайдаланушы аты, құпия сөз) 'ftp. KeepAlive = False' логин болады. ftp. UseBinary = True пайдаланғаннан кейін ажырату екілік комменттерді қолдану ftp. Timeout = 9000 '9 секундтан кейін күту уақыты - өте пайдалы, себебі ftp кейде өледі (және 20 секундтық жиілік) қосылу үшін баяу болуы мүмкін ftp. Method = System. Net. WebRequestMethods. Ftp. UploadFile 'Dim fs файлын Жаңа FileStream ретінде жіберуді бастайды (localFile, FileMode. Open)' Dim filecontents (fs. Length) локальды файлын ашады fs. Read (filecontents, 0, fs. Length) fs. Close () 'Dim requestStream файлын жабыңыз Stream = ftp. GetRequestStream ()' бастау ftp сілтемесіSt ream. Write (filecontents, 0, filecontents. Length) 'request requestStream. Close ()' PictureBox2. BackColor = Color. GreenYellow сілтемесін жабыңыз 'жақсы жұмыс істеді деп жазу үшін қорапты жасылға өзгертіңіз Label2. Text = «FTP қосылған»' ол қосылды деген мәтін Catch 'байланыстыра алмайды PictureBox2. BackColor = Color. Red' жолағы қосылмай қызыл түске боялды Label2. Text = «FTP жүктеу сәтсіз болды» мәтіні қосылым сәтсіз аяқталды End End Sub Sub FTPDownload (ByVal файл атауы жол ретінде) 'DimalFile As String' деректерді сақтайтын орны үшін «Remotefile файлын жергілікті файлға жүктейді» Dim remoteFile As String файлының атауы регистрге сезімтал, бұл Const хост ретінде маңызды String = «ftp://ftp.0catch.com» Const пайдаланушы аты String = «пикса.0catch.com «Const құпия сөзі String =» picaxetester «ретінде Dim URI String ретінде 'localFile =» C: / « + Файл атауы' түбірлік каталогта сақталады, бірақ бұл localFile = Файл атауын өзгерте алады, сондықтан анықтау қажет болса, c: / қосуға болады. нақты орналасу remoteFile = «/» + Файл атауы 'қашықтағы ftp орналасуына қосылды URI = хост + remoteFile' құрады Толық адресті Dim ftp ретінде көріңіз System. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = Жаңа System. Net. NetworkCredential (пайдаланушы аты, құпия сөз). KeepAlive = False 'аяқталғаннан кейін ажыратылады ftp. UseBinary = True' екілік режимі ftp. Timeout = 9000 '9 секундтан кейін күту ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile' бөлікпен оқылатын файлды жүктеңіз ' Жауапты System. Net. FtpWebResponse = CType (ftp. GetResponse, System. Net. FtpWebResponse) ретінде пайдалану қаншалықты үлкен екенін білмеймін. IO. FileMode. Create) Dim буфері (2047) Byte Dim ретінде оқылады Integer = 0 Оқыңыз = responseStream. Read (буфер, 0, буфер. Ұзындығы) 'ftp fs. Write (буфер, 0, оқыңыз)' бөлігін оқыңыз Loop файлына жазу Оқылғанға дейін = 0 'басқа бөліктер болмайынша, жауапStream. Close ()' fs. Flush () ftp файлын жабыңыз fs. Close () 'жабыңыз және e file End Жауапты пайдалану Stream. Close () «ештеңе болмаса да жабыңыз. Жауапты пайдалануды тоқтатыңыз. Close () PictureBox2. BackColor = Color. GreenYellow» жасыл қорапшасы Label2. Text = «FTP қосылды» 'және оны айтатын мәтін Catch арқылы жұмыс істеу аяқталды 'қате кодтарын осында қойды PictureBox2. BackColor = Color. Red' қызыл ұясы, себебі ол жұмыс істемеді Label2. Text = «FTP жүктеу сәтсіз болды» және бұл туралы хабарлама жіберіңіз End Sub Sub Sub Timer1_Tick (ByVal жіберуші System. Object ретінде, ByVal e As System. EventArgs ретінде) Таймерді өңдейді 1. Егер ModifyFlag = False Содан кейін 'белгісін қойыңыз, егер пайдаланушы байтты өзгертсе, Label3. Text = System. Windows. Forms. Application. DoEvents () жүктелмейді « 'сондықтан жаңа жапсырма мәтіні Call FTPDownload (TextBox3. Text)' қашықтағы файлды жүктеу Label3. Text = «Жүктелген» System. Windows. Forms. Application. DoEvents () ReadRemoteFileToRegisters () файл нөмірлерін Label3. Text регистрлік массивіне сақтауға шақырады. = «Пикакспен сөйлесу» System. Windows. Forms. Application. DoEvents () Else ModifyFlag = False 'жалаушаны қалпына келтіреді. Аяқталса, SerialTxRx () 'пиксахаға жібереді және оны оқиды Label3. Text = «picaxe жіберілді және алынды» System. Windows. Forms. Application. DoEvents () DisplayPicaxeRegisters -ке қоңырау шалыңыз) SaveRegistersToLocalFile () нөмірлерін файлға сақтаңыз Label3. Text = «Жүктелуде» System. Windows. Forms. Application. DoEvents () FTPUpload -ға қоңырау шалыңыз (TextBox3. Text) 'менің атым Label3. Text = «Демалып жатыр» SaveFTPFilename ()' деп аталатын ftp сайтына жіберу қайта қосқанда End Sub Sub DisplayPicaxeRegisters () Dim i As Integer Dim Registernumber As String RichTextBox1. Multiline = True 'сондықтан RichTextBox1. Clear () мәтін жолағында бірнеше жолды көрсете алады, i = 0 мен 13 аралығында registernumber = Trim (Str (i)) 'жетекші бос орындарды қиып алса, егер i <10 Содан кейін registernumber = «0» + регистернумер' 10 астындағы сандарға 0 қосыңыз, егер RichTextBox1. AppendText (registernumber + «=» + Str (PicaxeRegisters (i))) + Chr (13)) Келесі 'chr (13) - каретканың оралуы, сондықтан жаңа жол End Sub Sub Sub Sub Button1_Click (ByVal жіберуші) System. Object, ByVal e As System. EventArgs) Басқару түймешігі 1. Dim i As Integer түймешігін басыңыз, алдымен ауқымнан шығуын тексеріңіз i = Val (TextBox1. Text) Егер i <0 немесе i> 13 болса TextBox1. Text = 0 Аяқталса i = Val (TextBox2. Text) Егер i <0 немесе i> 255 болса, онда TextBox2. Text = 0 End PicaxeRegisters (Val (TextBox1. Text)) = Val (TextBox2. Text) 'Call DisplayPicaxeRegisters ()' мәнін өзгертеді және ModifyFlag = True 'дисплейін жаңартыңыз және келесі ftp сілтемесі End Sub Sub SaveRegistersToLocalFile ()' регистрінің массивін Dim i As Integer FileOpen жергілікті мәтіндік файлында жүктеуді өткізіп жібереді (1, TextBox3. Text, OpenMode. Output) 'деп аталатын мәтіндік файлды ашыңыз. мәтін жолағында i = 0 -ден 13 -ке дейін PrintLine (1, Str (PicaxeRegisters (i))) '14 мәнді сақтау Келесі FileClose (1)' файлын жабыңыз End Sub Sub ReadRemoteFileToRegisters () 'файлын регистр массивіне оқыңыз Dim i бүтін сан ретінде Dim LineOfText ретінде String FileOpen (1, TextBox3. Text, OpenMode. Input) әрекетін қолданыңыз 'қашықтағы файл атауын оқыңыз i = 0 -ден 13 -ке дейін LineOfText = LineInput (1)' 14 линде оқылады es PicaxeRegisters (i) = Val (LineOfText) 'мәтінді мәндерге түрлендіреді Келесі FileClose (1) Exception FileClose (1) файлы ретінде ұстаңыз, сондықтан ештеңе жасамаңыз End Sub Sub Read ReadFTPFilename ()' сондықтан атауы қашықтағы ftp файлы келесі жолы бұл бағдарлама Dim LineOfText ретінде String ретінде FileOpen (1, «FTPFilename.txt», OpenMode. Input) іске қосылғанда «LineOfText = LineInput (1) TextBox3. Text = LineOfText 'файлын ашады. FileClose атауы (1) Мысал ретінде FileClose ретінде ұстаңыз (1) End Sub Sub SubFrFFilename () FileOpen (1, «FTPFilename.txt», OpenMode. Output) «қашықтағы ftp файл атауын PrintLine сақтаңыз (1, TextBox3. Text) FileClose (1) SubEnd класын аяқтаңыз

9 -қадам: Бағдарламаны екі компьютерде де іске қосыңыз

Бағдарламаны екі компьютерде де іске қосыңыз
Бағдарламаны екі компьютерде де іске қосыңыз

Бағдарламаны экранның жоғарғы жағындағы жасыл үшбұрышты басу арқылы іске қосуды бастаңыз - «Отладка жасауды бастау» түймесі. 20 секунд ішінде ештеңе болмайды, содан кейін бағдарлама ftp серверіне қосылуға тырысады және пикакске қосылуға тырысады. Сурет жәшіктері қызыл немесе жасыл түске боялады. FTP орналасуы - бұл ақысыз веб -сайт және оны кез келген адам қолдана алады, бірақ сіз басқа ftp жұмыс файл атауын пайдалануыңыз керек (менікі DoctorAcula1), әйтпесе біз бір файл атауын қолдансақ, біз бір -біріміздің деректерімізбен аяқталуымыз мүмкін! Егер сізге ұнайтын болса, сіз өзіңіздің жеке ftp сайтыңызды ала аласыз - менің 0Catch веб -сайтымдағы кодтың екі жерінде ftp орнын, пайдаланушы аты мен құпия сөзді өзгертіңіз. Көптеген веб -сайттар ftp -ге рұқсат береді. Бірнеше компьютер бір ftp файлына қол жеткізе алады - ftp файл сервері олардың қандай ретпен болатынын сұрыптайды. Кейде деректер қақтығысы немесе тоқтап қалуы болады және олар әр 20 файлды оқыған кезде болады. Егер кодексте күту уақыты бар болса, ол бүлінген деректерді емес, деректерді қайтармайды. 128кб жүктеу жылдамдығымен кең жолақты қосылымды қолдану файлды жүктеу шамамен 3 секундқа созылады, бірақ кейде 8 секундқа дейін созылады, олардың көпшілігі қабылданады. деректерді беру емес, қол алысу кезінде. Бұл жүктеуді, жүктеуді және пикакспен сөйлесуді ескере отырып, таймердің 1 уақытын кемінде 20 секундқа орнатады. Өте жылдам кең жолақты байланыстың көмегімен сіз цикл уақытын қысқарта аласыз, VB бағдарламасы бойынша регистрді қолмен өзгертуге болады. Егер бұлай болса, келесі таймер циклі ftp сайтынан жүктеуді өткізіп жібереді және жаңа деректерді пикакске жібереді, содан кейін оны қайта оқып, жүктейді. Жаңа деректер осылайша осы топқа байланысты барлық пикакстарға жол табады. Бұл жөндеуді және/немесе ДК бағдарламалық жасақтамасын микроконтроллердің аппараттық циклына қосу үшін пайдалы. Сондай -ақ, веб -сайттар ftp сайтына жаңа файл жазу үшін PERL сценарийі немесе соған ұқсас аппараттық циклге қол жеткізе алады. Бұл скриншот Tx чипі арқылы түсірілген, қосқыш қосулы және b0 = 1 регистрі Rx чипіне жіберілген. содан кейін b1 регистрін 1 -ге ауыстырды. Светодиод екі тақтада да осылайша жанды. Бұл қарапайым бағдарлама, бірақ светодиодтың орнына 3,6 кВт сорғыны қосу оңай. Басқа да идеялар https://drvernacula.topcities.com/ сайтында орналасқан, оның ішінде пикаксаларды күн сәулесінен қуат алатын радио байланыстары арқылы байланыстыру. Радио сілтемелер мен интернет арқылы «Машиналар» әлемнің көптеген бұрыштарына қол жеткізе алады. Picaxe форумында бұл идеяны әрі қарай жалғастыру және компьютер мен ftp сайтын маршрутизаторға қосылатын арнайы веб -сервер чиптерімен ауыстыру туралы бірнеше идеялар бар. Бұл сілтеменің энергия шығынын азайтатыны анық. Егер сіз әрі қарай талқылауға қызығушылық танытсаңыз, Instructable түсініктемелерде және/немесе пикаксе форумында жазыңыз. Др. Джеймс Моксхам

10 -қадам: кодтың скриншоттары

Кодтың скриншоттары
Кодтың скриншоттары

Сұраныс бойынша, барлық форматтаумен vb.net кодының скриншоттары бар. Бұл код нақты нұсқаулықтың артында көшірілді және пішімдеу автоматты түрде қайта пайда болды. Бұл суреттерді оқудан гөрі мәтінді көшіру және қою жақсы болар еді, бірақ егер сіз интернет -кафеде болсаңыз және vb.net -ті орната алмасаңыз, бұл пайдалы болады.

11 -қадам: Скриншот2

Скриншот2
Скриншот2

Скриншот 2

12 -қадам: Скриншот 3

Скриншот 3
Скриншот 3

Скриншот 3

13 -қадам: Скриншот 4

Скриншот 4
Скриншот 4

Скриншот 4

14 -қадам: Скриншот 5

Скриншот 5
Скриншот 5

Скриншот 5

15 -қадам: Скриншот 6

Скриншот 6
Скриншот 6

Скриншот 6

Ұсынылған: