Мазмуну:

Дүйнөлүк Микроконтроллер Шилтемеси 20 долларга чейин: 15 кадам
Дүйнөлүк Микроконтроллер Шилтемеси 20 долларга чейин: 15 кадам

Video: Дүйнөлүк Микроконтроллер Шилтемеси 20 долларга чейин: 15 кадам

Video: Дүйнөлүк Микроконтроллер Шилтемеси 20 долларга чейин: 15 кадам
Video: Контрольная лампа переменного тока с диммером Arduino AC 2024, Ноябрь
Anonim
Дүйнөлүк Микроконтроллер Шилтемеси 20 долларга чейин
Дүйнөлүк Микроконтроллер Шилтемеси 20 долларга чейин

Жумуштан үйдөгү термостатты көзөмөлдөңүз. Ачкычты басуу менен дүйнөнүн каалаган жеринен чачыраткычты күйгүзүңүз. Бул Инструкция интернеттин омурткасын жана кээ бир жөнөкөй VB. Net коддорун колдонуп, эки же андан көп $ 4 микроконтроллерди кантип байланыштыруу керектигин көрсөтөт.: //www.instructables.com/id/Control-real-world-devices-with-your-PC/ Бул жолу бизде VB. Net программасы менен, андан кийин ftp веб-сайтына, башка VB. Netке кайрылган микроконтроллер бар программасы жана андан кийин дүйнөнүн каалаган жеринде экинчи микроконтроллер, адамдын кийлигишүүсү менен же кийлигишүүсүз. Matrix'теги машиналар, эгерде алар бири -бири менен сүйлөшө албаса, кантип башкага өтүшү керек?

1 -кадам: Бөлүктөрдү чогултуу

Бөлүктөрдү чогултуу
Бөлүктөрдү чогултуу

Бөлүктөрдүн көбү PC Control Instructable менен бирдей https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ жана муну аракет кылардан мурун бүтүрүү сунушталат. эки микроконтроллерди туташтыруу. Сервону көзөмөлдөө үчүн идишти колдонууга толук мүмкүн болсо да, бул жолу биз жөнөкөй нерсеге - LEDди күйгүзүүчүгө өтүүнү көздөп жатабыз. Которгуч оңой эле танк деңгээлиндеги сенсор болушу мүмкүн, ал эми дарыяга жакын жердеги насос болушу мүмкүн, бирок келгиле, жөнөкөй иштей турган нерсени алалы. Бөлүктөр - Two Picaxe 08M фишкалары - Rev Ed, анын ичинде көптөгөн булактардан жеткиликтүү https://www.rev- ed.co.uk/picaxe/ (Улуу Британия), PH Андерсон https://www.phanderson.com/ (АКШ) жана Microzed https://www.microzed.com.au/ (Австралия). Бул чиптердин баасы 4 АКШ долларынан төмөн. Экөө: Protoboard, 9V батарейка жана батарейка клиптери, 10k каршылыгы, 22k каршылыгы, 33uF 16V конденсатору, 0.1uF конденсатору, 7805L аз кубаттуулуктагы 5V жөндөгүчү, зымдар (катуу ядро телефону/маалымат зымы, мисалы 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 PC контроллерин аткарган болсоңуз, анда булар болот. -us/express/aa718406.aspx Пикакс программасы https://www.rev-ed.co.uk/picaxe/ дарегинен жеткиликтүү, Сиз жүктөп алуу үчүн microsoft менен каттоодон өтүшүңүз керек болот -эгер бул көйгөй болсо, жасалма электрондук почта колдонуңуз же бир нерсе. Мен чындыгында электрондук почтамды берүүнү пайдалуу деп таптым, анткени алар маал -маалы менен жаңыртууларды жөнөтүп турушат. Мен дагы пикап форумун айткым келип жатат https://www.picaxeforum.co.uk/ бул форумдун мугалимдер жана тарбиячылар тарабынан иштеген түрү жана бул жерде студенттер адатта бир нече сааттын ичинде суроолорго жооп ала алышат. Форум эң жөнөкөй суроолорду да түшүнөт, анткени кээ бир окуучулар дагы эле башталгыч класстын деңгээлинде. Сураныч, жардам суроодон коркпоңуз!

3 -кадам: Жүктөө схемасын түзүңүз

Жүктөө схемасын түзүңүз
Жүктөө схемасын түзүңүз

Бул жүктөө схемасында пикакс чипи, бир нече резистор, жөнгө салуучу жана 9В батарея колдонулат. Көбүрөөк маалымат программанын жардам менюсунда пайда болгон picaxe документтеринде/жардамында бар. Райондун бардык бөлүктөрү колго тийгенден кийин бир нече мүнөткө созулушу керек. Чип программалангандан кийин, ал өчүрүлгөндө да программасын EEPROMдо сактап калат. Биз эки микросхеманы программалап жаткандыктан, бул кайсы экенин билүү үчүн чиптерди белгилөөгө арзыйт. Сиз ар дайым артка кайтып, шилтемени алып салуу жана резисторду жылдыруу аркылуу чипти кайра программалай аласыз.

Мен дагы кошумчалай алам, пикакс 3 АА батарейкасы менен бактылуу иштейт. 5V менен жөнгө салынуучу камсыздоо аналогдук кирүүлөрдү иштетүү үчүн пайдалуу, анткени шилтеме чыңалуусу өзгөрбөйт, бирок жөнгө салуу/өчүрүү схемалары үчүн жөнгө салынган жабдыктын кереги жок. 5V reg бул жагдайларда четте калышы мүмкүн.

4 -кадам: Чиптерди программалоо

Чиптерди программалоо
Чиптерди программалоо

Биз бир программаны Tx жана Rx деп атайбыз. Tx көзөмөлдөөчү чип болуп саналат жана которгуч жана жетеги бар. Rxтин да жетеги бар. Которгуч өзгөргөндө сигнал Txтан Rxке өтөт, жетектөөнү өзгөртөт жана экинчи өзгөрмөнү өзгөртөт, андан кийин Txке кайтат. Ошентип, которгучту басыңыз жана бир мүнөттөн аз убакыттын ичинде эки схемада тең жетекчи өзгөрөт, бул билдирүү ал жакка келгенин жана Rx жаңы которуштуруучу позицияда иштеп жатканын билдирет. Эң жөнөкөй деңгээлде пикаксада 14 бир байттык регистр бар. Виртуалдык тармак түзүлгөндө, биз ошол регистрлердин бардыгын бириктиребиз, эгерде байт бир пикакске өзгөрсө, ал бардык пикакстарда өзгөрөт. Түшүнүктүү, эгерде эки пикакс бир эле байтты өзгөртүүгө аракет кылып жатышса, анда ал абдан түшүнүксүз болуп калат, бирок эгерде ар бир пикакс бир байтты гана өзгөртсө, анда калган пиксактардын баары бул өзгөрүүнү көрүп, ага ылайык иш кыла алышат. Белгилүү бир байт бир пиксага гана өзгөрсө, жөнөкөй билдирүүлөрдү артка жана алдыга өткөрүүгө болот. Казан реестрдеги маанини өзгөртө алат жана бир же бир нече пикакс сервону же башка нерсени жылдырып, жылыткычты күйгүзөрүн сезе алат. Экинчи реестр бөлмөдөгү температураны кайра жөнөтө алат. Пикакс программистине программаларды кезеги менен көчүрүп чаптаңыз жана пикапс программисттин ичинен көк түшүрүү жебесин колдонуп, аларды тиешелүү чиптердин баарына жүктөп алыңыз. Tx: негизги: serin 3, N2400, ("Маалыматтар"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'pin2 болсо, компьютерден пакетти алыңыз 0 анда 'коммутаторду текшерип, b0 регистрин статуска жараша b0 = 0 башка b0 = 1 endif, эгер b1 = 0 анда' башка пикакс b1ге жараша b0 төмөн 1 'башка дагы өчүрүп өчүрөт 1' endif serout 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 = 0 анда төмөн 1 'алып салуучу башка жогорку 1' endif serout 0, N2400, ("Маалыматтар", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12), b13) 'кайра goto main компьютерине жөнөтүү

5 -кадам: Tx схемасын куруңуз

Tx Circuit куруңуз
Tx Circuit куруңуз

Эгерде сиз жумушчу схема менен программалоо схемасынын ортосунда алдыга жана артка жылып жатсаңыз, анда 2 -бутуңузга болгон байланышты жана 2 -бутуңуздан 22к каршылыгыңыздын жайгашкан жерин өзгөртүүнү унутпаңыз. Же сиз атайын жүктөө схемасын түзүп, чиптерди жылдырсаңыз болот. боюнча. Жөн эле бир схема иштеп жатабы же жүктөлүп жатканына көңүл буруңуз, анткени ал түшүнүксүз болуп калышы мүмкүн. Атап айтканда, эгер 2 -буту калкып калса, иштөөчү схема иштебей турганына көңүл буруңуз - аны жерге туташтыруу керек. Leg 2 - бул жүктөөчү пин, эгер ал калкып калса, ал флуо жарыктарынан адашып калган RFди алат жана чип башка программа жүктөлүп жатат деп ойлойт.

Пикакс номенклатурасын да белгилей кетүү керек, ал физикалык пинди бутка жана виртуалдык пинге пин деп атайт. Ошентип, коддогу 2 -пиндин чыгышы чындыгында физикалык 5 -бутка чыгаруу болуп саналат. Бул таң калычтуу көрүнүшү мүмкүн, бирок бул кодду 28 жана 40 пиндик версиялары сыяктуу чоң пикакстарга жеткирип, дагы деле иштей алат дегенди билдирет.

6 -кадам: Rx схемасын куруңуз

Rx Circuit куруңуз
Rx Circuit куруңуз

Бул схема өткөргүч менен дээрлик бирдей - анын эч кандай которгучу жок.

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 сервериндеги сиздин уникалдуу пикакс тобуңуздун аты жана эгер биз баарыбыз Ошол эле аталышта, анда маалыматтар баары бүдөмүк болот! Бул таблицанын сызыктары үчүн кечирим сурайм-боштуктарды коюу столдогу форматты жоготот. Toolbox объектиси ------- Текст ----------- ------------------------------ NotesLabel1 ------------------ Picaxe CommunicationsLabel2 ------------------ FTP StatusLabel3 ------------------ StatusLabel4 ---------- -------- Picaxe RegistersLabel5 ------------------ Каттоо 0-13Label6 ------------------ Мааниси 0-255Label7 ------------------ FTP шилтемесинин filenameTextbox1 ---------------- 0 -------- -------------------------------------- 0-бул OTextbox2 эмес нөл-2 ----- ----------- 0Textbox3 ---------------- Myfilename --------------------- ---------- Өзгөртүү ушунчалык кагылышууга алып келбейт! Button1 ------------------ ModifyRichtextbox1 Picturebox1 Picturebox2 Timer1

8 -кадам: Кээ бир кодду кошуу

Кээ бир кодду кошуу
Кээ бир кодду кошуу

Форма көрүнүшү менен коддун көрүнүшү ортосунда которулган баскычтын жайгашуусу үчүн башка көрсөтмөнүн 12 -кадамын караңыз. Код көрүнүшүнө өтүңүз жана төмөнкү кодду чаптаңыз. Түстөр скриншоттогудай эле кайра пайда болушу керек. Эгерде сап алмаштыруу көйгөйүнөн улам туура көчүрүлбөсө, анда ката тууралуу билдирүү кеткенге чейин боштуктарды жок кылыңыз. Мен көпчүлүк саптарды комментарийлөөгө аракет кылдым, ошондуктан код жок дегенде кандайдыр бир мааниге ээ. Коомдук класстын битин жок кылыңыз, андыктан аны коюудан мурун текст бош - бул коддо ачык класс бар. Эгерде текст кутусу сыяктуу объект формага жайгаштырылбаса же туура эмес аталышка ээ болсо, анда ал тексттин астына бүдөмүк көк сызык менен келет. Импорт системасы. IOImports Strings = Microsoft. сол (жана оң) сыяктуу саптар (strings үчүн Public 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 to b13 үчүн Dim ModifyFlag катары Boolean Private Sub Form1_Load (ByVal sender as Object, ByVal e as System. EventArgs) Handles Me. Load' бул таштанды нерселердин баарына муктаж -.net жогорудагы form1events/жүктөгөндө аны автоматтык түрдө киргизет Timer1. Enabled = True 'бул кодду Timer1. Interval = 20000' ар бир 20 секундда жаратылганда жалган деп коет эгер маанини кол менен өзгөртсөңүз, анда s kip download RichTextBox1. Multiline = True 'ошондуктан бир эмес, бир нече сапты көрсөтө алат Call DisplayPicaxeRegisters ()' 14 регистрлерди чагылдыруу Call ReadFTPFilename () 'файлдын атын дисктен окуу (ар бир 20 секундада) End Sub Sub SerialTxRx () Dim DataPacket (0ден 17ге чейин "Байт" бүт маалымат пакети "Маалымат" +14 байт Dim i As Бүтүн "i дайыма циклдар үчүн пайдалуу. I = 0ден 3кө чейин DataPacket (i) = Asc (Орто (" Маалыматтар ", i + 1), 1)) 'пакетке "Берилиштер" деген сөздү кошуңуз Кийинки i = 0 үчүн 13 DataPacket (i + 4) = PicaxeRegisters (i)' пакетине бардык байттарды кошуңуз Кийинки If serialPort. IsOpen Андан кийин serialPort. Close () 'эгерде ачылган болсо, анда эгерде аракет кылгыла 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) 'datapacket массивин чакырыңыз Sleep (300)' 100 миллисекунд эгер маалымат агымы узун болсо, маалыматтын кайтып келишин күтө турган минимум. Оку (DataPacket, 0, 18) 'маалымат пакетинин массивинде кайра окуу. Жабуу ()' сериялык портту жабуу End For For i = 4 To 17 PicaxeRegisters (i - 4) = DataPacket (i) 'жаңы маалымат пакетин регистр массивине жылдырат Кийинки PictureBox1. BackColor = Color. GreenYellow' иштеп Catch ex As Exception PictureBox1. BackColor = Color. Red 'иштебейт End End Sub Sub FTPUpload (ByVal Filename катары String) Dim localFile As String 'маалыматын сактоо үчүн Dim DimFileFile As String' файлынын аты регистрге чоң мааниге ээ, бул чынында эле маанилүү Const host катары String = "ftp://ftp.0catch.com" "эскертүү 0 - бул нөл эмес, символ эмес O Const колдонуучунун аты String = "picaxe.0catch.com" Const сырсөзү String = "picaxetester" 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 = New System. Net. NetworkCredential (колдонуучунун аты, сырсөз) 'ftp. KeepAlive = False' болот бир жолу бүткөндөн кийин ажыратуу ftp. UseBinary = True 'binary comms ftp. Timeout = 9000' 9 секунддан кийин күтүү убактысы - ftp кээде өлүп калуу үчүн абдан пайдалуу "жана 20 секундуктун жыштыгы) dialp байланыштары үчүн жайыраак болушу мүмкүн. Метод = System. Net. WebRequestMethods. Ftp. UploadFile 'Dim fs файлын жаңы FileStream катары жөнөтүүнү баштоо (localFile, FileMode. Open)' ачык локалдык файл Dim filecontents (fs. Length) Byte катары fs. Read (filecontents, 0, fs. Length) fs. Close () 'Dim requestStream файлын жабыңыз Stream = ftp. GetRequestStream ()' баштоо ftp шилтемесиStSt ream. Write (filecontents, 0, filecontents. Length) 'аны requestStream. Close () жөнөтүү "PictureBox2. BackColor = Color. GreenYellow" шилтемесин жабуу жакшы иштеди деп айтуу үчүн кутучаны жашыл кылып өзгөртү Label2. Text = "FTP туташты" " "Catch туташты" деген текст PictureBox2. BackColor = Color. Red 'кутучасы эч кандай байланышы жоктугуна байланыштуу кызыл түскө Label2. Text = "FTP жүктөлбөй калды" деген текст туташпай калды End End Sub Sub FTPDownload (ByVal Filename катары String) 'Remotefile файлын localfileга жүктөйт Dim localFile As String' Дайындарды сактоо үчүн Dim remoteFile As String 'файлдын аты чоң -кичине сезгич, бул чындыгында маанилүү Const host As String = "ftp://ftp.0catch.com" Const колдонуучу аты String = "picaxe.0catch.com "Const сырсөзү String As =" picaxetester "String As Dim URI 'localFile =" C: / " + Файлдын аты' дүкөндүн түп каталогунда, бирок бул localFile = Filename'ди өзгөртө алат, андыктан c: / кошсо болот чыныгы жайгашкан remoteFile = "/" + Файлдын аты 'алыскы ftp жайгашкан жерге кошулду URI = хост + remoteFile' түзөт Толук дарек Dim ftp катары аракет кылыңыз System. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (колдонуучунун аты, сырсөз) 'ftp'ге кирүү.. KeepAlive = False 'аяктагандан кийин ажыратылат ftp. UseBinary = True' бинардык режими ftp. Timeout = 9000 '9 секунддан кийин күтүү мөөнөтү ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile' файлды жүктөп алуу 'бөлүктөрүндө окулат Файлдын канчалык чоң экенин билбейм: System. Net. FtpWebResponse = CType катары жооп берүү IO. FileMode. Create) Dim buffer (2047) Byte Dim катары Integer = 0 Окугула = ResponseStream. Read (buffer, 0, buffer. Length) 'ftp fs. Write (буфер, 0, окуу)' жана Файлга жазуу Loop Окулганга чейин = 0 'башка бөлүктөргө чейин жооп бербегилеStream. Close ()' ftp файлын жабуу fs. Flush () 'flush clear fs. Close ()' жана th th жабуу e файлы EndStep аркылуу жооп берүүStream. Close () 'эч нерсе жок болсо да аны жабыңыз. Use Use Response. Close () PictureBox2. BackColor = Color. GreenYellow' жашыл кутучасы Label2. Text = "FTP туташты" жана текст Catch Use End менен иштеди "ката коддорун бул жерге койду PictureBox2. BackColor = Color. Red 'red' кызыл куту иштебей калды Label2. Text =" FTP жүктөлбөй калды "" жана билдирүү End End Sub Private Sub Timer1_Tick (ByVal жөнөтүүчү System. Object, ByVal e As System. EventArgs) Handler Timer1. Tick If If ModifyFlag = False then 'if user if a bitte then download Label3. Text = "Downloading" System. Windows. Forms. Application. DoEvents () 'Ошентип, жаңы этикетка текстинде Call FTPDownload (TextBox3. Text) көрсөтүлөт' алыскы файлды жүктөө Label3. Text = "Жүктөлгөн" System. Windows. Forms. Application. DoEvents () ReadRemoteFileToRegisters () номерине катталуу Label3. Text файл номерлери. = "Picaxe менен сүйлөшүү" System. Windows. Forms. Application. DoEvents () Else ModifyFlag = False 'желекти баштапкы абалга келтирет. Токтотуу Эгерде Call SerialTxRx () 'пиксакка жөнөтүп, аны кайра окуңуз Label3. Text = "Пикакстен жөнөтүлдү жана алынды" System. Windows. Forms. Application. DoEvents () Call DisplayPicaxeRegisters () CallRegRegistersToLocalFile () номерлерин файлга сактоо Label3. Text = "Жүктөлүүдө" System. Windows. Forms. Application. DoEvents () FTPUploadго чалуу (TextBox3. Text) 'менин атым менен аталган ftp сайтына кайра жөнөтүү Label3. Text = "Эс алуу" CallFFFFilename ()' окулат кайра жүктөөдө End Sub Sub DisplayPicaxeRegisters () Dim i As Integer Dim registernumber As String RichTextBox1. Multiline = True 'ошондуктан текст кутучасында бир нече сапты көрсөтө алат RichTextBox1. Clear ()' текст кутучасын тазалоо i = 0дөн 13кө чейин registernumber = Trim (Str (i)) 'алдыңкы боштуктарды кыркуу эгер мен <10 Анда registernumber = "0" + registernumber' 10 астындагы сандарга 0 кошуу эгерде RichTextBox1. AppendText (registernumber + "=" + Str (PicaxeRegisters (i))) + Chr (13)) Кийинки 'chr (13) - бул арабаны кайтаруу, ошондуктан жаңы сап End Sub Private Sub Button1_Click (ByVal жөнөтүүчү As System. Object, ByVal e as System. EventArgs) Handles Button 1. Dim Dim as Integer 'ди диапазонунда биринчи текшериңиз i = Val (TextBox1. Text) If i <0 or i> 13 анда TextBox1. Text = 0 End If i = Val (TextBox2. Text) Эгерде i <0 Же i> 255 анда TextBox2. Text = 0 эгер 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 As Integer Dim LineOfText String As FileOpen (1, TextBox3. Text, OpenMode. Input) 'алыскы файлдын атын окуңуз i = 0дөн 13кө чейин LineOfText = LineInput (1)' окуу 14 лин es PicaxeRegisters (i) = Val (LineOfText) 'текстти баалуулуктарга айландыруу Кийинки FileClose (1) Ex 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) Except FileClose катары карма FileClose (1) SubEnd классын аяктоо

9 -кадам: Программаны эки компьютерде тең иштетиңиз

Программаны эки компьютерде тең иштетиңиз
Программаны эки компьютерде тең иштетиңиз

Экрандын жогору жагындагы жашыл үч бурчтукту басуу менен программаны иштете баштаңыз - "Мүчүлүштүктөрдү оңдоону баштоо". 20 секундада эч нерсе болбойт, андан кийин программа ftp серверине туташууга аракет кылат жана пиксакка туташууга аракет кылат. Сүрөт кутучалары кызыл же жашыл болуп калат. Ftp жайгашкан жери - бул бекер вебсайт жана муну каалаган адам колдоно алат, бирок сиз башка ftp файлынын аталышын колдонушуңуз керек (меники DoctorAcula1), антпесе, эгер биз бир эле файлдын атын колдонсок, баарыбыз бири -бирибиздин маалыматтарыбыз менен бүтүшүбүз мүмкүн! Эгерде сиз кааласаңыз, анда сиз өзүңүздүн ftp сайтыңызды ала аласыз - менин 0Catch веб -сайтымдан ftpдин жайгашкан жерин, колдонуучунун атын жана сырсөздү коддун эки жерине алмаштырыңыз. Көпчүлүк вебсайттар ftpге уруксат беришет. Бир нече компьютер бир эле ftp файлына кире алат - ftp файл сервери бул кандай тартипте болорун иреттейт. Маал -маалы менен маалыматтар кагылышып же илинип турат жана бул ар бир 20 файлды окугандай көрүнөт. Эгерде кодексте убакыт бузулган болсо, анда ал бузулган маалыматты эмес, маалыматты кайтарбайт. 128кб жүктөө ылдамдыгы менен кең тилкелүү туташууну колдонуу файлды жүктөө 3 секундга созулат, бирок кээде 8 секундга чейин созулат. маалыматтарды берүү эмес, кол кармашуу. Бул жүктөө, жүктөө жана пикса менен баарлашууну эске алып, таймердин убактысын минимум 20 секундага чейин коёт. Өтө ылдам тилкелүү менен сиз циклдин убактысын кыскарта аласыз. VB программасынын ичинде реестрди кол менен өзгөртө аласыз. Эгер андай кылсаңыз, кийинки таймер цикли ftp сайтынан жүктөөнү өткөрүп жиберет жана жаңы маалыматты пикакске жөнөтөт, анан кайра окуп, жүктөйт. Жаңы маалыматтар ошону менен бул топко байланышкан бардык пикакстерге жол табат. Бул мүчүлүштүктөрдү оңдоо жана/же PC программасын микроконтроллердин аппараттык циклине туташтыруу үчүн пайдалуу. Вебсайттар ошондой эле PERL скриптин колдонуп же ftp сайтына жаңы файл жазуу үчүн окшош аппараттык циклге кире алышат. Бул скриншот Tx чипи менен иштетилген, которуу күйгүзүлгөн жана b0 = 1 реестри Rx чипине жөнөтүлгөн. анда b1 регистрин 1ге өзгөрткөн. Жетекчи ушинтип эки тактага тең жарык чачты. Бул анча маанилүү эмес колдонмо, бирок LEDдын ордуна 3.6Kw насосун күйгүзүү оңой. Дагы бир нече идеялар бар https://drvernacula.topcities.com/ анын ичинде пикакстерди күн энергиясы менен иштеген радио шилтемелер аркылуу байланыштыруу. Радио шилтемелер жана интернет менен "Машиналар" дүйнөнүн көптөгөн бурчтарына жетиши мүмкүн. Picaxe форумунда бул идеяны андан ары улантуу жана компьютер менен ftp сайтын роутерге туташтырылган веб -сервердин чиптери менен алмаштыруу боюнча кээ бир идеялар бар. Албетте, бул шилтеменин энергия керектөөсүн азайтат. Эгерде сизди дагы талкуулар кызыктырса, Intstructable комментарийлерге жана/же picaxe форумуна жазыңыз. Др Джеймс Моксхам

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

Сунушталууда: