C#控制树莓派入门
何为树莓派
许久没有写博客了,十二月份西安疫情的影响,居家隔离了一个多月,在其期间,学习了一下树莓派,觉得硬件还是挺有意思的,刚好也看到了巨硬有提供使用c#用来开发树莓派应用的解决方案叫Net Iot,就自己买了一个树莓派入手,尝试用c#去控制树莓派的各个引脚,当然,Net Iot不仅仅支持树莓派一个开发板,同时支持Arduino开发板,以及香橙派,荔枝派,不过目前只是入手了树莓派,所以此处以及后续开发板会以树莓派为主,后面可能也会出乐鑫ESP32单片机的入门教程,接下来我们了解一下什么是树莓派吧。
树莓派,一个只有信用卡大小的电脑,其操作系统是基于Linux系统,目前支持的系统为树莓派官方操作系统Raspberry Img官方操作系统,Windows 10 IOT操作系统,Ubuntu,Centos,Debian,其中官方操作系统是基于Debian的。虽然树莓派只有信用卡大小,但是别看它麻雀虽小,却五脏俱全,它是一款基于ARM的微型电脑主板,以电脑不同的是,它是使用SD卡用来做存储,操作系统,数据都是存储SD卡上的,最新版的树莓派4B,有两个3.0的USB接口,两个USB2.0的接口以及一个千兆以太网接口,大家可以看下图,树莓派发布至今的各个版本的对比。可以看到虽然树莓派小,但是它有多个USB接口,支持以太网接口,以及蓝牙,音频,以及HDMI接口,并且也是支持蓝牙的,这上面没有标注。并且树莓派最重要并且最好玩的部分就是它的引脚模块,可以用来使用它的引脚去进行控制其他电子元器件,并且支持多种总线通讯协议,包括I²C,SPI,CAN,以及串口通讯,也包括了PWM脉冲宽度调制等,树莓派总共提供了40的引脚,也叫GPIO,GPIO全称是General-purpose input/output,翻译过来就是通用的输入输出,可以看到下面的图片展示了树莓派的引脚,以及部分引脚所带有的其他功能,其中3.3V的是供电接口可以用来给其他的电子元器件供电,5V也是同样的道理,5v也可以给树莓派供电,可以外接电源给树莓派以及其他的电子元器件进行供电,GND为接地引脚,理解为我们三插插座的接地,GPIO开头的为没有任何其他功能的输入输出引脚,RXD和TXD为串口通讯可以使用这两个引脚使用485或者232协议去进行通讯,CE是片选信号,SDA和SCL的是I²C总线协议的接口,MOSI,MISO,SCLK是SPI协议的接口,引脚不一定非要全部记住,但是需要知道它的作用是什么,刚开始的时候我以为SPI和I²C是一种什么特制线路用来通讯的,后来知道了它仅仅是作为一种协议用来传输数据的,接好之后就可以用来传输数据。

上面我们提到了一些总线协议,以及脉冲宽度调制,这里我们做一下简单的介绍,I²C协议是由两根线组成的一个是SDA用来主控设备和被控从设备进行一个双向数据传输的线路,SCL是一根时钟线,用来协调双方设备进行发送和传输数据;SPI协议是由四根线组成,分别是
目前为止我使用树莓派写过一个入门级别的智能小车,其中的功能有控制摄像头,控制舵机,实现摄像头的转动,以及控制电机来实现小车的前进,后退,左右,同时带有红外线避障和超声波测距模块,以及蜂鸣器,等几个案例,后面我会附上图片以及视频,展示我这段时间的一个学习成果。

Net IOT
接下来进入到我们的重头戏,我们可以看看巨硬提供的关于硬件的树莓派等开发板的解决方案,我们可以在API浏览器上面找到一个叫Net Iot Libraries的一个项目这个项目提供了我们树莓派,香橙派等开发板的解决方案API,而且微软默认的编码都是使用的是BCM编码,可以参考上面引脚图查看对应的引脚BCM编码,但是由于这里都是英文的,所以在过年期间我把他所支持的硬件主要是传感器等电子元器件进行了一个翻译并且整理成了一个文档,后面我会附上文档的一个地址,当然有些还是不全面的,后续也会慢慢完善,目前是大部分都已经整理出来了,我们可以看到下图,API浏览器可以看到他所支持的一些电子元器件,包括ADC(模数转换器),以及PN532读写芯片,还支持了RFID,蜂鸣器,电机,摄像头,显示屏等电子元器件的封装,最主要的是巨硬已经帮我们把I²C,Spi,CAN总线通讯协议,以及PWM脉冲宽度调制封装好了,这样我们只需在理解了总线的协议概念之后,就可以直接用了,这个类库下面是没有提供串口通讯的,不过大家都知道我们在PC机上面是可以进行串口通讯的,那树莓派肯定也可以,依旧用的是SerialPort类来实现串口通讯,使用方式是没有任何变化的,不过刚才我也说了对应的引脚是RXD和TXD,对于串口怎么接线,一般都是树莓派的RXD接通讯设备的TXD,RXD的意思是Read数据,TXD是用来传输数据的,这样就是发送接传输,传输接发送来实现串口通讯,此处的话我是写了一个树莓派和ESP32实现串口通讯的Demo,本文会展示一些我整理的资料以及部分写好的Demo,后续也会为我家里打造一个智能家居的一个解决方案,用树莓派做大脑控制系统来向单片机发送接收的远程指令,从而实现控制窗帘,或者空调或者门锁的一个解决方案,当然成本可能有些高,也可能会只是用单片机用来做控制。因为ESP单片机同时也是支持链接无线网,或者启动一个Web服务器并且成本相较于树莓派低很多,一个树莓派好几百块钱一个ESP32开发板仅需20块钱左右,当然后续也会用一些其他开发板用来实践,譬如树莓派PICO价格也是二十块钱,或者是51或者stm系列的单片机。

最后我为大家展示一下我这段时间用树莓派做的一些东西以及和单片机串口通讯,视频和电子元器件代码和小车的代码以及资料都在我的网盘中,有兴趣的朋友可以下载下来看看。
小车代码:http://121.43.235.192:8082/s/WEtG2ZKLpTsmGKb
各种电子元器件传感器代码:http://121.43.235.192:8082/s/DdoWXYfTLb7npoN
由于本篇博客写的可能有些凌乱,往大家见谅,如果有不懂想入门的同学可以添加QQ群6406277找到我,或者看所在QQ群有没有叫四川观察的基本上就是我了,欢迎大家骚扰,后续的树莓派和单片机学习也会逐渐更新到博客中,期待各位大佬的关注。





C#控制树莓派入门的更多相关文章
- 树莓派入门教程——使用Qt开发界面程序
前言 Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器.Qt是面向对象的框架,使用特 ...
- node 控制 树莓派做的天气闹钟
node 控制 树莓派做的天气闹钟 在成都上班,下雨天堵车,迟到的概率会很大. 正好手上有一块树莓派 ,做了一个晴雨闹钟. 下雨天 早上 7:00叫我起床 晴天 早上 7:30叫我起床 将自己喜欢的歌 ...
- 云中树莓派(3):通过 AWS IoT 控制树莓派上的 Led
云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 云中树莓派(3):通过 AWS IoT 控制树莓派上的Led 云中树莓派(4):利用声音传感 ...
- 树莓派进阶之路 (023) - Windows下用串行连接控制树莓派(转)
转载:http://shumeipai.nxez.com/2014/05/04/under-windows-serial-connection-control-raspberry-pi.html 在没 ...
- Windows 10 IoT Core用PWM控制器控制树莓派LED灯亮度
我接到一个需求,需要调节LED灯的亮度,且是从上位机进行控制,我了解到树莓派也有PWM,就准备通过PWM来控制灯的亮度. PWM又叫脉宽调制,是用微处理器的数字输出来对模拟电路进行控制,对模拟信号电平 ...
- UNIX/Linux-进程控制(实例入门篇)
UNIX进程 进程标识符 要想对进程控制,必须得获取进程的标识.每个进程都有一个非负整数表示的唯一进程ID,虽然是唯一的,但是进程ID可以重用.当一个进程终止后,其进程ID就可以再次使用了. 系统 ...
- 转载:Raspberry Pi 树莓派入门
转载说明: 整理转载,原文链接http://www.eeboard.com/bbs/thread-5191-1-1.html 这篇帖子我打算用Q&A的方式来编写,这样大家更容易一目了然的看明整 ...
- web控制树莓派摄像头
首先测试摄像头保证能顺利拍照 raspistill -o a.jpg 安装flask sudo pip install flask 确认无误之后向下进行. 文件夹结构: CapPic ----stat ...
- 树莓派B+使用入门&RPI库安装&wringPi库安装
最近看看试用一下树莓派进行一些开发操作,于是入手一块Raspberry Pi B+的板子来玩.由于没有显示器,没有备用的键盘和鼠标,所以想到用SSH来控制树莓派,刚开始还很担心已经安装好的操作系统到底 ...
随机推荐
- 对极验geetest滑块验证码图片还原算法的研究
免责声明 本文章所提到的技术仅用于学习用途,禁止使用本文章的任何技术进行发起网络攻击.非法利用等网络犯罪行为,一切信息禁止用于任何非法用途.若读者利用文章所提到的技术实施违法犯罪行为,其责任一概由读者 ...
- Pytorch之Spatial-Shift-Operation的5种实现策略
Pytorch之Spatial-Shift-Operation的5种实现策略 本文已授权极市平台, 并首发于极市平台公众号. 未经允许不得二次转载. 原始文档(可能会进一步更新): https://w ...
- 微服务架构 | 3.4 HashiCorp Consul 注册中心
目录 前言 1. Consul 基础知识 1.1 Consul 是什么 1.2 Consul 的特点 2. 安装并运行 Consul 服务器 2.1 下载 Consul 2.2 运行 Consul 服 ...
- IPV4地址,子网掩码,子网划分
转载自https://blog.csdn.net/qq_45108415/article/details/114179407
- Go 获取键盘输入,进制转换
#### Go 获取键盘输入,进制转换 最近爱上<<珂矣的心灵独语>> 连续听一下礼拜也不觉得厌: 喜欢她的宁静与安然,喜欢她的坦荡与欢喜,喜欢她的禅意与智慧; ***撑着一苇 ...
- Go 变量及基本数据类型3
#### Go 变量及基本数据类型(三)今天学习一下剩下的两个基本数据类型(布尔类型,字符串类型)以及基本数据类型的相互转换##### 布尔类型布尔类型也称为bool 类型, bool 类型只允许取值 ...
- CentOS7搭建Docker私有仓库----Docker
有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似.目前Docker Registry已经升级到了v2 ...
- jsp中获取下拉框的value问题
遇到问题 最近快期末考试了,今天想写一个简单的增删改查项目练练手,可是在刚写增加的时候就出现了问题,"增"一直是最简单的操作,本来自付很快就能写完,可是数据库中对应的下拉框数据一直 ...
- Python 使用 Windows10 桌面通知
前言 Win10 没有提供简单命令行方式来触发桌面通知,所以使用 Python 来写通知脚本. 一番搜索,找到 win10toast .但这开源仓库已无人维护,通过 github fork 的关系图, ...
- 阿里智能运维实践|阿里巴巴DevOps实践指南
编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...