树莓派01
raspbrerry pi
简介:官方系统就是Raspbian (Linux系统的一种)
1. 下载与安装(官网提供两种方式)
https://www.raspberrypi.org/
NOOBS使用
NOOBS:new outofbox software 新版开箱即用软件。有网络版和非网络版,非网络版里面包含了镜像文件,就是右边的那个,所有文件很大1个多G。而网络版里面只是一个下载工具,安装时需要联网下载镜像。
NOOBS下载下来是一个zip,解压后有好多文件
把这个目录下所有copy到sd卡,注意拷到根目录
然后开启树莓派,选择镜像安装即可,选英文的最好
Rapbian
raspbian:这个就是我们的系统镜像文件。分为有图形界面和无图形界面。
就是镜像文件,img文件,使用Win32DiskImage等软件,写入即可。
2.基本配置
一些树莓派的基础配置自己百度即可。
例如树莓派第一次连接:
树莓派,第一次连接的时候最好有显示器,这样方便配置。
如果没有就只能用网线连接电脑,用SSH进行连接,然后配置。(具体方法百度)
例如如何加入中文输入法:
输入法:如果装英文的系统,它默认使用键盘是UK,咱们的键盘都是美式的,记得切换键盘。否则想要打“#”这些符号,可打不出来。。。
2.1 sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin
这是给树莓派安装中文输入法Fcitx及Google拼音输入法
sudo是一个提升权限的命令,可以让非root用户暂时拥有root命令,即可以在你的系统里面安装,删除文件
apt是一个包管理工具
2.2安装好还不能用,你要在开始菜单中找到prefeence,在preference那里找到Fcitx Configuration,点开,然后点击左下角的”+”号,找到你刚安装的google pinyin.
把你的键盘添加进去,注意,把那个选择本机语言去掉。
2.3 crtl+空格 切换输入法
停止一个python脚本
当你使用GPIO时,总会遇到这样的问题。因为代码中间出错了,而你有没有捕获,这就尴尬了,你的代码一直运行,这样GPIO引脚并没有复位这很危险。
所有注意在你所有的代码运行的外面加上KeyboardInterrupt
这样,你就可以通过ctrl+c取消运行
3.1 ps -ef 显示进程,然后找到py文件对应的进程的pid
3.2 写一个简单的GPIO脚本执行一下就可以了。(他会顶替掉之前占用的GPIO口)
3.常用命令
sudo raspi-config 打开设置,打开VNC,摄像头等都需要在这里操作
命令基本和Linux命令中一样(自行百度)
4.应用(只介绍python)
4.1 控制底层硬件GPIO
RPi.GPIO库:https://pypi.org/project/RPi.GPIO/
树莓派中应该有预装,但是如果没有装,也可以自己装。
Python下GPIO.add_event_detect(channel, GPIO.RISING, callback=my_callback) 这个函数的用法 用来做定时用再好不过
高电位与低点位:相对就可以通电
题外话:因为自带了python2和python3,所有命令行里面执行的时候:
python2就是使用python2 pip2
python3就是使用python3 pip3同理,这个注意尽量使用python3语言
快速入门:https://sourceforge.net/p/raspberry-gpio-python/wiki/Home/
每一个针脚都有Pin#和NAME字段。
Pin代表的是该针脚的编号,其中01和02针脚对应第一张图中GPIO最右边竖排的两个针脚。
而NAME代表的是该针脚的BCM名称,当然NAME也可以直接看得出针脚的默认功能。比如 3.3v和5v代表着该针脚会输出3.3v和5v的电压,Ground代表着该针脚是接地的,GPIO0*则是一些待用户开发的针脚。每个针脚都可以使用程序进行控制操作。
案例:控制开关,电机等
这个是一个控制灯闪烁的案例。
4.2 串口 Pyserial
一些传感器,他们的封装很好,我们不需要去检测那些物理量转换成的模拟电子,他们自己一般都会自动处理数据,如果我们想要拿数据就可以,通过串口读取数值。
官方文档:https://pyserial.readthedocs.io/en/latest/
当然串口也可以与stm32等单片机通信,arduina等
4.3 摄像头 Picamera opnencv-python
摄像头支持usb摄像头和官方的csi摄像头(官方那个摄像头如果不能用,注意添加设备,方法自行百度)
文档自行百度
案例:可以做一个监控直播,你可以选择多种方式比如直接用VLC,rtmp这种推流,或者自己搭建一个web服务器结合PI camera。(注意分辨率不要太高,否则延迟太高)
这是一个VLC实时监控的案例:https://www.cnblogs.com/uestc-mm/p/7587783.html
4.4 web服务器 Flask (内外访问)
因为我是使用python,所以选择了这个框架。
当然别的框架也是可以的比如django等。
4.5 通信客户端,服务器:蓝牙,TCP/IP蓝牙可以使用pybluez库,bluepy(只支持BLE)
tcp/ip 直接socket
4.6 深度学习 tensoflow
案例:物体检测,人脸识别
注意:安装时选择对应树莓派的版本