Arduino <> Firmata <> Visual Basic .NET

от автора


В данной статье, я хочу сделать обзор библиотеки на языке .NET для взаимодействия с аппаратной платформой Arduino.
Так как на просторах Хабра, я не видел упоминания о данной библиотеке то я решил взять в свои руки, данную инициативу.
В данной статье я буду давать примеры исключительно на языке VB.NET, но вы можете использовать данную библиотеку на любом другом языке .NET

Занимаясь разработкой специализированного комплекса, для выполнения нужных мне задач, я столкнулся с проблемой того что при моих потребностях, весь код может не влезть в память микроконтроллера а так же с учетом того что устройство должно взаимодействовать с ПК или же при отсутствии ПК давать тот же функционал.

Arduino <> Firmata <> Visual Basic .NET

В результате поисков я наткнулся на протокол Firmata для аппаратной платформы Arduino, и так как у меня пылилась Arduino Mega 2560, то я решил воспользоваться. В процессе ознакомления мне почему то данный протокол начал нравиться все меньше и меньше пока я не наткнулся на страницу Andrew Craigie, который написал библиотеку взаимодействия протокола Firmata с языками .NET.

На сайте автора данны бесплатные примеры и исходники, скачав которые можно в принципе разобраться самому, также там есть уже готовые модули которые можно использовать для себя

Готовый модуль использования цифровых выводов платы Arduino

Готовый модуль работы с аналоговыми входами платы Arduino

Но я же рекомендую использовать только компонент Firmata.Vb

Примеры и как использовать

Для того что бы работать с данной библиотекой, нам в нашу Arduino достаточно загрузить из примеров:Standart Firmata.
На этом программирование с платой для нас закончено.
Теперь же, загрузив студию и добавив компонент, можем приступить к работе

Hello World >> Led ON!

Для того чтобы просто зажечь светодиод подключенный к порту платы достаточно прописать следующий код:
Добавляем на форму компонент FirmataVB

<code>Public Class Form1      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load         FirmataVB1.COMPortName = "COM5" ''Указываем наш COM порт платы         FirmataVB1.Baud = "57600" ''Указываем скорость порта         FirmataVB1.Connect() ''Подключаемся к плате     End Sub      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click         FirmataVB1.PinMode(6, 1) ''Указываем номер вывода и его состояние, в нашем случае 6-й вывод на выход         FirmataVB1.DigitalWrite(6, 1) ''Зажигаем светодиод на 6-м выводе     End Sub      Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed         FirmataVB1.Disconnect() ''Закрываем порт при закрытии программы     End Sub End Class</code> 
PWM

Для того что бы использовать PWM(ШИМ) то в коде нужно сделать небольшие изменения.

FirmataVB1.PinMode(6,<b>3</b>), где 3 — это переход в режим PWM
FirmataVB1.DigitalWrite(6, <b>x</b>), где x — это значение от 0 до 255

Analog

Для работы с аналоговым входом мы указываем

FirmataVB1.PinMode(6,<b>0</b>), где 0 — перевод в режим входа
<b>x</b> = FirmataVB1.AnalogRead(<b>6</b>), где x — переменная в которую мы получаем значения порта, и 6 — порта

Заключение

Как по мне библиотека написана не зря и лично мне сэкономила много времени.
Надеюсь данная статья кому-то будет интересна и полезна.

Сайт библиотеки Firmata.VB.NET
Сайт протокола Firmata

ссылка на оригинал статьи http://habrahabr.ru/post/169707/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *