SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

C#ではじめるラズパイIoTプログラミング

C#でもラズパイIoTができる! .Net Coreで環境構築しよう

C#ではじめるラズパイIoTプログラミング 第1回


Raspberry Piの準備

 Raspberry Piは、Raspberry Pi 2以降を用意しましょう。なお、Raspberry Pi Zeroは、.Net Coreのサポート対象外になっています。本連載では、Raspberry Pi 3 Model Bを使用します。OSは、おなじみのRaspbian(ダウンロードページ)を使用します。OSのインストール手順は、ここでは割愛します。

 なお、Raspberry Piの設定で、SSHとVNC、SPI、I2Cを有効にしておきます。本連載でのRaspberry Piの操作は、基本的には、Windows環境から、Tera TermなどのSSHクライアントを接続して行います。

Raspberry Piの設定
Raspberry Piの設定

.Net Core 3.0 SDKのインストール

 Raspberry Piにも、.Net Core 3.0 SDKをインストールしましょう。

 まず、インストールファイルをダウンロードします。ダウンロードは、Windowsでも、Raspberry Piからでも可能です。先ほどの.Net Coreのダウンロードページを開き、「Build apps - SDK」にあるLinuxのARM32を選択します。執筆時点では、dotnet-sdk-3.0.100-preview6-012264-linux-arm.tar.gzというファイル名です。

Raspberry Piに転送する

 Windowsでダウンロードした場合は、Raspberry Piに転送する必要があります。ファイルを転送するには、あらかじめRaspberry PiにSambaをインストールし、Windowsでファイル操作ができるようにしておくか、WinSCPなどのSSHクライアントツールを使います。WinSCPであれば、Raspberry Piの設定は特に不要なので、手軽です。

WinSCPでの接続
WinSCPでの接続

 Sambaを利用する場合は、次のようにインストールして、設定ファイル(/etc/samba/smb.conf)にファイル共有の設定を追加します。

$ sudo apt-get install samba

 例えば、piユーザーのホームディレクトリを共有する場合は、次の設定を追加します。

[pi]
path = /home/pi
read only = No
guest ok = Yes
force user = pi

 設定ファイルの変更後、Sambaを起動します。なお、Sambaの自動起動の手動設定は不要です。

sudo /etc/init.d/samba restart

 これで、Windowsのエクスプローラーのネットワークから、piユーザーのホームディレクトリが共有フォルダとして読み書きできるはずです。もし、Windows 10で共有フォルダが表示されないときは、「Windowsの機能の有効化または無効化」で、SMB 1.0/CIFSが有効になっていることを確認しましょう。

SMB 1.0/CIFSの有効化
SMB 1.0/CIFSの有効化

インストールの実行と初期設定

 Raspberry Piで直接ダウンロードするには、wgetやcurlコマンドを使います。SDKファイルのダウンロードURLは、先ほどのダウンロードページか、GitHubの.NET Coreのページを参照してください。

 執筆時点では、次のURLでダウンロードできました。

$ wget https://download.visualstudio.microsoft.com/download/pr/50bc5936-b374-490b-9312-f3ca23c0bcfa/d7680c7a396b115d95ac835334777d02/dotnet-sdk-3.0.100-preview6-012264-linux-arm.tar.gz

 SDKファイルは、piユーザーのホームディレクトリにコピーしておきます。なおSDKのインストールの前には、以下のように、updateといくつかのライブラリをインストールしておきましょう。

$ sudo apt-get update
$ sudo apt-get install libunwind8 gettext apt-transport-https

 そして、ファイルを解凍します。

$ mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.0.100-preview6-012264-linux-arm.tar.gz -C $HOME/dotnet

 これで、ホームディレクトリの直下にdotnetディレクトリが作成され、そのディレクトリにSDKが解凍されます。次に、パスの設定です。シェルの設定ファイル、.bashrcの最後などに、次の2行を追記します。

DOTNET_ROOT=$HOME/dotnet
PATH=$PATH:$HOME/dotnet

 最後に設定ファイルを再度読み込んでおきます。

$ . ~/.bashrc

インストールの確認

 インストールできているか確認してみましょう。次のコマンドを実行すると、.NET Coreのバージョンが表示されるはずです。

$ dotnet --version
3.0.100-preview6-012264

コマンドラインツール

 このように、.Net Coreでは、dotnetコマンドというコマンドラインのツールが使用できます。

[構文]dotnetコマンド
dotnet [command] [arguments] [オプション] 

 dotnetコマンドでは、プロジェクトの作成やビルドも可能です。例えば、次のnewコマンドは、コンソールアプリのテンプレートを使って、testappという新規プロジェクトを作成します。-oオプションで、プロジェクトの生成先を指定しています。

$ dotnet new console -o testapp

 また、作成されたプロジェクトを構築、実行するには、次のコマンドを使います。

$ dotnet run -p testapp

 しばらくすると、Hello World!と表示されます。

 なお、主なdotnetコマンドとして、次のようなコマンドがあります。

主なdotnetコマンド
コマンド 概要  
dotnet new 指定されたテンプレートでプロジェクトを新規作成
dotnet build アプリケーションのビルド
dotnet clean クリーンビルド
dotnet run アプリケーションの実行
dotnet publish 実行ファイルの生成

最後に

 今回は、Visual Studioと.Net Core 3.0 SDKのインストールを解説しました。次回からは、Raspberry PiのGPIOを操作するアプリケーションを作成することにします。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
C#ではじめるラズパイIoTプログラミング連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 高江 賢(タカエ ケン)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11677 2019/08/20 17:05

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー