Оглавление:

Всемирная ссылка на микроконтроллер за менее чем 20 долларов США: 15 шагов
Всемирная ссылка на микроконтроллер за менее чем 20 долларов США: 15 шагов

Видео: Всемирная ссылка на микроконтроллер за менее чем 20 долларов США: 15 шагов

Видео: Всемирная ссылка на микроконтроллер за менее чем 20 долларов США: 15 шагов
Видео: Управление Миром Лекции ФСБ ( Ефимов ) 2024, Июль
Anonim
Ссылка на микроконтроллер по всему миру менее чем за 20 долларов
Ссылка на микроконтроллер по всему миру менее чем за 20 долларов

Управляйте домашним термостатом с работы. Включите ороситель из любой точки мира, щелкнув выключателем. В этом руководстве показано, как связать два или более микроконтроллера стоимостью 4 доллара США, используя магистраль Интернета и некоторый простой код VB. Net. Он основан на более раннем руководстве, в котором показано, как связать микроконтроллер с ПК и использовать горшок для управления сервоприводом https.: //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 Anderson https://www.phanderson.com/ (США) и Microzed https://www.microzed.com.au/ (Австралия). Эти чипы стоят менее 4 долларов США. Два из: Protoboard, батарея 9 В и зажимы батареи, резистор 10 кОм, резистор 22 кОм, конденсатор 33 мкФ 16 В, конденсатор 0,1 мкФ, маломощный стабилизатор 5 В 7805L, провода (твердотельный телефонный / кабель передачи данных, например, Cat5 / 6), светодиод, резистор 1 кОм. 1 из: гнездового гнезда D9 и крышки и 2 метра 3 (или 4) жилого провода передачи данных (для загрузки) и тумблера. 2 компьютера с 9-контактными последовательными портами (хотя можно отлаживать на одном компьютере) и подключением к Интернету. Для компьютеров без последовательного порта: USB-порт для подключения к последовательному устройству https://www.rev-ed.co.uk/docs/axe027.pdf и небольшой стереоразъем.

Шаг 2. Загрузите и установите некоторое программное обеспечение

Загрузите и установите некоторое программное обеспечение
Загрузите и установите некоторое программное обеспечение

Нам понадобятся бесплатные VB. Net и программное обеспечение контроллера picaxe, и если вы сделали контроллер ПК с инструкциями, они у вас уже будут. VB. Net (Visual Basic Express) доступен по адресу https://msdn2.microsoft.com/en -us / express / aa718406.aspx Программное обеспечение picaxe доступно по адресу https://www.rev-ed.co.uk/picaxe/ Вам необходимо зарегистрироваться в Microsoft, чтобы получить загрузку - если это проблема, используйте поддельный адрес электронной почты или что-то. На самом деле мне было полезно дать свой реальный адрес электронной почты, поскольку они присылают периодические обновления. Я также собираюсь упомянуть форум picaxe https://www.picaxeforum.co.uk/, поскольку это своего рода форум, в котором работают учителя и преподаватели и где студенты обычно могут получить ответы на вопросы в течение нескольких часов. На форуме очень хорошо понимаются даже самые простые вопросы, так как некоторые ученики все еще учатся в начальной школе. Пожалуйста, не бойтесь просить о помощи!

Шаг 3. Создайте схему загрузки

Создайте схему загрузки
Создайте схему загрузки

Эта схема загрузки использует микросхему Picaxe, пару резисторов, стабилизатор и батарею на 9 В. Дополнительная информация доступна в документации / справке picaxe, которая появляется в меню справки программы. После того, как все детали окажутся под рукой, на создание схемы потребуется всего несколько минут. После программирования микросхема сохраняет свою программу в EEPROM даже при отключении питания. Поскольку мы программируем две микросхемы, возможно, стоит пометить микросхемы, чтобы вы знали, какая из них какая. Вы всегда можете вернуться и перепрограммировать микросхему, удалив ссылку и переместив резистор.

Могу также добавить, что пикакси прекрасно работают от 3-х батареек АА. Регулируемый источник питания 5 В полезен для работы с аналоговыми входами, поскольку опорные напряжения не меняются, но для простых схем включения / выключения регулируемое питание не требуется. Регулятор 5 В в этих ситуациях можно не использовать.

Шаг 4: запрограммируйте чипы

Программируйте чипы
Программируйте чипы

Мы будем называть одну программу Tx и одну Rx. Tx является управляющей микросхемой и имеет переключатель и светодиод. Rx также имеет светодиод. Когда переключатель меняет положение, сигнал переходит с Tx на Rx, меняет светодиод, а также изменяет вторую переменную, которая затем возвращается к Tx. Таким образом, нажмите переключатель, и менее чем через минуту индикатор на обеих цепях изменится, указывая на то, что сообщение получено, и Rx воздействует на новое положение переключателя. На простейшем уровне picaxe имеет 14 однобайтовых регистров. Когда создается виртуальная сеть, мы связываем все эти регистры вместе, поэтому, если байт изменяется в одном пикаксе, он изменяется во всех пикаксиалах. Ясно, что если два пикакса пытаются изменить один и тот же байт, это может сильно запутать, но если каждый пикаксиал изменяет только один байт, тогда все остальные пикаксы могут видеть это изменение и могут действовать в соответствии с ним. Простые сообщения могут передаваться вперед и назад, если определенный байт изменяется только на один пик. Горшок может изменять значение в регистре, и один или несколько других пикаксов могут ощущать это изменение, перемещать сервопривод или что-то еще и включать нагреватель. Второй регистр может вернуть температуру в комнате. Скопируйте и вставьте программы по очереди в программатор picaxe и загрузите их в каждый из соответствующих чипов, используя синюю стрелку загрузки из программатора picaxe. Tx: main: 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, то' other picaxe устанавливает b1 в зависимости от b0 low 1 'светодиод выключен else high 1' светодиод на endif serout 0, N2400, ("Данные", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'отправить обратно на компьютер goto main и Rx: main: serin 3, N2400, («Данные»), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'получить пакет от компьютера b1 = b0' изменить регистр b1 на регистр b0, если 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

Постройте цепь передачи
Постройте цепь передачи

Если вы переключаетесь между рабочей схемой и схемой программирования, обязательно измените подключение к ножке 2 и расположение резистора 22 кОм с ножки 2 на ножку 4. Или вы можете создать специальную схему загрузки и переместить микросхемы. через. Просто отметьте, работает схема или загружается, так как это может сильно запутать. В частности, обратите внимание, что работающая цепь не будет работать, если нога 2 останется плавающей - ее необходимо заземлить. Ножка 2 - это штифт загрузки, и если его оставить плавающим, он улавливает паразитные радиочастоты от флуоресцентных ламп, и чип считает, что загружается другая программа.

Также стоит упомянуть номенклатуру picaxe, которая называет физическую булавку ногой, а виртуальную булавку булавкой. Таким образом, вывод на выводе 2 в коде на самом деле является выводом на физическом участке 5. Это может показаться странным, но это означает, что код может быть перенесен на более крупные пикаксы, такие как версии с 28 и 40 выводами, и при этом работать.

Шаг 6: Постройте цепь Rx

Постройте цепь Rx
Постройте цепь Rx

Эта схема почти такая же, как и передатчик, только без переключателя.

Шаг 7: напишите код VB. Net

Напишите код VB. Net
Напишите код VB. Net

Я мог бы скомпилировать код и сделать эту программу доступной в виде скомпилированного.exe, но изучение VB. Net настолько невероятно полезно, что стоит пройти его шаг за шагом. Если вы запускаете это на двух разных компьютерах, вы можете встроить программу в.exe, который создаст небольшую программу установки, которую можно установить на второй компьютер. Или вы можете разместить VB. Net на обоих компьютерах и запускать программы из VB. Net Предположим, вы знаете, как открыть новый проект VB.net из шагов 7 и 8 https://www.instructables.com/id/S1MMU2XF82EU2GT / В пустую форму добавим следующие компоненты с панели инструментов и поместим их в форму в местах, как показано. Для меток и текстовых полей измените свойство текста (в правом нижнем углу) на то, что необходимо. Не беспокойтесь о настройках таймера - мы изменим их в коде, но обязательно установите таймер. Вы можете перемещать вещи, и нет никаких реальных правил относительно местоположения. Большое текстовое поле - это RichTextBox, а три меньших - обычные текстовые поля. Что касается порядка, мы начинаем с верхней части формы и движемся вниз. Если вы что-то пропустите, в коде будет ошибка, которая должна дать какую-то подсказку. Выберите случайное имя файла для Textbox3 - это имя вашей уникальной группы пикаксов на ftp-сервере и, очевидно, если мы все будем использовать одно и то же имя, тогда данные будут запутаны! Извините за тире в этой таблице - вставка пробелов теряет форматирование в таблице. Объект Toolbox ------- Текст ----------- ------------------------------ NotesLabel1 ------------------ Picaxe CommunicationsLabel2 ------------------ FTP StatusLabel3 ------------------ StatusLabel4 ---------- -------- Picaxe RegistersLabel5 ------------------ Регистр 0-13Label6 ------------------ Значение 0-255Label7 ------------------ FTP-ссылка filenameTextbox1 ---------------- 0 -------- -------------------------------------- 0 - это ноль, а не OTextbox2 ----- ----------- 0Textbox3 ---------------- Мое имя файла --------------------- ---------- Изменить, чтобы не было конфликтов! Button1 ------------------ ModifyRichtextbox1 Picturebox1 Picturebox2 Timer1

Шаг 8: добавьте код

Добавить код
Добавить код

См. Шаг 12 других инструкций, чтобы узнать расположение кнопки, которая переключает между представлением формы и представлением кода. Переключитесь в режим просмотра кода и вставьте следующий код. Все цвета должны снова появиться, как на снимке экрана. Если строка не скопирована должным образом из-за проблемы с переносом слов, удаляйте пробелы, пока не исчезнет сообщение об ошибке. Я попытался прокомментировать большинство строк, чтобы код имел хоть какой-то смысл. Удалите бит открытого класса, чтобы текст был пустым, прежде чем вставлять его - в этом коде уже есть открытый класс. Если такой объект, как текстовое поле, не был помещен в форму или имеет неправильное имя, он появится в текстовом коде с волнистой синей линией под ним. Импортирует System. IOImports Strings = Microsoft. VisualBasic ', поэтому можно использовать такие вещи, как left (и right (для строк Public Class Form1 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) 'для операторов сна Dim WithEvents serialPort As New IO. Ports. SerialPort' последовательный порт объявляет Dim PicaxeRegisters (от 0 до 13) As Byte 'регистрирует от b0 до b13 Dim ModifyFlag как Boolean Private Sub Form1_Load (ByVal sender As Object, ByVal e As System. EventArgs) Обрабатывает Me. Load' нужен весь этот мусор -.net вставляет его автоматически, когда идет form1events выше / load Timer1. Enabled = True 'вставьте в код по умолчанию значение false при создании Timer1. Interval = 20000' каждые 20 секунд PictureBox1. BackColor = Color. Gray 'начать с серыми полями связи PictureBox2. BackColor = Color. Gray ModifyFlag = False' если изменить значение вручную, то s kip загрузить RichTextBox1. Multiline = True ', чтобы можно было отображать более одной строки Call DisplayPicaxeRegisters ()' отображать 14 регистров Call ReadFTPFilename () 'считывать имя файла с диска (сохраняется каждые 20 секунд) End Sub Sub SerialTxRx () Dim DataPacket (От 0 до 17) В виде байта 'весь пакет данных «Data» +14 байтов Dim i As Integer' i всегда полезен для циклов и т. Д. Для i = от 0 до 3 DataPacket (i) = Asc (Mid («Data», i + 1, 1)) 'добавить слово «Data» к пакету Next For i = 0 To 13 DataPacket (i + 4) = PicaxeRegisters (i)' добавить все байты в пакет Next If serialPort. IsOpen Then serialPort. Close () 'на всякий случай уже открыт Конец, если Попробуйте с serialPort. PortName = "COM1"' Большинство новых компьютеров по умолчанию использует com1, но любой компьютер до 1999 года с последовательной мышью, вероятно, по умолчанию будет использовать com2. BaudRate = 2400 '2400 - максимальная скорость для маленькие пикакси. ds, поэтому время ожидания истекает через 1 секунду, если нет ответа. Open () 'открыть последовательный порт. DiscardInBuffer ()' очистить входной буфер. Write (DataPacket, 0, 18) 'отправить массив пакетов данных Call Sleep (300)' 100 миллисекунд минимум для ожидания возврата данных и больше, если поток данных длиннее. Read (DataPacket, 0, 18) 'читать обратно в массив пакетов данных. Close ()' закрыть последовательный порт End With For i = 4 To 17 PicaxeRegisters (i - 4) = DataPacket (i) 'переместить новый пакет данных в массив регистров Next PictureBox1. BackColor = Color. GreenYellow' работает Catch ex As Exception PictureBox1. BackColor = Color. Red 'не работает End Try End Sub Sub FTPUpload (ByVal Filename As String) Dim localFile As String 'место для хранения данных Dim remoteFile As String' имя файла чувствительно к регистру, это действительно важно Const host As String = "ftp://ftp.0catch.com" 'обратите внимание, что 0 - это ноль не символ O Const имя пользователя As String = "picaxe.0catch.com" Const пароль As String = "picaxetester" Dim URI As String localFile = Filename 'возможно, не требуется, но если указать местоположение, например, c: / mydirectory, можно легко добавить таким образом remoteFile = "/" + Filename' файл на ftp-сервере необходимо добавить "/" перед URI = host + remoteFile Попробуйте Dim ftp As 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 иногда умирает (и тактовая частота 20 секунд) может потребоваться медленнее для коммутируемых подключений ftp. Method = System. Net. WebRequestMethods. Ftp. UploadFile 'начать отправку файла Dim fs As New FileStream (localFile, FileMode. Open)' открыть локальный файл Dim filecontents (fs. Length) As Byte 'прочитать в память fs. Read (filecontents, 0, fs. Length) fs. Close () 'закрыть файл Dim requestStream As Stream = ftp. GetRequestStream ()' запустить ftp link requestSt ream. Write (filecontents, 0, filecontents. Length) 'отправить запросStream. Close ()' закрыть ссылку PictureBox2. BackColor = Color. GreenYellow 'изменить цвет поля на зеленый, чтобы сказать, что все работает нормально Label2. Text = "FTP Connected"' текст о подключении Catch 'не удается подключить PictureBox2. BackColor = Color. Red' к красному, так как нет подключения Label2. Text = "FTP Upload Fail" 'текст, сообщающий о сбое подключения End Try End Sub Sub FTPDownload (ByVal Filename As String) 'загружает удаленный файл в локальный файл Dim localFile As String' место для хранения данных Dim remoteFile As String 'имя файла чувствительно к регистру, это действительно важно Const host As String = "ftp://ftp.0catch.com" Const имя пользователя As String = "picaxe.0catch.com "Const password As String =" picaxetester "Dim URI As String 'localFile =" C: / "+ Filename' хранить в корневом каталоге, но может изменить это localFile = Filename ', чтобы можно было добавить c: \, если необходимо определить фактическое местоположение remoteFile = "/" + имя файла 'добавлено к удаленному адресу ftp URI = host + remoteFile' составляют полный адрес Попробуйте Dim ftp As 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' загрузить файл 'читается по частям как не знаю, насколько велик файл. Использование response As System. Net. FtpWebResponse = CType (ftp. GetResponse, System. Net. FtpWebResponse) Использование responseStream как IO. Stream = response. GetResponseStream Использование fs как нового IO. FileStream (localFile, IO. FileMode. Create) Dim buffer (2047) As Byte Dim read As Integer = 0 Do read = responseStream. Read (buffer, 0, buffer. Length) 'кусок из ftp fs. Write (buffer, 0, read)' и запись в файл Цикл до чтения = 0 'до тех пор, пока больше не останется фрагментов responseStream. Close ()' закройте ftp-файл fs. Flush () 'flush clear fs. Close ()' и закройте th e файл End Using responseStream. Close () 'закройте его, даже если там ничего не было End Using response. Close () PictureBox2. BackColor = Color. GreenYellow' зеленый прямоугольник, как он работал Label2. Text = "FTP Connected" 'и текст, говорящий об этом работает Конец Использование Catch 'поместите здесь коды ошибок PictureBox2. BackColor = Color. Red' красное поле, так как это не сработало Label2. Text = "FTP Download Fail" 'и сообщение, чтобы сказать это End Try End Sub Private Sub Timer1_Tick (ByVal sender Как System. Object, ByVal e As System. EventArgs) Обрабатывает Timer1. Tick If ModifyFlag = False Then ', если пользователь изменил байт, не загружайте Label3. Text = "Downloading" System. Windows. Forms. Application. DoEvents () 'поэтому отображается текст новой метки Call FTPDownload (TextBox3. Text)' скачать удаленный файл Label3. Text = "Downloaded" System. Windows. Forms. Application. DoEvents () Call ReadRemoteFileToRegisters () 'сохранить номера файлов в массив регистров Label3. Text = "Talking to picaxe" System. Windows. Forms. Application. DoEvents () Else ModifyFlag = False 'сбросить флаг End If Call SerialTxRx () 'отправляем на picaxe и считываем его обратно Label3. Text = "Отправлено и получено от picaxe" System. Windows. Forms. Application. DoEvents () Вызов DisplayPicaxeRegisters () Вызов SaveRegistersToLocalFile ()' сохраняет номера в файл Label3. Text = "Загрузка" System. Windows. Forms. Application. DoEvents () Вызов FTPUpload (TextBox3. Text) 'отправить резервную копию на ftp-сайт с моим именем Label3. Text = "Resting" Вызвать SaveFTPFilename ()' так читается в при перезапуске End Sub Sub DisplayPicaxeRegisters () Dim i As Integer Dim registernumber As String RichTextBox1. Multiline = True ', чтобы можно было отображать более одной строки в текстовом поле RichTextBox1. Clear ()' очистить текстовое поле For i = 0 To 13 registernumber = Trim (Str (i)) 'обрезать ведущие пробелы, если i <10 Then registernumber = "0" + registernumber' добавить 0 к числам меньше 10 End If RichTextBox1. AppendText (registernumber + "=" + Str (PicaxeRegisters (i)) + Chr (13)) Далее 'chr (13) - это возврат каретки, поэтому новая строка End Sub Private Sub Button1_Click (ByVal sender Как System. Object, ByVal e As System. EventArgs) Обрабатывает Button1. Click Dim i As Integer 'сначала выйдет за пределы диапазона i = Val (TextBox1. Text) Если i <0 или i> 13, то TextBox1. Text = 0 End If i = Val (TextBox2. Text) Если i <0 или i> 255, то TextBox2. Text = 0 End If 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) 'открыть текстовый файл с именем в текстовом поле For i = 0 To 13 PrintLine (1, Str (PicaxeRegisters (i))) 'сохранить 14 значений Next FileClose (1)' закрыть файл End Sub Sub ReadRemoteFileToRegisters () 'прочитать локальный текстовый файл в массив регистров Dim i As Integer Dim LineOfText As String Попробуйте FileOpen (1, TextBox3. Text, OpenMode. Input) 'прочтите имя удаленного файла For i = 0 до 13 LineOfText = LineInput (1)' прочитанное в 14 лин. es PicaxeRegisters (i) = Val (LineOfText) 'преобразовать текст в значения Next FileClose (1) Catch ex As Exception FileClose (1)' Файл не существует, поэтому ничего не делать End Try End Sub Sub ReadFTPFilename () ', поэтому имя файла удаленный ftp-файл будет таким же в следующий раз, когда эта программа будет запущена. Dim LineOfText As String Попробуйте FileOpen (1, "FTPFilename.txt", OpenMode. Input) 'откройте файл LineOfText = LineInput (1) TextBox3. Text = LineOfText' прочтите name FileClose (1) Catch ex As Exception FileClose (1) End Try End Sub Sub SaveFTPFilename () FileOpen (1, "FTPFilename.txt", OpenMode. Output) 'сохранить имя удаленного ftp-файла PrintLine (1, TextBox3. Text) FileClose (1) Конец класса SubEnd

Шаг 9: Запустите программу на обоих ПК

Запустите программу на обоих ПК
Запустите программу на обоих ПК

Запустите программу, щелкнув зеленый треугольник в верхней средней части экрана - кнопку «Начать отладку». В течение 20 секунд ничего не произойдет, а затем программа попытается подключиться к ftp-серверу и попытается подключиться к picaxe. Окна с картинками станут красными или зелеными. Местоположение ftp - это бесплатный веб-сайт, и любой может использовать его, но вам нужно использовать другое рабочее имя файла ftp (мое - DoctorAcula1), иначе мы все можем получить данные друг друга, если будем использовать одно и то же имя файла! Если хотите, в конечном итоге вы можете получить свой собственный ftp-сайт - просто измените местоположение ftp, имя пользователя и пароль в двух местах кода с моего веб-сайта 0Catch. На большинстве веб-сайтов разрешен ftp. Несколько компьютеров могут получить доступ к одному файлу ftp - файловый сервер ftp определяет, в каком порядке это происходит. Иногда возникают конфликты данных или зависания, и это, кажется, происходит каждые 20 чтений файла. Если это произойдет, в коде есть тайм-аут, поэтому он не возвращает данные, а не возвращает поврежденные данные. Использование широкополосного соединения со скоростью загрузки 128 Кбит / с означает, что загрузка файла занимает около 3 секунд, но иногда и до 8 секунд, большая часть которых занята. при установлении связи, а не при передаче данных. Это устанавливает время таймера1 минимум на 20 секунд с учетом загрузки, выгрузки и чата с picaxe. С очень быстрой широкополосной связью вы можете сократить время цикла. Вы можете изменить регистр вручную в программе VB. Если вы это сделаете, следующий цикл таймера пропускает загрузку с сайта ftp и отправляет новые данные на picaxe, а затем считывает их и загружает. Таким образом, новые данные попадают во все пикаксы, связанные с этой группой. Это полезно для отладки и / или для связывания программного обеспечения ПК с аппаратным циклом микроконтроллера. Веб-сайты также могут получить доступ к аппаратному циклу с помощью сценария PERL или аналогичного, чтобы записать новый файл на сайт ftp. Этот снимок экрана был сделан с использованием микросхемы Tx, переключатель был включен, а регистр b0 = to 1 был отправлен на микросхему Rx, которая затем также изменил регистр b1 на 1. Таким образом, на обеих платах загорелся светодиод. Это тривиальное приложение, но вместо светодиода легко включить насос мощностью 3,6 кВт. Еще несколько идей можно найти на 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

Рекомендуемые: