Оглавление:

Управляйте устройствами реального мира с помощью ПК: 15 шагов (с изображениями)
Управляйте устройствами реального мира с помощью ПК: 15 шагов (с изображениями)

Видео: Управляйте устройствами реального мира с помощью ПК: 15 шагов (с изображениями)

Видео: Управляйте устройствами реального мира с помощью ПК: 15 шагов (с изображениями)
Видео: Как включается ПК В СТОЛЕ 2024, Ноябрь
Anonim
Управляйте устройствами реального мира с помощью ПК
Управляйте устройствами реального мира с помощью ПК

В этом руководстве показано, как взаимодействовать между ПК и микроконтроллером. Эта демонстрация будет определять значение потенциометра или любого аналогового входа, а также управлять сервоприводом. Общая стоимость составляет менее 40 долларов, включая сервопривод. Сервопривод включает микровыключатель, а затем микровыключатель включает лампу. На практике горшок может быть датчиком температуры, а сервопривод может включать нагреватель. Сервопривод можно заменить реле или другим контроллером мощности. Picaxe запрограммирован в упрощенной базовой версии, а интерфейс использует VB. Net. Все программное обеспечение доступно бесплатно. В соответствующем руководстве показано, как связать два микроконтроллера через Интернет

Шаг 1: Соберите детали

Соберите детали
Соберите детали

Список деталей: микросхема Picaxe 08M доступна из многих источников, включая Rev Ed https://www.rev-ed.co.uk/picaxe/ (Великобритания), PH Anderson https://www.phanderson.com/ (США) и Microzed https://www.microzed.com.au/ (Австралия) Protoboard, сервопривод, микропереключатель, батарея 9 В, батареи 4xAA и держатель, бирка, резистор 10 кОм, резистор 22 кОм, конденсатор 33 мкФ 16 В, конденсатор 0,1 мкФ, 7805L малой мощности 5 В регулятор, потенциометр на 10 кОм, провода (одножильный телефонный / кабель передачи данных, например, Cat5 / 6), лампочка на 6 В, гнездовая розетка D9 и крышка, 2 метра трехжильного (или четырехжильного) провода передачи данных, зажимы для батарей. Вышеупомянутые компании также продают USB для устройств с последовательным интерфейсом которые полезны для ноутбуков, у которых нет последовательного порта. Стоит отметить, что некоторые USB-последовательные устройства работают не так хорошо, как другие, и их стоит приобрести у одного из вышеперечисленных поставщиков, поскольку они были протестированы для использования с чипами Picaxe. Известно, что работает 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 Если эта ссылка не работает, выполните поиск в Google для: visual basic express download Программное обеспечение picaxe доступно по адресу https://www.rev-ed.co.uk/picaxe/. Вам необходимо зарегистрироваться в Microsoft, чтобы получить загрузку - если это проблема, используйте поддельный адрес электронной почты или что-то. На самом деле я нашел полезным дать свой реальный адрес электронной почты, поскольку они присылают периодические обновления.

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

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

Эта схема загрузки использует микросхему Picaxe, пару резисторов, стабилизатор и батарею на 9 В. Более подробная информация доступна в документации picaxe, и это займет всего несколько минут, когда все детали будут под рукой.

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

Шаг 4: Макет прототипа схемы загрузки

Макет прототипа схемы загрузки
Макет прототипа схемы загрузки

На этой фотографии показан загрузочный кабель, который представляет собой просто штекер D9 и пару метров многожильного кабеля. Большинство современных ПК имеют подключение к последовательному порту D9. ПК, построенный примерно до 1998 года, может иметь 25-контактный разъем. Я припаял около 1 см провода с твердым сердечником к концу гибких проводов, а затем наложил вокруг него термоусадочную пленку - провода с твердым сердечником входят в макетную плату намного лучше, чем гибкие провода.

Шаг 5. Загрузите программу Picaxe

Скачать программу Picaxe
Скачать программу Picaxe

Щелкните синюю стрелку, чтобы загрузить. Если он не загружается, в руководстве по эксплуатации picaxe есть несколько предложений по отладке. Вы можете попробовать загрузить простую программу для включения и выключения светодиода, чтобы проверить работу микросхемы. Эта программа сама по себе ничего не делает, пока она не будет подключена к ПК, поскольку она ожидает, что ПК что-то ей пришлет. Если загрузка прошла успешно, значит, он работает, и микросхема запрограммирована, и следующим шагом будет реконфигурация микросхемы как микросхемы последовательного интерфейса.

Скопируйте и вставьте код ниже. Чтобы просмотреть его с цветовым синтаксисом, посмотрите в View / Options / Editor. Цветовые обозначения аналогичны основным в VB. Net: serin 3, N2400, ("Данные"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'считывает горшок, затем отправляет этот ответ 0, N2400, («Данные», b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) выберите case b0 'читать бит данных b0 case <140' if <140 затем установить сервопривод в одно положение серво 2, 120 пауза 1000 'пауза в секунду else сервопривод 2, 160 пауза 1000 endselect low 2' выключить сервопривод, поскольку серин все равно это делает перейти на главную

Шаг 6: реконфигурируйте схему как схему последовательного интерфейса

Перенастройте схему как схему последовательного интерфейса
Перенастройте схему как схему последовательного интерфейса

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

Был добавлен горшок и сервопривод. Сервопривод на самом деле не нужен, и светодиод и резистор 1 кОм будут работать нормально и / или любая цепь, которую вы хотите подключить. Я просто использовал сервопривод, чтобы показать, как щелчок по чему-то на экране может заставить что-то действительно двигаться. Сервопривод работает от собственного источника питания. Этот отдельный источник питания не понадобился бы, если бы пикакси просто включали и выключали светодиоды. Picaxe готов к работе - теперь нам нужен код VB.

Шаг 7: напишите код интерфейса VB

Напишите код интерфейса VB
Напишите код интерфейса VB

После установки VB. Net запустите его, выберите File / New Project и выберите Windows Application. Вы можете нажать «Файл» / «Сохранить все» в самом начале и сохранить его в любом месте, а затем в будущем либо запустить проект из VB. Net, либо щелкнув файл.sln, который будет создан.

Шаг 8: Создайте форму VB. Net

Создайте форму VB. Net
Создайте форму VB. Net

VB создает новую пустую форму с именем Form1.vb. Вы можете изменить имя этого сейчас или позже или просто оставить его как Form1, если проект простой. Оставим как есть. Чтобы добавить некоторый контроль, нам нужно открыть панель инструментов, обведенную зеленым. Панель инструментов можно открывать и закрывать всякий раз, когда это необходимо - обычно первым шагом является добавление элементов управления, затем закрытие панели инструментов и работа над кодом. Вы можете оставить его открытым все время, но он занимает немного места на экране.

Шаг 9: добавьте таймер

Добавить таймер
Добавить таймер

Мы прокрутили панель инструментов и выбрали таймер. Дважды щелкните таймер, чтобы добавить его. Изображение часов под названием Timer1 появится внизу экрана, а справа будут выделены свойства таймера. Вы можете отредактировать их или изменить в тексте кода. Мы оставим их такими, какие они есть, и изменим их в основной части текста.

Кроме того, набор инструментов выглядит немного устрашающе, но для большинства программ необходимы лишь некоторые из них: кнопки, текстовые поля, метки, таймеры, поля с изображениями, флажки и переключатели. Возможно, откройте новую программу и поиграйте с несколькими когда-нибудь.

Шаг 10: добавьте пару кнопок

Добавьте пару кнопок
Добавьте пару кнопок

Щелкните инструмент кнопки и нарисуйте размер кнопки на форме Form1. Нам понадобятся две кнопки, поле с изображением и этикетка. Добавьте их - на следующем скриншоте все они нарисованы. Размер и положение не важны, и вы можете переименовать их позже, если хотите.

Шаг 11: форма со всеми добавленными элементами управления

Форма со всеми добавленными элементами управления
Форма со всеми добавленными элементами управления

Форма Form1 теперь выложена. Окно рядом с кнопкой Button2 представляет собой маленькое графическое окно. Вы можете поместить туда изображения, но мы просто собираемся использовать его, чтобы указать, какая кнопка была нажата, изменив цвет с красного на зеленый. Label1 отображает регистры picaxe.

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

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

Справа, обведенные зеленым кружком, расположены несколько полезных кнопок: вторая справа - это кнопка «Просмотр кода», а правая кнопка - «Дизайнер просмотра». На практике при написании кода можно переключаться между этими представлениями. Обычно, если кто-то находится в режиме конструктора, двойной щелчок по объекту, например кнопке, вызывает место в представлении кода для добавления кода или переносит его в фрагмент кода, который запускается при нажатии кнопки. Таким образом, процесс выполнения программы становится довольно интуитивно понятным - пользователь нажимает на элементы, запускает фрагменты кода, меняет экран и т. Д. Однако для наших целей мы собираемся обмануть и вставить целый кусок рабочего кода. будет иметь публичный класс Form1… End Class - выделите это и удалите. Теперь возьмите весь приведенный ниже код и вставьте его. Импорт System. IOImports Strings = Microsoft. VisualBasic ', чтобы можно было использовать такие вещи, как left (и right (для строк Public Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)' для операторов сна Dim WithEvents serialPort As New IO. Ports. SerialPort 'последовательный порт declareDim PicaxeRegisters (от 0 до 13) As Byte' регистрирует от b0 до b13Private Sub Form1_Load (ByVal sender As Object, ByVal e As System. EventArgs) Обрабатывает Me. LoadTimer1. Enable = True 'вставьте это в код по умолчанию в false, когда createdTimer1. Interval = 5000' 5 секундPictureBox1. BackColor = Color. Red 'установлен в положение' red'Array. Clear (PicaxeRegisters, 0, 13) ', вероятно, не требуется, поскольку массив объявлен blankEnd SubPrivate Sub Timer1_Tick (ByVal sender As System. Object, ByVal e As System. EventArgs) Обрабатывает тики таймера Timer1. Tick каждые 5 секунд Вызов SerialTxRx () 'разговаривать с picaxeEnd SubSub SerialTxRx () Dim LabelString As String' строка для отображения байтовых значений DataP acket (от 0 до 17) как Byte 'весь пакет данных "Data" +14 байтов Dim i As Integer' i всегда полезен для циклов и т. д. Label1. Text = "" 'очистить текст на экране For i = 0 To 3DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'добавить слово "Data" к пакетуNextFor i = 0 To 13DataPacket (i + 4) = PicaxeRegisters (i)' добавить все байты в пакетNextIf serialPort. IsOpen ThenserialPort. Close () 'на всякий случай уже открытEnd IfTryWith serialPort. PortName = "COM1"' Большинство новых компьютеров по умолчанию использует com1, но любой компьютер до 1999 года с последовательной мышью, вероятно, по умолчанию будет использовать com2. BaudRate = 2400 '2400 является maxiumum скорость для небольших пикаксов. Parity = IO. Ports. Parity. None 'no parity. DataBits = 8' 8 бит. StopBits = IO. Ports. StopBits. One 'один стоповый бит. ReadTimeout = 1000' миллисекунд, поэтому время ожидания истекает через 1 секунду если нет ответа. Open () 'открыть последовательный порт. DiscardInBuffer ()' очистить входной буфер. Write (DataPacket, 0, 18) 'отправить массив данных Call Sleep (300)' минимум 100 миллисекунд для ожидания fo r данные, чтобы вернуться и больше, если поток данных длиннее. Read (DataPacket, 0, 18) 'считывать обратно в массиве пакетов данных. Close ()' закрыть последовательный порт End WithFor i = 4 To 17LabelString = LabelString + "" + Str (DataPacket (i)) 'превратить в текстовую строкуNextLabel1. Text = LabelString' поместить текстовую строку на экранCatch ex As Exception'MsgBox (ex. ToString) 'раскомментировать это, если хотите увидеть фактическое сообщение об ошибке Label1. Text = " Timeout "'будет отображать это, если picaxe не подключено и т. Д. End TryEnd SubPrivate Sub Button1_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Обрабатывает Button1. ClickPictureBox1. BackColor = Color. Red' измените поле на redPicaxeRegisters (0) = 120 'произвольное значение для servoEnd SubPrivate Sub Button2_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Обрабатывает поле Button2. ClickPictureBox1. BackColor = Color. Green в greenPicaxeRegisters (0) = 160' произвольное значение для servoEnd Класс SubEnd

Шаг 13: Запустите программу

Запустить программу
Запустить программу

Включите picaxe, если он не включен. Запустите программу vb.net, щелкнув зеленый треугольник в верхней части экрана посередине. Справа от треугольника запуска находятся кнопка паузы и кнопка остановки, или программу можно остановить, щелкнув в правом верхнем углу x или с помощью File / Exit, если вы добавили меню. Программу можно скомпилировать, если хотите, но для отладки оставим ее работать в VB. Таймер отправляет байты каждые 5 секунд, поэтому для отображения дисплея требуется 5 секунд. Label1 отображает дамп 14 регистров picaxe.. Они отправляются в Picaxe, а затем отправляются обратно. Почти наверняка нет необходимости отправлять все 14, и ваш код можно изменить в соответствии с требованиями. Второй байт со значением 152 - это значение pot, которое изменяется от 0 до 255. Если нажать кнопку 1, он отправит значение 120 в первом байте, а если нажать кнопку 2, он отправит 160, и программа picaxe декодирует их и перемещает сервопривод. Этот код показывает, как отправлять данные и получать данные обратно от микроконтроллера. Микроконтроллер может включать все виды устройств - около 30 человек вокруг моего дома работают с разбрызгивателями, освещением, охраной, обнаруживают автомобили на подъездных дорожках, включают несколько насосов мощностью 3,6 кВт и определяют уровень воды в резервуарах. Picax можно подключать гирляндой к общей шине и даже связываться друг с другом по радиоканалам. Также можно выгружать и скачивать данные с веб-сайтов и, следовательно, использовать Интернет для подключения устройств в любой точке мира https://www.instructables. com / id / Worldwide-microcontroller-link-for-under-20 / Следующие две страницы также содержат несколько примеров того, как использовать разные датчики и как управлять разными устройствами. Доктор Джеймс Моксхэм, Аделаида, Южная Австралия

Шаг 14: Устройства ввода

Устройства ввода
Устройства ввода

Программатор picaxe содержит несколько очень полезных файлов справки, один из которых называется «Интерфейсные схемы», и он также доступен по адресу https://www.rev-ed.co.uk/docs/picaxe_manual3.pdf Это показывает, как управлять двигателями, ощущать окружающую среду и другой полезный контроль. Помимо этих схем, есть несколько, которые я использую снова и снова. Температура - датчик температуры LM35 выдает напряжение, которое может идти прямо в пикаксиал и может быть считано с помощью команды readadc или readadc10. Свет - резистор, зависящий от света, имеет сопротивление, которое изменяется от нескольких сотен Ом при ярком солнечном свете до более 5 МОм в кромешной тьме. Измерьте сопротивление на том уровне освещенности, на котором вы хотите переключиться, и подключите LDR последовательно с резистором примерно того же номинала. Например, я хотел обнаружить огни машины, подъезжающей к навесу, чтобы включить какие-то огни. Сопротивление было около 1 МОм от непрямого света, поэтому я поставил 1 МОм последовательно с LDR. Переключатель - некоторые переключатели переключаются между 5 В и 0 В (однополюсный двухпозиционный переключатель), а некоторые просто включаются и выключаются. Если переключатель включается, он может послать 5 В на микросхему picaxe, но если он выключен, контакт picaxe будет «плавающим» и может иметь любое значение. Эта схема показывает, как подключить вход к земле, когда переключатель выключен. Эта схема используется для большинства кнопочных переключателей. Потенциометр - старая добрая ручка. Поверните ручку и считайте напряжение на микросхеме. Существуют всевозможные другие электронные устройства, которые создают напряжение от 0 до 5 В или могут быть легко настроены для этого. Примерами являются магнитные датчики, влажность, скорость, прикосновение, инфракрасный свет, давление, цвет и звук. Датчики обычно стоят всего несколько долларов каждый.

Шаг 15: Управление устройствами

Управляющие устройства
Управляющие устройства

Файл справки picaxe содержит отличное объяснение того, как управлять двигателями и освещением. Вдобавок я обнаружил, что есть несколько схем, которые я использую снова и снова. Первый - это простая транзисторная схема. Микросхема picaxe может включать максимум 20 мА на вывод, что хорошо для включения светодиода, но не более того. Транзистор 547 увеличивает ток до 100 мА, что хорошо для небольших лампочек. На второй схеме показан МОП-транзистор. МОП-транзисторы практически не нуждаются в токе, чтобы управлять ими - только вольты, поэтому ими можно напрямую управлять с помощью пикаксиала. Доступны всевозможные МОП-транзисторы, но я предпочитаю тот, который называется BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Он может питаться напрямую от 5 В (в отличие от некоторых, которым требуется 10 В), но Основным преимуществом является то, что он имеет чрезвычайно низкое сопротивление при включении - 0,045 Ом, что не намного больше, чем сопротивление проводов, которые к нему можно было бы подключить. Это означает, что он не нагревается при работе с довольно высокими нагрузками, что позволяет экономить электроэнергию и затраты на радиатор. Например, вождение 5-амперной нагрузки, например автомобильной фары; Вт = ток в квадрате x сопротивление, поэтому W = 5 * 5 * 0,045 = 1,12 Вт, для чего потребуется только радиатор, такой как квадратный кусок тонкого алюминия размером 1 дюйм. Третья схема показывает реле. Для всех реле есть несколько параметров - напряжение катушки, сопротивление катушки, а также напряжение и ток нагрузки. Например, реле может иметь катушку 12 В с током в катушке 30 мА, сопротивление катушки 400 Ом и может обеспечивать напряжение до 240 В при 1 А. Ток катушки больше вольт и ампер, чем может подать пикаксиал, поэтому мы используем схему транзистора для переключения катушки. В комплекте есть диод - он подавляет обратную ЭДС при выключении реле. Обратная ЭДС - это то, что создает искру для свечи зажигания, поэтому вам не нужны эти высокие напряжения где-либо в цепи. Контакты будут иметь максимальный ток и напряжение - ток может составлять несколько ампер, а напряжение часто составляет 240 В, поэтому переключение на 12 В или 24 В будет в пределах допустимого диапазона. Если у вас нет опыта работы с электроникой, не играйте с сетевым напряжением. Существуют также небольшие реле с напряжением катушки 5 В или 6 В. Для этих реле вам может не понадобиться отдельный источник питания 12 В, просто следите за сопротивлением катушки, поскольку многие из них потребляют ток более 100 мА. Если это так, и вы используете регулятор 78L05 100 мА 5 В, вы можете заменить его на регулятор 7805, который может обеспечивать до 1 А. Реле особенно полезны для переключения переменного тока - например, соленоидов садовых дождевателей 24 В переменного тока, садовых фонарей на 12 В переменного тока и в электрически шумных средах, таких как автомобиль. Они также полезны для управления большими нагрузками, например, Picaxe, подающий 20 мА при 5 В = 0,1 Вт, управляющий транзистором 12 В при 100 мА = 1,2 Вт на реле 24 В 100 мА = 2,4 Вт на контактор, приводящий в действие насос мощностью 3600 Вт. Если вы хотите контролировать мощность таким образом, попросите электрика подключить блок управления и дать вам два выходящих провода (провода катушки для реле на 12 В), которыми вы можете управлять. Таким образом, электрик может подписаться на блоке питания, и вы сможете выполнить всю электронику, не беспокоясь о поражении электрическим током. Еще одно применение реле - это реверсивное управление двигателем. Используя широтно-импульсную модуляцию в МОП-транзисторе, вы можете управлять скоростью двигателя постоянного тока, а с помощью силового реле DPDT вы можете изменять направление. Это простой способ управления большими двигателями, подобными тем, которые используются в «войнах роботов». Пожалуйста, оставьте комментарий, если вам нужна помощь в создании чего-либо.

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