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来控制树莓派,刚开始还很担心已经安装好的操作系统到底 ...
随机推荐
- pycharm常用设置项和快捷键
python开发工具pycharm非常人性化,使用方便,功能强大,可以做到与项目配置库结合使用.初次使用,一些设置项和快捷键不那么容易被发现和设置,那么给大家下面总结pycharm常用的设置项和快捷键 ...
- 【LeetCode】628. 三个数的最大乘积
解题思路 如果数组中全是正数或者全是负数,最大乘积就是最大的三个数的乘积.如果数组中既有正数又有负数,最大乘积可能是三个最大正数乘积,也可能是两个最小负数和最大正数的乘积.遍历数组找到最大的三个数和最 ...
- [硬拆解]拆解一个USB转CAN-FD总线设备-PCAN-USB FD
描述 CAN FD适配器PCAN-USB FD允许通过USB将CAN FD和CAN网络连接到计算机.高达500伏的电流隔离将PC与CAN总线分离.简单的操作及其紧凑的塑料外壳使该适配器适用于移动应用. ...
- 主键约束(primary key 简称PK)
7.5.主键约束 主键约束相关术语 主键约束 主键字段:字段添加了主键约束,叫主键字段 主键值:主键字段中的每个值都叫主键值 什么是主键? 主键值是每一行记录的唯一标识(主键值是每一行记录的身份证号) ...
- kubernetes之部署traefik-ingress分为http和https
1 理解Ingress 简单的说,ingress就是从kubernetes集群外访问集群的入口,将用户的URL请求转发到不同的service上.Ingress相当于nginx.apache等负载均衡方 ...
- 学习JAVAWEB第十三天
会话技术 1. 会话:一次会话中包含多次请求和响应. * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 2. 功能:在一次会话的范围内的多次请求间,共享数据 3. 方式: ...
- docker 安装遇到404 not find
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce/repodata/repomd.xml: [Errno 14] HTTPS E ...
- MySQL8.0.28安装教程全程参考MySQL官方文档
前言 为了MySQL8.0.28安装教程我竟然在MySQL官方文档逛了一天,至此献给想入门MySQL8.0的初学者.以目前最新版本的MySQL8.0.28为示例进行安装与初步使用的详细讲解,面向初学者 ...
- 计算机网络-5-9-TCP拥塞控制
TCP拥塞控制 拥塞控制的一般原理 在计算机网络中的链路容量(带宽),交换节点中的缓存和处理机等,都是网络的资源,在某段时间,若对网络中某一资源的需求超过该资源所能提供的可用部分,网络性能就会变坏,这 ...
- 我在 Gitee 上发现了一个简洁又好用的网络音乐播放器!
这几天无聊的时候我想听听歌,但我想要找一个简单快速的网络音乐播放器来用用.这时我在 Gitee 上看见一个看上去不错的开源项目 -- Hi音乐. 项目链接:https://gitee.com/hi-j ...