树莓派Zero 2 W用.NET6和libusb,USB读写疑问?

摘要:有这个想法的初衷 喜欢电子和DIY硬件的朋友对稚晖君应该都不陌生,他定期都会分享一些自己做的好玩的硬件,他之前做了一个ElectronBot桌面机器人我就很感兴趣,所以就自己也做了一个。 起初我只是自己开发了一个叫电子脑壳的上位机软件,大家
有这个想法的初衷 喜欢电子和DIY硬件的朋友对稚晖君应该都不陌生,他定期都会分享一些自己做的好玩的硬件,他之前做了一个ElectronBot桌面机器人我就很感兴趣,所以就自己也做了一个。 起初我只是自己开发了一个叫电子脑壳的上位机软件,大家在之前的博客里应该也有见到,是个用WinUI(WASDK)开发的Windows应用软件。 ElectronBot机器人要一直和电脑连接通过应用进行控制,很多的网友都想ElectronBot脱离电脑使用,于是我也想着能有什么好办法,所以也就有了这个标题的想法。 项目代码地址 技术选型 大家想到树莓派肯定就会想起python,大学的时候玩树莓派确实用python比较多,但是作为一个.NET开发人员当然要尝试下.NET的跨平台能力到底如何了。 由于先有了之前写的上位机软件电子脑壳,也想着让之前封装的SDK能够直接用在树莓派上,所以选择.NET是顺理成章的事情了。 应用开发选择.NET框架 通讯方式选择GRPC USB操作选择LibUsbDotNet调用libusb 整体方案如下图: 环境配置 1. 树莓派系统安装及网络配置 树莓派支持的系统有很多种,像官方的Debian,Ubuntu等等。 我平时使用Debian比较多,但是测试的时候好像usb操作有些问题,应该是我用的.net互操作库对Debian支持的不太好,所以我选择了ubuntu的系统。 Raspberry Pi Imager 树莓派官方的系统烧录工具 Ubuntu系统下载地址 Download Ubuntu Server 安装烧录工具,下载系统,然后烧录系统。如下图所示: 目前树莓派Zero 2 W的Ubuntu只有Server版本和Core版本,需要使用命令行做操作。 网络配置可以参考下面的文章进行配置。 树莓派4B ubuntu server ssh服务器部署全过程详解(内网穿透) 能正常联网安装软件就可以了。 2. .NET6的运行环境 由于.NET6 Arm64官方没提供包管理安装,所以需要大家通过脚本,或者下载文件安装。 网络好的可以通过脚本安装,简单,本文以脚本安装示例。 参考文档如下: 使用安装脚本或通过提取二进制文件在 Linux 上安装 .NET 下载安装脚本dotnet-install.sh放到用户家目录 执行以下指令添加执行权限 sudo chmod +x ./dotnet-install.sh 执行指令安装 ./dotnet-install.sh -c Current 下载解压结束需要我们配置环境变量,就像windows安装软件一样,配置完环境变量,才可以直接通过dotnet直接使用了,不然是提示找不到指令的。 以下指令是编辑环境变量的,我选择了~/.bashrc,在文档最底部添加环境变量内容。 sudo vim ~/.bashrc 内容 export DOTNET_ROOT=$HOME/.dotnet export PATH=$PATH:$HOME/.dotnet:$HOME/.dotnet/tools 保存并退出,然后执行dotnet如果正常就可以进行下面的操作了。
阅读全文