CoreでGpioピンを操作したLチカをしてみて、手順を備忘録として残したいと思います。作成したサンプルは、Githubに公開しています。ご参考になれば幸いです。Piの方の環境構築については、私の以前の記事を参照して下さると幸いです。RaspberryPi側の配線ブレットボードとLED、抵抗を使って回路作成。/スターターキットに付属したものを用いました。手軽に色々試せて楽しいので、スターターキットの購入はおすすめです。初心者演習用パーツセットGpio(2)→220Ω抵抗→LED→GND(6)っていう構成で回路を繋ぎます。回路構築について、詳しくはこちらのページを参考にさせて頂きました。分かりやすく解説も載ってましたので、特に詰まることなく回路作成できました。抵抗についてはそれぞれ色が似ていますので、わかりづらいかもしれませんが、私は220Ωのものを使用しています。LEDには方向があります(アノード・カソード)。間違えないように確認して、配線します。回路を組み終わったら、GPIOを操作し動作可否を確かめてみると良いかもしれません。GPIOについての詳しい説明は本題と外れますので省略しますが、Raspbianであれば/sys/class/gpio下に管理されているので、そこのファイル読み書きを行うことで簡単に制御できます。下記のようなコマンドを発行すると、とりあえずLEDを光らせることが出来るはずです。ピンに対する操作が可能になる。出力の方向を設定する。今回はLEDを光らせるので、「direction」に「out」を設定する。GPIO2番の「value」にONである「1」を設定し、光るかテストする。GPIO2番の「value」にOFFである「0」を設定し、消えるかテストする。利用し終わったらGPIO2番は非アクティブにする。Coreを使ってC#でプログラム化するだけです。Core2.0を利用可能にします。バージョンが15.3まで上がっていない場合は、VisualStudioInstallerから更新を選択し、アップデートを行いましょう。Core)を選択します。プロジェクト名は適当になんか決めておきます。私は今回「PiTest2」として生成しました。プロジェクトが生成されたら、アプリケーションを作成します。実装について、とりあえず実験用に楽にGPIOを触れる簡単なヘルパクラスを作成し、Main側から利用しています。単純にファイルI/Oさえ出来れば問題ないので、Program.cs上にザザっと書いてしまってもいいと思います。FixMe:規模が大きくなってきたら、ピンの状態管理させてコントローラクラスにしたい。現在のままだと、存在しないGPIOであったりデータ方向が適正でない場合に良い制御ができない。指定したGPIOピンをオープンします。指定したGPIOピンをクローズします。指定したGPIOピンがオープン済みかを確認します。指定したGPIOピンの信号方向を取得します。指定したGPIOピンに信号方向を設定します。指定したGPIOピンのvalueを取得します。指定したGPIOピンのvalueを設定します。//2番ピンが開いていない場合はOpenします。//信号を出力方向に設定します。//Lチカタスクを作成します。//トグルさせてみる。//タスクを実行し、完了を待機します。}}Linuxでのechoに相当する構文としてWriteAllText、catに相当する構文としてReadAllTextを使用しました。アプリケーションを作成したら、次はlinux-arm向けにpublishを行います。linux-arm用ビルドの実行アプリケーションを作成したら、linux-arm用にビルドする。プロジェクトルートを開いて下記コマンドを入力。publishフォルダ毎転送した方が色々楽かもしれませんね。csprojとかを弄る必要もなく、コマンド一発で生成されるので、非常に楽です。転送されたフォルダに下記コマンドを発行して実行権限を追加し、ディレクトリに移動して実行する。アプリケーションを実行。起動するにはアプリケーション名をCallして下さい。./PiTest2実行結果はこんな感じになりました。見づらいかもしれませんが、黄色のLEDがチカチカ動作しているのを確認出来ました!感想GPIOピン操作について、もっと良い方法を探したい。今回の方法はあまり良いとは言えない。状態管理も出来ていないし、起こり得る例外もキャッチし切れていない。CoreにおけるGPIOピンの操作について、より良い操作方法・操作ライブラリをご存知の方、教えて頂けると幸いです。上手くできなかった部分があるとはいえ、とにかく現実世界のものが動くってのは面白いなと感じました。操作をPythonで試したことはありましたが、今回C#を使って操作できたのはとっても嬉しかったです。CoreでのLチカ実装例はあまりなく、特にGPIO操作の部分は結構苦戦しました。echoやcatはそのままのコマンド叩かなくても、ファイル操作で代替出来る事にもっと早く気付けていれば、あまりハマらず出来たなぁと反省してます。出力にも挑戦してみたいなぁ。実装イメージが付きませんが、センサ情報とかを入力して解析するようなものを作ってみたいです。upLoginユーザーは見つかりませんでした。