こんにちは、ENGかぴです。
VB.NET(Visual Basic 2022)はWindowsやAndroidなどで動作するアプリケーションを開発するための総合開発環境です。Visual Studio Communityは基本無料で使用できるため個人の趣味でアプリを作ってみたい方やプログラミングの学習にお勧めの開発環境です。
以下はVisual Basic 2022をVB2002とします。
VB.NET(VB2022)で作成したデスクトップアプリでボタンなどのコンテンツの追加方法やイベントの追加に加えてArduinoマイコンとシリアル通信する方法やイーサーネット通信を実装する方法をまとめています。
一部VB2019を使用している記事がありますが、VB2022でも同様の方法で動作します。
VB.NET(VB2022)の開発環境の作り方
VB2022のダウンロードからインストール手順をまとめています。またプロジェクトの作成方法についてまとめています。
インストール先を指定するインストーラーを作成する
VB.NETで作成したアプリケーションのインストーラを作成することで他のパソコンにインストールできるようになります。VB2019(VB2022)でユーザーがインストール先を指定できるように拡張機能を使ったインストーラの作成方法をまとめました。
ボタンの実装とイベントを追加
ボタンはクリックされたときに規定の処理を行わせる場合に実装します。デザインのフォームにボタンを追加し、クリックイベントを追加して処理する方法をまとめています。
タイマの追加とイベントを追加
タイマはアプリでインターバルを持たせて処理する場合に実装します。フォームにタイマを追加する方法をまとめました。注意事項としてタイマのインターバルが短いと誤差が大きくなる事例についてまとめています。
PR:スキマ時間を有効に!スマホで学べる人気のオンライン資格講座【スタディング】まずは気になる講座を無料で体験しよう!
SerialPortの実装とイベントの追加
シリアル通信はと外部機器との双方向通信を行う場合に使用します。SerialPortコンテンツを追加して受信イベントを追加します。USB接続やRS232C接続をすると生成されるCOMポートを検索して外部機器と通信する方法をまとめています。
Arduino UNOを外部機器として使用しUSB接続で生成されたCOMポートを使用してシリアル通信を行いました。Arduino UNOを使用方法などは下記記事を参考にしてください。
TrackBarの実装とイベントを追加
TrackBar(トラックバー)は音声のボリュームの調整を行う用途などで使用されるスライダーです。TrackBarをフォームに追加し、スライダーの操作でイベントを発生させて操作量を外部機器に送信して動作確認を行いました。
TextBoxの実装とイベントを追加
TextBox(テキストボックス)はユーザーに文字を入力させる場合に使用します。テキストをUTF-8及びSHIFT-JISのページコード(文字コード)でバイナリデータに変換し、バイナリデータからテキストに変換する方法を説明します。また、テキスト入力を制限する方法を説明しています。
自局のIPアドレスを取得する
VB.NETでイーサーネット通信を行うために必要なローカル(自局)IPアドレスを取得する方法をまとめました。ネットワークインターフェースから取得する方法とDNSクラスから取得する方法を説明しています。
UDP通信を行う
VB.NETでUDP通信を行う方法をまとめました。UDPパケットの受信待ちを非同期受信で行うと受信待機でアプリが固まることなく処理を行うことができます。外部機器にArduino UNO(Ethernet SHIELD)を使用して動作確認を行いました。
UDPパケットの受信待ちをタスクを生成して行う方法をまとめました。メイン処理とは別のタスク(スレッド)で受信待ちを行うためアプリが固まることなく処理を行うことができます。
TCP通信を行う
VB.NETでTCPクライアントを実装する方法をまとめました。TCP通信の接続及び受信処理を非同期処理で行うことでアプリが固まることなく処理を行うことができます。外部機器にArduino UNO(Ethernet SHIELD)を使用して動作確認を行いました。
TCP接続及びパケットの受信待ちをタスクを生成して行う方法をまとめました。メイン処理とは別のタスク(スレッド)で接続待ちと受信待ちを行うためアプリが固まることなく処理を行うことができます。
VB.NETでTCPサーバーを実装する方法をまとめました。TCPサーバーはTCPクライアントからの接続要求を受け入れて双方向通信を行います。接続待機や受信待機を非同期処理で行うことでアプリが固まることなく処理を行うことができます。外部機器にESP-WROOM-32Eを使用しています。
非同期処理を非同期のタスクを生成して行う方法に置き換えてTCPサーバーを実装する方法をまとめました。非同期処理とタスクを生成する方法は同様の動作となるため好みによって使い分けすることができます。
設定項目を保存して読み込む
VB.NETのソリューションエクスプローラーのMy Projectから設定を選択して任意の設定項目を追加することでMy.Settingsクラスを使用して設定項目の保存、読み込みができるようになります。
シリアル通信やLAN通信に使用するIPアドレスなど同一の設定項目を使いまわして使用する場合に効率の良い方法です。
ファイルの生成を行う
設定項目など小規模のデータを保存と読み込みは上記のMy.Settingsクラスを使用する方法で管理できますが、保存する項目が多くなるとファイルを生成した方が良い場合があります。
ファイルを生成して保存する方法は動作履歴(ログ)など容量の大きくなりがちなデータの保存に適した方法です。
ダイヤログを使用してファイルの保存場所やファイル名を指定して保存する方法をまとめました。参考として固定した場所にあるファイルをダイヤログを使用してコピーして取得する方法を説明しています。
参考書籍
私はVB2005からVB.NET環境でアプリを開発した経験がありますが、VBの多くのメソッドを把握するのは難しいと感じています。メソッドを知らずに効率の悪い開発を行わないためにも参考になると思います。
まとめ:無料でプログラミング学習しよう
個人で使用する場合は基本無料でVB2022が使用できるため初期コスト不要でプログラミングを学習することができます。
VB2022でプログラミング学習と言っても何をしてよいのか分からずハードルが高く感じることがあると思うので上記項目で紹介している記事を参考にしてソースコードを確認してみてください。
VB.NET(VB2022)を使用した例としてArduinoマイコンなどの外部機器とシリアル通信やイーサーネット通信で接続してマイコンの設定を行うメンテナンスソフトを製作することができるようになります。
VB.NETでもプログラミングでよく使用されるFOR文やIF分がでてきます。これらの考え方を身に着けることでC言語、Python、Javaスクリプトなで異なる言語においても理解が進むようになります。
関連リンク
マイクロソフトはVisual Studio以外にもVSCodeという便利なエディターを提供しています。下記リンクではVSCodeのインストールの仕方からC言語開発環境の作り方までをまとめています。
下記記事ではIoT社会実現と組み込みエンジニアの職種との関係についてまとめています。
最後まで、読んでいただきありがとうございました。