1. 在 VS 2019 中創建 .Net Core 控制台應用程序,使用 Nuget 安裝程序包:
System.Device.Gpio
Iot.Device.Bindings
2. 更新 Main 函數,實現業務邏輯
static void Main(string[] args) { var pin = 17; var lightTimeInMilliseconds = 1000; var dimTimeInMilliseconds = 200; using GpioController controller = new GpioController(); controller.OpenPin(pin, PinMode.Output); Console.WriteLine($"GPIO pin enabled for use: {pin}"); Console.CancelKeyPress += (object sender, ConsoleCancelEventArgs eventArgs) => { controller.Dispose(); }; while (true) { Console.WriteLine($"Light for {lightTimeInMilliseconds}ms"); controller.Write(pin, PinValue.High); Thread.Sleep(lightTimeInMilliseconds); Console.WriteLine($"Dim for {dimTimeInMilliseconds}ms"); controller.Write(pin, PinValue.Low); Thread.Sleep(dimTimeInMilliseconds); } }
3. 在 "程序包管理器控制台" 中運行發布命令,注意發布目標平台為 linux-arm。
dotnet publish -c release -r linux-arm
4. 上傳發布程序到樹莓派,使用 cd 命令切換到發布文件夾(例如這里的 Demo_HelloLED),並設置文件權限。
chmod 755 ./Demo_HelloLED
chmod是Linux下設置文件權限的命令,后面的數字表示不同用戶或用戶組的權限。
一般是三個數字:chmod 750 "授權文件名"
第一個數字表示文件所有者的權限
第二個數字表示文件所有者同屬一個用戶組的其他用戶的權限
第三個數字表示其他用戶組的權限。
權限分為三種:讀(r=4),寫(w=2),執行(x=1)。
結合起來還有可讀可執行(rx=5=4+1),可讀可寫(rw=6=4+2)等。
所以,chmod 755設置用戶的權限為:
1.文件所有者可讀可寫可執行 --7
2.與文件所有者同屬一個用戶組的其他用戶可讀可執行 --5
3.其他用戶組可讀可執行 --5
5. 搭建硬件
6. 運行 .Net Core 應用程序
./Demo_HelloLED
7. 效果演示
參考資料
https://www.cnblogs.com/zhanggaoxing/p/10311697.html
https://dzone.com/articles/aspnet-core-30-on-raspberrypi-controlling-led
https://www.cnblogs.com/songxingzhu/p/7399991.html
https://blog.csdn.net/mwangsheng/article/details/77991304